/* Courtesywide inner-page hero + footer system, based on the approved Azari layout. */
.cw-inner-hero {
    padding: clamp(28px,4vw,54px) 0 clamp(36px,5vw,70px);
    background: linear-gradient(180deg,#f8faf8 0%,#fff 100%);
    overflow: clip;
}
.cw-inner-hero-shell { width: 80%; max-width: 1500px; }
.cw-inner-hero-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr);
    gap: 0;
    align-items: stretch;
    min-height: clamp(470px,42vw,620px);
}
.cw-inner-hero-copy {
    position: relative;
    z-index: 3;
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    width: calc(100% + clamp(70px,8vw,124px));
    padding: clamp(28px,3vw,46px);
    border: 1px solid var(--border,#e4eaf1);
    border-radius: 22px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 22px 54px rgba(15,39,66,.14);
}
.cw-inner-hero-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0 0 clamp(18px,2vw,28px);
    color: var(--muted,#64748b);
    font-size: 10.5px;
    line-height: 1.45;
}
.cw-inner-hero-breadcrumbs a { color: var(--primary); font-weight: 700; }
.cw-inner-hero-breadcrumbs i { width: 12px; height: 12px; color: #aab5c1; }
.cw-inner-hero-kicker {
    display: block;
    margin-bottom: 11px;
    color: var(--primary);
    font-size: 10.5px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.cw-inner-hero h1 {
    max-width: 14ch;
    margin: 0;
    color: var(--navy,#0f2742);
    font-family: var(--site-font,"Kumbh Sans"),sans-serif;
    font-size: clamp(37px,3.8vw,60px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -.035em;
    text-wrap: balance;
    overflow-wrap: anywhere;
}
.cw-inner-hero-subtitle {
    max-width: 62ch;
    margin: 18px 0 0;
    color: var(--muted,#64748b);
    font-size: clamp(13px,1vw,16px);
    line-height: 1.7;
}
.cw-inner-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--border,#e4eaf1);
    color: #536274;
    font-size: 11px;
}
.cw-inner-hero-meta span { display: inline-flex; align-items: center; gap: 6px; }
.cw-inner-hero-meta i { width: 14px; height: 14px; color: var(--primary); }
.cw-inner-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.cw-inner-hero-media {
    position: relative;
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: 26px;
    background: #edf2f5;
    box-shadow: 0 24px 58px rgba(15,39,66,.15);
    isolation: isolate;
}
.cw-inner-hero-media > img,
.cw-inner-hero-media > video,
.cw-inner-hero-media > .managed-split-slider,
.cw-inner-hero-media > .media-fallback {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover;
    object-position: var(--cw-hero-position,center center);
    position: absolute;
    inset: 0;
}
.cw-inner-hero-media > .managed-split-slider { background-size: cover; background-position: var(--cw-hero-position,center center); }
.cw-inner-hero-media::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); z-index:2; }
.cw-inner-hero-gallery {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    background: rgba(255,255,255,.94);
    color: var(--navy);
    box-shadow: 0 10px 26px rgba(15,39,66,.18);
    font-weight: 800;
    cursor: pointer;
}
.cw-inner-hero-gallery i { width: 16px; height: 16px; color: var(--primary); }
.cw-inner-hero-gallery strong { display:grid; place-items:center; min-width:24px; height:24px; padding:0 6px; border-radius:999px; background:var(--primary); color:#fff; font-size:10px; }

/* Remove spacing artifacts from the legacy hero immediately followed by search/summary bars. */
.cw-inner-hero + .floating-search-section,
.cw-inner-hero + .service-search-wrap,
.cw-inner-hero + .premium-summary-strip,
.cw-inner-hero + .type-summary-strip,
.cw-inner-hero + .park-facts-bar,
.cw-inner-hero + .departure-filter-section { margin-top: 0; }

@media (max-width:1199.98px) {
    .cw-inner-hero { position:relative; padding:0; background:var(--navy); color:#fff; }
    .cw-inner-hero-shell { width:100%; max-width:none; }
    .cw-inner-hero-card { display:flex; min-height:350px; align-items:flex-end; overflow:hidden; }
    .cw-inner-hero-media { position:absolute; inset:0; width:100%; height:100%; min-height:0; border-radius:0; box-shadow:none; }
    .cw-inner-hero-media::before { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,rgba(6,23,38,.78) 0%,rgba(6,23,38,.60) 50%,rgba(6,23,38,.30) 100%); }
    .cw-inner-hero-copy {
        position:relative;
        z-index:3;
        width:min(1120px,calc(100% - 48px));
        max-width:none;
        margin-inline:auto;
        padding:76px 0 38px;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
        color:#fff;
    }
    .cw-inner-hero-breadcrumbs { margin-bottom:12px; color:rgba(255,255,255,.78); }
    .cw-inner-hero-breadcrumbs a,.cw-inner-hero-breadcrumbs i,.cw-inner-hero-kicker { color:#fff; }
    .cw-inner-hero h1 { max-width:19ch; color:#fff; font-size:clamp(38px,5vw,58px); text-shadow:0 2px 18px rgba(0,0,0,.2); }
    .cw-inner-hero-subtitle { max-width:760px; margin-top:12px; color:rgba(255,255,255,.92); font-size:14px; }
    .cw-inner-hero-meta { max-width:760px; margin-top:16px; padding-top:13px; border-top-color:rgba(255,255,255,.25); color:rgba(255,255,255,.9); }
    .cw-inner-hero-meta i { color:#fff; }
}
@media (max-width:720px) {
    .cw-inner-hero-card { min-height:330px; }
    .cw-inner-hero-copy { width:calc(100% - 28px); padding:62px 0 28px; }
    .cw-inner-hero h1 { max-width:none; font-size:clamp(32px,10vw,44px); line-height:1.04; }
    .cw-inner-hero-subtitle { font-size:13px; line-height:1.6; }
    .cw-inner-hero-meta { gap:8px 12px; font-size:10px; }
    .cw-inner-hero-actions { display:grid; grid-template-columns:1fr; }
    .cw-inner-hero-actions .btn { width:100%; justify-content:center; }
    .cw-inner-hero-gallery { right:12px; bottom:12px; padding:8px 11px; font-size:11px; }
}

/* Azari-inspired Courtesywide footer: solid colour only, no background image. */
.site-footer.cw-azari-footer {
    position:relative;
    margin-top:0;
    padding:48px 0 0;
    background:var(--navy,#0f2742) !important;
    background-image:none !important;
    color:#fff;
}
.cw-footer-main {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr);
    gap:32px;
    align-items:start;
}
.cw-footer-main > * { min-width:0; }
.cw-footer-logo { display:inline-flex; width:142px; height:82px; padding:5px; border-radius:8px; background:#fff; }
.cw-footer-logo img { width:100%; height:100%; object-fit:contain; }
.cw-footer-brand p,.cw-footer-newsletter p { width:100%; max-width:none; margin:14px 0 0; color:#cbd6e1; font-size:13px; line-height:1.7; }
.cw-footer-socials { display:flex; gap:8px; margin-top:15px; }
.cw-footer-socials a { display:grid; place-items:center; width:31px; height:31px; margin:0; border-radius:8px; background:rgba(255,255,255,.08); color:#fff; }
.cw-footer-socials a:hover { background:var(--primary); color:#fff; }
.cw-footer-socials i { width:15px; height:15px; }
.cw-footer-title,.cw-footer-newsletter h3 { margin:0 0 12px; color:#fff; font-size:18px; font-weight:800; }
.cw-footer-links { display:flex; flex-direction:column; gap:7px; }
.cw-footer-links a,.cw-footer-links span { display:flex; align-items:flex-start; gap:8px; margin:0; color:#edf3f8; font-size:13px; line-height:1.55; }
.cw-footer-links a::before { content:"›"; color:var(--primary); font-size:19px; line-height:.8; }
.cw-footer-contact a::before { display:none; }
.cw-footer-contact i { width:14px; height:14px; margin-top:2px; color:var(--primary); }
.cw-footer-subscribe { display:grid; grid-template-columns:minmax(0,1fr) auto; margin-top:14px; }
.cw-footer-subscribe input[type="email"] { min-width:0; flex:1; border:0; border-radius:7px 0 0 7px; padding:11px 12px; font-size:11px; }
.cw-footer-subscribe button { border-radius:0 7px 7px 0; padding:10px 13px; }
.cw-footer-consent { grid-column:1 / -1; display:flex; gap:7px; align-items:flex-start; margin-top:8px; color:#b9c6d2; font-size:12px; line-height:1.5; }
.cw-footer-consent input { margin-top:2px; }
.cw-footer-consent a { display:inline; margin:0; text-decoration:underline; }
.cw-footer-bottom {
    margin-top:30px;
    padding:16px 0 20px;
    border-top:1px solid rgba(255,255,255,.16);
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:18px;
    align-items:center;
    color:#b9c6d2;
    font-size:13px;
}
.cw-footer-bottom > div { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.cw-footer-bottom a { margin:0; color:#fff; }
.cw-footer-bottom > span:last-child { text-align:right; }
.cw-footer-love { color:#ff5c73; }
@media (max-width:1050px) {
    .cw-footer-main { grid-template-columns:1fr 1fr; gap:28px 34px; }
    .cw-footer-brand,.cw-footer-newsletter { grid-column:1 / -1; }
    .cw-footer-newsletter { display:grid; grid-template-columns:1fr minmax(330px,1fr); gap:8px 24px; align-items:center; padding-top:8px; }
    .cw-footer-newsletter .cw-footer-subscribe { grid-column:2; grid-row:1 / 3; }
}
@media (max-width:700px) {
    .site-footer.cw-azari-footer { padding-top:34px; }
    .cw-footer-main { grid-template-columns:1fr; gap:24px; }
    .cw-footer-brand,.cw-footer-newsletter { grid-column:auto; }
    .cw-footer-column,.cw-footer-newsletter { padding-top:18px; border-top:1px solid rgba(255,255,255,.16); }
    .cw-footer-newsletter { display:block; }
    .cw-footer-logo { width:125px; height:72px; }
    .cw-footer-subscribe { grid-template-columns:1fr auto; }
    .cw-footer-bottom { grid-template-columns:1fr; gap:8px; }
    .cw-footer-bottom > div { justify-content:flex-start; }
    .cw-footer-bottom > span:last-child { text-align:left; }
}


/* ================================================================
   MOBILE/TABLET INNER HERO MEDIA — SHOW THE COMPLETE UPLOADED IMAGE
   Desktop keeps the layered Azari-style crop. At 900px and below the
   media uses its natural ratio, so no top/bottom/side content is lost.
   ================================================================ */
@media (max-width:900px) {
    .cw-inner-hero {
        padding:0 0 22px !important;
        background:#f3f6f9 !important;
        color:var(--navy,#0f2742) !important;
        overflow:visible !important;
    }

    .cw-inner-hero-shell {
        width:100% !important;
        max-width:none !important;
    }

    .cw-inner-hero-card {
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        min-height:0 !important;
        overflow:visible !important;
    }

    .cw-inner-hero-media {
        order:1 !important;
        position:relative !important;
        inset:auto !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        margin:0 !important;
        border-radius:0 !important;
        background:#eef3f7 !important;
        box-shadow:none !important;
        overflow:hidden !important;
    }

    .cw-inner-hero-media::before {
        display:none !important;
    }

    .cw-inner-hero-media > img,
    .cw-inner-hero-media > video,
    .cw-inner-hero-media > .managed-split-video {
        position:relative !important;
        inset:auto !important;
        display:block !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        object-fit:contain !important;
        object-position:center center !important;
        background:#eef3f7 !important;
    }

    .cw-inner-hero-media > .media-fallback {
        position:relative !important;
        inset:auto !important;
        width:100% !important;
        height:auto !important;
        min-height:260px !important;
    }

    /* Slider heroes do not expose an intrinsic <img>; contain keeps every
       slide visible without cropping while preserving a stable hero area. */
    .cw-inner-hero-media > .managed-split-slider {
        position:relative !important;
        inset:auto !important;
        display:block !important;
        width:100% !important;
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:16 / 10 !important;
        background-size:contain !important;
        background-position:center center !important;
        background-repeat:no-repeat !important;
        background-color:#eef3f7 !important;
    }

    .cw-inner-hero-copy {
        order:2 !important;
        position:relative !important;
        z-index:4 !important;
        width:calc(100% - 24px) !important;
        max-width:none !important;
        margin:-12px auto 0 !important;
        padding:17px 16px 18px !important;
        border:1px solid var(--border,#e4eaf1) !important;
        border-radius:17px !important;
        background:rgba(255,255,255,.98) !important;
        box-shadow:0 12px 28px rgba(15,39,66,.10) !important;
        color:var(--navy,#0f2742) !important;
    }

    .cw-inner-hero-breadcrumbs {
        margin-bottom:9px !important;
        color:var(--muted,#64748b) !important;
    }

    .cw-inner-hero-breadcrumbs a,
    .cw-inner-hero-kicker {
        color:var(--primary) !important;
    }

    .cw-inner-hero-breadcrumbs i {
        color:#9aa8b7 !important;
    }

    .cw-inner-hero-breadcrumbs span {
        color:var(--navy,#0f2742) !important;
    }

    .cw-inner-hero h1 {
        max-width:none !important;
        color:var(--navy,#0f2742) !important;
        font-size:clamp(25px,7.2vw,34px) !important;
        line-height:1.08 !important;
        letter-spacing:-.025em !important;
        text-shadow:none !important;
    }

    .cw-inner-hero-subtitle {
        margin-top:9px !important;
        color:var(--muted,#64748b) !important;
        font-size:12.5px !important;
        line-height:1.55 !important;
    }

    .cw-inner-hero-meta {
        gap:7px 12px !important;
        margin-top:12px !important;
        padding-top:11px !important;
        border-top-color:var(--border,#e4eaf1) !important;
        color:#536274 !important;
        font-size:10px !important;
    }

    .cw-inner-hero-meta i {
        color:var(--secondary,var(--primary)) !important;
    }

    .cw-inner-hero-actions {
        margin-top:14px !important;
    }
}

@media (max-width:520px) {
    .cw-inner-hero-copy {
        width:calc(100% - 18px) !important;
        padding:14px 13px 15px !important;
        border-radius:15px !important;
    }

    .cw-inner-hero h1 {
        font-size:25px !important;
    }

    .cw-inner-hero-subtitle {
        font-size:12px !important;
    }
}

/* ================================================================
   VEHICLE VISUAL TOUR
   Gallery images are intentionally contained rather than covered, so
   exterior, interior and pop-up roof details remain fully visible.
   ================================================================ */
.vehicle-visual-tour-section {
    padding-top:42px;
    padding-bottom:42px;
    background:#fff;
}

.vehicle-visual-tour-heading {
    margin-bottom:20px;
}

.vehicle-visual-tour-heading p {
    max-width:720px;
}

.vehicle-visual-tour {
    display:grid;
    grid-template-columns:minmax(0,1fr) 280px;
    gap:16px;
    align-items:stretch;
}

.vehicle-visual-stage {
    position:relative;
    min-width:0;
    min-height:460px;
    padding:0;
    border:1px solid var(--border,#e4eaf1);
    border-radius:20px;
    overflow:hidden;
    background:#eef3f7;
    cursor:zoom-in;
}

.vehicle-visual-stage > img {
    display:block;
    width:100%;
    height:100%;
    min-height:460px;
    object-fit:contain;
    object-position:center;
    background:#eef3f7;
}

.vehicle-visual-stage-label {
    position:absolute;
    left:14px;
    bottom:14px;
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    gap:1px 8px;
    max-width:calc(100% - 28px);
    padding:9px 12px;
    border-radius:12px;
    background:rgba(15,39,66,.92);
    color:#fff;
    box-shadow:0 8px 24px rgba(15,39,66,.2);
}

.vehicle-visual-stage-label > i {
    grid-row:1 / span 2;
    width:17px;
    height:17px;
    color:#fff;
}

.vehicle-visual-stage-label strong {
    font-size:12px;
    line-height:1.25;
}

.vehicle-visual-stage-label small {
    color:rgba(255,255,255,.72);
    font-size:9px;
    line-height:1.25;
}

.vehicle-visual-thumbs {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    align-content:start;
    max-height:520px;
    overflow:auto;
    padding-right:3px;
}

.vehicle-visual-thumb {
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    align-items:center;
    gap:11px;
    min-width:0;
    padding:7px;
    border:1px solid var(--border,#e4eaf1);
    border-radius:14px;
    background:#fff;
    color:var(--navy,#0f2742);
    text-align:left;
    cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.vehicle-visual-thumb:hover,
.vehicle-visual-thumb.active {
    border-color:var(--primary);
    box-shadow:0 8px 18px rgba(15,39,66,.08);
    transform:translateY(-1px);
}

.vehicle-visual-thumb-media {
    display:grid;
    place-items:center;
    width:92px;
    aspect-ratio:4 / 3;
    overflow:hidden;
    border-radius:10px;
    background:#eef3f7;
}

.vehicle-visual-thumb-media img {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}

.vehicle-visual-thumb > span:last-child {
    min-width:0;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
}

.vehicle-gallery-dialog {
    width:min(1100px,94vw);
    max-width:none;
    padding:18px;
    border:0;
    border-radius:18px;
    background:#0b1d31;
    color:#fff;
    box-shadow:0 24px 70px rgba(0,0,0,.45);
}

.vehicle-gallery-dialog::backdrop {
    background:rgba(4,13,22,.82);
}

.vehicle-gallery-dialog img {
    display:block;
    width:100%;
    max-height:78vh;
    object-fit:contain;
    background:#0b1d31;
}

.vehicle-gallery-dialog > strong {
    display:block;
    padding-top:10px;
    text-align:center;
    font-size:13px;
}

.vehicle-gallery-dialog-close {
    position:absolute;
    top:12px;
    right:12px;
    z-index:2;
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:var(--navy,#0f2742);
    box-shadow:0 5px 18px rgba(0,0,0,.18);
    cursor:pointer;
}

.vehicle-gallery-dialog-close svg {
    width:18px;
    height:18px;
}

@media (max-width:900px) {
    .vehicle-visual-tour {
        grid-template-columns:1fr;
    }

    .vehicle-visual-stage,
    .vehicle-visual-stage > img {
        min-height:0;
    }

    .vehicle-visual-stage > img {
        height:auto;
        max-height:none;
    }

    .vehicle-visual-thumbs {
        display:flex;
        gap:9px;
        max-height:none;
        overflow-x:auto;
        overflow-y:hidden;
        padding:0 0 5px;
        scroll-snap-type:x proximity;
    }

    .vehicle-visual-thumb {
        flex:0 0 150px;
        display:block;
        padding:7px;
        scroll-snap-align:start;
    }

    .vehicle-visual-thumb-media {
        width:100%;
        margin-bottom:7px;
    }

    .vehicle-visual-thumb > span:last-child {
        display:block;
        padding:0 2px 2px;
        font-size:11px;
    }
}

@media (max-width:600px) {
    .vehicle-visual-tour-section {
        padding-top:30px;
        padding-bottom:32px;
    }

    .vehicle-visual-tour-heading {
        margin-bottom:14px;
    }

    .vehicle-visual-stage {
        border-radius:15px;
    }

    .vehicle-visual-stage-label {
        left:9px;
        bottom:9px;
        max-width:calc(100% - 18px);
        padding:7px 9px;
    }

    .vehicle-visual-thumb {
        flex-basis:132px;
    }
}

