:root { --bg:#f5f5f7; --surface:#ffffff; --surface-2:#f8fafc; --text:#111827; --text-soft:#374151; --muted:#6b7280; --border:#e5e7eb; --border-soft:#edf0f4; --shadow:0 18px 40px rgba(17,24,39,.08); }
body{margin:0;font-family:"Segoe UI",Arial,sans-serif;background:#fff;color:var(--text);} .container{width:min(1200px,92%);margin:0 auto;} .aps-navbar{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);} .nav-link{color:#374151!important;font-weight:500}.nav-link:hover{color:#111!important}.footer{border-top:1px solid var(--border);color:var(--muted)} .card{border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)} .card-header{background:#fafafa;border-bottom:1px solid var(--border)} .btn-primary{background:#111;border-color:#111}.btn-outline-primary{border-color:#111;color:#111}.btn-outline-primary:hover{background:#111;color:#fff}.hero-carousel-image,.realestate-carousel-image{height:70vh;min-height:420px;object-fit:cover}.carousel-caption{bottom:3rem}.carousel-caption-box{display:inline-block;max-width:650px;background:rgba(0,0,0,.45);padding:1.5rem;border-radius:16px;color:#fff}.carousel-caption-box h1,.carousel-caption-box p{color:#fff}.realestate-service-card{overflow:hidden}.realestate-service-image{width:100%;height:170px;object-fit:cover}.realestate-service-text{min-height:4.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted)} .listing-card{overflow:hidden}.listing-image{width:100%;height:200px;object-fit:cover}.listing-desc{min-height:3.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery-image{width:100%;height:220px;object-fit:cover}.listing-hero-image{width:100%;height:560px;object-fit:cover}.listing-thumb-strip{display:flex;gap:.75rem;overflow-x:auto}.listing-thumb-button{border:1px solid var(--border);background:#fff;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;flex:0 0 auto;width:110px;height:78px}.listing-thumb-image{width:100%;height:100%;object-fit:cover}.listing-price{font-size:2rem;font-weight:800}.listing-title{font-size:2rem;font-weight:800}.listing-type-badge{display:inline-block;background:#111827;color:#fff;border-radius:999px;padding:.55rem .9rem;font-size:.82rem;font-weight:700}.listing-facts-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.listing-fact-box{border:1px solid var(--border);border-radius:16px;padding:1rem;background:#fafafa;text-align:center}.listing-fact-value{font-size:1.3rem;font-weight:800}.listing-fact-label{font-size:.86rem;color:var(--muted)} .listing-section-title{font-size:1.25rem;font-weight:800;margin-bottom:1rem}.listing-overview-text{color:#374151;line-height:1.75}.listing-sidebar-sticky{position:sticky;top:95px}.listing-contact-price{font-size:1.6rem;font-weight:800}.listing-mini-facts{display:grid;gap:.75rem}.listing-mini-fact{display:flex;justify-content:space-between;padding-bottom:.65rem;border-bottom:1px solid var(--border-soft)} .agent-profile-box{display:flex;gap:1rem;align-items:center}.agent-profile-image{width:84px;height:84px;object-fit:cover;border-radius:50%;border:1px solid var(--border);background:#f3f4f6}.agent-profile-name{font-size:1.05rem;font-weight:800}.agent-profile-agency{font-weight:600;color:#374151}.agent-profile-contact{color:var(--muted);font-size:.92rem}.similar-listing-image{width:100%;height:170px;object-fit:cover}.similar-carousel-control{width:42px;height:42px;top:45%;background:rgba(17,24,39,.75);border-radius:50%}.dashboard-stat-label{font-size:.9rem;color:var(--muted);text-transform:uppercase;font-weight:700}.dashboard-stat-value{font-size:2.2rem;font-weight:800}.alert.success{background:#f0fdf4;border:1px solid #86efac;color:#166534;padding:1rem;border-radius:10px}.service-detail-hero-image{width:100%;height:420px;object-fit:cover}.service-feature-list li{margin-bottom:.75rem;color:var(--text-soft)} .aps-addressable{position:relative}.aps-addressable-dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 36px rgba(17,24,39,.10);overflow:hidden;z-index:2000}.aps-addressable-item{width:100%;text-align:left;border:0;background:#fff;padding:.85rem 1rem;cursor:pointer;color:var(--text);border-bottom:1px solid var(--border-soft)}.aps-addressable-item:hover{background:#f8fafc}.aps-map-preview-wrap{display:none;margin-top:1rem}.aps-map-preview-wrap.is-visible{display:block}.aps-map-preview{width:100%;height:260px;border:1px solid var(--border);border-radius:14px;background:#f8fafc}
@media(max-width:991.98px){.listing-sidebar-sticky{position:static}.listing-facts-row{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-carousel-image,.realestate-carousel-image{height:420px;min-height:auto}}
@media(max-width:767.98px){.listing-hero-image{height:300px}.listing-title{font-size:1.5rem}.hero-carousel-image,.realestate-carousel-image{height:320px}.carousel-caption{left:1rem;right:1rem;bottom:1rem}}

.auth-page {
    min-height: calc(100vh - 140px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
    padding: 48px 20px;
}

.auth-wrap {
    width: 100%;
    max-width: 620px;
}

.auth-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.08);
    padding: 36px;
}

.auth-brand {
    margin-bottom: 28px;
}

    .auth-brand .eyebrow {
        display: inline-block;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: #6b7280;
        margin-bottom: 10px;
    }

    .auth-brand h1 {
        margin: 0 0 10px;
        font-size: 2rem;
        font-weight: 800;
        color: #111827;
        letter-spacing: -0.02em;
    }

    .auth-brand p {
        margin: 0;
        color: #6b7280;
        font-size: 0.98rem;
    }

.auth-form .form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    color: #111827;
}

.auth-form .form-control,
.auth-form select.form-control,
.auth-form textarea.form-control {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 15px;
    background: #ffffff;
    color: #111827;
    box-shadow: none;
}

    .auth-form .form-control:focus,
    .auth-form select.form-control:focus,
    .auth-form textarea.form-control:focus {
        outline: none;
        border-color: #111827;
        box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.08);
    }

.auth-section-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 1rem;
}

.auth-submit {
    margin-top: 8px;
    padding-top: 12px;
    padding-bottom: 12px;
    font-weight: 700;
    border-radius: 12px;
}

.auth-links {
    margin-top: 18px;
    display: flex;
    justify-content: center;
}

    .auth-links a {
        color: #111827;
        text-decoration: none;
        font-weight: 600;
    }

        .auth-links a:hover {
            text-decoration: underline;
        }

.validation {
    color: #dc2626;
    font-size: 0.92rem;
}

@media (max-width: 576px) {
    .auth-card {
        padding: 24px;
        border-radius: 18px;
    }

    .auth-brand h1 {
        font-size: 1.7rem;
    }
}

.auth-form .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.auth-form .form-check-input {
    width: auto;
    margin-top: 0;
}

.auth-form .form-check-label {
    margin-bottom: 0;
    font-weight: 500;
}

.card {
    border-radius: 14px;
}

.booking-extra-option {
    cursor: pointer;
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
    border-radius: 14px;
}

    .booking-extra-option:hover {
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        transform: translateY(-1px);
        border-color: #cbd5e1;
    }

.auth-wrap-wide {
    max-width: 940px;
}

.stepper-wrap {
    margin-bottom: 2rem;
}

.stepper-progress {
    width: 100%;
    height: 8px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 1rem;
}

.stepper-progress-bar {
    height: 100%;
    width: 0;
    background: #111827;
    transition: width .25s ease;
}

.stepper-steps {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.step-indicator {
    padding: .65rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 600;
    color: #6b7280;
    background: #fff;
}

    .step-indicator.active {
        background: #111827;
        color: #fff;
        border-color: #111827;
    }

    .step-indicator.completed {
        background: #f3f4f6;
        color: #111827;
        border-color: #cbd5e1;
    }

.register-step {
    display: none;
}

    .register-step.active {
        display: block;
    }

.step-actions {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.terms-pdf-wrap {
    border: 1px solid #d1d5db;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.terms-pdf-frame {
    width: 100%;
    height: 420px;
    border: 0;
    display: block;
}

@media (max-width: 768px) {
    .terms-pdf-frame {
        height: 320px;
    }

    .step-actions {
        flex-direction: column;
    }

        .step-actions .btn {
            width: 100%;
        }
}

.hero-carousel-wrap {
    margin-top: 0;
}

#realEstateHeroCarousel {
    width: 100%;
}

.hero-slide {
    position: relative;
    min-height: 620px;
    background-size: cover;
    background-position: center center;
    display: flex;
    align-items: center;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(17,24,39,.72) 0%, rgba(17,24,39,.40) 55%, rgba(17,24,39,.18) 100%);
}

.hero-content {
    position: relative;
    z-index: 2;
    color: #fff;
    padding-top: 80px;
    padding-bottom: 80px;
}

.hero-kicker {
    display: inline-block;
    margin-bottom: 14px;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.82);
}

.hero-content h1 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 800;
    line-height: 1.05;
    max-width: 760px;
    margin-bottom: 1rem;
    color: #fff;
}

.hero-content p {
    font-size: 1.08rem;
    max-width: 700px;
    color: rgba(255,255,255,.92);
    margin-bottom: 1.5rem;
}

.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

#realEstateHeroCarousel .carousel-control-prev,
#realEstateHeroCarousel .carousel-control-next {
    width: 5%;
}

#realEstateHeroCarousel .carousel-indicators {
    margin-bottom: 1.5rem;
}

.section-kicker {
    display: inline-block;
    margin-bottom: .75rem;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6b7280;
}

.section-title {
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    font-weight: 800;
    color: #111827;
    letter-spacing: -0.02em;
}

.section-text {
    font-size: 1rem;
    color: #6b7280;
    max-width: 760px;
}

.service-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.service-card-image {
    width: 100%;
    height: 190px;
    object-fit: cover;
    display: block;
}

.service-card-body {
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.service-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: .6rem;
}

.service-card-text {
    color: #6b7280;
    line-height: 1.55;
    margin-bottom: 1rem;
    min-height: 74px;
}

.service-card-link {
    margin-top: auto;
    font-weight: 700;
    color: #111827;
    text-decoration: none;
}

    .service-card-link:hover {
        text-decoration: underline;
    }

.cta-panel {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

@media (max-width: 991.98px) {
    .hero-slide {
        min-height: 540px;
    }
}

@media (max-width: 767.98px) {
    .hero-slide {
        min-height: 480px;
    }

    .hero-content {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .service-card-text {
        min-height: auto;
    }
}
.pac-container {
    z-index: 99999 !important;
}

.stepper-progress {
    width: 100%;
    max-width: 400px; /* controls how wide it looks */
    height: 6px;
    background: #e5e5e5;
    border-radius: 10px;
    position: relative;
}

.stepper-progress-bar {
    height: 100%;
    width: 0%;
    background: #000; /* or your brand colour */
    border-radius: 10px;
    transition: width 0.3s ease;
}
.stepper-steps {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-top: 10px;
}

.password-strength-wrap {
    width: 100%;
}

.password-strength-bar {
    width: 100%;
    height: 8px;
    background: #e5e5e5;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 6px;
}

.password-strength-fill {
    height: 100%;
    width: 0;
    transition: width 0.25s ease;
    border-radius: 999px;
    background: #d1d5db;
}

    .password-strength-fill.weak {
        background: #dc3545;
    }

    .password-strength-fill.medium {
        background: #fd7e14;
    }

    .password-strength-fill.strong {
        background: #198754;
    }

.password-rules {
    padding-left: 18px;
    font-size: 0.9rem;
}

    .password-rules li.valid {
        color: #198754;
    }

    .password-rules li.invalid {
        color: #dc3545;
    }
.password-input-wrap {
    position: relative;
}

.password-input {
    padding-right: 45px; /* space for icon */
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    cursor: pointer;
    color: #6c757d;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
}

    .password-toggle:hover {
        color: #000;
    }