:root{
    --primary-hue:22;
    --primary-color:#E05F2C;
    --primary-color-rgb:224,95,44;
    --primary-dark:#C44E1F;
    --primary-light:rgba(224, 95, 44, 0.1);
    --bg-body:#FAFAF8;
    --bg-glass:rgba(255, 255, 255, 0.72);
    --bg-surface:#ffffff;
    --bg-glass-heavy:rgba(255, 255, 255, 0.92);
    --bg-glass-light:rgba(255, 255, 255, 0.48);
    --text-dark:#1C1917;
    --text-muted:#78716C;
    --border-color:rgba(28, 25, 23, 0.08);
    --card-radius:14px;
    --shadow-subtle:0 4px 20px rgba(28, 25, 23, 0.08);
    --shadow-deep:0 12px 40px rgba(28, 25, 23, 0.14);
    --font-main:'Plus Jakarta Sans', sans-serif;
    --font-heading:'DM Serif Display', Georgia, serif;
    --color-primary:var(--primary-color);
    --color-primary-rgb:var(--primary-color-rgb);
    --color-primary-dark:var(--primary-dark);
    --color-primary-soft:var(--primary-light);
    --color-bg:var(--bg-body);
    --color-surface:var(--bg-surface);
    --color-surface-glass:var(--bg-glass);
    --color-text:var(--text-dark);
    --color-text-muted:var(--text-muted);
    --color-border:var(--border-color);
    --radius-card:var(--card-radius);
    --radius-pill:999px;
    --shadow-card:var(--shadow-subtle);
    --frontend-shell-max:1320px;
    --frontend-shell-gutter:clamp(1rem, 2.5vw, 1.5rem);
    --frontend-shell-pad-y:clamp(1rem, 3vw, 2.5rem);
    --frontend-header-offset:76px
}
.frontend-main{
    flex:1;
    width:100%
}
.main-content-container{
    width:100%
}
.frontend-shell__inner{
    width:min(100%, var(--frontend-shell-max));
    margin:0 auto;
    padding:0 var(--frontend-shell-gutter)
}
.listing-page{
    width:100%;
    padding:var(--frontend-shell-pad-y) 0 calc(var(--frontend-shell-pad-y) + .5rem)
}
.listing-page .page-title-section{
    margin-bottom:1.5rem!important
}

/* ─── Listing page banner ─────────────────────────────────────────────── */
.listing-page-banner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    background: linear-gradient(135deg, rgba(var(--primary-color-rgb), .055) 0%, transparent 55%);
    border: 1.5px solid rgba(var(--primary-color-rgb), .12);
    border-radius: 20px;
    padding: 1.5rem 2rem;
}
.listing-page-banner__icon-wrap {
    width: 52px; height: 52px;
    border-radius: 14px;
    background: rgba(var(--primary-color-rgb), .1);
    color: var(--primary-color);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem;
}
.listing-page-banner__title {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    color: var(--text-dark);
    line-height: 1.15;
    font-weight: 400;
}
.listing-page-banner__subtitle {
    font-size: .9rem;
    color: var(--text-muted);
}
.listing-page-banner__count {
    text-align: center;
    background: #fff;
    border: 1.5px solid rgba(var(--primary-color-rgb), .15);
    border-radius: 14px;
    padding: .75rem 1.25rem;
    min-width: 90px;
}
.listing-page-banner__count-num {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--primary-color);
    line-height: 1;
}
.listing-page-banner__count-label {
    font-size: .65rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-top: .25rem;
}
@media (max-width: 767.98px) {
    .listing-page-banner {
        padding: 1.25rem;
        gap: .875rem;
        border-radius: 14px;
    }
    .listing-page-banner__title { font-size: 1.25rem; }
    .listing-page-banner__icon-wrap { width: 44px; height: 44px; font-size: 1.2rem; border-radius: 10px; }
}

.listing-page .filter-offcanvas{
    border-radius:12px!important
}
.listing-layout{
    align-items:flex-start
}
.listing-results{
    min-width:0
}
.listing-toolbar .form-select{
    min-width:11rem
}
.listing-pagination{
    width:100%;
    margin-top:1.5rem
}
.listing-pagination .pagination{
    margin-bottom:0
}
.listing-page .glass-surface.border.bg-white{
    background:var(--bg-surface)!important
}
.page-shell{
    width:100%;
    padding:var(--frontend-shell-pad-y) 0 calc(var(--frontend-shell-pad-y) + .5rem)
}
.page-shell .page-title-section{
    margin-bottom:1.5rem!important
}
.frontend-shell__inner--narrow{
    width:min(100%, 960px)
}
.page-shell--narrow .stepper{
    max-width:750px;
    margin-left:auto;
    margin-right:auto
}
.page-shell--property-booking .frontend-shell__inner,
.page-shell--event-booking .frontend-shell__inner,
.page-shell--checkout .frontend-shell__inner,
.page-shell--cart .frontend-shell__inner,
.page-shell--checkout-success .frontend-shell__inner{
    width:min(100%, var(--frontend-shell-max))
}
.page-shell--property-booking .stepper,
.page-shell--event-booking .stepper,
.page-shell--checkout .stepper,
.page-shell--cart .stepper,
.page-shell--checkout-success .stepper{
    max-width:min(100%, 920px);
    margin-left:auto;
    margin-right:auto;
    list-style:none;
    padding-left:0
}
.booking-header__subtitle{
    max-width:600px
}

/* ── Booking page dark hero strip ──────────────────────────────────────────── */
.booking-hero{
    background:var(--text-dark,#1C1917);
    position:relative;
    overflow:hidden;
    /* Full viewport-width bleed — works regardless of container max-width */
    width:100vw;
    margin-left:calc(-50vw + 50%);
    /* Pull up to eliminate page-shell top padding gap */
    margin-top:calc(-1 * var(--frontend-shell-pad-y));
    padding:calc(var(--frontend-shell-pad-y) + 2rem) var(--frontend-shell-gutter) 2.5rem;
}
.booking-hero::before{
    content:'';
    position:absolute;
    inset:0;
    background-image:
        radial-gradient(ellipse 70% 70% at 85% 10%, rgba(var(--primary-color-rgb),.07) 0%, transparent 100%),
        radial-gradient(ellipse 50% 60% at 15% 85%, rgba(var(--primary-color-rgb),.04) 0%, transparent 100%);
    pointer-events:none;
}
.booking-hero__inner{
    max-width:960px;
    margin:0 auto;
    position:relative;
    z-index:1;
}
.booking-hero__nav-link{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    color:rgba(255,255,255,.5);
    font-size:.8125rem;
    font-weight:600;
    text-decoration:none;
    transition:color .15s;
}
.booking-hero__nav-link:hover{ color:#fff }
.booking-hero__preview-img{
    width:76px;
    height:76px;
    object-fit:cover;
    border-radius:.875rem;
    border:2px solid rgba(255,255,255,.12);
    flex-shrink:0;
    box-shadow:0 4px 20px rgba(0,0,0,.3);
}
.booking-hero__subtitle{
    color:rgba(255,255,255,.65);
    max-width:520px;
    margin-top:.5rem;
    font-size:.9375rem;
    line-height:1.6;
}
.booking-hero__confirm-icon{
    width:4.5rem;
    height:4.5rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.875rem;
    border:2px solid rgba(255,255,255,.15);
}
.booking-hero__confirm-icon--success{
    background:rgba(74,222,128,.12);
    color:#4ade80;
}
.booking-hero__confirm-icon--pending{
    background:rgba(251,191,36,.12);
    color:#fbbf24;
}
.booking-confirmation-ref{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    padding:.4375rem 1.125rem;
    border-radius:999px;
    color:rgba(255,255,255,.6);
    font-size:.875rem;
    font-weight:600;
}
.booking-confirmation-ref strong{ color:#fff;font-weight:800 }
.booking-receipt .receipt-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:.75rem;
}
.receipt-total{ margin-top:.25rem }
.booking-header__context{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    max-width:980px;
    margin-left:auto;
    margin-right:auto;
    padding:.9rem 1rem;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:1rem
}
.booking-header__property{
    display:flex;
    align-items:center;
    gap:.85rem;
    min-width:0
}
.booking-header__thumb{
    width:58px;
    height:58px;
    border-radius:.85rem;
    object-fit:cover;
    flex:0 0 58px;
    box-shadow:0 10px 22px rgba(15,23,42,.1)
}
.booking-header__property-copy{
    min-width:0;
    text-align:left
}
.booking-header__property-title{
    color:var(--text-dark);
    font-size:.98rem;
    font-weight:900;
    line-height:1.25;
    margin:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.booking-header__property-meta{
    color:var(--text-muted);
    font-size:.82rem;
    font-weight:700;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.booking-header__back{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.45rem;
    min-height:2.5rem;
    padding:.45rem .85rem;
    border:1px solid rgba(var(--primary-color-rgb), .16);
    border-radius:999px;
    background:rgba(var(--primary-color-rgb), .06);
    color:var(--primary-color);
    font-size:.82rem;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap
}
.booking-header__back:hover{
    background:rgba(var(--primary-color-rgb), .1);
    color:var(--primary-color)
}
.booking-header__back--inline{
    align-self:flex-start
}
.page-shell--property-booking .booking-layout,
.page-shell--event-booking .booking-layout,
.page-shell--checkout .booking-layout,
.page-shell--cart .booking-layout{
    align-items:flex-start
}
.page-shell--property-booking .booking-layout__main,
.page-shell--property-booking .booking-layout__aside,
.page-shell--event-booking .booking-layout__main,
.page-shell--event-booking .booking-layout__aside,
.page-shell--checkout .booking-layout__main,
.page-shell--checkout .booking-layout__aside,
.page-shell--cart .booking-layout__main,
.page-shell--cart .booking-layout__aside{
    min-width:0
}
.page-shell--property-booking .booking-addons-panel{
    overflow:visible
}
.page-shell--property-booking .addon-card{
    overflow:visible
}
.page-shell--property-booking .addon-card > .d-flex{
    gap:.75rem;
    align-items:flex-start
}
.page-shell--property-booking .addon-card .flex-grow-1{
    min-width:0;
    flex:1 1 12rem
}
.page-shell--property-booking .addon-card .addon-card__meta{
    max-width:none
}
.page-shell--property-booking .addon-card .addon-card__qty{
    flex-shrink:0;
    margin-left:auto
}
.booking-addon-icon{
    width:55px;
    height:55px;
    flex:0 0 55px
}
.booking-addon-popular{
    font-size:.6rem
}
.booking-addon-qty-value{
    min-width:30px;
    text-align:center
}
.booking-summary-thumb{
    width:58px;
    height:58px;
    object-fit:cover;
    flex:0 0 58px
}
.booking-addon-line-icon{
    font-size:.7rem
}
.page-shell--property-booking .sticky-sidebar,
.page-shell--event-booking .sticky-sidebar,
.page-shell--checkout .sticky-sidebar{
    top:calc(var(--frontend-header-offset) + 1rem)
}
.booking-payment-panel{
    padding:clamp(1.25rem, 3vw, 2rem);
    border-radius:1.5rem;
    overflow:hidden
}
.booking-payment-panel__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1.25rem
}
.booking-payment-panel__secure{
    display:flex;
    align-items:center;
    gap:.85rem;
    min-width:0
}
.booking-payment-panel__secure-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, rgba(var(--primary-color-rgb), .16), rgba(var(--primary-color-rgb), .06));
    color:var(--primary-color);
    font-size:1.25rem;
    flex-shrink:0
}
.booking-payment-panel__eyebrow{
    font-size:.65rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--text-muted)
}
.booking-payment-panel__title{
    font-size:clamp(1.15rem, 2vw, 1.35rem);
    font-weight:800;
    color:var(--text-dark)
}
.booking-payment-panel__brands{
    display:flex;
    align-items:center;
    gap:.45rem;
    flex-shrink:0
}
.booking-payment-brand{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:2.6rem;
    padding:.25rem .45rem;
    border-radius:.55rem;
    font-size:.58rem;
    font-weight:800;
    letter-spacing:.04em;
    border:1px solid rgba(15,23,42,.08);
    background:#fff;
    color:#64748b
}
.booking-payment-brand--visa{
    color:#1a1f71
}
.booking-payment-brand--mc{
    color:#eb001b
}
.booking-payment-brand--amex{
    color:#006fcf
}
.booking-payment-card-preview{
    position:relative;
    margin-bottom:1.5rem;
    padding:1.35rem 1.25rem 1.1rem;
    border-radius:1.15rem;
    color:#fff;
    background:linear-gradient(135deg, #C44E1F 0%, #E05F2C 50%, #F07848 100%);
    box-shadow:0 18px 40px rgba(224, 95, 44, .28);
    overflow:hidden
}
.booking-payment-card-preview::before{
    content:"";
    position:absolute;
    inset:auto -20% -45% auto;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(255,255,255,.12)
}
.booking-payment-card-preview__chip{
    width:38px;
    height:28px;
    border-radius:7px;
    margin-bottom:1.35rem;
    background:linear-gradient(135deg, #f6e05e, #d69e2e);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)
}
.booking-payment-card-preview__number{
    font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size:clamp(1rem, 2.4vw, 1.25rem);
    letter-spacing:.12em;
    margin-bottom:1.15rem;
    word-spacing:.2rem
}
.booking-payment-card-preview__footer{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:1rem
}
.booking-payment-card-preview__label{
    display:block;
    font-size:.58rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:.75;
    margin-bottom:.15rem
}
.booking-payment-card-preview__value{
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    max-width:12rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.booking-payment-form__demo{
    display:flex;
    align-items:flex-start;
    gap:.35rem;
    margin-bottom:1.25rem;
    padding:.85rem 1rem;
    border-radius:.95rem;
    background:rgba(var(--primary-color-rgb), .08);
    border:1px solid rgba(var(--primary-color-rgb), .14);
    color:#475569;
    font-size:.82rem;
    line-height:1.45
}
.booking-payment-form__demo code{
    padding:.08rem .35rem;
    border-radius:.4rem;
    background:#fff;
    color:var(--primary-color);
    font-size:.78rem;
    white-space:nowrap
}
.booking-payment-form__hint{
    margin-top:.4rem;
    font-size:.75rem;
    color:var(--text-muted)
}
.booking-payment-form__terms{
    display:flex;
    align-items:flex-start;
    gap:.85rem;
    padding:1rem 1.1rem;
    border-radius:1rem;
    background:rgba(var(--primary-color-rgb), .06);
    border:1px solid rgba(var(--primary-color-rgb), .14)
}
.booking-payment-form__terms .form-check-input{
    margin-top:.2rem;
    flex-shrink:0
}
.booking-payment-form__terms .form-check-label{
    font-size:.88rem;
    line-height:1.5;
    color:var(--text-dark);
    font-weight:600
}
.booking-payment-form__submit{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    flex-wrap:wrap
}
.booking-payment-form__submit-amount{
    padding:.15rem .65rem;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    font-size:.95rem
}
.booking-payment-form__submit.is-loading{
    opacity:.82;
    pointer-events:none
}
.booking-widget-trust{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.5rem
}
.booking-widget-trust span{
    display:flex;
    align-items:center;
    gap:.45rem;
    min-height:2.5rem;
    padding:.55rem .65rem;
    border:1px solid rgba(15,23,42,.08);
    border-radius:.85rem;
    background:rgba(248,250,252,.82);
    color:var(--text-muted);
    font-size:.72rem;
    font-weight:800;
    line-height:1.25
}
.booking-widget-trust i{
    flex-shrink:0
}
.booking-mobile-summary{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1030;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom));
    background:rgba(15,23,42,.94);
    color:#fff;
    box-shadow:0 -18px 45px rgba(15,23,42,.22);
    backdrop-filter:blur(14px)
}
.booking-mobile-summary__label{
    display:block;
    color:rgba(255,255,255,.65);
    font-size:.64rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase
}
.booking-mobile-summary strong{
    display:block;
    font-size:1.08rem;
    line-height:1.2
}
.booking-confirmation-status-icon{
    font-size:5rem;
    filter:drop-shadow(0 10px 15px rgba(0,0,0,.05))
}
.checkout-success-hero{
    position:relative;
    border-radius:1.5rem
}
.checkout-success-hero__glow{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.55
}
.checkout-success-hero__glow--success{
    background:radial-gradient(circle at 50% 0%,hsla(var(--primary-hue),75%,60%,.18) 0%,transparent 58%)
}
.checkout-success-hero__glow--pending{
    background:radial-gradient(circle at 50% 0%,rgba(245,158,11,.18) 0%,transparent 58%)
}
.checkout-success-hero__content{
    position:relative;
    z-index:1
}
.checkout-success-hero__message{
    max-width:42rem
}
.checkout-success-hero__icon-wrap{
    width:5.5rem;
    height:5.5rem;
    margin-inline:auto;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2.35rem;
    box-shadow:0 18px 40px rgba(0,0,0,.08)
}
.checkout-success-hero__icon-wrap--success{
    background:linear-gradient(135deg,hsla(var(--primary-hue),75%,60%,.15),#fff);
    color:var(--primary-color)
}
.checkout-success-hero__icon-wrap--pending{
    background:linear-gradient(135deg,rgba(245,158,11,.15),#fff);
    color:#d97706
}
.booking-help-avatar{
    width:48px;
    height:48px;
    border:2px solid #fff
}
.visit-confirmation-status-icon{
    font-size:5rem;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,.1))
}
.visit-notes-value{
    max-width:60%;
    line-height:1.4
}
.visit-agent-avatar{
    width:45px;
    height:45px
}
.booking-payment-trust{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:.75rem;
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid rgba(15,23,42,.08)
}
.booking-payment-trust li{
    font-size:.72rem;
    line-height:1.35;
    color:var(--text-muted);
    font-weight:600;
    text-align:center
}
.booking-payment-trust i{
    display:block;
    font-size:1rem;
    margin-bottom:.35rem
}
.booking-payment-form .input-group.unified-input.is-invalid,
.booking-payment-form__terms.is-invalid{
    border-color:#dc3545!important;
    box-shadow:0 0 0 3px rgba(220,53,69,.12)!important
}
@media (max-width:991.98px){
    .booking-header__context{
        align-items:flex-start
    }
    .page-shell--property-booking .addon-card > .d-flex{
        flex-wrap:wrap
    }
    .page-shell--property-booking .addon-card .addon-card__qty{
        margin-left:0;
        width:100%;
        justify-content:flex-end
    }
    .booking-payment-panel__header{
        flex-direction:column
    }
    .booking-payment-panel__brands{
        width:100%;
        justify-content:flex-start
    }
    .booking-payment-trust{
        grid-template-columns:1fr
    }
    .booking-payment-trust li{
        display:flex;
        align-items:center;
        gap:.55rem;
        text-align:left
    }
    .booking-payment-trust i{
        display:inline;
        margin-bottom:0
    }
    .page-shell--property-booking{
        padding-bottom:6rem
    }
}

body,h3,h4,h5,h6{
    font-family:var(--font-main)
}
h1,h2{
    font-family:var(--font-heading);
    font-weight:400;
    letter-spacing:-0.02em
}
.card,.glass-surface,.navbar{
    box-shadow:var(--shadow-subtle)
}
body,html{
    max-width:100%
}
html{
    overflow-x:clip;
    overflow-y:auto;
    height:100%
}
body{
    overflow-x:clip;
    overflow-y:visible;
    background:var(--bg-body);
    color:var(--text-dark);
    line-height:1.6;
    min-height:100%;
    display:flex;
    flex-direction:column
}
.has-body-glow,.listing-description-container,body,html{
    position:relative
}
.collapsing,.glass-surface,.listing-card,.listing-card-img,.property-title{
    overflow:hidden
}
.addon-card,.cursor-pointer,.pointer-cursor,.speaker-card,.thumbnail-img{
    cursor:pointer
}
.navbar-actions-group{
    max-width:100%
}
h1,h2,h3,h4,h5,h6{
    font-weight:700;
    word-wrap:break-word
}
a{
    color:var(--primary-color);
    text-decoration:none;
    transition:color .2s
}
a:hover{
    color:var(--primary-dark)
}
.backdrop-blur{
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px)
}
.line-height-1{
    line-height:1.1
}
.avatar-img{
    height:32px;
    width:32px;
    object-fit:cover
}
hr{
    border-top:1px solid var(--border-color);
    opacity:.2
}
hr.my-5{
    height:1px;
    background:linear-gradient(to right,transparent,var(--border-color),transparent);
    border:none;
    opacity:1
}
.card,.glass-surface{
    background-color:var(--bg-glass);
    border:1px solid var(--border-color);
    border-radius:var(--card-radius);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    transition:.3s cubic-bezier(.25, .46, .45, .94)
}
.glass-surface:hover{
    box-shadow:var(--shadow-deep)
}
.glass-surface{
    border-radius:var(--card-radius,20px);
    background:rgba(255,255,255,.75)!important;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border:1px solid var(--border-color);
    background-color:var(--bg-glass-heavy)
}
.has-body-glow::after,.has-body-glow::before{
    border-radius:50%;
    z-index:-1;
    position:fixed;
    content:"";
    pointer-events:none
}
.bg-primary{
    background-color:var(--primary-color)!important
}
.bg-primary-light{
    background-color:rgba(var(--primary-color-rgb),.08)
}
.bg-primary-theme{
    background-color:var(--primary-color)!important;
    color:#fff!important
}
#mainNav .nav-link.active,#userTab .nav-link.active,.hover-primary:hover,.navbar-brand,.text-primary,.text-primary-color{
    color:var(--primary-color)!important
}
.bg-dark-glass{
    background-color:rgba(0,0,0,.5)
}
.bg-glass-surface-dark{
    background-color:rgba(33,37,41,.95);
    backdrop-filter:blur(5px)
}
.bg-light-primary{
    background-color:color-mix(in srgb,var(--primary-color) 10%,transparent)
}
.has-body-glow::before{
    top:-150px;
    left:-150px;
    width:700px;
    height:700px;
    background:radial-gradient(circle,rgba(var(--primary-color-rgb),.22) 0%,transparent 70%);
    opacity:.85;
    filter:blur(120px);
    animation:10s ease-in-out infinite pulseGlow
}
.has-body-glow::after{
    bottom:-80px;
    right:-80px;
    width:520px;
    height:520px;
    background:radial-gradient(circle,rgba(var(--primary-color-rgb),.14) 0%,transparent 72%);
    opacity:.75;
    filter:blur(110px)
}
@keyframes pulseGlow{
    0%,100%{
        opacity:.4;
        transform:scale(1)
    }
    50%{
        opacity:.6;
        transform:scale(1.05)
    }
}
.navbar{
    border-bottom:1px solid var(--border-color);
    background-color:var(--bg-surface)
}
.navbar-brand img{
    max-height:40px;
    width:auto;
    object-fit:contain
}
.transition-all{
    transition:.2s ease-in-out
}
#mainNav .nav-link{
    position:relative;
    padding:.5rem .75rem
}
#mainNav .btn.rounded-pill{
    white-space:nowrap;
    font-size:.85rem
}
footer{
    background-color:var(--text-dark);
    color:rgba(255,255,255,.8);
    padding:0 0 1.5rem
}
.footer-logo{
    color:#fff;
    font-weight:800;
    font-size:1.25rem
}
.footer-link,.social-icon{
    color:rgba(255,255,255,.6);
    transition:color .2s
}
.footer-link{
    display:block;
    margin-bottom:.5rem
}
.footer-link:hover{
    color:var(--primary-color);
    text-decoration:underline
}
.social-icon{
    font-size:1.25rem;
    margin-right:15px
}
.filter-heading,.social-icon:hover{
    color:var(--primary-color)
}
.glass-hero-panel{
    background-color:var(--bg-glass-light);
    border:1px solid rgba(255,255,255,.7);
    box-shadow:0 20px 50px rgba(0,0,0,.03);
    border-radius:30px;
    backdrop-filter:blur(20px);
    padding:4.5rem 2.5rem 2.75rem;
    margin-bottom:4rem;
    width:100%;
    max-width:min(100%, 920px);
    margin-left:auto;
    margin-right:auto;
    text-align:center;
    background:rgba(255,255,255,.5);
    -webkit-backdrop-filter:blur(20px);
    position:relative;
    z-index:2
}
.hero-search-stack .tab-content>.tab-pane:not(.active){
    display:none
}
.hero-search-stack .tab-content>.tab-pane.active{
    display:block
}
.hero-search-stack{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%
}
.hero-search-tabs-wrap{
    position:relative;
    z-index:3;
    width:100%;
    margin-bottom:-2.25rem;
    padding:0 1rem;
    pointer-events:none
}
.hero-search-tabs-wrap .hero-search-tabs,
.hero-search-tabs-wrap .nav-link,
.hero-search-tabs-wrap .pill-group{
    pointer-events:auto
}
.hero-search-tabs{
    position:static;
    bottom:auto;
    margin:0;
    z-index:3
}
.hero-search-tabs .nav-link{
    cursor:pointer;
    pointer-events:auto;
    border:0
}
.hero-search-max{
    max-width:920px
}
.hero-text-max{
    max-width:760px
}
.hero-section .pill-group{
    display:flex;
    width:78px;
    align-items:center;
    flex-direction:column;
    gap:.5rem
}
.hero-section .label-text{
    max-width:78px;
    color:var(--text-muted);
    font-size:.72rem;
    font-weight:800;
    line-height:1.15;
    text-align:center;
    text-transform:uppercase;
    pointer-events:none;
    overflow-wrap:anywhere
}
.market-module-card,.taxonomy-chip{
    border-radius:12px;
    min-height:100%;
    box-shadow:0 8px 22px rgba(15,23,42,.06)
}
.market-module-card:hover,.taxonomy-chip:hover{
    transform:translateY(-3px);
    border-color:rgba(var(--primary-color-rgb),.28)
}
.market-module-icon{
    width:48px;
    height:48px;
    border-radius:12px;
    background:rgba(var(--primary-color-rgb),.1);
    color:var(--primary-color);
    font-size:1.35rem
}
.taxonomy-icon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:10px;
    background:#eef6f3;
    color:#0f766e
}
.location-pill{
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    color:var(--text-dark);
    box-shadow:0 6px 16px rgba(15,23,42,.05)
}
.location-pill:hover{
    background:#111827;
    border-color:#111827;
    color:#fff
}
.home-empty-state{
    border-radius:12px;
    background:rgba(255,255,255,.82)!important
}
.home-empty-state p{
    max-width:560px
}
.home-empty-icon{
    width:54px;
    height:54px;
    border-radius:14px;
    background:#fff4df;
    color:#b45309;
    font-size:1.45rem
}
.filter-sidebar{
    background-color:rgba(255, 255, 255, 0.8);
    box-shadow:var(--shadow-subtle);
    border:1px solid var(--border-color);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-radius:var(--card-radius);
    padding:20px;
    position:sticky;
    top:5.5rem;
    z-index: 10;
}
.filter-heading{
    font-weight:700;
    text-transform:uppercase;
    font-size:.875rem;
    color: var(--primary-color);
}
/* ── Listing Empty State ─────────────────────────────────────────────── */
.les-col-full {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
}
.les-card {
    background: #fff;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: var(--radius-card, 1rem);
    overflow: hidden;
    box-shadow: var(--shadow-card, 0 2px 12px rgba(0,0,0,.06));
}

/* Hero row — icon left, copy+actions right */
.les-hero {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    padding: 2.5rem 2.5rem 2rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.les-icon-circle {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(var(--bs-primary-rgb),.08), rgba(var(--bs-primary-rgb),.2));
    border: 1.5px solid rgba(var(--bs-primary-rgb),.14);
}
.les-icon-circle .bi {
    font-size: 2rem;
    color: var(--color-primary, #6c63ff);
}
.les-hero-text { flex: 1; min-width: 0; }
.les-title {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: .35rem;
}
.les-description {
    color: var(--text-muted);
    font-size: .9rem;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}
.les-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

/* Bottom two-column panels */
.les-bottom {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}
.les-panel {
    padding: 1.5rem 2rem;
    border-right: 1px solid var(--border-light, #e9ecef);
}
.les-panel:last-child { border-right: none; }
.les-panel-label {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--text-muted);
    margin-bottom: .75rem;
    display: flex;
    align-items: center;
}
.les-tips-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.les-tips-list li {
    font-size: .875rem;
    color: var(--text-dark);
    padding-left: 1.25rem;
    position: relative;
}
.les-tips-list li::before {
    content: '›';
    position: absolute;
    left: 0;
    color: var(--color-primary, #6c63ff);
    font-weight: 700;
}

/* Recent search chips */
.les-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .75rem;
}
.les-recent-chip {
    display: inline-block;
    padding: .3rem .85rem;
    background: var(--surface-alt, #f8f9fa);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 2rem;
    font-size: .82rem;
    color: var(--text-dark);
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.les-recent-chip:hover {
    background: rgba(var(--bs-primary-rgb), .08);
    border-color: rgba(var(--bs-primary-rgb), .3);
    color: var(--color-primary, #6c63ff);
}
.les-clear-btn {
    background: none;
    border: none;
    padding: 0;
    font-size: .78rem;
    color: var(--text-muted);
    cursor: pointer;
    text-decoration: underline;
}
.les-clear-btn:hover { color: var(--text-dark); }

/* Quick-link category chips */
.les-quick-chip {
    display: inline-block;
    padding: .3rem .85rem;
    background: rgba(var(--bs-primary-rgb), .06);
    border: 1px solid rgba(var(--bs-primary-rgb), .18);
    border-radius: 2rem;
    font-size: .82rem;
    color: var(--color-primary, #6c63ff);
    text-decoration: none;
    transition: background .15s;
}
.les-quick-chip:hover { background: rgba(var(--bs-primary-rgb), .14); }

/* AI nudge banner */
.les-ai-nudge {
    padding: 1rem 2rem;
    background: linear-gradient(90deg, rgba(var(--bs-primary-rgb),.05), transparent);
    border-top: 1px solid var(--border-light, #e9ecef);
    font-size: .85rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: .25rem;
}
.les-ai-link {
    color: var(--color-primary, #6c63ff);
    font-weight: 600;
    text-decoration: none;
}
.les-ai-link:hover { text-decoration: underline; }

/* Mobile: stack panels */
@media (max-width: 767px) {
    .les-hero { flex-direction: column; gap: 1rem; padding: 1.75rem 1.25rem 1.5rem; }
    .les-bottom { grid-template-columns: 1fr; }
    .les-panel { border-right: none; border-bottom: 1px solid var(--border-light, #e9ecef); padding: 1.25rem; }
    .les-panel:last-child { border-bottom: none; }
    .les-ai-nudge { padding: 1rem 1.25rem; }
}

.sidebar-keyword-group {
    display: flex;
    align-items: center;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    background: #fff;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
.sidebar-keyword-group:focus-within {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.2rem rgba(13,110,253,.2);
}
.sidebar-keyword-icon {
    padding: 0 0.5rem 0 0.65rem;
    display: flex;
    align-items: center;
    color: #6c757d;
    font-size: .85rem;
    pointer-events: none;
}
.sidebar-keyword-input {
    flex: 1;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent;
    padding: 0.35rem 0.5rem 0.35rem 0;
    font-size: .875rem;
    color: inherit;
    min-width: 0;
    appearance: none;
    -webkit-appearance: none;
}
.sidebar-keyword-input:focus { outline: none !important; box-shadow: none !important; border: none !important; }
.sidebar-keyword-input::placeholder { color: #adb5bd; }

.filter-label, .metric-label{
    display:block;
    font-size:.65rem;
    font-weight:700;
    text-transform:uppercase;
    color:var(--text-muted);
    letter-spacing: 0.5px;
    cursor:pointer;
}
.metric-value {
    color: var(--text-dark);
    font-size: clamp(.8rem, 1.5vw, 1.1rem);
}
.btn-filter-tab{
    font-size:.875rem;
    padding:.5rem;
    font-weight:700;
    border-radius:.5rem!important;
    border:0
}
.custom-range::-webkit-slider-runnable-track{
    background:#e9ecef;
    height:6px;
    border-radius:5px
}
.custom-range::-webkit-slider-thumb{
    margin-top:-6px;
    height:18px;
    width:18px;
    background:var(--primary-color);
    border:3px solid #fff;
    border-radius:50%;
    box-shadow:0 2px 4px rgba(0,0,0,.1);
    cursor:pointer;
    -webkit-appearance:none
}
.filter-input,.form-control,.form-select,.input-group.unified-input{
    background-color:var(--bg-surface)!important;
    border:1.5px solid rgba(0,0,0,.1)!important;
    border-radius:12px!important;
    transition:.2s cubic-bezier(.4, 0, .2, 1)!important;
    padding:.6rem 1rem;
    box-shadow:none!important
}
.input-group.unified-input{
    padding:0 .5rem;
    display:flex;
    align-items:center;
    overflow:hidden
}
.input-group.unified-input .form-control{
    border:none!important;
    background:0 0!important;
    padding:.75rem .5rem;
    box-shadow:none!important
}
.input-group.unified-input .input-group-text{
    border:none!important;
    background:0 0!important;
    color:var(--primary-color);
    padding-right:0;
    font-size:1.1rem
}
#userTab .nav-link.active,.filter-input:focus{
    background-color:#fff!important
}
.filter-input:hover,.form-control:hover,.form-select:hover,.input-group.unified-input:hover{
    border-color:var(--primary-color)!important;
    background-color:#fff!important
}
.filter-input:focus,.form-control:focus,.form-select:focus,.input-group.unified-input:focus-within{
    outline:0!important;
    border-color:var(--primary-color)!important;
    background-color:#fff!important;
    box-shadow:0 0 0 4px var(--primary-light)!important
}
/* ── Flash toast notifications ─────────────────────────────────────────────── */
.frontend-toast-stack{
    position:fixed;
    top:calc(var(--frontend-header-offset,76px) + 1rem);
    right:1.5rem;
    z-index:1055;
    display:flex;
    flex-direction:column;
    gap:.75rem;
    width:min(380px,calc(100vw - 3rem));
    pointer-events:none
}
.frontend-toast-stack .frontend-alert{
    pointer-events:all;
    animation:toast-in .3s cubic-bezier(.16,1,.3,1) both
}
@keyframes toast-in{
    from{opacity:0;transform:translateX(calc(100% + 1.5rem))}
    to{opacity:1;transform:translateX(0)}
}
.frontend-alert{
    display:flex;
    align-items:flex-start;
    gap:.85rem;
    padding:1rem 1.1rem;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-left:4px solid var(--primary-color);
    border-radius:1rem;
    box-shadow:0 4px 24px rgba(15,23,42,.14);
    transition:opacity .25s ease,transform .25s ease
}
.frontend-alert.is-dismissing{
    opacity:0;
    transform:translateX(calc(100% + 1.5rem))
}
.frontend-alert__icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.35rem;
    height:2.35rem;
    border-radius:.8rem;
    background:var(--primary-light);
    color:var(--primary-color);
    flex:0 0 2.35rem;
    font-size:1.1rem
}
.frontend-alert__body{
    min-width:0;
    text-align:left
}
.frontend-alert__title{
    color:var(--text-dark);
    font-size:.82rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase
}
.frontend-alert__message,
.frontend-alert__list{
    color:var(--text-muted);
    font-size:.9rem;
    line-height:1.45
}
.frontend-alert__list{
    padding-left:1.1rem
}
.frontend-alert--success{
    border-left-color:#198754
}
.frontend-alert--success .frontend-alert__icon{
    background:rgba(25,135,84,.1);
    color:#198754
}
.frontend-alert--warning{
    border-left-color:#f59e0b
}
.frontend-alert--warning .frontend-alert__icon{
    background:rgba(245,158,11,.12);
    color:#b45309
}
.frontend-alert--danger{
    border-left-color:#dc3545
}
.frontend-alert--danger .frontend-alert__icon{
    background:rgba(220,53,69,.1);
    color:#dc3545
}
.frontend-alert__close{
    background:none;
    border:none;
    padding:.25rem;
    margin-left:auto;
    color:rgba(15,23,42,.3);
    cursor:pointer;
    line-height:1;
    flex-shrink:0;
    align-self:flex-start;
    border-radius:4px;
    font-size:.7rem;
    transition:color .15s
}
.frontend-alert__close:hover{color:var(--text-dark,#1C1917)}
.input-group.unified-input:has(.is-invalid){
    border-color:#dc3545!important;
    box-shadow:0 0 0 3px rgba(220,53,69,.12)!important
}
.filter-input{
    font-size:.875rem;
    background-color:var(--primary-light)!important;
    border-color:transparent!important
}
.active-filter-bar{
    padding:.85rem 1rem;
    border:1px solid rgba(15,23,42,.08);
    border-radius:1rem;
    background:rgba(255,255,255,.78);
    box-shadow:0 12px 30px rgba(15,23,42,.05)
}
.active-filter-bar__label{
    color:var(--text-muted);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase
}
.active-filter-chip{
    display:inline-flex;
    align-items:center;
    min-height:2rem;
    padding:.35rem .75rem;
    border-radius:999px;
    background:var(--primary-light);
    color:var(--primary-color);
    font-size:.78rem;
    font-weight:800
}
.active-filter-clear{
    color:var(--text-muted);
    font-size:.78rem;
    font-weight:800;
    text-decoration:none
}
.active-filter-clear:hover{
    color:var(--primary-color)
}
.filter-helper{
    color:var(--text-muted);
    font-size:.76rem;
    line-height:1.45
}
.property-filter-tabs .btn-filter-tab{
    min-height:2.35rem;
    font-weight:800
}
.filter-actions{
    margin-top:1.5rem
}
.listing-card{
    padding:0;
    transition:transform .2s ease,box-shadow .2s ease
}
.listing-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-deep)
}
.listing-card-img{
    height:240px;
    width:100%
}
.listing-card-img img{
    width:100%;
    height:100%;
    object-fit:cover
}
.transition-img{
    transition:transform .6s cubic-bezier(.165, .84, .44, 1)
}
.listing-card:hover .transition-img,.star-rating label:hover,.star-rating label:hover~label{
    transform:scale(1.1)
}
.property-listing-card{
    overflow:hidden
}
.property-listing-card__media{
    aspect-ratio:4/3;
    background:var(--primary-light)
}
.property-listing-card__body{
    min-width:0
}
.property-listing-card__metrics .metric-label{
    line-height:1.2
}
.property-listing-card__metrics .metric-value{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.sticky-booking-bar{
    box-shadow:0 -16px 40px rgba(15,23,42,.18)
}
.sticky-booking-bar__summary{
    flex:1 1 auto
}
.host-profile-avatar{
    width:80px;
    height:80px;
    object-fit:cover
}
.agent-profile-avatar{
    width:90px;
    height:90px;
    object-fit:cover
}
.related-property-img{
    height:200px;
    object-fit:cover
}
.property-map-frame{
    max-height:400px;
    border-radius:var(--bs-card-border-radius);
    overflow:hidden
}
.property-map-frame__embed{
    border:0;
    border-radius:var(--bs-card-border-radius)
}
.property-disclosure{
    background:#fff9e6
}
.property-disclosure__copy{
    font-size:.8rem;
    line-height:1.4
}
.livability-score-summary{
    background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%)
}
.livability-score-ring{
    width:80px;
    height:80px;
    border:4px solid rgba(255,255,255,.3)
}
.livability-score-value{
    font-size:1.6rem
}
.livability-score-scale{
    font-size:.6rem;
    margin-top:-2px
}
.score-card{
    background:var(--bg-glass-light);
    border:1px solid var(--border-color)!important
}
.score-card__ring{
    width:55px;
    height:55px;
    border-radius:50%;
    border:2px solid var(--primary-light);
    background:#fff;
    box-shadow:0 4px 12px var(--score-glow, rgba(111,66,193,.1))
}
.score-card__value{
    font-size:1.1rem
}
.score-card__scale{
    font-size:.55rem;
    margin-top:-2px
}
.score-card__title{
    font-size:.6rem
}
.score-card__badge{
    font-size:.55rem
}
.property-scores-panel--expanded .livability-score-ring{
    width:110px;
    height:110px
}
.property-scores-panel--expanded .livability-score-value{
    font-size:2.25rem
}
.property-scores-panel--expanded .livability-score-scale{
    font-size:.75rem
}
.property-scores-panel--expanded .score-card__ring{
    width:72px;
    height:72px
}
.property-scores-panel--expanded .score-card__value{
    font-size:1.35rem
}
.property-scores-panel--expanded .score-card__scale{
    font-size:.7rem
}
.property-scores-panel--expanded .score-card__title{
    font-size:.72rem
}
.property-scores-panel--expanded .score-card__badge{
    font-size:.65rem
}
.property-scores-panel--expanded .score-card{
    padding:1rem!important
}
.property-document-icon{
    background:#e7f3ff;
    color:#007bff
}
.asset-btn--disabled{
    cursor:not-allowed;
    opacity:.72
}
.amenity-icon-sm{
    width:35px;
    height:35px;
    min-width:35px
}
.review-avatar{
    width:40px;
    height:40px
}
.rule-card--warning{
    border-color:var(--primary-color)!important
}
.property-status-badge{
    margin:.75rem;
    padding:.5rem 1rem;
    font-size:clamp(.6rem, 1vw, .8rem)
}
.price-overlay{
    padding:.5rem 1rem
}
.price-text-sm{
    font-size:clamp(.75rem, 1.2vw, 1.1rem)
}
.property-title{
    font-size:clamp(.9rem, 1.3vw, 1.25rem);
    color:var(--text-dark);
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    min-height:3rem
}
.property-location{
    font-size:clamp(.75rem, 1vw, .9rem)
}
.col .card{
    height:100%;
    display:flex;
    flex-direction:column
}
.card-img-top{
    aspect-ratio:4/3;
    object-fit:cover
}
.price-font{
    font-size:clamp(.8rem, 2vw, 1.15rem)
}
.metric-label{
    display:block;
    color:var(--text-muted);
    font-weight:700;
    font-size:.55rem;
    letter-spacing:.5px;
    margin-bottom:2px
}
.metric-value{
    font-size:clamp(.7rem, 1.5vw, 1rem);
    color:var(--text-dark)
}
.auto-badge{
    font-size:clamp(.6rem, 1vw, .75rem)!important
}
.stepper{
    display:flex;
    justify-content:space-between;
    position:relative;
    padding:20px 0;
    list-style:none;
    padding-left:0
}
.stepper::before{
    content:"";
    position:absolute;
    top:35px;
    left:10%;
    right:10%;
    height:2px;
    background:var(--border-color);
    z-index:0
}
.step{
    display:flex;
    flex-direction:column;
    align-items:center;
    flex:1;
    text-align:center;
    z-index:1
}
.step-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    line-height:32px;
    border-radius:50%;
    background-color:var(--primary-light);
    color:var(--text-muted);
    font-weight:700;
    margin-bottom:8px
}
.step.active .step-icon{
    background-color:var(--primary-color);
    color:#fff;
    box-shadow:0 0 0 4px var(--primary-light)
}
.step.done .step-icon{
    background-color:var(--primary-color);
    color:#fff
}
.stepper-label-done,.stepper-label-active{
    color:var(--primary-color)
}
.price-text-large{
    font-size:2.5rem;
    font-weight:800;
    color:var(--primary-color)
}
.card-details-section{
    background-color:var(--bg-glass-light);
    border-top:1px solid var(--border-color)
}
.addon-card{
    background:rgba(255,255,255,.5);
    border:1.5px solid var(--border-color);
    border-radius:1.25rem;
    transition:.3s cubic-bezier(.4, 0, .2, 1);
    overflow:visible!important
}
.addon-card:hover{
    background:rgba(255,255,255,.8);
    border-color:var(--primary-color);
    transform:translateY(-2px)
}
.hover-up:hover,.score-card:hover{
    transform:translateY(-3px)
}
.addon-selected{
    background:#fff!important;
    border-color:var(--primary-color)!important;
    box-shadow:0 10px 30px hsla(var(--primary-hue),75%,60%,.1)!important
}
.addon-selected .addon-icon-box{
    border:1px solid var(--primary-color);
    transition:.3s
}
.addon-check-badge{
    position:absolute;
    top:50%;
    left:0;
    transform:translate(-50%,-50%);
    background-color:var(--primary-color)!important;
    color:#fff;
    width:22px;
    height:22px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.15);
    z-index:10;
    border:2px solid #fff
}
.addon-check-badge i{
    font-size:.75rem;
    -webkit-text-stroke:0.5px
}
.badge.rounded-circle{
    display:flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px
}
.page-wrapper{
    padding-top:50px;
    width:100%;
    overflow-x:hidden;
    position:relative;
    transition:padding .3s
}
.listing-header-carousel{
    border-radius:var(--card-radius) var(--card-radius) 0 0;
    overflow:hidden;
    position:relative
}
.listing-header-img{
    height:500px;
    object-fit:cover;
    width:100%;
    transition:transform .8s
}
.carousel-item:hover .listing-header-img{
    transform:scale(1.03)
}
.sticky-sidebar{
    position:sticky;
    top:calc(var(--frontend-header-offset, 60px) + 1rem);
    z-index:10
}
.detail-metric-card{
    padding:1rem 1.1rem;
    border:1.5px solid rgba(15,23,42,.08);
    border-radius:1rem;
    background:rgba(248,246,243,.8);
    box-shadow:0 4px 16px rgba(15,23,42,.04)
}
.product-detail-header__price .price-text-large{
    line-height:1.1
}
.product-purchase-quote{
    backdrop-filter:blur(8px)
}
.product-gallery__main{
    aspect-ratio:1/1;
    cursor:zoom-in
}
.product-gallery__thumb{
    width:80px;
    height:80px;
    flex:0 0 80px
}
.product-gallery__thumbs{
    scrollbar-width:thin
}
.product-gallery__thumbs::-webkit-scrollbar{
    height:4px
}
.product-gallery__thumbs::-webkit-scrollbar-thumb{
    background:#cbd5e0;
    border-radius:10px
}
.product-gallery__thumb-img.active{
    opacity:1!important;
    transform:scale(.95);
    border-color:var(--primary-color)!important
}
.product-gallery__thumb-img:hover{
    opacity:1;
    border-color:var(--primary-color)
}
.event-date-options{
    max-height:250px;
    overflow-y:auto;
    border-bottom:1px solid rgba(15,23,42,.08);
    padding-bottom:.75rem
}
.event-countdown-banner{
    background:rgba(var(--primary-color-rgb),.12);
    color:var(--text-dark);
    border:1.5px solid rgba(var(--primary-color-rgb),.2)
}
.feature-item{
    font-size:1.1rem;
    transition:transform .3s,background-color .3s
}
.feature-item i{
    font-size:1.5rem
}
.list-group-item.bg-transparent{
    background-color:transparent!important
}
.badge-outline-theme{
    background:var(--bg-glass-light);
    color:var(--primary-color);
    border:1px solid hsla(var(--primary-hue),75%,60%,.3)
}
.badge-outline-dark{
    background:var(--bg-glass-light);
    color:var(--text-dark);
    border:1px solid rgba(0,0,0,.1)
}
.icon-circle-theme{
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    color:var(--primary-color);
    box-shadow:0 4px 10px rgba(0,0,0,.05)
}
.price-container{
    min-width:300px;
    border:1px solid var(--border-color)!important
}
.price-glow-effect{
    position:absolute;
    top:-50%;
    right:-50%;
    width:100%;
    height:100%;
    background:radial-gradient(circle,hsla(var(--primary-hue),75%,60%,.1) 0,transparent 70%);
    pointer-events:none
}
.border-color-light{
    border-color:var(--border-color)!important
}
.section-title::after{
    content:"";
    display:block;
    width:45px;
    height:5px;
    background:var(--primary-color);
    margin-top:10px;
    border-radius:10px
}
.score-card{
    background:var(--bg-glass-light);
    border-radius:12px;
    padding:15px;
    border:1px solid var(--border-color);
    transition:.3s
}
.score-card:hover{
    background:var(--bg-surface)
}
.gallery-section{
    position:relative;
    z-index:1;
    background-color:transparent;
    border-top-left-radius:var(--bs-card-border-radius);
    border-top-right-radius:var(--bs-card-border-radius)
}
.detail-page{
    width:100%;
    padding:var(--frontend-shell-pad-y) 0 calc(var(--frontend-shell-pad-y) + .5rem)
}
.detail-page__inner{
    padding:0 var(--frontend-shell-gutter)
}
.detail-page__breadcrumbs{
    margin-bottom:.75rem
}
.detail-page__grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(300px, 380px);
    gap:1.5rem;
    align-items:start
}
.detail-page--product .detail-page__grid{
    grid-template-columns:1fr
}

/* ── Product content tabs ──────────────────────────────────────────────────── */
.product-content-tabs{
    gap:0;
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.product-content-tabs::-webkit-scrollbar{ display:none }
.product-content-tab{
    display:inline-flex;
    align-items:center;
    gap:.375rem;
    background:none;
    border:none;
    border-bottom:2.5px solid transparent;
    padding:.75rem 1rem;
    font-size:.875rem;
    font-weight:600;
    color:var(--text-muted,#64748b);
    white-space:nowrap;
    cursor:pointer;
    transition:color .18s,border-color .18s;
    margin-bottom:-1px;
}
.product-content-tab:hover{
    color:var(--text-dark,#1C1917);
}
.product-content-tab.active{
    color:var(--primary-color);
    border-bottom-color:var(--primary-color);
}

/* ── Reviews star-rating form ──────────────────────────────────────────────── */
.star-rating{ cursor:pointer }
.star-rating__label{ line-height:1 }

/* ── Blog article prose ────────────────────────────────────────────────────── */
#blog-body{
    font-size:1.0625rem;
    line-height:1.85;
    color:#475569;
}
#blog-body h2,
#blog-body h3,
#blog-body h4{
    font-family:var(--font-heading);
    font-weight:400;
    color:var(--text-dark,#1C1917);
    letter-spacing:-0.02em;
    margin-top:2.25rem;
    margin-bottom:.75rem;
    line-height:1.25;
}
#blog-body h2{ font-size:clamp(1.5rem,3vw,1.875rem) }
#blog-body h3{ font-size:clamp(1.2rem,2.5vw,1.375rem) }
#blog-body h4{ font-size:1.0625rem;font-family:var(--font-main,sans-serif);font-weight:700 }
#blog-body p{ margin-bottom:1.25rem }
#blog-body a{
    color:var(--primary-color);
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-thickness:1px;
}
#blog-body a:hover{ text-decoration-thickness:2px }
#blog-body blockquote{
    border-left:3px solid var(--primary-color);
    background:rgba(var(--primary-color-rgb),.04);
    margin:2rem 0;
    padding:1.25rem 1.5rem;
    border-radius:0 8px 8px 0;
    font-style:italic;
    color:var(--text-dark,#1C1917);
    font-size:1.1rem;
}
#blog-body blockquote cite{
    display:block;
    margin-top:.75rem;
    font-size:.875rem;
    font-style:normal;
    font-weight:600;
    opacity:.6;
}
#blog-body ul,
#blog-body ol{
    padding-left:1.5rem;
    margin-bottom:1.25rem;
}
#blog-body li{ margin-bottom:.375rem }
#blog-body ul li::marker{ color:var(--primary-color) }
#blog-body strong{ color:var(--text-dark,#1C1917);font-weight:700 }
#blog-body code{
    background:rgba(15,23,42,.06);
    padding:.15em .4em;
    border-radius:4px;
    font-size:.875em;
    color:var(--text-dark,#1C1917);
}
#blog-body pre{
    background:rgba(15,23,42,.04);
    border:1.5px solid rgba(15,23,42,.08);
    border-radius:8px;
    padding:1.25rem 1.5rem;
    overflow-x:auto;
    margin-bottom:1.5rem;
}
#blog-body pre code{ background:none;padding:0;font-size:.875rem;color:inherit }
#blog-body img{
    max-width:100%;
    height:auto;
    border-radius:12px;
    margin:1rem 0;
}
#blog-body hr{
    border:none;
    border-top:1.5px solid rgba(15,23,42,.08);
    margin:2rem 0;
}
.detail-page__main,
.detail-page__sidebar{
    min-width:0
}
.detail-page__sidebar-stack{
    position:sticky;
    top:var(--frontend-header-offset);
    display:flex;
    flex-direction:column;
    gap:1rem
}
.detail-page .sticky-sidebar{
    position:static;
    top:auto
}
.detail-page .card.glass-surface,
.detail-page article.glass-surface{
    border-radius:12px!important;
    box-shadow:0 12px 32px rgba(15,23,42,.08)!important
}
.detail-page .gallery-section{
    min-height:280px;
    background:#f8fafc
}
.detail-page .gallery-section img,
.detail-page .listing-header-img,
.detail-page .main-product-image,
.detail-page .main-listing-img{
    object-fit:cover
}
.detail-page .p-lg-5{
    padding:2rem!important
}
.detail-page .section-title{
    font-size:1.15rem;
    line-height:1.25;
    margin-bottom:1rem!important
}
.detail-page .section-title::after{
    width:34px;
    height:3px;
    margin-top:.55rem
}
.detail-page section{
    scroll-margin-top:96px
}
.detail-page__related{
    margin-top:.5rem
}
.detail-page__related .related-wrapper{
    padding-bottom:2.5rem!important
}
.detail-page__sidebar .card,
.detail-page__sidebar .glass-surface,
.detail-page__sidebar .rounded-4{
    border-radius:12px!important
}
.detail-page__sidebar .btn{
    border-radius:10px!important
}
.btn-primary,.btn-primary-theme{
    background-color:var(--primary-color)!important
}
.hover-up{
    transition:transform .2s
}
.btn-primary{
    border-color:var(--primary-color)!important;
    color:#fff!important;
    transition:background-color .2s,box-shadow .2s;
    font-weight:600
}
.btn-primary:hover{
    background-color:var(--primary-dark)!important;
    border-color:var(--primary-dark)!important;
    box-shadow:0 5px 15px hsla(var(--primary-hue),75%,60%,.4)
}
.btn-outline-primary,.btn-outline-primary-theme{
    color:var(--primary-color);
    border-color:var(--primary-color)
}
.btn-outline-primary-theme:hover,.btn-outline-primary:hover{
    background-color:var(--primary-color);
    color:#fff
}
.btn-primary-light{
    display:inline-flex;
    align-items:center;
    padding:.25rem .75rem;
    background:rgba(var(--primary-color-rgb),.09);
    color:var(--primary-color);
    border:1.5px solid rgba(var(--primary-color-rgb),.18);
    border-radius:6px;
    font-size:.8rem;
    transition:background .15s,color .15s
}
.btn-primary-light:hover{
    background:var(--primary-color);
    color:#fff
}
.social-btn img,.social-btn svg{
    transition:filter .2s
}
.btn-primary-theme{
    border:none!important;
    color:#fff!important;
    box-shadow:0 4px 15px hsla(var(--primary-hue),75%,60%,.3);
    transition:background-color .2s,transform .1s;
    border-color:var(--primary-color)!important
}
.btn-primary-theme:hover{
    background-color:var(--primary-dark);
    transform:translateY(-1px);
    border-color:var(--primary-dark)
}
.btn-dark.rounded-pill{
    transition:transform .2s ease-in-out
}
.btn-dark.rounded-pill:active{
    transform:scale(.95) translateX(-50%)
}
.btn-icon-sm{
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--primary-color)
}
.pagination .custom-page-item{
    margin:0 2px
}
.pagination .custom-page-link{
    color:var(--primary-color);
    border:1px solid transparent;
    border-radius:50%!important;
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.2s ease-in-out
}
.pagination .custom-page-link.active-link{
    background-color:var(--primary-color);
    color:#fff!important;
    box-shadow:0 4px 10px hsla(var(--primary-hue),75%,60%,.5)
}
.badge.border-secondary{
    color:var(--bs-secondary-color)!important;
    background-color:transparent!important
}
.z-30{
    z-index:30
}
.hover-lift:hover{
    box-shadow:0 15px 30px rgba(0,0,0,.1)!important
}
.frontend-page--home .hero-section{
    margin-bottom:0;
    padding-top:clamp(6.5rem, 10vw, 8.5rem)!important
}
.hero-section{
    padding-top:100px!important;
    padding-bottom:120px;
    background:
        radial-gradient(circle at 12% 18%, rgba(var(--primary-color-rgb), .12) 0%, transparent 42%),
        radial-gradient(circle at 88% 8%, rgba(var(--primary-color-rgb), .08) 0%, transparent 36%),
        linear-gradient(180deg, rgba(var(--primary-color-rgb), .04) 0%, #fff 58%, var(--bg-body) 100%);
    min-height:80vh;
    display:flex;
    align-items:center;
    overflow:visible;
    isolation:isolate
}
.hero-nav-pills .nav-link,.hero-section .nav-pills .nav-link{
    width:75px;
    height:75px;
    box-shadow:0 10px 25px rgba(0,0,0,.06);
    align-items:center;
    font-size:1.8rem;
    transition:.3s;
    display:flex
}
.hero-nav-pills{
    position:absolute;
    top:-45px;
    left:0;
    right:0;
    z-index:10;
    gap:2rem
}
.hero-nav-pills .nav-link{
    border-radius:50%!important;
    background:#fff;
    justify-content:center
}
.hero-nav-pills .nav-link.active{
    background:var(--primary-color)!important;
    color:#fff!important;
    transform:translateY(-5px)
}
.hero-section .nav-pills,
.hero-section .hero-search-tabs{
    gap:1rem;
    border:none;
    justify-content:center;
    flex-wrap:wrap;
    padding:0
}
.hero-section .nav-pills .nav-link{
    border-radius:50%!important;
    background:#fff;
    color:#4a5568;
    justify-content:center
}
.hero-section .nav-pills .nav-link.active{
    background:var(--primary-color)!important;
    color:#fff!important;
    transform:translateY(-5px);
    box-shadow:0 15px 30px rgba(var(--primary-color-rgb),.35)
}
.custom-pill-input{
    height:60px;
    border-radius:50px!important;
    border:1px solid #e2e8f0;
    padding:0 30px;
    font-size:1rem;
    background-color:#fff
}
.glass-hero-panel .row{
    justify-content:center
}
.btn-search-pill{
    height:60px;
    border-radius:50px!important;
    background:var(--primary-color);
    color:#fff;
    font-weight:700;
    padding:0 35px;
    transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease;
    border:none
}
.btn-search-pill:hover{
    background:var(--primary-dark);
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(var(--primary-color-rgb),.28)
}
.btn-glass-back{
    background:#fff;
    border:1px solid var(--border-color);
    color:var(--text-dark)
}
.btn-glass-back:hover{
    background:var(--primary-color);
    color:#fff!important;
    border-color:var(--primary-color);
    transform:translateX(-3px)
}
.breadcrumb-item+.breadcrumb-item::before{
    content:"›";
    font-size:1.2rem;
    line-height:1;
    vertical-align:middle;
    color:var(--text-muted);
    opacity:.5
}
.feature-icon-box{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:var(--primary-light);
    color:var(--primary-color);
    font-size:1.25rem;
    transition:transform .3s
}
.feature-item:hover .feature-icon-box{
    transform:scale(1.1) rotate(-5deg)
}
.rule-card{
    border-left:4px solid var(--primary-color);
    background:var(--bg-glass-light);
    padding:1rem;
    border-radius:0 12px 12px 0;
    height:100%
}
.review-score-big{
    font-size:3rem;
    font-weight:800;
    line-height:1;
    color:var(--primary-color);
    text-shadow:0 10px 20px rgba(var(--primary-hue),.2)
}
.calendar-placeholder{
    background:repeating-linear-gradient(45deg,var(--bg-glass-light),var(--bg-glass-light) 10px,#fff 10px,#fff 20px);
    border:2px dashed var(--border-color)
}
.tracking-wider{
    letter-spacing:.05em
}
.receipt-row{
    display:flex;
    justify-content:space-between;
    padding:12px 0;
    font-size:.95rem;
    border-bottom:1px dashed rgba(0,0,0,.08);
    align-items:center
}
.event-pill,.fs-7,.smaller{
    font-size:.85rem
}
.receipt-row:last-child,.receipt-row:last-of-type{
    border-bottom:none
}
.receipt-row .label{
    color:#6c757d;
    font-weight:500
}
.receipt-row .value{
    font-weight:600;
    color:#212529
}
.btn-white{
    color:#444;
    background:#fff;
    border-color:var(--border-color);
    border-radius:10px;
    transition:.3s;
    border:1px solid rgba(0,0,0,.1)
}
.bi-check-circle-fill,.bi-clock-history{
    animation:.6s ease-out slideUpFade
}
@keyframes slideUpFade{
    from{
        transform:translateY(20px);
        opacity:0
    }
    to{
        transform:translateY(0);
        opacity:1
    }
}
.hover-light:hover{
    background:var(--primary-light);
    transform:translateX(5px)
}
.tracking-tight,.tracking-tighter{
    letter-spacing:-.02em
}
.btn-white:hover{
    background:#f8f9fa;
    color:var(--primary-color);
    transform:translateY(-2px)
}
.border-dark,.flatpickr-day,.flatpickr-months .flatpickr-month,.flatpickr-weekday,.flatpickr-weekdays{
    color:var(--text-dark)
}
.bi-check-circle-fill,.bi-exclamation-circle-fill,.bi-star-fill{
    display:inline-block;
    animation:.6s cubic-bezier(.175,.885,.32,1.275) statusBounce
}
@keyframes statusBounce{
    0%{
        transform:scale(.5);
        opacity:0
    }
    50%{
        transform:scale(1.1)
    }
    100%{
        transform:scale(1);
        opacity:1
    }
}
#inline_calendar_container{
    display:none!important
}
.date-selection-container{
    border:1px solid var(--border-color);
    border-radius:var(--card-radius,20px);
    padding:15px;
    margin-bottom:1.5rem
}
.flatpickr-calendar.inline{
    background-color:var(--bg-glass-heavy);
    background:0 0;
    box-shadow:none;
    width:100%;
    margin:0 auto;
    display:block
}
.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{
    fill:var(--primary-dark);
    transition:fill .15s
}
.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{
    fill:var(--primary-color)
}
.flatpickr-day{
    transition:background .15s
}
.description-content b,.description-content strong,.event-pill{
    color:var(--primary-color);
    font-weight:700
}
.flatpickr-day:hover:not(.selected):not(.startRange):not(.endRange):not( .disabled ){
    background:rgba(0,0,0,.05)
}
.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange{
    background:var(--primary-color);
    border-color:var(--primary-color);
    color:#fff;
    box-shadow:0 2px 4px rgba(0,0,0,.1)
}
.form-control:focus,.roadmap-item.active .roadmap-dot,.schedule-item::before{
    box-shadow:0 0 0 4px var(--primary-light)
}
.flatpickr-day.endRange:hover,.flatpickr-day.selected.endRange,.flatpickr-day.selected.startRange,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover{
    background:var(--primary-dark);
    border-color:var(--primary-dark)
}
.flatpickr-day.inRange{
    background:var(--primary-light);
    border-color:var(--primary-light);
    color:var(--text-dark)
}
.flatpickr-day.inRange:hover{
    background:color-mix(in srgb,var(--primary-light) 80%,#fff);
    border-color:color-mix(in srgb,var(--primary-light) 80%,#fff)
}
.event-pill,.flatpickr-day.today:hover{
    background:var(--primary-light)
}
.flatpickr-day.today{
    border-color:var(--primary-color)
}
.schedule-timeline{
    border-left:2px dashed rgba(var(--primary-color-rgb,100,116,255),.3);
    padding-left:2rem;
    position:relative
}
.schedule-item{
    position:relative;
    padding-bottom:2.5rem
}
.schedule-item::before{
    content:"";
    position:absolute;
    left:calc(-2rem - 6px);
    top:0;
    width:12px;
    height:12px;
    background:var(--primary-color);
    border-radius:50%;
    border:3px solid #fff
}
.speaker-card{
    transition:transform .3s;
    border-radius:15px;
    overflow:hidden
}
.speaker-card:hover{
    transform:translateY(-5px)
}
.event-pill{
    padding:6px 16px;
    border-radius:50px;
    display:inline-flex;
    align-items:center
}
.smallest,.tiny{
    font-size:.65rem
}
.fs-xs{
    font-size:.7rem
}
.fs-xxs{
    font-size:.6rem
}
.ls-sm{
    letter-spacing:.5px
}
.scrollable-list{
    max-height:180px;
    overflow-y:auto
}
#map-placeholder{
    height:200px;
    background-color:#eee;
    border-radius:8px
}
.alert-primary-theme{
    background-color:var(--primary-light)!important;
    border-color:var(--primary-color)!important
}
.line-height-lg{
    line-height:1.8
}
.line-height-md{
    line-height:1.6
}
.bg-light.rounded-4.shadow-sm{
    transition:transform .2s,border-color .2s
}
.bg-light.rounded-4.shadow-sm:hover,.map-wrapper:hover{
    border-color:var(--primary-color)!important;
    transform:translateY(-3px)
}
.bg-danger,.bg-danger-theme{
    background-color:#dc3545!important
}
.text-success-theme{
    color:var(--bs-success)!important
}
.bg-success-theme{
    background-color:var(--bs-success)!important
}
.bg-warning-theme{
    background-color:var(--bs-warning)!important
}
.success-icon-wrapper{
    width:80px;
    height:80px;
    background:var(--primary-color);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    animation:.5s cubic-bezier(.175,.885,.32,1.275) scaleIn;
    color:#fff;
    font-size:3rem;
    margin:0 auto;
    box-shadow:0 10px 25px -5px var(--primary-light)
}
@keyframes pulseSuccess{
    0%{
        box-shadow:0 0 0 0 rgba(25,135,84,.4)
    }
    70%{
        box-shadow:0 0 0 20px rgba(25,135,84,0)
    }
    100%{
        box-shadow:0 0 0 0 rgba(25,135,84,0)
    }
}
.step-dot{
    width:12px;
    height:12px;
    border-radius:50%;
    display:block;
    margin-top:5px
}
.ticket-sidebar{
    position:sticky;
    top:100px
}
.grayscale{
    filter:grayscale(1);
    opacity:.6
}
.form-control,.form-select{
    border-radius:12px;
    padding:.75rem 1rem;
    border:2px solid #f0f0f0;
    transition:.2s
}
.form-control:focus{
    border-color:var(--primary-color)
}
.feature-item:hover,.feature-pill:hover{
    border-color:var(--primary-color)!important
}
.badge.bg-primary-light{
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center
}
.bi-patch-check-fill,.bi-send-check-fill{
    animation:.5s cubic-bezier(.34,1.56,.64,1) scaleIn
}
.feature-item:hover{
    transform:translateY(-5px);
    background:rgba(255,255,255,.8)!important
}
.description-content{
    font-size:1.05rem;
    color:#4a5568!important;
    letter-spacing:-.01em
}
.fw-500,.spec-table th{
    font-weight:500
}
.specs-table-container{
    background:#fff;
    box-shadow:var(--shadow-sm)
}
.bg-glass-light:hover{
    background:rgba(var(--primary-hue),.02)!important;
    transition:background .2s
}
.feature-pill{
    border:1px solid rgba(0,0,0,.05)
}
.feature-pill:hover{
    background:#fff!important;
    transform:translateX(4px);
    box-shadow:var(--shadow-sm)
}
.feature-pill:hover .bi-check2{
    transform:scale(1.2);
    transition:transform .2s
}
.map-wrapper{
    transition:transform .3s
}
.spec-table tr{
    border-bottom:1px solid var(--border-color)
}
.spec-table th{
    color:var(--text-muted);
    padding:1rem 0;
    border:none;
    font-size:.9rem
}
.spec-table td{
    color:var(--text-dark);
    font-weight:700;
    padding:1rem 0;
    text-align:right;
    border:none
}
.feature-tag{
    background:var(--bg-glass-light);
    border:1px solid var(--border-color);
    padding:10px 18px;
    border-radius:12px;
    font-weight:600;
    font-size:.85rem;
    transition:.3s
}
.feature-tag:hover{
    transform:translateY(-2px);
    background:#fff;
    border-color:var(--primary-color);
    box-shadow:var(--shadow-sm)
}
.price-tag-lg{
    background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));
    color:#fff;
    font-size:2rem;
    font-weight:800;
    padding:.75rem 1.5rem;
    border-radius:15px;
    display:inline-block
}
.company-logo-header{
    border-radius:var(--bs-border-radius);
    width:100px;
    height:100px;
    object-fit:cover
}
.bg-success-light{
    background:rgba(25,135,84,.12)!important
}
.text-success{
    color:#198754!important
}
.text-danger{
    color:#dc3545!important
}
.btn-outline-secondary{
    background-color:rgba(255,255,255,.1);
    border-color:rgba(0,0,0,.1)
}
.apply-sidebar{
    position:sticky;
    top:calc(var(--frontend-header-offset, 60px) + 1rem)
}
.booking-sidebar,.quotable-sidebar{
    position:sticky;
    top:calc(var(--frontend-header-offset, 60px) + 1rem)
}
.sticky-100{
    top:100px
}
.border-top{
    border-top:1px solid rgba(255,255,255,.1)!important
}
.process-timeline{
    position:relative;
    padding-left:20px
}
.process-timeline li{
    position:relative;
    border-left:2px solid var(--primary-light);
    padding-left:15px
}
.process-timeline li:last-child{
    border-left:none
}
.process-timeline li i{
    margin-top:3px
}
.glass-input{
    background:rgba(255,255,255,.6)!important;
    border:1px solid rgba(0,0,0,.08)!important;
    border-radius:14px!important;
    transition:.3s
}
.glass-input:focus{
    background:#fff!important;
    border-color:var(--primary-color)!important;
    box-shadow:0 0 0 4px var(--primary-light)!important
}
.form-floating>label{
    color:#6c757d;
    padding-left:1rem
}
.shadow-primary-md{
    box-shadow:0 10px 20px -5px var(--primary-light)
}
.extra-small{
    font-size:.75rem
}
@keyframes scaleIn{
    from{
        transform:scale(0);
        opacity:0
    }
    to{
        transform:scale(1);
        opacity:1
    }
}
.roadmap{
    display:flex;
    gap:15px;
    position:relative
}
.roadmap-item{
    flex:1;
    position:relative;
    padding-top:25px
}
.roadmap-dot{
    width:12px;
    height:12px;
    background:#dee2e6;
    border-radius:50%;
    position:absolute;
    top:0;
    left:0
}
.roadmap-item.active .roadmap-dot{
    background:var(--primary-color)
}
.roadmap::before{
    content:"";
    position:absolute;
    top:5px;
    left:0;
    right:0;
    height:2px;
    background:#eee;
    z-index:0
}
.border-dashed{
    border-style:dashed!important
}
.stats-pill{
    background:rgba(255,255,255,.8);
    border:1px solid #eee;
    padding:6px 14px;
    border-radius:50px;
    font-size:.85rem;
    color:#6c757d;
    box-shadow:0 2px 4px rgba(0,0,0,.02)
}
.tiny-dot{
    font-size:.5rem;
    vertical-align:middle
}
.icon-box-sm{
    background:var(--primary-light);
    color:var(--primary-color);
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:8px
}
.btn-icon-glass,.icon-circle{
    align-items:center;
    display:flex
}
.btn-icon-glass{
    background:rgba(255,255,255,.8);
    border:1px solid var(--border-color);
    border-radius:14px;
    color:var(--text-dark);
    width:46px;
    height:46px;
    justify-content:center;
    transition:.3s;
    backdrop-filter:blur(5px)
}
#mainNav.scrolled,.glass-surface{
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px)
}
.btn-icon-glass:hover{
    background:var(--primary-color);
    color:#fff;
    transform:translateY(-2px)
}
.bg-warning-light{
    background:rgba(255,193,7,.12)!important
}
.icon-circle{
    justify-content:center;
    border-radius:50%;
    width:38px;
    height:38px;
    flex-shrink:0
}
.icon-circle-sm,.spec-icon-box{
    width:42px;
    height:42px
}
.last-child-border-0:last-child{
    border-bottom:0!important
}
.price-badge-premium{
    background:#fff;
    border-radius:12px;
    overflow:hidden;
    border:1px solid var(--border-color)
}
.price-amount{
    background:var(--primary-color);
    color:#fff;
    font-size:1.1rem
}
.price-label{
    color:var(--text-dark);
    background:#f8f9fa;
    font-size:.65rem
}
.package-selection-card{
    border-radius:20px;
    position:relative;
    overflow:hidden
}
.package-selection-card:hover{
    border-color:var(--primary-color)!important;
    transform:translateY(-3px);
    box-shadow:0 15px 35px rgba(0,0,0,.08)!important
}
.is-popular-glow{
    border-color:rgba(var(--primary-color-rgb),.3)!important;
    background:linear-gradient(to right,rgba(var(--primary-color-rgb),.02),transparent)
}
.is-popular-glow::after{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:4px;
    height:100%;
    background:var(--primary-color)
}
.badge-feature{
    background:#f8f9fa;
    border:1px solid #eee;
    color:#555;
    padding:4px 12px;
    border-radius:100px;
    font-size:.75rem;
    font-weight:600
}
.fw-900{
    font-weight:900
}
.spec-icon-box{
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.2rem
}
.badge-premium-info,.badge-premium-warning{
    font-size:.75rem;
    font-weight:700;
    padding:6px 12px;
    border-radius:50px
}
.border-bottom{
    border-color:rgba(0,0,0,.05)!important
}
.bg-light-glow{
    background-color:rgba(var(--primary-color-rgb),.02)!important;
    border-left:4px solid var(--primary-color)!important
}
.badge-premium-info{
    background:#e0f2fe;
    color:#0369a1
}
.badge-premium-warning{
    background:#fef3c7;
    color:#92400e
}
@keyframes pulse-soft{
    0%,100%{
        opacity:1
    }
    50%{
        opacity:.7
    }
}
.animate-pulse{
    animation:2s infinite pulse-soft
}
.main-listing-img{
    width:100%;
    max-height:400px;
    object-fit:contain;
    border-radius:var(--bs-card-border-radius);
    background-color:#f8f9fa
}
.thumbnail-img{
    width:70px;
    height:70px;
    object-fit:cover;
    border-radius:4px;
    border:2px solid transparent;
    transition:border-color .2s,opacity .2s;
    opacity:.7
}
.thumbnail-img:hover{
    opacity:1;
    border-color:rgba(0,0,0,.2)
}
.thumbnail-img.active{
    border-color:var(--primary-color);
    opacity:1
}
.alert-info[role=alert]{
    background-color:var(--primary-light)!important;
    border-color:var(--primary-color)!important;
    color:#333
}
.related-img{
    height:120px;
    object-fit:cover;
    border-top-left-radius:var(--bs-card-border-radius);
    border-top-right-radius:var(--bs-card-border-radius)
}
.map-placeholder{
    height:100px;
    background-color:rgba(255,255,255,.5);
    border:1px solid rgba(0,0,0,.1)
}
@media (min-width:992px){
    .listing-card-img{
        height:220px
    }
    .metric-label{
        font-size:.65rem
    }
}
@media (max-width:992px){
    .listing-card-img{
        height:140px
    }
    .property-status-badge{
        margin:.5rem;
        padding:.25rem .5rem
    }
}
@media (max-width:991px){
    .detail-page{
        padding-top:.75rem
    }
    .detail-page--property-rental{
        padding-bottom:5.5rem
    }
    .detail-page__grid{
        grid-template-columns:1fr;
        gap:1rem
    }
    .detail-page__sidebar-stack{
        position:static
    }
    .detail-page .gallery-section{
        min-height:220px
    }
    .price-container{
        min-width:100%;
        margin-top:1rem
    }
    .page-title-section{
        text-align:left!important;
        border-bottom:1px solid var(--border-color);
        padding-bottom:1.5rem
    }
}
@media (max-width:768px){
    .page-wrapper{
        padding-top:30px
    }
    .listing-header-img{
        height:320px
    }
    .container-xl{
        padding-left:15px;
        padding-right:15px
    }
    .mobile-flush{
        margin-left:-15px;
        margin-right:-15px;
        width:calc(100% + 30px);
        border-radius:0
    }
    .display-5{
        font-size:1.6rem
    }
    .price-badge-premium{
        width:100%;
        justify-content:space-between;
        margin-bottom:8px
    }
}
@media (max-width:767.98px){
    .page-title-section{
        text-align:center!important
    }
    .page-title-section .d-flex{
        align-items:center!important
    }
    .page-title-section p{
        margin-left:auto;
        margin-right:auto
    }
}
@media (max-width:576px){
    .booking-header__context{
        flex-direction:column;
        padding:.85rem;
        gap:.85rem
    }
    .booking-header__property{
        width:100%
    }
    .booking-header__back{
        width:100%
    }
    .frontend-alert{
        padding:.9rem;
        border-radius:.9rem
    }
    .frontend-alert__icon{
        width:2rem;
        height:2rem;
        flex-basis:2rem;
        border-radius:.7rem
    }
    .main-product-image{
        height:300px
    }
    .listing-header-img{
        height:250px
    }
    .stepper::before{
        left:0;
        right:0
    }
}
@media (max-width:360px){
    .btn-sm-mobile{
        padding:.4rem .8rem!important;
        font-size:.75rem!important
    }
    .navbar-brand span{
        max-width:100px;
        font-size:1.15rem!important
    }
    .btn-sm-mobile i{
        display:none
    }
}
@media print{
    .btn,.page-header,.sidebar{
        display:none!important
    }
    .glass-surface{
        border:1px solid #ddd!important;
        box-shadow:none!important
    }
}
@media (min-width:768px){
    .border-start-md{
        border-left:1.5px solid var(--border-color)!important;
        border-left:1px solid
    }
}
@media (max-width:767px){
    .listing-card-img{
        height:140px
    }
    .card-body{
        padding:10px!important
    }
    .price-display{
        margin-top:1rem;
        padding-top:1rem;
        border-top:1px solid #eee
    }
}
#mainNav{
    transition:background-color .3s ease-in-out,box-shadow .3s ease-in-out,padding .3s ease-in-out,border-color .3s ease-in-out
}
.main-header{
    z-index:1030
}
body.has-admin-bar .main-header--home{
    top:var(--admin-bar-offset,32px)!important
}
body.has-admin-bar .main-header--pinned{
    top:var(--admin-bar-offset,32px)!important
}
body.has-admin-bar .main-header.sticky-top{
    top:var(--admin-bar-offset,32px)
}
.main-header--home{
    pointer-events:none
}
.main-header--home #mainNav,
.main-header--home .navbar-brand,
.main-header--home .navbar-nav,
.main-header--home .navbar-actions-group{
    pointer-events:auto
}
.main-header--home #mainNav{
    padding-top:1rem;
    padding-bottom:1rem
}
.main-header--pinned{
    position:fixed!important;
    top:0;
    left:0;
    right:0;
    z-index:1030;
    background:rgba(255,255,255,.93)!important;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    box-shadow:0 8px 28px rgba(15,23,42,.07);
    border-bottom:1.5px solid rgba(var(--primary-color-rgb),.12);
    pointer-events:auto
}
.main-header--pinned #mainNav,
.main-header--pinned #mainNav.scrolled{
    background:transparent!important;
    border-bottom:none!important;
    box-shadow:none!important;
    padding-top:.65rem;
    padding-bottom:.65rem
}
.navbar-transparent{
    background-color:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important
}
#mainNav.scrolled{
    background-color:rgba(255,255,255,.95)!important;
    border-bottom:1.5px solid rgba(var(--primary-color-rgb),.1)!important;
    box-shadow:0 8px 24px rgba(15,23,42,.07);
    padding-top:.65rem;
    padding-bottom:.65rem
}
@media (max-width:991.98px){
    .main-header--home #navbarNav.show,
    .main-header--home #navbarNav.collapsing{
        margin-top:.75rem;
        padding:1rem;
        border-radius:1rem;
        background:rgba(255,255,255,.98)!important;
        backdrop-filter:blur(14px);
        -webkit-backdrop-filter:blur(14px);
        box-shadow:0 18px 40px rgba(15,23,42,.12);
        border:1px solid rgba(15,23,42,.06)
    }
    .main-header--home #navbarNav .nav-link{
        padding-top:.55rem;
        padding-bottom:.55rem
    }
}

/* ── Brand text: heading font, not bold uppercase ──────────────────────── */
.navbar-brand__text {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 1.1rem;
    letter-spacing: -0.015em;
}

/* ── Main nav links: natural case, sliding ::before underline ──────────── */
.nav-link--main {
    position: relative;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding-bottom: 0.45rem !important;
    transition: color .2s;
}
/* ::before avoids conflict with Bootstrap's dropdown-toggle ::after caret.
   Left-to-right scaleX sweep — GPU-composited, no layout thrash. */
.nav-link--main::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0.6rem;
    right: 0.6rem;
    height: 2px;
    background: var(--primary-color);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}
.nav-link--main:hover::before,
.nav-link--main.active::before {
    transform: scaleX(1);
}
.navbar-light .navbar-nav .nav-link--main.active {
    color: var(--primary-color) !important;
    font-weight: 700;
}
/* White underline on transparent dark hero */
.navbar-transparent .nav-link--main::before {
    background: rgba(255,255,255,.75);
}

/* ── Dropdown menus: refined shadow, no uppercase ──────────────────────── */
.nav-dropdown {
    min-width: 200px;
    box-shadow: 0 16px 40px rgba(15,23,42,.11), 0 2px 8px rgba(15,23,42,.05) !important;
    border: 1px solid rgba(15,23,42,.07) !important;
}
.nav-dropdown__item {
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    padding: 0.45rem 0.8rem !important;
    transition: background .15s, color .15s;
}
.nav-dropdown__item:hover {
    background: rgba(var(--primary-color-rgb), .06) !important;
    color: var(--primary-color) !important;
}
.nav-dropdown__item.active {
    background: rgba(var(--primary-color-rgb), .08) !important;
    color: var(--primary-color) !important;
    font-weight: 600;
}
.nav-dropdown__item.text-danger:hover {
    background: rgba(220,38,38,.06) !important;
    color: #dc2626 !important;
}

/* ── Login link ────────────────────────────────────────────────────────── */
.navbar-login-link {
    font-size: 0.875rem;
    color: #4b5563 !important;
}
.main-header--home #mainNav.navbar-transparent .navbar-login-link {
    color: rgba(255,255,255,.75) !important;
}

/* ── CTA button: rectangular, arrow slides right on hover ─────────────── */
.btn-header-cta {
    border-radius: 10px !important;
    padding: 0.5rem 1.15rem !important;
    font-size: 0.875rem !important;
    letter-spacing: 0.01em;
    box-shadow: 0 2px 10px rgba(var(--primary-color-rgb), .22) !important;
    transition: background .2s, transform .15s, box-shadow .2s !important;
}
.btn-header-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 22px rgba(var(--primary-color-rgb), .35) !important;
}
.btn-header-cta .bi-arrow-right {
    display: inline-block;
    transition: transform .2s ease;
}
.btn-header-cta:hover .bi-arrow-right {
    transform: translateX(4px);
}

.footer-section .social-icon{
    transition:transform .2s ease-in-out,opacity .2s ease-in-out;
    display:inline-block
}
.footer-section .social-icon:hover{
    transform:translateY(-3px);
    opacity:1!important
}
.footer-section .nav-link{
    transition:opacity .2s
}
/* Legacy footer-newsletter kept for back-compat */
.footer-newsletter{
    background:rgba(255,255,255,.04)
}
.footer-section .nav-link:hover{
    text-decoration:underline!important;
    opacity:1!important
}
.hover-opacity-100:hover{
    opacity:1!important
}

/* ── Footer v3 ───────────────────────────────────────────────────── */

.main-footer{
    background-color:var(--text-dark)!important;
}

/* Warm orange accent bar at top of footer */
.ft-accent-bar{
    height:3px;
    background:linear-gradient(to right, var(--primary-color), var(--primary-dark), transparent);
    width:100%;
}

/* ── Newsletter band — full-width, above main columns ── */
.ft-nl-band{
    border-bottom:1px solid rgba(255,255,255,.07);
    padding:2.5rem 0 2rem;
}
.ft-nl-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:3rem;
    flex-wrap:wrap;
}
.ft-nl-copy{
    flex:0 1 440px;
}
.ft-nl-eyebrow{
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--primary-color);
    margin-bottom:.5rem;
}
.ft-nl-headline{
    font-family:var(--font-heading);
    font-weight:400;
    font-size:clamp(1.5rem,2.5vw,2rem);
    color:#fff;
    letter-spacing:-.02em;
    line-height:1.15;
    margin-bottom:.45rem;
}
.ft-nl-sub{
    font-size:.875rem;
    color:rgba(255,255,255,.5);
    margin-bottom:0;
    line-height:1.55;
}
.ft-nl-form{
    flex:1 1 360px;
    max-width:480px;
}
.ft-nl-field{
    display:flex;
    align-items:center;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.12);
    border-radius:12px;
    padding:.35rem .35rem .35rem .9rem;
    gap:.4rem;
    transition:border-color .2s;
}
.ft-nl-field:focus-within{
    border-color:rgba(var(--primary-color-rgb),.55);
}
.ft-nl-field-icon{
    color:rgba(255,255,255,.3);
    font-size:.9rem;
    flex-shrink:0;
}
.ft-nl-input{
    flex:1 1 0;
    background:transparent;
    border:none;
    outline:none;
    color:#fff;
    font-size:.88rem;
    min-width:0;
}
.ft-nl-input::placeholder{
    color:rgba(255,255,255,.32);
}
.ft-nl-btn{
    background:var(--primary-color);
    color:#fff;
    border:none;
    border-radius:9px;
    padding:.5rem 1.1rem;
    font-size:.82rem;
    font-weight:700;
    white-space:nowrap;
    cursor:pointer;
    flex-shrink:0;
    transition:background .18s,transform .15s;
}
.ft-nl-btn:hover{
    background:var(--primary-dark);
    transform:translateY(-1px);
}
.ft-nl-privacy{
    font-size:.7rem;
    color:rgba(255,255,255,.28);
    margin-top:.6rem;
    margin-bottom:0;
}
.ft-nl-feedback{
    display:flex;
    align-items:center;
    gap:1.5rem;
    padding:1.25rem 0;
}
.ft-nl-feedback-icon{
    width:3.25rem;
    height:3.25rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    font-size:1.35rem;
}
.ft-nl-feedback-icon--success{
    background:rgba(var(--primary-color-rgb),.15);
    color:var(--primary-color);
}
.ft-nl-feedback-icon--info{
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.7);
}
.ft-nl-feedback-title{
    font-family:var(--font-heading);
    font-size:1.2rem;
    font-weight:400;
    color:#fff;
    margin-bottom:.25rem;
}
.ft-nl-feedback-sub{
    font-size:.875rem;
    color:rgba(255,255,255,.55);
    margin-bottom:0;
}

.ft-wrap{
    padding-top:2rem;
    padding-bottom:1.5rem;
}

/* ── Main grid ── */
.ft-grid{
    margin-bottom:1.75rem;
}

/* Brand */
.ft-logo-img{
    max-height:36px;
    width:auto;
}
.ft-brand-name{
    font-size:1.15rem;
    font-weight:800;
    color:#fff;
}
.ft-brand-name--serif{
    font-family:var(--font-heading);
    font-weight:400;
    font-size:1.3rem;
    letter-spacing:-0.01em;
}
.ft-tagline{
    font-size:.875rem;
    color:rgba(255,255,255,.55);
    line-height:1.65;
    margin-bottom:1.5rem;
    max-width:30ch;
}

/* Social icons */
.ft-socials{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
}
.ft-social-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.4rem;
    height:2.4rem;
    border-radius:50%;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.1);
    color:rgba(255,255,255,.6);
    font-size:.95rem;
    text-decoration:none;
    transition:background .18s,color .18s,border-color .18s,transform .18s;
}
.ft-social-icon:hover{
    background:var(--primary-color);
    border-color:var(--primary-color);
    color:#fff;
    transform:translateY(-2px);
}

/* Link columns */
.ft-col-label{
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:rgba(255,255,255,.3);
    margin-bottom:.9rem;
}
.ft-link{
    display:block;
    color:rgba(255,255,255,.55);
    font-size:.875rem;
    text-decoration:none;
    padding:.22rem 0;
    transition:color .18s,padding-left .18s;
}
.ft-link:hover{
    color:#fff;
    padding-left:.4rem;
}

/* ── Bottom bar ── */
.ft-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:1rem;
    border-top:1px solid rgba(255,255,255,.07);
    padding-top:1.5rem;
}
.ft-copy{
    font-size:.8rem;
    color:rgba(255,255,255,.3);
    margin-bottom:0;
}
.ft-legal-links{
    display:flex;
    gap:1.5rem;
}
.ft-legal-link{
    font-size:.8rem;
    color:rgba(255,255,255,.3);
    text-decoration:none;
    transition:color .18s;
}
.ft-legal-link:hover{
    color:rgba(255,255,255,.7);
}

@media(max-width:767px){
    .ft-nl-inner{
        flex-direction:column;
        align-items:flex-start;
        gap:1.75rem;
    }
    .ft-nl-form{
        width:100%;
        max-width:none;
        flex-basis:auto;
    }
}
.opacity-10{
    opacity:.1!important
}
.bg-opacity-5{
    --bs-bg-opacity:0.05
}
.bg-opacity-10{
    --bs-bg-opacity:0.1
}
.bg-opacity-15{
    --bs-bg-opacity:0.15
}
.bg-opacity-20{
    --bs-bg-opacity:0.2
}
.bg-opacity-25{
    --bs-bg-opacity:0.25
}
.bg-opacity-50{
    --bs-bg-opacity:0.5
}
.bg-opacity-75{
    --bs-bg-opacity:0.75
}
.border-opacity-10{
    --bs-border-opacity:0.1
}
.border-opacity-25{
    --bs-border-opacity:0.25
}
.border-opacity-50{
    --bs-border-opacity:0.5
}
.border-opacity-75{
    --bs-border-opacity:0.75
}
.bg-dark-gradient{
    background:linear-gradient(135deg,#0f172a 0,#1e293b 100%)
}
.glow-circle-lg{
    width:300px;
    height:300px;
    filter:blur(80px)
}
.glow-circle-sm{
    width:250px;
    height:250px;
    filter:blur(80px)
}
.z-index-0{
    z-index:0
}
.z-index-1{
    z-index:1
}
.max-w-500{
    max-width:500px
}
[data-aos],
[data-aos].aos-animate{
    pointer-events:auto
}
@media (max-width:991.98px){
    .hero-section{
        min-height:auto;
        padding-top:84px!important;
        padding-bottom:72px
    }
    .frontend-page--home .hero-section{
        padding-top:clamp(5.5rem, 14vw, 6.75rem)!important
    }
    .hero-section .nav-pills{
        width:100%;
        justify-content:flex-start;
        flex-wrap:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        scrollbar-width:none;
        padding:0 .25rem 10px;
        gap:.75rem
    }
    .hero-section .nav-pills::-webkit-scrollbar{
        display:none
    }
    .hero-section .pill-group{
        width:64px;
        flex:0 0 64px
    }
    .hero-section .nav-pills .nav-link{
        width:58px;
        height:58px;
        font-size:1.35rem
    }
    .hero-section .label-text{
        max-width:64px;
        font-size:.64rem
    }
    .hero-search-tabs-wrap{
        margin-bottom:-1.5rem
    }
    .glass-hero-panel{
        margin-bottom:2.5rem;
        padding:3.75rem 1.25rem 1.75rem;
        border-radius:22px
    }
}
.user-profile-header{
    min-height:400px
}
.header-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom,rgba(15,23,42,.4),rgba(15,23,42,.8));
    z-index:0
}
.avatar-wrapper{
    position:relative;
    display:inline-block
}
.icon-box-sm,.star-rating,.verified-badge{
    display:flex;
    display:flex
}
.verified-badge{
    position:absolute;
    bottom:5px;
    right:5px;
    width:32px;
    height:32px;
    border-radius:50%;
    align-items:center;
    justify-content:center;
    font-size:1.2rem;
    border:3px solid #fff
}
.icon-box-sm{
    align-items:center;
    justify-content:center;
    font-size:1.1rem;
    width:40px;
    height:40px;
    align-items:center;
    justify-content:center
}
#userTab .nav-link{
    color:#64748b;
    border:none
}
#userTab .nav-link.active{
    box-shadow:0 4px 15px rgba(0,0,0,.05)
}
.fw-800{
    font-weight:800
}
.fw-600{
    font-weight:600
}
.hover-lift{
    backface-visibility:hidden;
    transform:translateZ(0);
    will-change:transform;
    transition:transform .2s,box-shadow .2s
}
.hover-lift:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 20px rgba(0,0,0,.08)!important
}
.mt-n5{
    margin-top:-3rem!important
}
.star-rating label{
    cursor:pointer;
    transition:transform .2s,color .2s
}
.star-rating input:checked+label,.star-rating input:checked+label~label{
    color:var(--bs-warning)
}
.star-rating{
    flex-direction:row-reverse;
    justify-content:flex-end
}
.star-rating input:checked~label,.star-rating label:hover,.star-rating label:hover~label{
    color:#ffc107!important
}
.star-rating input:checked~label:before,.star-rating label:hover:before,.star-rating label:hover~label:before{
    content:"\F586";
    font-family:bootstrap-icons
}
.avatar-sm{
    width:45px;
    height:45px;
    flex-shrink:0
}
.border-end-md{
    border-right:1px solid #dee2e6
}
@media (max-width:768px){
    .border-end-md{
        border-right:none;
        border-bottom:1px solid #dee2e6;
        padding-bottom:1rem;
        margin-bottom:1rem
    }
}
@media (max-width:767.98px){
    .hero-section .display-3{
        font-size:2.35rem
    }
    .hero-section .fs-5{
        font-size:1rem!important
    }
    .custom-pill-input,
    .btn-search-pill{
        height:52px;
        border-radius:16px!important;
        padding:0 18px;
        font-size:.95rem
    }
    .btn-search-pill{
        width:100%
    }
    .glass-hero-panel{
        padding:70px 16px 22px
    }
}
.unified-input{
    border:1px solid rgba(0,0,0,.1);
    border-radius:12px;
    background:#fff;
    transition:.2s
}
.unified-input:focus-within{
    border-color:var(--primary-color);
    box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)
}
.unified-input .input-group-text{
    background:0 0;
    border:none;
    color:#94a3b8
}
.unified-input .form-control,.unified-input .form-select{
    border:none;
    background:0 0;
    font-size:.9rem
}
.slider-fill,.slider-track{
    border-radius:10px;
    position:absolute;
    height:6px
}
.dual-range-container{
    height:6px;
    width:100%
}
.slider-track{
    width:100%;
    background:rgba(var(--primary-color-rgb),.1);
    z-index:1
}
.slider-fill{
    background:var(--primary-color);
    z-index:2
}
.range-input{
    position:absolute;
    width:100%;
    top:0;
    height:6px;
    background:0 0;
    pointer-events:none;
    -webkit-appearance:none;
    appearance:none;
    z-index:3
}
.range-input::-webkit-slider-thumb{
    height:18px;
    width:18px;
    border-radius:50%;
    background:var(--primary-color);
    border:3px solid #fff;
    box-shadow:0 2px 5px rgba(0,0,0,.15);
    cursor:pointer;
    pointer-events:auto;
    -webkit-appearance:none
}
.range-input::-moz-range-thumb{
    height:18px;
    width:18px;
    border-radius:50%;
    background:var(--primary-color);
    border:3px solid #fff;
    cursor:pointer;
    pointer-events:auto
}
.btn-check:checked+.btn-outline-primary-theme{
    background-color:var(--primary-color)!important;
    color:#fff!important;
    border-color:var(--primary-color)!important;
    box-shadow:0 4px 10px rgba(var(--primary-color-rgb),.2)
}
.custom-scrollbar::-webkit-scrollbar{
    width:4px
}
.custom-scrollbar::-webkit-scrollbar-thumb{
    background:#cbd5e1;
    border-radius:10px
}
.sub-heading{
    max-width:600px
}
.deco-line-sm{
    width:56px;
    height:4px
}
.rotate-3{
    transform:rotate(3deg)
}
.float-animation{
    animation:6s ease-in-out infinite floatCard
}
@keyframes floatCard{
    0%,100%{
        transform:rotate(3deg) translateY(0)
    }
    50%{
        transform:rotate(3deg) translateY(-8px)
    }
}
.frontend-page--home .main-content-container>section{
    position:relative
}
.frontend-page--home .main-content-container>section:nth-of-type(even){
    background:linear-gradient(180deg,rgba(var(--primary-color-rgb),.03) 0%,rgba(var(--primary-color-rgb),.01) 100%)
}
.frontend-page--home .market-module-card{
    border:1px solid rgba(15,23,42,.06);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease
}
.frontend-page--home .market-module-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(var(--primary-color-rgb),.12)
}
.frontend-page--home .listing-card{
    border:1px solid rgba(15,23,42,.06)
}
.frontend-page--home .glass-hero-panel{
    border:1px solid rgba(255,255,255,.85);
    box-shadow:0 24px 60px rgba(var(--primary-color-rgb),.12)
}
.frontend-page--home .hero-section .display-3{
    letter-spacing:-.02em
}
.frontend-page--home .hero-section .badge{
    letter-spacing:.08em
}
.frontend-page--home .glass-surface.bg-opacity-20{
    background:rgba(255,255,255,.12)!important;
    border-color:rgba(255,255,255,.18)!important
}
.map-container-sm{
    height:250px
}
.icon-size-45{
    width:45px;
    height:45px
}
.employer-logo-badge{
    width:60px;
    height:60px;
    z-index:10;
    position:relative
}
/* ─── Job listing card — horizontal layout ────────────────────── */
.jbl-listing-card {
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.jbl-listing-card:hover {
    border-color: rgba(var(--primary-color-rgb), .35) !important;
    box-shadow: 0 6px 24px rgba(var(--primary-color-rgb), .08);
}
.jbl-company-mark {
    width: 80px;
    padding: 1.25rem .75rem 1.25rem 1.25rem;
    border-right: 1.5px solid var(--color-border, #e5e7eb);
}
.jbl-company-logo-wrap {
    width: 52px; height: 52px;
    border-radius: 12px;
    border: 1.5px solid var(--color-border, #e5e7eb);
    background: #fafafa;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.jbl-company-logo {
    width: 44px; height: 44px;
    object-fit: contain;
    padding: 4px;
}
.jbl-job-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-dark);
    line-height: 1.25;
    transition: color .15s;
}
.jbl-listing-card:hover .jbl-job-title { color: var(--primary-color); }
.jbl-company-name {
    font-size: .82rem;
    color: var(--primary-color);
    font-weight: 600;
}
.jbl-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.jbl-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--text-muted);
    background: rgba(var(--primary-color-rgb), .06);
    border-radius: 50px;
    padding: .2rem .65rem;
}
.jbl-meta-chip i { font-size: .65rem; color: var(--primary-color); }
.jbl-meta-chip--category {
    background: rgba(var(--primary-color-rgb), .1);
    color: var(--primary-color);
}
.jbl-card-side {
    border-left: 1.5px solid var(--color-border, #e5e7eb);
    min-width: 150px;
}
.jbl-salary {
    font-size: .9rem;
    font-weight: 700;
    color: #16a34a;
}
.jbl-posted-time {
    font-size: .72rem;
    color: var(--text-muted);
}


.evc-card .evc-metric-label,.evc-featured-ribbon span,.evc-metric-label{
    display:block;
    text-transform:uppercase
}
.evc-card .evc-img-container{
    height:175px
}
.evc-card .evc-aspect-ratio-16-9{
    aspect-ratio:16/9
}
.evc-card .evc-auto-badge{
    font-size:.75rem;
    letter-spacing:.5px
}
.evc-card .evc-date-block{
    background-color:rgba(var(--primary-color-rgb),.1);
    min-width:50px
}
.evc-card .evc-metric-label{
    font-size:.65rem;
    color:#6c757d;
    font-weight:700
}
.evc-card .evc-metric-value,.evc-metric-value{
    font-size:.85rem;
    color:#212529
}
.evc-date-block-overlay{
    backdrop-filter:blur(4px);
    border:1px solid rgba(0,0,0,.05)
}
.evc-featured-ribbon span{
    background-color:var(--primary-color);
    box-shadow:0 5px 10px rgba(0,0,0,.1);
    text-shadow:0 1px 1px rgba(0,0,0,.2);
    position:absolute;
    width:125px;
    padding:5px 0;
    background-color:var(--primary-color);
    color:#fff;
    font:700 10px/1 sans-serif;
    text-align:center;
    right:-10px;
    top:18px;
    transform:rotate(-45deg)
}
.evc-card.evc-glass-surface{
    background:#fff;
    border:1.5px solid rgba(15,23,42,.07)
}
.evc-card__title{
    font-family:var(--font-heading);
    font-weight:400;
    font-size:clamp(.95rem, 1.3vw, 1.1rem);
    letter-spacing:-.01em;
    color:var(--text-dark)
}
.evc-featured-border{
    border:2px solid var(--primary-color)!important;
    box-shadow:0 10px 30px rgba(var(--primary-color-rgb),.15)!important
}
.evc-featured-ribbon{
    width:85px;
    height:85px;
    overflow:hidden;
    position:absolute;
    top:-3px;
    left:-3px;
    z-index:5
}
.evc-card:hover .transition-img{
    transform:scale(1.05);
    transition:.3s
}
.evc-organizer-wrapper img{
    transition:transform .2s
}
.evc-card:hover .evc-organizer-wrapper img{
    transform:scale(1.1) translateY(-3px)
}
.evc-metric-label{
    font-size:.65rem;
    color:#6c757d;
    font-weight:700
}
.evc-date-block-overlay{
    min-width:46px;
    background:#fff!important;
    box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important
}
.evc-img-container::after{
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:40%;
    background:linear-gradient(to top,rgba(0,0,0,.2),transparent);
    pointer-events:none;
    z-index:1
}
.evc-z-date{
    z-index:2
}

/* Pagination */
.custom-page-link {
    color: var(--primary-color) !important;
    background: transparent !important;
}
.custom-page-link:hover {
    background: var(--primary-light) !important;
    transform: translateY(-2px);
}
.active-link {
    background: var(--primary-color) !important;
    color: #fff !important;
}
.page-item.disabled .custom-page-link {
    opacity: 0.5;
    pointer-events: none;
}

/* Breadcrumb (product/classifieds listings) */
.btn-glass-back {
    background: white;
    border: 1px solid var(--border-color);
    color: var(--text-dark);
}
.btn-glass-back:hover {
    background: var(--primary-color);
    color: white !important;
    border-color: var(--primary-color);
    transform: translateX(-3px);
}
.breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    font-size: 1.2rem;
    line-height: 1;
    vertical-align: middle;
    color: var(--text-muted);
    opacity: 0.5;
}
.hover-primary:hover { color: var(--primary-color) !important; }

/* Quote sidebar select focus */
.bg-light-focus:focus {
    background-color: #f8fafc;
    border-color: var(--bs-primary);
}

/* ── Error pages (404 / 403 / 419) ──────────────────────────────── */
.frontend-main:has(.error-page-wrap) {
    display: flex;
    flex-direction: column;
}
.error-page-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
}
.error-card {
    max-width: 30rem;
    width: 100%;
    text-align: center;
}
.error-icon-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.error-icon-box {
    width: 5rem;
    height: 5rem;
    background: rgba(var(--primary-color-rgb), .08);
    border: 1.5px solid rgba(var(--primary-color-rgb), .16);
    border-radius: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-color);
    flex-shrink: 0;
}
.error-code {
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1;
    color: var(--primary-color);
    font-family: var(--font-heading, 'DM Serif Display', serif);
    letter-spacing: -2px;
}
.error-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: .75rem;
}
.error-desc {
    color: #6b7280;
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 2rem;
}
.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
}
.error-ref {
    font-size: .8rem;
    color: #6b7280;
}
.error-ref code {
    background: rgba(var(--primary-color-rgb), .07);
    color: var(--color-primary);
    padding: .15rem .5rem;
    border-radius: .4rem;
    font-size: .8rem;
}

/* ── Hero search form (enhanced) ───────────────────────────────── */

.hero-search-form {
    text-align: left;
}

/* Main row: keyword input + submit */
.hsf-main-row {
    display: flex;
    gap: .5rem;
    align-items: stretch;
}

.hsf-input-wrap {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
}

.hsf-icon {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 1rem;
    pointer-events: none;
}

.hsf-input {
    width: 100%;
    height: 54px;
    padding: 0 1rem 0 2.8rem;
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    font-size: 1rem;
    background: #fff;
    color: var(--text-dark);
    transition: border-color .2s, box-shadow .2s;
}
.hsf-input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(var(--primary-color-rgb), .12);
}
.hsf-input::placeholder {
    color: #9ca3af;
}

.hsf-submit-btn {
    height: 54px;
    padding: 0 1.6rem;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: 14px;
    font-size: .95rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background .2s, transform .15s, box-shadow .2s;
    flex-shrink: 0;
}
.hsf-submit-btn:hover {
    background: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(var(--primary-color-rgb), .28);
}

/* Filters row */
.hsf-filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .65rem;
    align-items: center;
}

.hsf-filter-select {
    flex: 1 1 140px;
    height: 40px;
    padding: 0 .8rem;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    color: #374151;
    font-size: .82rem;
    cursor: pointer;
    transition: border-color .2s;
    appearance: auto;
}
.hsf-filter-select:focus {
    outline: none;
    border-color: var(--primary-color);
}

.hsf-price-input {
    flex: 1 1 100px;
    max-width: 220px;
    -moz-appearance: textfield;
}
.hsf-price-range-pair .hsf-price-input {
    max-width: none;
}
.hsf-price-input::-webkit-inner-spin-button,
.hsf-price-input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.hsf-date-input {
    flex: 1 1 140px;
    color: #374151;
}
.hsf-date-input:invalid {
    color: #9ca3af;
}

/* Price range pair — shares space as one logical unit */
.hsf-price-range-pair {
    display: flex;
    gap: .4rem;
    flex: 1 1 200px;
}
.hsf-price-range-pair .hsf-filter-select {
    flex: 1 1 90px;
}

/* Responsive */
@media (max-width: 575px) {
    .hsf-main-row {
        flex-direction: column;
    }
    .hsf-submit-btn {
        width: 100%;
    }
    .hsf-filter-select {
        flex: 1 1 100%;
    }
    .hsf-price-range-pair {
        flex: 1 1 100%;
    }
}

/* ─── Dark split hero ─────────────────────────────────────────────────── */
.hero-section--dark {
    background: var(--text-dark);
    padding-bottom: clamp(4rem, 8vw, 6rem);
    min-height: auto;
    position: relative;
    overflow: hidden;
}
/* Dot grid + warm primary glow — layered into one pseudo-element */
.hero-section--dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse 65% 65% at 90% 8%, rgba(var(--primary-color-rgb), .12) 0%, transparent 100%),
        radial-gradient(circle, rgba(255,255,255,.38) 1px, transparent 1px);
    background-size: 100% 100%, 28px 28px;
    pointer-events: none;
    z-index: 0;
}
/* Inner-page heroes — same pattern, dialled back: sparser dots, lower opacity */
.page-hero-strip.hero-section--dark::before,
.about-hero.hero-section--dark::before {
    background-image:
        radial-gradient(ellipse 65% 65% at 90% 8%, rgba(var(--primary-color-rgb), .07) 0%, transparent 100%),
        radial-gradient(circle, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 100% 100%, 44px 44px;
}
.hero-section--dark > .container-xl {
    position: relative;
    z-index: 1;
}
.frontend-page--home .hero-section--dark {
    padding-top: clamp(7rem, 12vw, 10rem) !important;
}

/* Eyebrow — editorial line + small-caps label */
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--primary-color);
}
.hero-eyebrow__line {
    display: inline-block;
    width: 2rem;
    height: 2px;
    background: var(--primary-color);
    flex-shrink: 0;
    border-radius: 2px;
}

/* Headline */
.hero-headline {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: clamp(3rem, 5.5vw, 4.5rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: #fff;
}
.hero-section--dark .hero-headline .text-primary {
    background: linear-gradient(125deg, var(--primary-color) 25%, #fbbf24 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-style: italic;
}

/* ─── Inner-page hero typography — shared across all dark hero strips ─────────── */
.page-hero-strip { padding: 4rem 0 3rem; }
.page-hero-title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3rem);
    color: #fff;
    line-height: 1.15;
}
.page-hero-accent {
    background: linear-gradient(125deg, var(--primary-color) 25%, #fbbf24 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-style: italic;
}
.page-hero-subtitle {
    font-size: 1.05rem;
    color: rgba(255,255,255,.65);
    max-width: 38rem;
}
.page-hero-strip--compact { padding: 2.5rem 0 2rem; }
.page-hero-date { font-size: .85rem; color: rgba(255,255,255,.45); margin: 0; }
.frontend-page--legal .page-hero-title { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.hero-section--dark .hero-eyebrow { color: rgba(255,255,255,.55); }

/* ─── Shared dark brand panel — CTA bands, auth panels, secondary dark sections ─ */
/*     Same brand colour/warmth as the hero but subordinate: glow only, no dot grid */
.dark-brand-panel {
    background: var(--text-dark, #1C1917);
    position: relative;
    overflow: hidden;
}
.dark-brand-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse 70% 70% at 85% 10%, rgba(var(--primary-color-rgb), .07) 0%, transparent 100%),
        radial-gradient(ellipse 50% 60% at 15% 85%, rgba(var(--primary-color-rgb), .04) 0%, transparent 100%);
    background-size: 100% 100%, 100% 100%;
    pointer-events: none;
    z-index: 0;
}
.dark-brand-panel > * { position: relative; z-index: 1; }

/* Headline accent on dark panels — gradient orange→amber, italic */
.dark-brand-panel .dark-panel-accent {
    background: linear-gradient(125deg, var(--primary-color) 25%, #fbbf24 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-style: italic;
}

/* Subtitle on dark panels */
.dark-brand-panel .dark-panel-sub {
    color: rgba(255,255,255,.62);
    line-height: 1.7;
}

/* Subtitle */
.hero-subtitle {
    color: rgba(255,255,255,.62);
    font-size: 1.05rem;
    line-height: 1.7;
    max-width: 460px;
}

/* Search module */
.hero-search-module {
    max-width: 580px;
}

/* Overflow fade wrapper — edge gradients + scroll arrows */
.hero-tabs-scroll-wrap {
    position: relative;
}
/* Right fade */
.hero-tabs-scroll-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 72px;
    background: linear-gradient(to right, transparent 0%, rgba(28,25,23,.8) 55%, #1C1917 100%);
    pointer-events: none;
    z-index: 2;
    transition: opacity .25s;
}
.hero-tabs-scroll-wrap.no-overflow::after,
.hero-tabs-scroll-wrap.is-scrolled-end::after {
    opacity: 0;
}
/* Left fade — mirror; shown when strip is scrolled right */
.hero-tabs-scroll-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 72px;
    background: linear-gradient(to left, transparent 0%, rgba(28,25,23,.8) 55%, #1C1917 100%);
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    transition: opacity .25s;
}
.hero-tabs-scroll-wrap.is-scrolled-left::before {
    opacity: 1;
}
/* Scroll arrow buttons */
.hero-tabs-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,.22);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    cursor: pointer;
    padding: 0;
    transition: background .2s;
    line-height: 1;
}
.hero-tabs-arrow:hover {
    background: rgba(255,255,255,.38);
}
.hero-tabs-arrow--left {
    left: 6px;
}
.hero-tabs-arrow--right {
    right: 6px;
}
.hero-tabs-arrow[hidden] {
    display: none;
}

/* Horizontal tab strip — chip approach: each tab is its own pill */
.hero-tabs-strip {
    overflow-x: auto;
    scrollbar-width: none;
    margin-bottom: 0.6rem;
}
.hero-tabs-strip::-webkit-scrollbar { display: none; }

.hero-tabs-inline {
    display: flex;
    gap: 0.4rem;
    flex-wrap: nowrap;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}

.hero-tabs-inline .nav-link {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: rgba(255,255,255,.75);
    border-radius: 8px;
    border: none;
    background: rgba(255,255,255,.15);
    white-space: nowrap;
    cursor: pointer;
    transition: color .2s, background .2s;
}
.hero-tabs-inline .nav-link:hover {
    color: #fff;
    background: rgba(255,255,255,.25);
}
.hero-tabs-inline .nav-link.active {
    background: #F8F6F3 !important;
    color: var(--text-dark) !important;
    transform: none !important;
    box-shadow: none !important;
}
.hero-tabs-inline .nav-link i {
    font-size: 0.82rem;
    opacity: 0.85;
}
.hero-tabs-inline .nav-link.active i {
    opacity: 1;
}

/* Search card — fully rounded, separated from tabs above */
.hero-search-card {
    background: #F8F6F3;
    border-radius: 12px;
    padding: 1.5rem 1.5rem 1rem;
    box-shadow: 0 20px 56px rgba(0,0,0,.3);
}

/* Stats row */
.hero-stats-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.hero-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.hero-stat__value {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 3vw, 2.5rem);
    color: #fff;
    font-weight: 400;
    line-height: 1;
}
.hero-stat__unit {
    font-family: var(--font-main);
    font-size: 1rem;
    color: var(--primary-color);
}
.hero-stat__label {
    font-size: 0.67rem;
    color: rgba(255,255,255,.45);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 600;
}
.hero-stat-divider {
    width: 1px;
    height: 3rem;
    background: rgba(255,255,255,.14);
    flex-shrink: 0;
}

/* ── Hero trust & stats strip ── */
.hero-trust-strip {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.hero-trust-stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.hero-trust-stat__value {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 2.5vw, 2.1rem);
    color: #fff;
    font-weight: 400;
    line-height: 1;
}
.hero-trust-stat__label {
    font-size: 0.65rem;
    color: rgba(255,255,255,.42);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 600;
}
.hero-trust-sep {
    width: 1px;
    height: 2.25rem;
    background: rgba(255,255,255,.13);
    flex-shrink: 0;
}
.hero-trust-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.hero-trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 6px;
    padding: .28rem .65rem;
    font-size: .72rem;
    font-weight: 600;
    color: rgba(255,255,255,.75);
    letter-spacing: .02em;
    white-space: nowrap;
}
.hero-trust-badge .bi {
    color: var(--primary-color);
    font-size: .78rem;
}

/* Image mosaic */
.hero-mosaic {
    display: flex;
    gap: 0.875rem;
    width: 100%;
    max-width: 500px;
}
.hero-mosaic__col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}
.hero-mosaic__col--offset {
    margin-top: 2.75rem;
}
.hero-mosaic__item {
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}
.hero-mosaic__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}
.hero-mosaic__item:hover .hero-mosaic__img {
    transform: scale(1.04);
}
.hero-mosaic__placeholder {
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,.05);
    border: 1px dashed rgba(255,255,255,.1);
}
/* Varied heights — lg/sm pair per column creates editorial asymmetry */
.hero-mosaic__item--lg { height: 235px; }
.hero-mosaic__item--sm { height: 155px; }

/* ─── 3-up asymmetric mosaic ───────────────────────────────────────────── */
.hero-mosaic--3up {
    position: relative;
    align-items: flex-start;
    max-width: 510px;
}
/* Featured (tall) column */
.hero-mosaic__col--featured {
    flex: 1.25;
}
.hero-mosaic__item--tall {
    flex: 1;
}
.hero-mosaic__item--tall .hero-mosaic__img {
    height: 420px;
}
.hero-mosaic__item--tall .hero-mosaic__placeholder {
    height: 420px;
}
/* Stack column — two images, offset down to create stagger */
.hero-mosaic__col--stack {
    flex: 1;
    margin-top: 2.75rem;
}
/* Stack images a touch shorter so proportions balance the tall image */
.hero-mosaic__col--stack .hero-mosaic__img,
.hero-mosaic__col--stack .hero-mosaic__placeholder {
    height: 186px;
}

/* ─── 4-up 2×2 staggered mosaic ───────────────────────────────────────── */
.hero-mosaic--4up {
    position: relative;
    align-items: flex-start;
    max-width: 510px;
}

/* ── Floating "live listings" badge ────────────────────────────────────── */
.hero-mosaic-badge {
    position: absolute;
    bottom: -0.875rem;
    left: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 999px;
    padding: 0.55rem 1.15rem 0.55rem 0.8rem;
    box-shadow: 0 8px 28px rgba(0,0,0,.22), 0 1px 4px rgba(0,0,0,.08);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-dark);
    white-space: nowrap;
    z-index: 3;
    pointer-events: none;
}
.hero-mosaic-badge__dot {
    width: 9px;
    height: 9px;
    background: #16a34a;
    border-radius: 50%;
    flex-shrink: 0;
    animation: badge-pulse 2.4s ease-in-out infinite;
}
@keyframes badge-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(22,163,74,.55); }
    55% { box-shadow: 0 0 0 5px rgba(22,163,74,0); }
}

/* ─── Navbar — white text when transparent over dark hero ─────────────── */
.main-header--home #mainNav.navbar-transparent .nav-link:not(.active),
.main-header--home #mainNav.navbar-transparent .navbar-brand span {
    color: rgba(255,255,255,.85) !important;
}
.main-header--home #mainNav.navbar-transparent .nav-link:hover {
    color: #fff !important;
}
.main-header--home #mainNav.navbar-transparent .navbar-toggler-icon {
    filter: invert(1);
}
.main-header--home #mainNav.navbar-transparent .btn-link {
    color: rgba(255,255,255,.75) !important;
}
.main-header--home #mainNav.navbar-transparent .btn-primary {
    background: rgba(255,255,255,.15) !important;
    border-color: rgba(255,255,255,.3) !important;
    color: #fff !important;
}
.main-header--home #mainNav.navbar-transparent .btn-outline-dark {
    border-color: rgba(255,255,255,.4) !important;
    color: rgba(255,255,255,.8) !important;
}
/* Cart icon on transparent header */
.main-header--home #mainNav.navbar-transparent .bi-cart3 {
    color: rgba(255,255,255,.8);
}

/* Active link on dark transparent nav — white to match surrounding links */
.main-header--home #mainNav.navbar-transparent .nav-link--main.active {
    color: #fff !important;
}
.main-header--home #mainNav.navbar-transparent .nav-link--main::before {
    background: rgba(255,255,255,.75);
}

/* When nav scrolls to white: reset all link colours to dark */
.main-header--home #mainNav.scrolled .nav-link,
.main-header--home #mainNav.scrolled .navbar-brand span {
    color: var(--text-dark) !important;
}
.main-header--home #mainNav.scrolled .nav-link--main.active {
    color: var(--primary-color) !important;
}
.main-header--home #mainNav.scrolled .nav-link--main::before {
    background: var(--primary-color);
}
.main-header--home #mainNav.scrolled .btn-link {
    color: var(--text-dark) !important;
}
.main-header--home #mainNav.scrolled .btn-primary {
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #fff !important;
}
.main-header--home #mainNav.scrolled .btn-outline-dark {
    border-color: rgba(15,23,42,.25) !important;
    color: var(--text-dark) !important;
}
.main-header--home #mainNav.scrolled .bi-cart3 {
    color: var(--text-dark);
}
.main-header--home #mainNav.scrolled .navbar-toggler-icon {
    filter: none;
}

/* Mobile collapsed menu stays readable on dark hero */
@media (max-width: 991.98px) {
    .main-header--home #mainNav.navbar-transparent .navbar-toggler {
        border-color: rgba(255,255,255,.3);
    }
}

/* ─── Section rhythm (Step 3) ──────────────────────────────────────────── */

/* Warm alternating section background */
.section-warm {
    background: #F4F0EC;
}

/* Spacious sections get more vertical breathing room */
.section-spacious {
    padding-top: clamp(4rem, 7vw, 6rem);
    padding-bottom: clamp(4rem, 7vw, 6rem);
}

/* Dark accent section */
.section-dark {
    background: var(--text-dark);
    position: relative;
    overflow: hidden;
}
.section-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse 70% 70% at 85% 10%, rgba(var(--primary-color-rgb), .07) 0%, transparent 100%),
        radial-gradient(ellipse 50% 60% at 15% 85%, rgba(var(--primary-color-rgb), .04) 0%, transparent 100%);
    background-size: 100% 100%, 100% 100%;
    pointer-events: none;
    z-index: 0;
}
.section-dark > .container-xl,
.section-dark > .container {
    position: relative;
    z-index: 1;
}
.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark .fw-800 {
    color: #fff !important;
}
.section-dark .text-muted,
.section-dark .sub-heading,
.section-dark .lead {
    color: rgba(255,255,255,.5) !important;
}
.section-dark-link {
    color: rgba(255,255,255,.7) !important;
}
.section-dark-link:hover {
    color: #fff !important;
}
/* Cards on dark section pop with stronger shadow */
.section-dark .glass-surface,
.section-dark .card {
    box-shadow: 0 8px 32px rgba(0,0,0,.3) !important;
}
/* Listing cards keep their white bg on dark section */
.section-dark .listing-card,
.section-dark .auto-card,
.section-dark .market-module-card {
    background: #fff !important;
}
/* Restore readable text colors inside white cards — undo the dark-section overrides */
.section-dark .listing-card .property-title,
.section-dark .listing-card h5,
.section-dark .listing-card h6,
.section-dark .listing-card .fw-800 {
    color: var(--text-dark) !important;
}
.section-dark .listing-card .text-muted,
.section-dark .listing-card .property-location {
    color: var(--text-muted) !important;
}

/* Section heading — consistent serif treatment */
.frontend-page--home h2.display-6,
.frontend-page--home h2.display-5 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.02em;
}

/* Sub-heading text below section titles */
.sub-heading {
    max-width: 520px;
}

/* Section separator: thin warm line between adjacent light sections */
.section-warm + .section-spacious,
.section-spacious + .section-warm {
    border-top: 1px solid rgba(28,25,23,.06);
}

/* ─── Card polish (Step 5) ──────────────────────────────────────────────── */

/* Price overlay — warm dark tint instead of cold Bootstrap bg-dark */
.listing-card .price-overlay,
.listing-card .bg-dark.bg-opacity-75{
    background:rgba(28,25,23,.82)!important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

/* Fix property-title text-truncate conflicting with webkit line-clamp */
.property-title.text-truncate{
    white-space:normal;
    text-overflow:clip;
}

/* Warm hover shadow on cards */
.listing-card:hover{
    box-shadow:0 16px 40px rgba(28,25,23,.14)!important;
}

/* Module cards — warm accent border on hover */
.market-module-card:hover{
    border-color:rgba(var(--primary-color-rgb),.35)!important;
    box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.12)!important;
}

/* Module icon — tighter warm bg */
.market-module-icon{
    border-radius:10px;
}

/* Location pill — warm dark on hover */
.location-pill:hover{
    background:var(--text-dark);
    border-color:var(--text-dark);
    color:#fff;
}

/* Taxonomy icon — neutral warm instead of hardcoded teal */
.taxonomy-icon{
    background:rgba(var(--primary-color-rgb),.08);
    color:var(--primary-color);
}

/* ─── Section heading system — DM Serif replaces fw-800 bold everywhere ─── */
.frontend-site section h2.fw-800 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.02em;
}
.frontend-site section h2.fw-800 .text-primary {
    font-style: italic;
}
/* Section view-all links — natural case, refined weight */
.frontend-site section .hvr-icon-forward {
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
}

/* ─── Discovery: module cards — data-first editorial design ─────────────── */
.market-module-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    position: relative;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}
.market-module-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--primary-color);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
}
.market-module-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 16px 40px rgba(var(--primary-color-rgb),.11) !important;
    border-color: rgba(var(--primary-color-rgb),.22) !important;
}
.market-module-card:hover::before {
    transform: scaleX(1);
}
.market-module-count {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    font-weight: 400;
    color: var(--text-dark);
    line-height: 1;
    margin-bottom: 0.35rem;
    position: relative;
    z-index: 1;
}
.market-module-label {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-dark);
    position: relative;
    z-index: 1;
}
.market-module-stat {
    font-size: 0.68rem;
    color: var(--primary-color);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-top: 0.3rem;
    position: relative;
    z-index: 1;
}
.market-module-bg-icon {
    position: absolute;
    bottom: -0.5rem;
    right: 0.75rem;
    font-size: 4.5rem;
    color: rgba(var(--primary-color-rgb),.06);
    pointer-events: none;
    line-height: 1;
    transition: color .3s ease, transform .3s ease;
}
.market-module-card:hover .market-module-bg-icon {
    color: rgba(var(--primary-color-rgb),.11);
    transform: scale(1.06) translateY(-3px);
}

/* ─── How It Works section ──────────────────────────────────────────────── */
.hiw-section {
    padding: clamp(3.5rem, 5vw, 5rem) 0;
    background: #f9f9f8;
}
.hiw-card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: var(--radius-card, 16px);
    padding: 2rem 1.5rem 1.75rem;
    height: 100%;
    transition: box-shadow .2s, transform .2s;
}
.hiw-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.09);
    transform: translateY(-2px);
}
.hiw-step-num {
    position: absolute;
    top: 1.1rem;
    right: 1.25rem;
    font-family: var(--font-heading);
    font-size: 2.8rem;
    font-weight: 400;
    color: rgba(0,0,0,.06);
    line-height: 1;
    pointer-events: none;
    user-select: none;
}
.hiw-icon-wrap {
    width: 3rem;
    height: 3rem;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.hiw-icon-wrap--primary { background: rgba(var(--primary-color-rgb),.1); color: var(--primary-color); }
.hiw-icon-wrap--info    { background: rgba(13,202,240,.1);  color: #0dcaf0; }
.hiw-icon-wrap--success { background: rgba(25,135,84,.1);   color: #198754; }
.hiw-icon-wrap--warning { background: rgba(255,193,7,.12);  color: #d39e00; }
.hiw-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: .5rem;
}
.hiw-desc {
    font-size: .865rem;
    color: rgba(0,0,0,.55);
    line-height: 1.6;
    margin-bottom: 0;
}

/* ─── CTA section ───────────────────────────────────────────────────────── */
.cta-section {
    background: var(--text-dark) !important;
    padding: clamp(4rem, 6vw, 6rem) 0;
    position: relative;
    overflow: hidden;
}
.cta-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse 70% 70% at 85% 10%, rgba(var(--primary-color-rgb), .07) 0%, transparent 100%),
        radial-gradient(ellipse 50% 60% at 15% 85%, rgba(var(--primary-color-rgb), .04) 0%, transparent 100%);
    background-size: 100% 100%, 100% 100%;
    pointer-events: none;
}
.cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    position: relative;
    z-index: 1;
    flex-wrap: wrap;
}
.cta-content {
    flex: 1 1 460px;
}
.cta-headline {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: clamp(2rem, 4vw, 3rem);
    color: #fff;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 1rem;
}
.cta-headline .text-primary {
    font-style: italic;
}
.cta-sub {
    color: rgba(255,255,255,.55);
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 2rem;
    max-width: 44ch;
}
.cta-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
}
.btn-cta-lg {
    padding: 0.7rem 1.5rem !important;
    font-size: 0.95rem !important;
}
/* ── Stats column ── */
.cta-stats {
    display: flex;
    gap: 2.5rem;
    flex-shrink: 0;
}
.cta-stat {
    display: flex;
    flex-direction: column;
}
.cta-stat__value {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 3vw, 2.5rem);
    font-weight: 400;
    color: #fff;
    line-height: 1;
}
.cta-stat__unit {
    font-size: 0.6em;
    color: var(--primary-color);
    vertical-align: middle;
}
.cta-stat__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(255,255,255,.38);
    margin-top: 0.35rem;
}
@media (max-width: 767px) {
    .cta-stats {
        gap: 2rem;
    }
    .cta-section {
        padding: 3.5rem 0;
    }
}

/* ─── Listing cards — clean editorial redesign ──────────────────────────── */

/* Base: white bg, clean border, no frosted glass */
.listing-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Card title: DM Serif for an editorial, magazine-quality feel */
.listing-card .property-title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: clamp(.95rem, 1.3vw, 1.1rem);
    line-height: 1.35;
    letter-spacing: -.01em;
    min-height: auto;
}

/* Location icon: warm primary tint instead of Bootstrap danger red */
.lc-geo-icon {
    color: rgba(var(--primary-color-rgb), .5);
}

/* Price overlay: warm dark (already set in Step 5) + tag shape, not pill */
.listing-card .price-overlay {
    border-radius: 6px !important;
}

/* Metric values: DM Serif for numbers — makes stats read as editorial data */
.listing-card .metric-value {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: clamp(.85rem, 1.4vw, 1rem);
    line-height: 1.2;
}
.listing-card .metric-label {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

/* ── Event card ── */
.event-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    border-radius: 16px !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(28,25,23,.12) !important;
    border-color: rgba(var(--primary-color-rgb), .18) !important;
}
.event-card__title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.35;
    letter-spacing: -.01em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.evc-date-badge {
    background: #fff;
    border-radius: 8px;
    padding: 0.25rem 0.55rem;
    min-width: 46px;
    text-align: center;
    box-shadow: 0 2px 10px rgba(15,23,42,.15);
}
.evc-date-day {
    display: block;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 1.25rem;
    line-height: 1;
    color: var(--primary-color);
}
.evc-date-month {
    display: block;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(15,23,42,.45);
    margin-top: 1px;
}

/* ─── Careers & Classifieds split panels ──────────────────────────────────── */
.split-panel {
    background: #fff;
    border: 1.5px solid rgba(15,23,42,.07);
    border-radius: 20px;
    padding: 2rem 2.25rem;
    overflow: hidden;
}
.split-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}
.split-panel__title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 1.25rem;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    margin-bottom: 0;
}
.split-panel__link {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--primary-color);
    text-decoration: none;
    letter-spacing: 0.01em;
}
.split-panel__link:hover { color: var(--primary-dark); }
.split-panel__link:hover .bi-arrow-right { transform: translateX(3px); }
.split-panel__link .bi-arrow-right { transition: transform 0.2s; display: inline-block; }

/* Job list items */
.job-item__title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: -0.01em;
    transition: color 0.18s;
}
.list-group-item:hover .job-item__title { color: var(--primary-color); }
.job-item__badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--primary-color);
    background: rgba(var(--primary-color-rgb), .08);
    border: 1px solid rgba(var(--primary-color-rgb), .18);
    border-radius: 4px;
    padding: 0.2rem 0.55rem;
    white-space: nowrap;
}

/* Classified mini cards */
.classified-mini {
    background: #fff;
    border: 1.5px solid rgba(15,23,42,.07);
    transition: transform .2s ease, box-shadow .2s ease;
}
.classified-mini:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(28,25,23,.1);
}
.classified-mini__badge {
    background: rgba(28,25,23,.65);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #fff;
    border: none;
    font-size: 0.6rem;
    padding: 0.2rem 0.45rem;
}
.classified-mini__title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 0.875rem;
    letter-spacing: -0.01em;
    transition: color .18s;
}
.group:hover .classified-mini__title { color: var(--primary-color); }

/* ─── Service category cards ─────────────────────────────────────────────── */
.svc-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: transform .2s ease, box-shadow .2s ease;
}
.svc-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(28,25,23,.1);
}
.svc-card__title {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
}
.svc-card__icon-wrap {
    transition: transform .25s ease;
}
.svc-card:hover .svc-card__icon-wrap {
    transform: scale(1.08);
}

/* ─── Taxonomy chips ──────────────────────────────────────────────────────── */
.taxonomy-chip {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.taxonomy-chip:hover {
    border-color: rgba(var(--primary-color-rgb), .3) !important;
    box-shadow: 0 6px 18px rgba(28,25,23,.08);
}
.taxonomy-chip__label {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 0.875rem;
    letter-spacing: -0.01em;
}

/* ─── Detail page global heading system ──────────────────────────────────── */
.frontend-page--detail h1.fw-800,
.frontend-page--detail h2.fw-800,
.frontend-page--detail h3.fw-800,
.frontend-page--detail h4.fw-800 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.02em;
}

/* ─── Property sale detail ────────────────────────────────────────────────── */
.detail-main-card {
    background: #fff;
    border: 1.5px solid rgba(15,23,42,.07);
    border-radius: 16px;
}

/* Key facts bar (replaces pd-price-box) */
.property-key-facts .key-fact-item:last-child {
    border-right: 0 !important;
}
.key-fact-icon {
    display: block;
    font-size: 1.1rem;
    color: var(--primary-color);
    margin-bottom: 0.25rem;
    opacity: 0.85;
}
@media (max-width: 575.98px) {
    .property-key-facts .key-fact-item {
        min-width: 50%;
    }
    .property-key-facts .key-fact-item:nth-child(even) {
        border-right: 0 !important;
    }
}

/* Property title block */
.property-title-block h1 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.02em;
}
.property-title-block h2 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.03em;
}

/* Detail gallery slot — full-width hero */
.detail-page__gallery {
    width: 100%;
}

/* Price box (legacy — kept for non-property detail pages) */
.pd-price-box {
    background: #fff;
    border: 1.5px solid rgba(15,23,42,.07);
    border-radius: 16px;
    min-width: 240px;
}
.pd-price-box h2.fw-800 {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.03em;
}

/* Sidebar cards (forms + agent) */
.detail-sidebar-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    border-radius: 16px !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
}

/* Filter sidebar wrapper */
.filter-sidebar-card {
    background: #fff !important;
    border: 1.5px solid rgba(15,23,42,.07) !important;
    border-radius: 16px !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
}

/* Key feature stat values */
.feature-card .fw-800 {
    font-family: var(--font-heading);
    font-weight: 400;
}

/* Amenity chips */
.amenities-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.amenity-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background: rgba(248,246,243,.8);
    border: 1.5px solid rgba(15,23,42,.08);
    border-radius: 999px;
    transition: border-color .15s ease, background .15s ease;
}
.amenity-chip:hover {
    background: rgba(var(--primary-color-rgb),.05);
    border-color: rgba(var(--primary-color-rgb),.25);
}
.amenity-chip__icon {
    color: var(--primary-color);
    font-size: .88rem;
    opacity: .85;
    flex: 0 0 auto;
}
.amenity-chip__label {
    font-size: .85rem;
    font-weight: 600;
    color: var(--text-dark);
    white-space: nowrap;
}

/* Detail section sub-headings */
.detail-section-title {
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.02em;
}

/* ─── Auto detail quick-spec items ───────────────────────────────────────── */
.feature-item {
    background: #fff;
    border: 1.5px solid rgba(15,23,42,.07);
    transition: transform .2s ease, box-shadow .2s ease;
}
.feature-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(28,25,23,.08);
}
body.has-admin-bar{--frontend-header-offset:calc(76px + var(--admin-bar-height,32px))}
body.has-admin-bar .detail-page section{scroll-margin-top:calc(96px + var(--admin-bar-height,32px))}
.form-check-input:checked{background-color:var(--primary-color)!important;border-color:var(--primary-color)!important}
.form-check-input:focus{border-color:rgba(var(--primary-color-rgb),.5);box-shadow:0 0 0 .25rem rgba(var(--primary-color-rgb),.2)}

/* ── Legal pages ──────────────────────────────────────────────────────────── */
.legal-doc{ line-height:1.75 }
.legal-section{
    margin-bottom:2.5rem;
    scroll-margin-top:calc(var(--frontend-header-offset,76px) + 1.5rem);
}
.legal-section:last-child{ margin-bottom:0 }
.legal-h2{
    font-family:var(--font-heading);
    font-size:1.3rem;
    color:var(--text-dark);
    margin-bottom:.75rem;
    padding-bottom:.5rem;
    border-bottom:2px solid var(--primary-light);
}

/* ── AI Natural-Language Search ──────────────────────────────────────────── */

/* Tab pill */
.hero-tabs-inline .nav-link--ai {
    background: linear-gradient(135deg,
        rgba(var(--primary-color-rgb),.28) 0%,
        rgba(var(--primary-color-rgb),.12) 100%);
    color: rgba(255,255,255,.9);
    border: 1px solid rgba(var(--primary-color-rgb),.4);
}
.hero-tabs-inline .nav-link--ai:hover {
    background: linear-gradient(135deg,
        rgba(var(--primary-color-rgb),.42) 0%,
        rgba(var(--primary-color-rgb),.22) 100%);
    color: #fff;
}
.hero-tabs-inline .nav-link--ai.active {
    background: var(--primary-color) !important;
    color: #fff !important;
    border-color: transparent;
    box-shadow: 0 2px 10px rgba(var(--primary-color-rgb),.35) !important;
}

/* AI pane wrapper */
.hero-ai-search {
    text-align: left;
}

/* Stars icon tinted primary */
.hsf-icon--ai {
    color: var(--primary-color);
}

/* Input — extra right padding makes room for the mic button */
.hsf-input-wrap--with-mic .hsf-input {
    padding-right: 3rem;
}

/* Mic button */
.ai-mic-btn {
    position: absolute;
    right: .5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid rgba(var(--primary-color-rgb), .3);
    background: rgba(var(--primary-color-rgb), .1);
    color: var(--primary-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    padding: 0;
    flex-shrink: 0;
    transition: color .15s, background .15s, border-color .15s, box-shadow .15s;
}
.ai-mic-btn:hover {
    background: rgba(var(--primary-color-rgb), .18);
    border-color: rgba(var(--primary-color-rgb), .5);
    box-shadow: 0 0 0 4px rgba(var(--primary-color-rgb), .1);
}
.ai-mic-btn--listening {
    color: #dc2626 !important;
    background: rgba(220,38,38,.1) !important;
    animation: mic-pulse 1.1s ease-in-out infinite;
}
@keyframes mic-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,.4); }
    50%       { box-shadow: 0 0 0 7px rgba(220,38,38,0); }
}

/* Analyse button — gradient version */
.hsf-submit-btn--ai {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
    box-shadow: 0 4px 14px rgba(var(--primary-color-rgb),.3);
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.hsf-submit-btn--ai:hover:not(:disabled) {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%);
    box-shadow: 0 6px 20px rgba(var(--primary-color-rgb),.38);
}
.hsf-submit-btn--ai:disabled {
    opacity: .75;
    cursor: wait;
    transform: none;
}

/* Spinner inside button */
.ai-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ai-spin .65s linear infinite;
    vertical-align: middle;
    flex-shrink: 0;
}
@keyframes ai-spin {
    to { transform: rotate(360deg); }
}

/* Thinking / loader panel */
.ai-thinking-panel {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: .75rem;
    padding: .6rem 1rem;
    border-radius: 10px;
    background: rgba(var(--primary-color-rgb),.05);
    animation: ai-panel-in .2s ease both;
}
.ai-thinking-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--primary-color);
    opacity: .3;
    animation: ai-dot-pulse 1.2s ease-in-out infinite;
}
.ai-thinking-dot:nth-child(2) { animation-delay: .2s; }
.ai-thinking-dot:nth-child(3) { animation-delay: .4s; }
@keyframes ai-dot-pulse {
    0%, 80%, 100% { opacity: .2; transform: scale(.8); }
    40%           { opacity: 1;  transform: scale(1.15); }
}
.ai-thinking-label {
    font-size: .78rem;
    font-weight: 600;
    color: var(--primary-color);
    letter-spacing: .02em;
}

/* Summary panel */
.ai-summary-panel {
    margin-top: .75rem;
    border-radius: 12px;
    border: 1.5px solid rgba(var(--primary-color-rgb),.18);
    background: #fff;
    overflow: hidden;
    animation: ai-panel-in .25s ease both;
}
@keyframes ai-panel-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.ai-summary-body {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
}
.ai-summary-icon {
    font-size: 1.3rem;
    color: var(--primary-color);
    flex-shrink: 0;
    opacity: .8;
}
.ai-summary-content {
    flex: 1;
    min-width: 0;
}
.ai-summary-module {
    display: inline-block;
    margin-bottom: .3rem;
    padding: .18rem .65rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    background: rgba(var(--primary-color-rgb),.1);
    color: var(--primary-color);
}
.ai-summary-module--error { background: #fee2e2; color: #dc2626; }
.ai-summary-sentence {
    margin: 0;
    font-size: .88rem;
    font-weight: 500;
    color: #1f2937;
    line-height: 1.45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ai-go-now-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1.5px solid var(--primary-color);
    background: var(--primary-color);
    color: #fff;
    font-size: .9rem;
    cursor: pointer;
    transition: background .15s, transform .15s;
}
.ai-go-now-btn:hover  { background: var(--primary-dark); transform: scale(1.08); }
.ai-go-now-btn:disabled { opacity: .35; cursor: not-allowed; transform: none; }

/* Auto-redirect progress bar */
.ai-redirect-track {
    height: 3px;
    background: rgba(var(--primary-color-rgb),.1);
}
.ai-redirect-bar {
    height: 100%;
    width: 0%;
    background: var(--primary-color);
}
.ai-redirect-label {
    padding: .3rem 1rem;
    margin: 0;
    font-size: .7rem;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .06em;
}

/* Recent searches */
.ai-recents {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .6rem;
}
.ai-recents-label {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(255,255,255,.5);
    white-space: nowrap;
    flex-shrink: 0;
}
.hero-search-card .ai-recents-label { color: #9ca3af; }

.ai-recent-chip {
    display: inline-flex;
    align-items: center;
    gap: 0;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.1);
    overflow: hidden;
    transition: border-color .15s, background .15s;
}
.hero-search-card .ai-recent-chip {
    border-color: #e5e7eb;
    background: #f9fafb;
}
.ai-recent-chip:hover { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.18); }
.hero-search-card .ai-recent-chip:hover { border-color: var(--primary-color); background: rgba(var(--primary-color-rgb),.05); }

.ai-recent-chip-text {
    padding: .22rem .55rem;
    font-size: .72rem;
    font-weight: 500;
    color: rgba(255,255,255,.85);
    background: none;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
}
.hero-search-card .ai-recent-chip-text { color: #374151; }
.ai-recent-chip-text:hover { color: #fff; }
.hero-search-card .ai-recent-chip-text:hover { color: var(--primary-color); }

.ai-recent-chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-right: 3px;
    font-size: .7rem;
    color: rgba(255,255,255,.5);
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 50%;
    transition: background .12s, color .12s;
    flex-shrink: 0;
}
.hero-search-card .ai-recent-chip-remove { color: #9ca3af; }
.ai-recent-chip-remove:hover { background: rgba(255,255,255,.2); color: #fff; }
.hero-search-card .ai-recent-chip-remove:hover { background: #fee2e2; color: #dc2626; }

.ai-recents-clear-all {
    font-size: .68rem;
    font-weight: 600;
    color: rgba(255,255,255,.4);
    background: none;
    border: none;
    cursor: pointer;
    padding: .2rem .3rem;
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
    transition: color .12s;
    margin-left: .2rem;
}
.hero-search-card .ai-recents-clear-all { color: #9ca3af; }
.ai-recents-clear-all:hover { color: rgba(255,255,255,.75); }
.hero-search-card .ai-recents-clear-all:hover { color: #dc2626; }

/* Trending chip — no remove button, amber fire accent */
.ai-trending .ai-recents-label { color: rgba(251,191,36,.75); }
.hero-search-card .ai-trending .ai-recents-label { color: #d97706; }
.ai-trending-chip .ai-recent-chip-text {
    padding-right: .55rem;
    border-radius: 999px;
}

/* Hint line */
.ai-search-hint {
    margin: .55rem 0 0;
    font-size: .74rem;
    color: rgba(255,255,255,.45);
    line-height: 1.5;
}
.hero-search-card .ai-search-hint {
    color: #9ca3af;
}
.legal-h3{
    font-size:1rem;
    font-weight:700;
    color:var(--text-dark);
    margin-top:1.25rem;
    margin-bottom:.5rem;
}
.legal-list{ padding-left:1.25rem; color:var(--text-muted) }
.legal-list li{ margin-bottom:.4rem }
.legal-toc-link{
    display:block;
    padding:.35rem .625rem;
    font-size:.875rem;
    color:var(--text-muted);
    text-decoration:none;
    border-radius:6px;
    border-left:2px solid transparent;
    transition:background .15s,color .15s,border-color .15s;
}
.legal-toc-link:hover{
    background:rgba(var(--primary-color-rgb),.06);
    color:var(--primary-color);
}
.legal-toc-link.is-active{
    background:rgba(var(--primary-color-rgb),.08);
    color:var(--primary-color);
    font-weight:700;
    border-left-color:var(--primary-color);
}

/* ── Cart quantity controls ───────────────────────────────────────────────── */
.cart-qty-control{ display:flex;align-items:center;gap:.25rem }
.cart-qty-btn{
    width:2rem;
    height:2rem;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:.5rem!important;
    font-size:.8125rem;
    flex-shrink:0;
}
.cart-qty-input{
    width:3rem!important;
    height:2rem;
    padding:.25rem .375rem;
    font-size:.875rem;
    border-radius:.5rem!important;
    -moz-appearance:textfield;
}
.cart-qty-input::-webkit-outer-spin-button,
.cart-qty-input::-webkit-inner-spin-button{ -webkit-appearance:none;margin:0 }
[x-cloak]{ display:none!important }

/* ── Stripe Elements — brand-coloured focus ring ──────────────────────────── */
[data-stripe-card-element].stripe-focused{
    border-color:rgba(var(--primary-color-rgb),.5)!important;
    box-shadow:0 0 0 .25rem rgba(var(--primary-color-rgb),.18)!important;
    outline:none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ACCESSIBILITY
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Skip link ─────────────────────────────────────────────────────────── */
.skip-link{
    position:fixed;
    top:-100%;
    left:1rem;
    z-index:10000;
    padding:.5rem 1.25rem;
    background:var(--primary-color);
    color:#fff;
    font-weight:700;
    font-size:.875rem;
    border-radius:0 0 .5rem .5rem;
    text-decoration:none;
    transition:top .18s ease;
    box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.skip-link:focus{
    top:0;
    outline:2px solid #fff;
    outline-offset:3px;
}

/* ── Global keyboard focus ring ────────────────────────────────────────── */
/* Only show for keyboard navigation (not mouse clicks) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex="0"]:focus-visible{
    outline:2.5px solid var(--primary-color)!important;
    outline-offset:2px;
}
/* Buttons get a box-shadow ring — integrates better with pill/rounded shapes */
.btn:focus-visible{
    outline:none!important;
    box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.35)!important;
}
/* Nav links: slightly more offset so ring clears the link text */
.nav-link:focus-visible,
.navbar-brand:focus-visible,
.ft-link:focus-visible,
.ft-social-icon:focus-visible,
.dropdown-item:focus-visible{
    outline:2px solid var(--primary-color)!important;
    outline-offset:3px;
    border-radius:4px;
}
