/* ========= TALY THEME — synced from taly-theme.css =========
   DO NOT edit here — edit taly-theme.css, then copy to pages.
   Last synced: 2025-02-26
   ============================================================ */
/*! ===========================================
    TALY THEME v1.0
    Las Terrazas Resort Design System
    =========================================== */

/* FONT LOADING – local WOFF2, font-display:swap for render performance */
@font-face {
    font-family: "Le Monde Livre Classic";
    src: url("/fonts/LeMondeLivreClassic-NormalClassic.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Le Monde Livre Classic";
    src: url("/fonts/LeMondeLivreClassic-ItalicClassic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: "Raleway";
    src: url("/fonts/Raleway-Light.woff2") format("woff2");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Raleway";
    src: url("/fonts/Raleway-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Raleway";
    src: url("/fonts/Raleway-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* DESIGN TOKENS */
:root {
    --color-text:#23282D; --color-bg:#ffffff; --color-bg-mist:#F7F8F9;
    --color-primary:#00b5cd; --color-primary-hover:#009bb3; --color-primary-contrast:#ffffff;
    --color-secondary:#009bb3; --color-accent:#D4A373;
    --color-badge:#FCDE94; --color-border:rgba(35,40,45,0.12);
    --color-muted:rgba(35,40,45,0.70); --color-subtle:rgba(35,40,45,0.55);
    --color-sand:#D4A373; --color-error:#c0392b; --color-success:#27ae60;
    --radius-sm:10px; --radius-md:14px; --radius-lg:18px;
    --shadow-sm:0 6px 18px rgba(35,40,45,0.08); --shadow-md:0 12px 28px rgba(35,40,45,0.12);
    --container-max:1200px;
    --section-pad-y:88px; --section-pad-y-mobile:56px;
    --section-pad-compact:64px; --section-pad-compact-mobile:44px;
    --section-pad-tight:20px; --section-pad-tight-mobile:16px;
    --gutter:32px;
    --font-heading:"Le Monde Livre Pro",Georgia,"Times New Roman",serif;
    --font-body:"Raleway",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* GLOBAL */
* { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body { margin:0; padding:0; font-family:var(--font-body); font-weight:400; font-size:16px; line-height:1.6; color:var(--color-text); background-color:var(--color-bg); display:flex; flex-direction:column; min-height:100vh; }
/* CLS: prevent mobile fixed action bar from covering content */
@media(max-width:991.98px) { body { padding-bottom:calc(72px + env(safe-area-inset-bottom,0px)); } }
/* CLS: lock heading metrics so font-swap doesn't shift layout */
h1,h2,h3,h4,h5,h6,.section-title { font-family:var(--font-heading); font-weight:400; line-height:1.2; margin-bottom:1rem; color:var(--color-text); size-adjust:100%; }
/* CLS: explicit navbar-brand metrics so header stays 72px through font-swap */
.site-header .navbar-brand { line-height:1; display:inline-flex; }
h1 { font-size:44px; } h2 { font-size:32px; } h3 { font-size:24px; }
@media(max-width:767.98px) { h1{font-size:32px;} h2{font-size:24px;} h3{font-size:20px;} }
/* CTAs, labels, nav items – Raleway SemiBold */
.btn-primary,.btn-cta,.btn-sand,.btn-outline,.btn-outline-secondary,.cta-button,
label,.booking-bar__field label,.mbs-field label,
.room-card__fact-label,.trust-strip__value { font-family:var(--font-body); font-weight:600; }

p { margin-bottom:1rem; }
a { color:var(--color-text); text-decoration:underline; transition:opacity 0.2s ease; }
a:hover { opacity:0.7; }
img { max-width:100%; height:auto; }
*:focus-visible { outline:2px solid rgba(0,181,205,0.5); outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:0.01ms!important; transition-duration:0.01ms!important; } }
@media(max-width:767.98px) { :root { --gutter:16px; } }

/* =============================================
   BUTTON SYSTEM (matches rooms-rates baseline)
   ============================================= */

/* === PRIMARY CTA (frosted glass) === */
.btn-primary,
.btn-cta,
.btn-reserve { display:inline-block; padding:10px 24px; font-family:var(--font-body); font-size:0.9rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; white-space:nowrap; color:#ffffff; background:rgba(0,0,0,0.55); border:1px solid rgba(255,255,255,0.15); border-radius:var(--radius-sm); cursor:pointer; transition:all .2s ease; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.btn-primary:hover,.btn-primary:focus,
.btn-cta:hover,.btn-cta:focus,
.btn-reserve:hover,.btn-reserve:focus { background:rgba(0,0,0,0.7); border-color:rgba(255,255,255,0.25); color:#ffffff; transform:scale(1.01); }
.btn-primary:active,.btn-cta:active,.btn-reserve:active { transform:scale(0.98); }

/* === OUTLINE (neutral border) === */
.btn-outline,
.btn-outline-secondary { display:inline-block; padding:10px 24px; font-family:var(--font-body); font-size:0.9rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; color:var(--color-text); background:transparent; border:1px solid var(--color-border); border-radius:var(--radius-sm); cursor:pointer; transition:all .2s ease; }
.btn-outline:hover,.btn-outline:focus,
.btn-outline-secondary:hover,.btn-outline-secondary:focus { background:var(--color-bg-mist); border-color:var(--color-text); }

/* === SAND ACCENT (secondary — used sparingly) === */
.btn-sand { display:inline-block; padding:12px 18px; font-family:var(--font-body); font-size:1rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; color:var(--color-text); background:var(--color-sand); border:1px solid var(--color-sand); border-radius:var(--radius-md); cursor:pointer; transition:all .2s ease; }
.btn-sand:hover,.btn-sand:focus { background:#c59566; border-color:#c59566; color:var(--color-text); }

/* === OUTLINE DARK (room-level actions like Reserve) === */
.btn-outline-dark { display:inline-block; padding:12px 18px; font-family:var(--font-body); font-size:1rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; color:var(--color-text); background:transparent; border:1px solid var(--color-text); border-radius:var(--radius-md); cursor:pointer; transition:all .2s ease; }
.btn-outline-dark:hover,.btn-outline-dark:focus { background:var(--color-bg-mist); border-color:var(--color-text); }

/* === OUTLINE SAND (legacy alias) === */
.btn-outline-sand,
.btn-outline-sand-dark { display:inline-block; padding:12px 18px; font-family:var(--font-body); font-size:1rem; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; color:var(--color-text); background:transparent; border:1px solid var(--color-border); border-radius:var(--radius-md); cursor:pointer; transition:all .2s ease; }
.btn-outline-sand:hover,.btn-outline-sand:focus,
.btn-outline-sand-dark:hover,.btn-outline-sand-dark:focus { background:var(--color-bg-mist); border-color:var(--color-text); }

/* === CTA BUTTON (header/hero) === */
.cta-button { display:inline-block; padding:10px 24px; font-size:0.9rem; font-weight:600; white-space:nowrap; border-radius:var(--radius-sm); text-decoration:none; background:rgba(35,40,45,0.55); color:#ffffff; border:1px solid rgba(255,255,255,0.15); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transition:none; }
.cta-button:hover,.cta-button:focus { opacity:0.85; }

/* Bootstrap overrides */
.container { max-width:var(--container-max); padding-left:var(--gutter) !important; padding-right:var(--gutter) !important; }
.card { border-radius:var(--radius-lg); border-color:var(--color-border); transition:box-shadow 0.3s ease; }
@media(min-width:768px) { .card:hover { box-shadow:var(--shadow-md); } }
.badge-highlight { background-color:var(--color-badge); color:var(--color-text); padding:4px 12px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; display:inline-block; }

/* HEADER */
.site-header { height:72px; border-bottom:1px solid var(--color-border); background-color:var(--color-bg); position:sticky; top:0; z-index:1030; }
.site-header .navbar { height:100%; padding-top:0; padding-bottom:0; }
.site-header .navbar-brand { display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:var(--color-text); }
.site-header .navbar-brand:hover { color:var(--color-text); opacity:0.85; }
.navbar-brand__icon { height:34px; width:34px; flex-shrink:0; display:block; }
.navbar-brand__wordmark { height:33px; width:auto; display:block; }
.site-header .nav-link { font-family:var(--font-body); color:var(--color-text); font-size:0.95rem; font-weight:400; padding:0.5rem 1rem; text-decoration:none; opacity:0.7; transition:opacity 0.2s ease; }
.site-header .nav-link.active { font-weight:600; opacity:1; }
.site-header .nav-link:hover { opacity:1; }
@media(max-width:991.98px) {
    .site-header { height:64px; }
    .navbar-brand__icon { height:28px; width:28px; }
    .navbar-brand__wordmark { height:27px; }
    .navbar-collapse { position:absolute; top:64px; left:0; right:0; background-color:var(--color-bg); border-bottom:1px solid var(--color-border); padding:1rem; box-shadow:var(--shadow-sm); }
    .site-header .nav-link { padding:0.75rem 0; border-bottom:1px solid var(--color-border); color:var(--color-text); }
    .site-header .nav-link:last-child { border-bottom:none; }
}

/* LAYOUT UTILITIES */
main { min-height:calc(100vh - 72px - 200px); }
@media(max-width:991.98px) { main { min-height:calc(100vh - 64px - 200px); } }
.lt-container { max-width:var(--container-max); margin-left:auto; margin-right:auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.lt-section { padding-top:var(--section-pad-y); padding-bottom:var(--section-pad-y); }
@media(max-width:767.98px) { .lt-section { padding-top:var(--section-pad-y-mobile); padding-bottom:var(--section-pad-y-mobile); } }

/* Card-heavy sections: tighter padding — the cards carry the visual weight */
#rooms, #offers, #experiences {
    padding-top:var(--section-pad-compact);
    padding-bottom:var(--section-pad-compact);
}
@media(max-width:767.98px) {
    #rooms, #offers, #experiences {
        padding-top:var(--section-pad-compact-mobile);
        padding-bottom:var(--section-pad-compact-mobile);
    }
}

/* ---- Section rhythm: breathing room INSIDE sections only ---- */
/* No margins between sections — backgrounds flow together.
   Padding inside each section creates the breathing room. */

/* After editorial or cinematic breaks, next section gets slightly more top padding */
.vb-cg + .lt-section,
.vb-cinematic + .lt-section { padding-top:calc(var(--section-pad-y) + 16px); }
/* But if the next section is a card section, use compact base instead */
.vb-cg + #rooms,
.vb-cg + #offers,
.vb-cg + #experiences,
.vb-cinematic + #rooms,
.vb-cinematic + #offers,
.vb-cinematic + #experiences { padding-top:calc(var(--section-pad-compact) + 12px); }
@media(max-width:767.98px) {
    .vb-cg + .lt-section,
    .vb-cinematic + .lt-section { padding-top:calc(var(--section-pad-y-mobile) + 8px); }
    .vb-cg + #rooms,
    .vb-cg + #offers,
    .vb-cg + #experiences,
    .vb-cinematic + #rooms,
    .vb-cinematic + #offers,
    .vb-cinematic + #experiences { padding-top:calc(var(--section-pad-compact-mobile) + 6px); }
}

/* After weddings visual, next section gets breathing room */
.weddings-visual + .lt-section { padding-top:calc(var(--section-pad-y) + 12px); }
@media(max-width:767.98px) { .weddings-visual + .lt-section { padding-top:calc(var(--section-pad-y-mobile) + 6px); } }

/* Gallery — mist bg creates separation, compact padding */
#gallery { padding-top:var(--section-pad-compact); padding-bottom:48px; }
@media(max-width:767.98px) { #gallery { padding-top:var(--section-pad-compact-mobile); padding-bottom:36px; } }
.gallery-intro { text-align:center; margin-bottom:3rem; }
.gallery-cta { display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:center; margin-top:1.5rem; }
@media(min-width:576px) { .gallery-cta { flex-direction:row; } }
.gallery-cta__secondary { color:var(--color-text); text-decoration:underline; font-weight:600; }
.lt-muted { color:var(--color-muted); }
.lt-badge { background-color:var(--color-badge); color:var(--color-text); padding:4px 12px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; display:inline-block; }

/* HERO */
#home-hero { position:relative; min-height:600px; display:flex; align-items:center; justify-content:center; background-color:var(--color-bg-mist); overflow:hidden; }
@media(min-width:768px) { #home-hero { min-height:700px; } }
.hero-background { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; }
.hero-background::after { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(to bottom,rgba(0,0,0,0.35) 0%,rgba(0,0,0,0.12) 25%,rgba(0,0,0,0.08) 45%,rgba(0,0,0,0.30) 75%,rgba(0,0,0,0.48) 100%); z-index:2; }
.hero-background__placeholder { width:100%; height:100%; background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.3); font-size:1.5rem; }
.hero-content { position:relative; z-index:3; text-align:center; color:#ffffff; padding:2rem var(--gutter); }
.hero-content__eyebrow { font-family:var(--font-body); font-size:0.75rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.75); margin-bottom:0.75rem; }
.hero-content h1 { font-size:48px; line-height:1.1; margin-bottom:1rem; color:#ffffff; }
@media(min-width:768px) { .hero-content h1 { font-size:56px; } }
.hero-content__subline { font-size:1.125rem; line-height:1.5; margin-bottom:2rem; opacity:0.95; max-width:600px; margin-left:auto; margin-right:auto; }
@media(min-width:768px) { .hero-content__subline { font-size:1.25rem; } }
.hero-cta { display:flex; flex-direction:column; gap:1rem; align-items:center; margin-bottom:1.5rem; }
@media(min-width:576px) { .hero-cta { flex-direction:row; justify-content:center; } }
.hero-cta__secondary { color:#ffffff; text-decoration:underline; font-weight:600; }
.hero-cta__secondary:hover { color:#ffffff; opacity:0.8; }
.hero-microtrust { font-size:0.875rem; opacity:0.85; }


/* BOOKING BAR — Glass effect on desktop, hidden on mobile */
.booking-bar-wrap { display:flex; justify-content:center; padding:0 var(--gutter); margin-top:-80px; position:relative; z-index:10; }
@media(max-width:767.98px) { .booking-bar-wrap { display:none; } }

.booking-bar {
    background-color:rgba(255,255,255,0.82);
    background:rgba(255,255,255,0.72);
    -webkit-backdrop-filter:blur(14px) saturate(1.6);
    backdrop-filter:blur(14px) saturate(1.6);
    border:1px solid rgba(255,255,255,0.55);
    border-radius:var(--radius-lg);
    padding:2rem;
    box-shadow:0 8px 32px rgba(35,40,45,0.10), 0 2px 8px rgba(35,40,45,0.06);
    width:100%; max-width:640px;
}
.booking-bar__title { font-family:var(--font-heading); font-size:1.125rem; margin-bottom:1.25rem; text-align:center; color:var(--color-text); }
.booking-bar__row { display:grid; gap:0.75rem; margin-bottom:0.75rem; }
.booking-bar__row.dates { grid-template-columns:1fr 1fr; }
.booking-bar__field label { display:block; font-size:0.75rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; color:var(--color-text); margin-bottom:0.4rem; }
.booking-bar__field input,.booking-bar__field select { width:100%; padding:0.7rem 0.9rem; border:1px solid var(--color-border); border-radius:var(--radius-md); font-family:var(--font-body); font-size:0.95rem; transition:border-color 0.2s; background-color:#fff; }
.booking-bar__field input:focus,.booking-bar__field select:focus { outline:none; border-color:var(--color-primary); }
.booking-bar__promo { margin-bottom:0.75rem; }
.booking-bar__promo-toggle { color:var(--color-primary); text-decoration:underline; background:none; border:none; padding:0; font-size:0.8rem; cursor:pointer; font-family:var(--font-body); }
.booking-bar__promo-field { display:none; margin-top:0.6rem; }
.booking-bar__promo-field.show { display:block; }
.booking-bar__submit-row { margin-top:0.5rem; }
.booking-bar__submit { width:100%; }
.booking-bar__helper { text-align:center; font-size:0.8rem; color:var(--color-muted); margin-top:0.75rem; }

/* ===========================================
   SHOWCASE SECTION (Trust + Value merged)
   =========================================== */
.showcase { background:#fafbfc; position:relative; overflow:hidden; padding-top:72px; padding-bottom:var(--section-pad-compact); }
@media(max-width:767.98px) { .showcase { padding-top:48px; padding-bottom:var(--section-pad-compact-mobile); } }
.showcase.lt-section { padding-bottom:48px; }
@media(max-width:767.98px) { .showcase.lt-section { padding-bottom:36px; } }
.showcase::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent 0%, rgba(35,40,45,0.08) 20%, rgba(35,40,45,0.08) 80%, transparent 100%); }
.showcase .container { position:relative; z-index:1; }
.showcase__eyebrow { text-align:center; margin-bottom:0.75rem; }
.showcase__eyebrow span { font-size:0.75rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--color-primary); }
.showcase__heading { text-align:center; font-family:var(--font-heading); font-size:2.5rem; font-weight:400; line-height:1.15; color:var(--color-text); margin-bottom:0.75rem; }
.showcase__sub { text-align:center; font-size:1.1rem; color:var(--color-muted); max-width:560px; margin:0 auto 3rem; line-height:1.6; }
@media(max-width:767.98px) {
    .showcase__heading { font-size:2.1rem; }
    .showcase__sub { font-size:1rem; margin-bottom:2rem; }
}

/* Scene Cards Grid */
.showcase__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:0; }
@media(min-width:992px) { .showcase__grid { width:92vw; max-width:1500px; margin-left:auto; margin-right:auto; position:relative; left:50%; transform:translateX(-50%); } }
@media(max-width:991.98px) { .showcase__grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; gap:1rem; max-width:none; scrollbar-width:none; } .showcase__grid::-webkit-scrollbar { display:none; } .showcase__grid .scene-card { flex:0 0 82%; scroll-snap-align:start; } }

.scene-card { position:relative; border-radius:8px; overflow:hidden; height:480px; cursor:default; box-shadow:0 4px 24px rgba(35,40,45,0.10), 0 1px 4px rgba(35,40,45,0.06); }
@media(max-width:991.98px) { .scene-card { height:340px; } }
.scene-card__illustration { position:absolute; inset:0; }
.scene-card__illustration svg { width:100%; height:100%; display:block; }

/* Frosted glass content panel at bottom of each card — aligned across cards */
.scene-card__content { position:absolute; bottom:0; left:0; right:0; padding:1.5rem 1.5rem 1.75rem; background:linear-gradient(0deg, rgba(0,0,0,0.52) 0%, rgba(0,0,0,0.25) 60%, transparent 100%); z-index:1; display:flex; flex-direction:column; justify-content:flex-end; min-height:120px; }
.scene-card__icon { width:36px; height:36px; margin-bottom:0.75rem; border-radius:50%; background:rgba(0,181,205,0.12); display:flex; align-items:center; justify-content:center; }
.scene-card__icon svg { width:18px; height:18px; }
.scene-card__title { font-family:var(--font-heading); font-size:1.35rem; font-weight:400; color:#ffffff; margin-bottom:0.35rem; line-height:1.25; }
.scene-card__desc { font-size:0.9rem; color:rgba(255,255,255,0.8); line-height:1.5; margin:0; }
/* Carousel dots (mobile only) */
.showcase__dots { display:none; justify-content:center; gap:8px; padding:1rem 0 0; }
@media(max-width:991.98px) { .showcase__dots { display:flex; } }
.showcase__dot { width:8px; height:8px; border-radius:50%; background:var(--color-primary); opacity:0.25; border:none; padding:0; cursor:pointer; transition:opacity 0.3s, transform 0.3s; }
.showcase__dot.active { opacity:1; transform:scale(1.25); }

/* Hover lift + mist glow */
.scene-card { transition:transform 0.35s ease, box-shadow 0.35s ease; box-shadow:0 8px 30px rgba(0,181,205,0.10), 0 4px 16px rgba(35,40,45,0.06); }
@media(hover:hover) {
    .scene-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,181,205,0.15), 0 12px 32px rgba(35,40,45,0.10); }
}

/* Trust bar */
/* TRUST SECTION – standalone mist strip below hero */
.trust-section { background:var(--color-bg-mist); padding:1.25rem 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.showcase__trust { display:flex; flex-wrap:nowrap; justify-content:center; align-items:center; margin-bottom:0; background:transparent; padding:0.5rem 0; }
.showcase__trust-item { display:flex; align-items:center; gap:0.75rem; padding:0.25rem 1.75rem; position:relative; }
.showcase__trust-item:not(:last-child)::after { display:none; }
.showcase__trust-icon { flex-shrink:0; width:30px; height:30px; color:#C4B8A4; opacity:0.85; }
.showcase__trust-icon svg { width:100%; height:100%; }
.showcase__trust-text { display:flex; flex-direction:column; line-height:1.3; min-width:0; }
.showcase__trust-value { font-size:1rem; font-weight:700; color:var(--color-text); white-space:nowrap; letter-spacing:-0.01em; }
.showcase__trust-label { font-size:0.72rem; color:var(--color-muted); letter-spacing:0.02em; white-space:nowrap; }
/* Tablet – 2 column grid, last item same as others */
@media(max-width:991.98px) {
    .trust-section { padding:1.25rem 1rem; }
    .showcase__trust { flex-wrap:wrap; justify-content:flex-start; gap:0; }
    .showcase__trust-item { width:50%; padding:0.75rem 1.25rem; justify-content:flex-start; box-sizing:border-box; }
    .showcase__trust-item:not(:last-child)::after { display:none; }
    .showcase__trust-item:nth-child(odd) { border-right:none; }
    .showcase__trust-item:nth-child(n+3) { border-top:none; }
    .showcase__trust-item:last-child { width:50%; justify-content:flex-start; border-top:none; }
    .showcase__trust-value { font-size:0.95rem; }
}
/* Mobile – single column, all items identical */
@media(max-width:575.98px) {
    .trust-section { padding:1rem 0; }
    .showcase__trust { flex-direction:column; align-items:stretch; gap:0; }
    .showcase__trust-item { width:100% !important; padding:0.75rem 1.25rem; justify-content:flex-start !important; border-right:none !important; border-top:none !important; }
    .showcase__trust-item:not(:last-child) { border-bottom:none !important; }
    .showcase__trust-icon { width:26px; height:26px; }
    .showcase__trust-value { font-size:0.92rem; }
    .showcase__trust-label { font-size:0.62rem; }
}

/* Legacy trust strip (kept for other pages) */
.trust-strip { display:flex; flex-wrap:wrap; gap:2rem; justify-content:center; align-items:center; padding:1.5rem 0; }
.trust-strip__item { text-align:center; font-size:0.95rem; color:var(--color-muted); }
.trust-strip__value { font-size:1.25rem; font-weight:600; color:var(--color-text); display:block; margin-bottom:0.25rem; }

/* ROOM CARD */
.room-card { border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow 0.3s ease; display:flex; flex-direction:column; background-color:var(--color-bg); }
@media(hover:hover) { .room-card:hover { box-shadow:var(--shadow-md); } }
.room-card__image { width:100%; height:250px; background-color:var(--color-bg-mist); position:relative; overflow:hidden; cursor:pointer; }
.room-card__carousel { display:flex; width:100%; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.room-card__carousel::-webkit-scrollbar { display:none; }
.room-card__slide { min-width:100%; height:100%; scroll-snap-align:start; display:flex; align-items:center; justify-content:center; background-color:var(--color-bg-mist); }
.room-card__slide img { width:100%; height:100%; object-fit:cover; }
.room-card__slide-placeholder { color:var(--color-muted); font-size:0.85rem; opacity:0.5; }
.room-card__arrow { position:absolute; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.55); border:1px solid rgba(255,255,255,0.3); box-shadow:0 2px 8px rgba(0,0,0,0.12); cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:3; transition:all 0.2s ease; -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); color:var(--color-text); font-size:0.9rem; font-weight:700; padding:0; line-height:1; }
.room-card__arrow:hover { background:rgba(255,255,255,0.75); box-shadow:0 3px 12px rgba(0,0,0,0.18); }
.room-card__arrow--prev { left:10px; }
.room-card__arrow--next { right:10px; }
.room-card__photo-count { position:absolute; bottom:10px; right:10px; background:rgba(255,255,255,0.55); -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); color:var(--color-text); font-size:0.75rem; font-weight:700; padding:4px 10px; border-radius:20px; z-index:3; display:flex; align-items:center; gap:4px; border:1px solid rgba(255,255,255,0.3); }
.room-card__photo-count svg { width:14px; height:14px; }
.room-card__dots { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); display:flex; gap:5px; z-index:3; }
.room-card__dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5); transition:all 0.2s ease; }
.room-card__dot.active { background:#fff; width:8px; height:8px; }
.room-card__image img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s ease; }
@media(hover:hover) { .room-card:hover .room-card__image img { transform:scale(1.05); } }
.room-card__body { padding:1.5rem; flex:1; display:flex; flex-direction:column; }
.room-card__body > :last-child { margin-top:auto; }
.room-card__title { font-family:var(--font-heading); font-size:1.5rem; margin-bottom:1rem; }
.room-card__highlights { display:flex; flex-direction:column; gap:7px; margin-bottom:1rem; margin-top:auto; padding:12px 14px; background:var(--color-bg-mist); border-radius:var(--radius-sm); position:relative; cursor:pointer; transition:background 0.2s ease; }
.room-card__highlights:hover { background:#ebeeed; }
.room-card__hl { display:flex; align-items:center; gap:9px; font-size:0.825rem; color:var(--color-muted); line-height:1.3; }
.room-card__hl svg { width:15px; height:15px; flex-shrink:0; stroke:rgba(35,40,45,0.40); stroke-width:1.5; fill:none; }
.room-card__more { display:flex; align-items:center; gap:4px; font-size:0.78rem; font-weight:600; color:var(--color-primary); letter-spacing:0.02em; transition:all 0.2s ease; margin-top:2px; padding-top:8px; border-top:1px solid var(--color-border); align-self:stretch; }
.room-card__more svg { width:12px; height:12px; stroke:var(--color-primary); stroke-width:2.5; fill:none; transition:all 0.2s ease; }
.room-card__highlights:hover .room-card__more { color:#009bb3; }
.room-card__highlights:hover .room-card__more svg { stroke:#009bb3; transform:translateX(2px); }
.room-card__hook { font-size:0.875rem; color:var(--color-subtle); line-height:1.5; margin-top:0.25rem; margin-bottom:1rem; font-style:italic; }
.room-card__price { font-family:var(--font-heading); font-size:1.25rem; font-weight:400; margin-bottom:1rem; color:var(--color-text); letter-spacing:-0.01em; }
.room-card__price-label { font-size:0.875rem; font-weight:400; color:var(--color-muted); font-style:normal; }
.room-card__actions { display:flex; gap:0.75rem; }
.room-card__actions a,.room-card__actions button { flex:1; text-align:center; }

/* ROOM DETAIL MODAL */
.room-modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:1050; align-items:flex-end; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.room-modal-overlay.show { display:flex; }
@media(min-width:768px) { .room-modal-overlay { align-items:center; justify-content:center; } }
.room-modal { background:var(--color-bg); width:100%; max-height:95vh; overflow-y:auto; border-radius:var(--radius-lg) var(--radius-lg) 0 0; animation:rmSlideUp 0.3s ease-out; display:flex; flex-direction:column; }
@media(min-width:768px) { .room-modal { max-width:680px; border-radius:var(--radius-lg); animation:rmFadeIn 0.25s ease-out; max-height:90vh; } }
@keyframes rmSlideUp { from { transform:translateY(100%); } to { transform:translateY(0); } }
@keyframes rmFadeIn { from { opacity:0; transform:scale(0.97); } to { opacity:1; transform:scale(1); } }
/* Modal header */
.room-modal__header { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; border-bottom:1px solid var(--color-border); position:sticky; top:0; background:var(--color-bg); z-index:2; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.room-modal__title { font-family:var(--font-heading); font-size:1.25rem; margin:0; }
.room-modal__close { width:36px; height:36px; border-radius:50%; border:1px solid var(--color-border); background:var(--color-bg); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.1rem; color:var(--color-text); transition:background 0.2s; }
.room-modal__close:hover { background:var(--color-bg-mist); }
/* Image gallery */
.room-modal__gallery { position:relative; margin:0 0 1.5rem; }
.room-modal__main-img { width:100%; aspect-ratio:16/9; display:flex; background:var(--color-bg-mist); border:1px solid var(--color-border); border-radius:var(--radius-md); position:relative; overflow:hidden; }
.room-modal__slides { position:absolute; inset:0; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.room-modal__slides::-webkit-scrollbar { display:none; }
.room-modal__slide { min-width:100%; height:100%; scroll-snap-align:start; display:flex; align-items:center; justify-content:center; background:var(--color-bg-mist); flex-shrink:0; }
.room-modal__slide svg, .room-modal__slide img { width:100%; height:100%; object-fit:cover; }
/* Gallery arrows */
.room-modal__gallery-arrow { position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.55); border:1px solid rgba(255,255,255,0.3); box-shadow:0 1px 4px rgba(0,0,0,0.1); cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:3; transition:all 0.2s; padding:0; -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); }
.room-modal__gallery-arrow:hover { background:rgba(255,255,255,0.75); box-shadow:0 2px 8px rgba(0,0,0,0.15); }
.room-modal__gallery-arrow svg { width:16px; height:16px; color:var(--color-text); }
.room-modal__gallery-arrow--prev { left:10px; }
.room-modal__gallery-arrow--next { right:10px; }
/* Photo counter badge */
.room-modal__gallery-counter { position:absolute; bottom:10px; right:10px; background:rgba(255,255,255,0.55); -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); color:var(--color-text); font-size:0.75rem; font-weight:700; padding:4px 12px; border-radius:12px; z-index:3; letter-spacing:0.03em; border:1px solid rgba(255,255,255,0.3); }
/* Thumbnail strip — scrollable */
.room-modal__thumbs-wrap { display:none; }
.room-modal__thumbs { display:flex; gap:3px; overflow-x:auto; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:2px; }
.room-modal__thumbs::-webkit-scrollbar { display:none; }
.room-modal__thumb { flex:0 0 auto; width:calc((100% - 12px) / 5); height:72px; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0.5; transition:opacity 0.2s, border-color 0.2s; border-radius:6px; background:var(--color-bg-mist); overflow:hidden; position:relative; border:2px solid transparent; }
.room-modal__thumb svg { width:100%; height:100%; }
.room-modal__thumb:hover { opacity:0.8; }
.room-modal__thumb.active { opacity:1; border-color:var(--color-text); }
/* "+N more" overlay on last visible thumb */
.room-modal__thumb-more { position:absolute; inset:0; background:rgba(0,0,0,0.55); display:flex; align-items:center; justify-content:center; color:#fff; font-size:0.8rem; font-weight:600; border-radius:4px; pointer-events:none; }
/* Modal body */
.room-modal__body { padding:1.5rem; flex:1; overflow-y:auto; }
/* Best for tag */
.room-modal__tags { display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:1rem; }
.room-modal__bestfor { display:inline-flex; align-items:center; gap:0.4rem; background:var(--color-bg-mist); border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:0.35rem 0.75rem; font-size:0.8rem; color:var(--color-text); }
.room-modal__bestfor svg { width:16px; height:16px; color:var(--color-muted); flex-shrink:0; display:block; }
.room-modal__tag-renovated { display:inline-flex; align-items:center; gap:0.4rem; background:var(--color-bg-mist); border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:0.35rem 0.75rem; font-size:0.8rem; color:var(--color-text); }
.room-modal__tag-renovated svg { width:14px; height:14px; color:var(--color-sand); flex-shrink:0; display:block; }
/* Price inline */
/* Hook */
.room-modal__hook { font-size:0.95rem; color:var(--color-text); font-style:italic; line-height:1.6; margin-bottom:0.75rem; }
.room-modal__variant-tabs { display:none; margin:0 0 1.25rem; padding:0.75rem; background:var(--color-bg-mist); border:1px solid var(--color-border); border-radius:var(--radius-sm); }
.room-modal__variant-tabs.show { display:flex; gap:0.5rem; }
.room-modal__variant-tab { flex:1; display:flex; align-items:center; justify-content:center; gap:0.5rem; padding:0.65rem 1rem; font-size:0.85rem; font-family:var(--font-heading); font-weight:600; letter-spacing:0.01em; border:1.5px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-bg); color:var(--color-muted); cursor:pointer; transition:all 0.25s ease; position:relative; }
.room-modal__variant-tab svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; flex-shrink:0; opacity:0.6; transition:opacity 0.25s; }
.room-modal__variant-tab.active { border-color:var(--color-text); color:var(--color-text); background:var(--color-bg); box-shadow:0 1px 4px rgba(0,0,0,0.08); }
.room-modal__variant-tab.active svg { opacity:1; }
.room-modal__variant-tab:not(.active):hover { border-color:var(--color-muted); color:var(--color-text); background:var(--color-bg); }
/* Description */
.room-modal__desc { font-size:0.875rem; color:var(--color-muted); line-height:1.65; margin-bottom:1.5rem; }
/* Section divider */
.room-modal__divider { border:none; border-top:1px solid var(--color-border); margin:0 0 1.5rem; }
/* Quick specs bar */
.room-modal__specs-bar { display:flex; flex-wrap:wrap; gap:0; background:var(--color-bg-mist); border-radius:var(--radius-sm); margin-bottom:1.5rem; }
.room-modal__spec-item { flex:1; min-width:33.33%; display:flex; flex-direction:column; align-items:center; text-align:center; padding:0.85rem 0.5rem; gap:0.25rem; position:relative; }
.room-modal__spec-item:not(:last-child)::after { content:''; position:absolute; right:0; top:20%; height:60%; width:1px; background:rgba(35,40,45,0.08); }
.room-modal__spec-icon { width:20px; height:20px; color:var(--color-muted); opacity:0.7; }
.room-modal__spec-icon svg { width:100%; height:100%; display:block; }
.room-modal__spec-label { font-size:0.65rem; color:var(--color-muted); text-transform:uppercase; letter-spacing:0.05em; }
.room-modal__spec-value { font-size:0.85rem; font-weight:500; color:var(--color-text); }
/* Unique highlights */
.room-modal__section-title { font-family:var(--font-heading); font-size:1rem; margin:0 0 1rem; color:var(--color-text); }
.room-modal__highlights { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem; margin-bottom:1.5rem; }
.room-modal__hl { display:flex; align-items:center; gap:0.5rem; padding:0.55rem 0.75rem; background:var(--color-bg-mist); border-radius:var(--radius-sm); }
.room-modal__hl-icon { width:18px; height:18px; color:var(--color-muted); opacity:0.7; flex-shrink:0; }
.room-modal__hl-icon svg { width:100%; height:100%; display:block; }
.room-modal__hl-text { font-size:0.8rem; color:var(--color-text); line-height:1.4; }
/* Categorized amenities */
.room-modal__amenities-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem 2rem; margin-bottom:1.5rem; }
.room-modal__amenity-cat { display:flex; flex-direction:column; gap:0.5rem; }
.room-modal__amenity-cat-title { display:flex; align-items:center; gap:0.5rem; font-size:0.8rem; font-weight:600; color:var(--color-text); }
.room-modal__amenity-cat-title svg { width:18px; height:18px; flex-shrink:0; color:var(--color-muted); opacity:0.6; display:block; }
.room-modal__amenity-list { list-style:none; margin:0; padding:0; }
.room-modal__amenity-list li { font-size:0.8rem; color:var(--color-muted); padding:0.2rem 0 0.2rem 1.5rem; position:relative; line-height:1.45; }
.room-modal__amenity-list li::before { content:''; position:absolute; left:0.5rem; top:50%; transform:translateY(-50%); width:4px; height:4px; border-radius:50%; background:var(--color-border); }
/* Sticky footer */
.room-modal__footer { display:flex; align-items:center; gap:0.75rem; padding:1rem 1.5rem; border-top:1px solid var(--color-border); position:sticky; bottom:0; background:var(--color-bg); z-index:2; }
.room-modal__footer-price { font-family:var(--font-heading); font-size:1.15rem; color:var(--color-text); white-space:nowrap; }
.room-modal__footer-price span { font-size:0.8rem; font-weight:400; color:var(--color-muted); }
.room-modal__footer a { flex:1; text-align:center; }
/* Mobile modal adjustments */
@media(max-width:575.98px) {
    /* Header */
    .room-modal__header { padding:0.75rem 1rem; }
    .room-modal__title { font-size:1.1rem; }
    .room-modal__close { width:32px; height:32px; font-size:1rem; }
    /* Gallery */
    .room-modal__gallery { margin:0 0 1rem; }
    .room-modal__main-img { height:auto; aspect-ratio:16/10; }
    .room-modal__gallery-arrow { width:30px; height:30px; }
    .room-modal__gallery-arrow svg { width:13px; height:13px; }
    .room-modal__gallery-arrow--prev { left:8px; }
    .room-modal__gallery-arrow--next { right:8px; }
    .room-modal__gallery-counter { font-size:0.72rem; padding:3px 10px; }
    .room-modal__thumbs-wrap { display:none; }
    /* Body */
    .room-modal__body { padding:1rem; }
    /* Tags */
    .room-modal__tags { gap:0.4rem; margin-bottom:0.75rem; }
    .room-modal__bestfor { padding:0.3rem 0.6rem; font-size:0.75rem; }
    .room-modal__bestfor svg { width:14px; height:14px; }
    .room-modal__tag-renovated { padding:0.3rem 0.6rem; font-size:0.75rem; }
    .room-modal__tag-renovated svg { width:12px; height:12px; }
    /* Hook & description */
    .room-modal__hook { font-size:0.85rem; margin-bottom:0.6rem; line-height:1.55; }
    .room-modal__desc { font-size:0.82rem; margin-bottom:1rem; line-height:1.6; }
    /* Variant tabs */
    .room-modal__variant-tabs.show { padding:0.6rem; margin:0 0 1rem; gap:0.4rem; flex-wrap:wrap; justify-content:center; }
    .room-modal__variant-tab { padding:0.5rem 0.6rem; font-size:0.78rem; flex:0 0 calc(50% - 0.3rem); }
    .room-modal__variant-tab svg { display:none; }
    /* Divider */
    .room-modal__divider { margin:0 0 1rem; }
    /* Specs bar */
    .room-modal__specs-bar { margin-bottom:1rem; }
    .room-modal__spec-item { padding:0.65rem 0.4rem; min-width:33.33%; }
    .room-modal__spec-icon { width:17px; height:17px; }
    .room-modal__spec-label { font-size:0.6rem; }
    .room-modal__spec-value { font-size:0.8rem; }
    /* Section titles */
    .room-modal__section-title { font-size:0.9rem; margin:0 0 0.75rem; }
    /* Highlights */
    .room-modal__highlights { grid-template-columns:1fr; gap:0.4rem; margin-bottom:1rem; }
    .room-modal__hl { padding:0.45rem 0.65rem; gap:0.4rem; }
    .room-modal__hl-icon { width:15px; height:15px; }
    .room-modal__hl-text { font-size:0.75rem; }
    /* Amenities */
    .room-modal__amenities-grid { grid-template-columns:1fr; gap:1rem; margin-bottom:1rem; }
    .room-modal__amenity-cat { gap:0.35rem; }
    .room-modal__amenity-cat-title { font-size:0.75rem; gap:0.4rem; }
    .room-modal__amenity-cat-title svg { width:15px; height:15px; }
    .room-modal__amenity-list li { font-size:0.75rem; padding:0.15rem 0 0.15rem 1.3rem; }
    /* Footer */
    .room-modal__footer { padding:0.75rem 1rem; gap:0.6rem; }
    .room-modal__footer-price { font-size:1.05rem; }
    .room-modal__footer-price span { font-size:0.72rem; }
    .room-modal__footer a { font-size:0.85rem; padding:0.55rem 1rem; }
}

/* OFFER CARD — editorial style */
.offer-card { border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow 0.3s ease, transform 0.3s ease; background:rgba(255,255,255,0.65); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); display:flex; flex-direction:column; cursor:pointer; position:relative; }
@media(hover:hover) { .offer-card:hover { box-shadow:0 8px 30px rgba(35,40,45,0.1); transform:translateY(-3px); } }
.offer-card__body { padding:1.75rem 1.75rem 1rem; flex:1; display:flex; flex-direction:column; }
.offer-card__eyebrow { font-size:0.72rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-primary); margin-bottom:0.6rem; }
.offer-card__title { font-family:var(--font-heading); font-size:1.4rem; margin-bottom:0.5rem; line-height:1.25; }
.offer-card__benefit { color:var(--color-muted); font-size:0.9rem; line-height:1.55; margin-bottom:0; }
.offer-card__validity { font-size:0.78rem; color:var(--color-subtle); margin-top:auto; padding-top:0.6rem; margin-bottom:0; }
.offer-card__image { margin:0 1.25rem 1.25rem; aspect-ratio:16/10; overflow:hidden; background-color:var(--color-bg-mist); position:relative; border-radius:var(--radius-md); }
.offer-card__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.offer-card__image svg { width:100%; height:100%; display:block; }
@media(hover:hover) { .offer-card:hover .offer-card__image img { transform:scale(1.05); } }
.offer-card__arrow { position:absolute; bottom:14px; right:14px; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,0.6); -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); border:1px solid rgba(255,255,255,0.3); display:flex; align-items:center; justify-content:center; transition:all 0.2s; z-index:2; }
.offer-card__arrow svg { width:14px; height:14px; color:var(--color-text); }
@media(hover:hover) { .offer-card:hover .offer-card__arrow { background:rgba(255,255,255,0.85); } }

/* EXPERIENCE CARD */
.experience-card { border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow 0.3s ease, transform 0.3s ease; display:flex; flex-direction:column; background:var(--color-bg); border:1px solid var(--color-border); cursor:pointer; text-decoration:none; color:var(--color-text); }
.experience-card:hover { color:var(--color-text); text-decoration:none; }
@media(hover:hover) { .experience-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); } }
.experience-card__image { width:100%; aspect-ratio:16/10; background-color:var(--color-bg-mist); overflow:hidden; position:relative; }
.experience-card__image img, .experience-card__image svg { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
@media(hover:hover) { .experience-card:hover .experience-card__image img { transform:scale(1.05); } }
.experience-card__badge { position:absolute; bottom:10px; left:10px; background:rgba(255,255,255,0.7); -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); border:1px solid rgba(255,255,255,0.3); padding:3px 10px; border-radius:6px; font-size:0.7rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--color-text); }
.experience-card__arrow { position:absolute; bottom:10px; right:10px; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,0.6); -webkit-backdrop-filter:blur(12px) saturate(1.4); backdrop-filter:blur(12px) saturate(1.4); border:1px solid rgba(255,255,255,0.3); display:flex; align-items:center; justify-content:center; transition:all 0.2s; }
.experience-card__arrow svg { width:13px; height:13px; color:var(--color-text); }
@media(hover:hover) { .experience-card:hover .experience-card__arrow { background:rgba(255,255,255,0.85); } }
.experience-card__body { padding:0.85rem 1rem 1rem; flex:1; display:flex; flex-direction:column; }
.experience-card__title { font-family:var(--font-heading); font-size:1.05rem; margin-bottom:0.3rem; line-height:1.3; }
.experience-card__hook { color:var(--color-muted); font-size:0.82rem; line-height:1.45; margin-bottom:0.5rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.experience-card__meta { display:flex; align-items:center; gap:0.4rem; font-size:0.78rem; color:var(--color-subtle); margin-top:auto; }
.experience-card__meta-dot { width:3px; height:3px; border-radius:50%; background:var(--color-subtle); flex-shrink:0; }
.experience-card__price { font-weight:700; color:var(--color-text); }

/* GALLERY ROW */
/* Gallery — masonry-style with varied aspect ratios */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:280px 280px 240px; gap:6px; }
.gallery-grid__item { background-color:var(--color-bg-mist); border-radius:8px; overflow:hidden; cursor:pointer; position:relative; }
.gallery-grid__item svg, .gallery-grid__item img { position:absolute; top:0; left:0; width:100%; height:100%; display:block; transition:transform 0.5s cubic-bezier(0.22,1,0.36,1); }
.gallery-grid__item img { object-fit:cover; }
@media(hover:hover) { .gallery-grid__item:hover img, .gallery-grid__item:hover svg { transform:scale(1.06); } }
/* Row 1: small left + wide right */
.gallery-grid__item:nth-child(1) { grid-column:1; grid-row:1; }
.gallery-grid__item:nth-child(2) { grid-column:2 / 4; grid-row:1; }
/* Row 2: wide left + small right — zigzag */
.gallery-grid__item:nth-child(3) { grid-column:1 / 3; grid-row:2; }
.gallery-grid__item:nth-child(4) { grid-column:3; grid-row:2; }
/* Row 3: two cells — wide left + small right */
.gallery-grid__item:nth-child(5) { grid-column:1 / 3; grid-row:3; }
.gallery-grid__item:nth-child(6) { grid-column:3; grid-row:3; }

/* Mobile */
@media(max-width:767.98px) {
    .gallery-intro { margin-bottom:1.5rem; }
    .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:140px 140px 120px; gap:5px; }
    .gallery-grid__item:nth-child(1) { grid-column:1; grid-row:1; }
    .gallery-grid__item:nth-child(2) { grid-column:2; grid-row:1; }
    .gallery-grid__item:nth-child(3) { grid-column:1; grid-row:2; }
    .gallery-grid__item:nth-child(4) { grid-column:2; grid-row:2; }
    .gallery-grid__item:nth-child(5) { grid-column:1; grid-row:3; }
    .gallery-grid__item:nth-child(6) { grid-column:2; grid-row:3; }
}

/* FAQ */
.faq-snippet-intro { text-align:center; margin-bottom:2rem; }
.faq-snippet-intro__text { color:var(--color-muted); font-size:1.05rem; margin-top:0.5rem; }
.faq-accordion .accordion-item { border:none; border-bottom:1px solid var(--color-border); }
.faq-accordion .accordion-item:first-child { border-top:1px solid var(--color-border); }
.faq-accordion .accordion-button { font-family:var(--font-heading); font-size:1.125rem; padding:1.25rem 24px; background-color:transparent; border:none; box-shadow:none; }
.faq-accordion .accordion-button:not(.collapsed) { background-color:transparent; color:var(--color-text); }
.faq-accordion .accordion-button:focus { box-shadow:none; border:none; }
.faq-accordion .accordion-body { padding:0 24px 1.25rem 24px; color:var(--color-muted); }
.faq-accordion .accordion-body a { color:var(--color-primary); }

/* SECTION HELPERS */
.section-header { text-align:center; margin-bottom:3.5rem; }
.section-header__subtitle { color:var(--color-muted); font-size:1.125rem; margin-top:0.5rem; }

/* ROOMS GRID */
.rooms-grid { display:grid; grid-template-columns:1fr; gap:2rem; margin-bottom:2rem; }
@media(min-width:768px) { .rooms-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:992px) { .rooms-grid { grid-template-columns:repeat(3,1fr); } }
.compare-link { text-align:center; margin-top:2rem; }
.compare-link a { color:var(--color-text); text-decoration:underline; font-size:0.95rem; }

/* OFFERS */
.offers-intro { text-align:center; max-width:700px; margin:0 auto 1rem auto; }
.offers-intro__text { color:var(--color-muted); font-size:1.125rem; margin-top:0.5rem; }
/* Book direct benefits strip */
.direct-benefits { display:flex; justify-content:center; gap:2rem; flex-wrap:wrap; margin-bottom:1.25rem; padding:0.85rem 1.5rem; background:rgba(196,184,164,0.08); border:1px solid rgba(196,184,164,0.18); border-radius:var(--radius-md); }
.direct-benefits__item { display:flex; align-items:center; gap:0.5rem; font-size:0.85rem; color:var(--color-text); white-space:nowrap; }
.direct-benefits__icon { width:18px; height:18px; color:#C4B8A4; flex-shrink:0; }
.direct-benefits__icon svg { width:100%; height:100%; display:block; }
@media(max-width:575.98px) { .direct-benefits { flex-direction:column; gap:0.6rem; padding:0.85rem 1.25rem; align-items:flex-start; } .direct-benefits__item { font-size:0.85rem; white-space:normal; } }
.offers-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; gap:1.25rem; padding-bottom:0.5rem; justify-content:center; }
@media(max-width:767.98px) { .offers-grid { justify-content:flex-start; padding:0 1rem; margin:0 -0.75rem; scroll-padding-left:1rem; } }
.offers-grid::-webkit-scrollbar { display:none; }
.offers-grid > .offer-card { flex:0 0 28%; min-width:280px; scroll-snap-align:start; }
@media(max-width:991.98px) { .offers-grid > .offer-card { flex:0 0 40%; min-width:260px; } }
@media(max-width:767.98px) { .offers-grid > .offer-card { flex:0 0 85%; min-width:0; } }
/* Offers nav arrows (desktop) */
.offers-nav { display:none; }
.offers-nav__btn { width:40px; height:40px; border-radius:50%; border:1px solid var(--color-border); background:var(--color-bg); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; }
.offers-nav__btn:hover { border-color:var(--color-text); }
.offers-nav__btn svg { width:16px; height:16px; color:var(--color-muted); }
.offers-nav__btn:hover svg { color:var(--color-text); }
@media(max-width:767.98px) { .offers-nav { display:none; } }
/* Offers dot indicators (mobile) */
.offers-dots { display:none; }
@media(max-width:767.98px) {
    .offers-dots { display:flex; justify-content:center; gap:6px; margin-top:1rem; }
    .offers-dots__dot { width:7px; height:7px; border-radius:50%; background:rgba(35,40,45,0.15); border:none; padding:0; cursor:pointer; transition:all 0.25s ease; }
    .offers-dots__dot.active { width:20px; border-radius:4px; background:var(--color-primary); }
}

/* ============================================
   OFFER MODAL
   ============================================ */
.offer-modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:1050; align-items:flex-end; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.offer-modal-overlay.show { display:flex; }
@media(min-width:768px) { .offer-modal-overlay { align-items:center; justify-content:center; } }

.offer-modal { background:var(--color-bg); width:100%; max-height:95vh; overflow-y:auto; border-radius:var(--radius-lg) var(--radius-lg) 0 0; animation:rmSlideUp 0.3s ease-out; display:flex; flex-direction:column; }
@media(min-width:768px) { .offer-modal { max-width:620px; border-radius:var(--radius-lg); animation:rmFadeIn 0.25s ease-out; max-height:90vh; } }

.offer-modal__header { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; border-bottom:1px solid var(--color-border); position:sticky; top:0; background:var(--color-bg); z-index:2; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.offer-modal__title { font-family:var(--font-heading); font-size:1.25rem; margin:0; }
.offer-modal__close { width:36px; height:36px; border-radius:50%; border:1px solid var(--color-border); background:var(--color-bg); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.1rem; color:var(--color-text); transition:background 0.2s; }
.offer-modal__close:hover { background:var(--color-bg-mist); }

.offer-modal__image { margin:0 1.5rem; aspect-ratio:16/10; overflow:hidden; background:var(--color-bg-mist); border-radius:var(--radius-md); border:1px solid var(--color-border); margin-top:1.5rem; }
.offer-modal__image svg, .offer-modal__image img { width:100%; height:100%; object-fit:cover; display:block; }

.offer-modal__body { padding:1.5rem; flex:1; overflow-y:auto; }

.offer-modal__eyebrow { font-size:0.72rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-primary); margin-bottom:0.5rem; }
.offer-modal__summary { font-size:0.925rem; color:var(--color-text); line-height:1.65; margin-bottom:1.5rem; }

.offer-modal__section-title { font-family:var(--font-heading); font-size:1rem; margin:0 0 0.75rem; color:var(--color-text); }

/* What's included list */
.offer-modal__includes { list-style:none; padding:0; margin:0 0 1.5rem; display:flex; flex-direction:column; gap:0.5rem; }
.offer-modal__includes li { display:flex; align-items:flex-start; gap:0.6rem; font-size:0.875rem; color:var(--color-text); line-height:1.5; }
.offer-modal__includes li svg { width:16px; height:16px; color:var(--color-primary); flex-shrink:0; margin-top:2px; }

.offer-modal__divider { border:none; border-top:1px solid var(--color-border); margin:0 0 1.5rem; }

/* How it works steps */
.offer-modal__steps { display:flex; gap:1rem; margin-bottom:1.5rem; }
.offer-modal__step { flex:1; text-align:center; }
.offer-modal__step-num { width:32px; height:32px; border-radius:50%; background:var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.85rem; font-weight:700; margin:0 auto 0.5rem; }
.offer-modal__step-title { font-family:var(--font-heading); font-size:0.85rem; margin-bottom:0.25rem; color:var(--color-text); }
.offer-modal__step-desc { font-size:0.78rem; color:var(--color-muted); line-height:1.45; }

/* Key terms grid */
.offer-modal__terms { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; margin-bottom:1.5rem; }
.offer-modal__term { background:var(--color-bg-mist); border-radius:var(--radius-sm); padding:0.6rem 0.75rem; }
.offer-modal__term-label { font-size:0.68rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-muted); margin-bottom:0.15rem; }
.offer-modal__term-value { font-size:0.82rem; color:var(--color-text); line-height:1.4; }

/* FAQ accordion */
.offer-modal__faq { margin-bottom:0.5rem; }
.offer-modal__faq-item { border-bottom:1px solid var(--color-border); }
.offer-modal__faq-item:first-child { border-top:1px solid var(--color-border); }
.offer-modal__faq-q { display:flex; align-items:center; justify-content:space-between; padding:0.75rem 0; cursor:pointer; background:none; border:none; width:100%; text-align:left; font-family:var(--font-heading); font-size:0.9rem; color:var(--color-text); gap:0.5rem; }
.offer-modal__faq-q svg { width:16px; height:16px; color:var(--color-muted); flex-shrink:0; transition:transform 0.25s ease; }
.offer-modal__faq-q.open svg { transform:rotate(180deg); }
.offer-modal__faq-a { font-size:0.82rem; color:var(--color-muted); line-height:1.6; padding:0 0 0.75rem; display:none; }
.offer-modal__faq-a.show { display:block; }

/* Footer */
.offer-modal__footer { display:flex; align-items:center; gap:0.75rem; padding:1rem 1.5rem; border-top:1px solid var(--color-border); position:sticky; bottom:0; background:var(--color-bg); z-index:2; }
.offer-modal__footer a.btn-cta { flex:1; text-align:center; }

/* ---- Offer modal mobile ---- */
@media(max-width:767.98px) {
    .offer-modal__header { padding:0.75rem 1rem; }
    .offer-modal__title { font-size:1.1rem; }
    .offer-modal__close { width:32px; height:32px; }
    .offer-modal__image { margin:0 1rem; margin-top:1rem; aspect-ratio:16/10; }
    .offer-modal__body { padding:1rem; }
    .offer-modal__eyebrow { font-size:0.68rem; }
    .offer-modal__summary { font-size:0.85rem; margin-bottom:1.25rem; }
    .offer-modal__section-title { font-size:0.9rem; }
    .offer-modal__includes li { font-size:0.82rem; }
    .offer-modal__includes li svg { width:14px; height:14px; }
    .offer-modal__steps { gap:0.6rem; }
    .offer-modal__step-num { width:28px; height:28px; font-size:0.78rem; }
    .offer-modal__step-title { font-size:0.8rem; }
    .offer-modal__step-desc { font-size:0.72rem; }
    .offer-modal__terms { gap:0.5rem; }
    .offer-modal__term { padding:0.5rem 0.65rem; }
    .offer-modal__term-label { font-size:0.65rem; }
    .offer-modal__term-value { font-size:0.78rem; }
    .offer-modal__faq-q { font-size:0.85rem; padding:0.65rem 0; }
    .offer-modal__faq-a { font-size:0.78rem; }
    .offer-modal__footer { padding:0.75rem 1rem; }
    .offer-modal__footer a.btn-cta { font-size:0.85rem; padding:0.55rem 1rem; }
}

/* EXPERIENCES */
.experiences-intro { text-align:center; max-width:700px; margin:0 auto 3rem auto; }
.experiences-intro__text { color:var(--color-muted); font-size:1.125rem; margin-top:0.5rem; }
.experiences-grid { display:flex; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:4px; justify-content:flex-start; }
.experiences-grid::-webkit-scrollbar { display:none; }
.experiences-grid > .experience-card { flex:0 0 23%; min-width:220px; scroll-snap-align:start; }
@media(max-width:991.98px) { .experiences-grid > .experience-card { flex:0 0 38%; min-width:200px; } }
@media(max-width:767.98px) { .experiences-grid > .experience-card { flex:0 0 72%; min-width:0; } .experiences-grid { margin-left:calc(-1 * var(--gutter)) !important; margin-right:calc(-1 * var(--gutter)) !important; padding-left:24px !important; padding-right:24px !important; scroll-padding-left:24px; } }
.experiences-cta { text-align:center; margin-top:2rem; }

/* Experience dots (mobile) */
.experiences-dots { display:none; }

/* See all card */
.experience-card--see-all .experience-card__image { aspect-ratio:4/3; }
.experience-card__body--see-all { justify-content:center; align-items:flex-start; }
.experience-card__see-all { display:inline-flex; align-items:center; gap:0.35rem; font-size:0.85rem; font-weight:600; color:var(--color-primary); margin-top:0.4rem; }
.experience-card__see-all svg { transition:transform 0.2s; }
@media(hover:hover) { .experience-card--see-all:hover .experience-card__see-all svg { transform:translateX(3px); } }

/* Hide View all button on mobile (See all card is enough) */
@media(max-width:767.98px) { .experiences-cta { display:none; } }
@media(max-width:767.98px) {
    .experiences-dots { display:flex; justify-content:center; gap:6px; margin-top:1rem; }
    .experiences-dots__dot { width:7px; height:7px; border-radius:50%; background:rgba(35,40,45,0.15); border:none; padding:0; cursor:pointer; transition:all 0.25s ease; }
    .experiences-dots__dot.active { width:20px; border-radius:4px; background:var(--color-primary); }
}

/* SPLIT PANEL */
.split-panel { display:grid; grid-template-columns:1fr; gap:0; }
@media(min-width:992px) { .split-panel { grid-template-columns:repeat(2,1fr); } }
.split-panel__item { position:relative; min-height:400px; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; }
@media(min-width:992px) { .split-panel__item { min-height:500px; } }
.split-panel__background { position:absolute; top:0; left:0; width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--color-muted); }
.split-panel__background::after { content:''; position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); top:auto; }
.split-panel__content { position:absolute; bottom:0; left:0; right:0; z-index:2; text-align:center; color:#ffffff; padding:2rem 2rem 2.5rem; max-width:none; }
.split-panel__content h3 { font-size:2rem; margin-bottom:1rem; color:#ffffff; }
.split-panel__content p { font-size:1.125rem; margin-bottom:1.5rem; opacity:0.95; }
.split-panel__content a { color:#ffffff; font-weight:600; font-size:1rem; }
.split-panel__content .btn-outline-secondary { border-color:rgba(255,255,255,0.6); color:#ffffff; }
.split-panel__content .btn-outline-secondary:hover { background:rgba(255,255,255,0.15); border-color:#ffffff; }
.split-panel__content a:hover { opacity:0.8; }

/* Split panel — mobile/tablet card layout */
@media(max-width:991.98px) {
    .split-panel { gap:1.25rem; padding:var(--section-pad-y-mobile) var(--gutter); }
    .split-panel__item { min-height:auto !important; flex-direction:column; align-items:stretch; border-radius:var(--radius-md); overflow:hidden; background:#ffffff; box-shadow:var(--shadow-sm); }
    .split-panel__background { position:relative !important; width:100%; height:200px; flex-shrink:0; top:auto; left:auto; }
    .split-panel__background::after { display:none; }
    .split-panel__background svg, .split-panel__background img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
    .split-panel__content { position:relative !important; z-index:2; color:var(--color-text); padding:1.25rem 1.25rem 1.5rem; max-width:none; display:flex; flex-direction:column; align-items:center; text-align:center; }
    .split-panel__content h3 { font-size:1.35rem; margin-bottom:0.5rem; color:var(--color-text); }
    .split-panel__content p { font-size:0.95rem; margin-bottom:1rem; opacity:1; color:var(--color-muted); line-height:1.55; }
    .split-panel__content a:not(.btn-outline-secondary) { color:var(--color-primary); font-weight:600; font-size:0.9rem; text-decoration:none; }
    .split-panel__content .btn-outline-secondary { display:inline-block; border:1.5px solid var(--color-border); color:var(--color-text); font-size:0.85rem; padding:0.5rem 1.25rem; border-radius:var(--radius-sm); text-decoration:none; }
    .split-panel__content .btn-outline-secondary:hover { background:var(--color-bg-mist); }
}

/* WEDDINGS BANNER */
.weddings-banner { background-color:var(--color-bg-mist); border-radius:var(--radius-lg); padding:3rem 2rem; text-align:center; max-width:900px; margin:0 auto; }
@media(min-width:768px) { .weddings-banner { padding:4rem 3rem; } }
.weddings-banner h2 { margin-bottom:1.5rem; }
.weddings-banner__features { list-style:none; padding:0; margin:0 0 2rem 0; display:flex; flex-direction:column; gap:0.75rem; align-items:center; }
@media(min-width:576px) { .weddings-banner__features { flex-direction:row; justify-content:center; gap:2rem; } }
.weddings-banner__feature { font-size:1rem; color:var(--color-text); position:relative; padding-left:1.5rem; }
.weddings-banner__feature::before { content:'✓'; position:absolute; left:0; color:var(--color-primary); font-weight:600; }
.weddings-banner__cta { display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:center; margin-bottom:1rem; }
@media(min-width:576px) { .weddings-banner__cta { flex-direction:row; } }
.weddings-banner__cta-secondary { color:var(--color-text); text-decoration:underline; font-weight:600; }
.weddings-banner__microtrust { font-size:0.875rem; color:var(--color-muted); margin-top:1rem; }

/* TESTIMONIALS */
.testimonials-intro { text-align:center; margin-bottom:1.5rem; }
.testimonials-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; margin-bottom:0; }
@media(min-width:768px) { .testimonials-grid { grid-template-columns:repeat(4,1fr); } }

/* Testimonials — see-all card */
.testimonial-card--see-all {
    display:flex; align-items:center; justify-content:center;
    text-decoration:none; cursor:pointer;
    border:1.5px dashed rgba(35,40,45,0.15); background:#ffffff; box-shadow:none;
    transition:all 0.3s ease;
}
.testimonial-card--see-all:hover { border-color:var(--color-primary); background:#ffffff; box-shadow:0 8px 24px rgba(35,40,45,0.08); transform:translateY(-3px); }
.testimonial-card__see-all-inner {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; padding:1.5rem; gap:0.75rem;
}
.testimonial-card__see-all-inner svg { color:var(--color-primary); opacity:0.6; }
.testimonial-card__see-all-title {
    font-family:var(--font-heading); font-size:1.1rem; font-weight:400;
    color:var(--color-text); margin:0; line-height:1.3;
}
.testimonial-card__see-all-link {
    display:inline-flex; align-items:center; gap:0.35rem;
    font-size:0.85rem; font-weight:600; color:var(--color-primary);
}
.testimonial-card__see-all-link svg { transition:transform 0.2s; }
@media(hover:hover) { .testimonial-card--see-all:hover .testimonial-card__see-all-link svg { transform:translateX(3px); } }
.testimonial-card { border:none; border-radius:var(--radius-lg); padding:2rem; background-color:#ffffff; display:flex; flex-direction:column; position:relative; box-shadow:0 1px 4px rgba(35,40,45,0.04); transition:transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s ease; }
@media(hover:hover) { .testimonial-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(35,40,45,0.08); } }
.testimonial-card__stars { display:flex; gap:3px; margin-bottom:0.75rem; }
.testimonial-card__star { width:14px; height:14px; color:#f5b741; }
.testimonial-card__star svg { width:100%; height:100%; display:block; }
.testimonial-card__quote { font-size:1.05rem; line-height:1.65; color:var(--color-text); margin-bottom:1.25rem; flex:1; }
.testimonial-card__quote::before { content:'\201C'; font-family:Georgia,serif; font-size:1.75rem; color:#c4b8a4; line-height:0.5; vertical-align:-0.15em; margin-right:2px; }
.testimonial-card__quote::after { content:'\201D'; font-family:Georgia,serif; font-size:1.75rem; color:#c4b8a4; line-height:0.5; vertical-align:-0.15em; margin-left:2px; }
.testimonial-card__meta { margin-top:auto; }
.testimonial-card__author { font-weight:600; margin-bottom:0.15rem; font-size:0.9rem; }
.testimonial-card__detail { font-size:0.78rem; color:var(--color-muted); margin-bottom:0.5rem; }
.testimonial-card__source { display:inline-flex; align-items:center; gap:0.35rem; font-size:0.78rem; padding:4px 10px; background-color:#f5f3f0; border-radius:var(--radius-sm); color:var(--color-muted); }
.testimonial-card__source::before { content:''; display:inline-block; width:12px; height:12px; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23888078' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E"); background-size:contain; background-repeat:no-repeat; flex-shrink:0; }
/* Aggregate trust bar — relocated from trust strip */
.testimonials-aggregate { display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; margin-bottom:1.75rem; padding:1.25rem 0; }
.testimonials-aggregate__item { display:flex; align-items:center; gap:0.6rem; }
.testimonials-aggregate__icon { width:22px; height:22px; color:#C4B8A4; opacity:0.75; flex-shrink:0; }
.testimonials-aggregate__icon svg { width:100%; height:100%; display:block; }
.testimonials-aggregate__text { font-size:0.85rem; color:var(--color-muted); }
.testimonials-aggregate__text strong { color:var(--color-text); font-weight:600; }
@media(max-width:575.98px) { .testimonials-aggregate { flex-direction:column; gap:0.6rem; align-items:center; } }
.testimonials-cta { display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:center; }
@media(min-width:576px) { .testimonials-cta { flex-direction:row; } }
.testimonials-cta__secondary { color:var(--color-text); text-decoration:underline; font-weight:600; }

/* ============================================
   MOBILE NAVIGATION SYSTEM
   ============================================ */

/* Mobile: Hide header nav, use only bottom bar */
@media (max-width: 991.98px) {
    .navbar-toggler {
        display: none !important;
    }

    .navbar-collapse {
        display: none !important;
    }

    .cta-button {
        display: none !important;
    }
}

/* MOBILE ACTION BAR */
.mobile-action-bar { display:none; position:fixed; bottom:0; left:0; right:0; background-color:var(--color-bg); border-top:1px solid var(--color-border); padding:12px 20px; padding-bottom:calc(12px + env(safe-area-inset-bottom)); z-index:1020; box-shadow:0 -4px 12px rgba(35,40,45,0.08); }
@media(max-width:991.98px) { .mobile-action-bar { display:flex; } }
.mobile-action-bar__content { display:flex; gap:12px; align-items:center; width:100%; }
.mobile-action-bar__hamburger { width:48px; height:48px; display:flex; align-items:center; justify-content:center; background-color:transparent; border:1px solid var(--color-border); border-radius:var(--radius-md); color:var(--color-muted); text-decoration:none; font-size:1.25rem; cursor:pointer; transition:all 0.2s ease; }
.mobile-action-bar__hamburger:hover { background-color:var(--color-bg-mist); border-color:rgba(35,40,45,0.18); color:var(--color-text); }
.mobile-action-bar__primary { flex:1; padding:10px 24px; background:rgba(35,40,45,0.55); color:#ffffff; border:1px solid rgba(255,255,255,0.15); border-radius:var(--radius-sm); font-weight:600; font-size:0.9rem; text-decoration:none; display:flex; align-items:center; justify-content:center; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transition:none; }
.mobile-action-bar__icon-btn { width:48px; height:48px; display:flex; align-items:center; justify-content:center; background-color:transparent; border:1px solid var(--color-border); border-radius:var(--radius-md); color:var(--color-muted); text-decoration:none; font-size:1.25rem; cursor:pointer; transition:all 0.2s ease; }
.mobile-action-bar__icon-btn:hover { background-color:var(--color-bg-mist); border-color:rgba(35,40,45,0.18); color:var(--color-text); }

/* Mobile Action Bar Icons */
.mobile-action-bar__hamburger .taly-icon,
.mobile-action-bar__icon-btn .taly-icon { width:18px; height:18px; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Mobile Menu Backdrop */
.mobile-menu-backdrop { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background-color:rgba(0,0,0,0.35); z-index:1040; opacity:0; transition:opacity 0.3s ease; }
.mobile-menu-backdrop.show { display:block; opacity:1; }

/* Mobile Menu (Bottom Sheet) */
.mobile-menu { display:none; position:fixed; left:0; right:0; bottom:0; background:rgba(255,255,255,0.72); -webkit-backdrop-filter:blur(24px) saturate(1.8); backdrop-filter:blur(24px) saturate(1.8); border-radius:20px 20px 0 0; box-shadow:0 -8px 40px rgba(35,40,45,0.15), inset 0 1px 0 rgba(255,255,255,0.4); z-index:1050; max-height:85vh; overflow-y:auto; transform:translateY(100%); transition:transform 0.3s cubic-bezier(0.16,1,0.3,1); }
.mobile-menu.show { display:block; transform:translateY(0); }
@media (min-width:992px) { .mobile-menu { display:none!important; } }

.mobile-menu__topbar { display:flex; flex-direction:column; align-items:center; padding:14px 16px 0; position:relative; }
.mobile-menu__handle { width:40px; height:5px; background:rgba(35,40,45,0.15); border-radius:3px; }
.mobile-menu__wordmark { margin-top:10px; font-family:var(--font-heading); font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:rgba(35,40,45,0.35); }
.mobile-menu__close { position:absolute; right:16px; top:10px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:rgba(35,40,45,0.04); border:none; border-radius:50%; font-size:1.4rem; line-height:1; color:var(--color-muted); cursor:pointer; transition:all 0.2s ease; padding:0; }
.mobile-menu__close:hover { background:rgba(35,40,45,0.08); color:var(--color-text); }

.mobile-menu__cta-section { padding:16px 24px 14px; }
.mobile-menu__book-btn { display:block; width:100%; padding:14px 24px; background:#23282d; color:#ffffff; border:1px solid #23282d; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:0.95rem; font-weight:600; text-align:center; text-decoration:none; cursor:pointer; transition:background 0.2s; }
.mobile-menu__book-btn:hover { background:#1a1e22; }
.mobile-menu__phone { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:10px; font-size:0.8rem; color:var(--color-muted); text-decoration:none; font-family:var(--font-body); }
.mobile-menu__phone svg { color:#C4B8A4; }
.mobile-menu__phone:hover { color:var(--color-text); }

.mobile-menu__nav { padding:6px 0; margin:0; list-style:none; border-top:1px solid rgba(35,40,45,0.08); }
.mobile-menu__nav li { border-bottom:none; }
.mobile-menu__nav a { display:block; padding:13px 24px; color:var(--color-text); text-decoration:none; font-family:var(--font-heading); font-size:0.95rem; font-weight:400; opacity:0.7; transition:opacity 0.2s, background-color 0.2s; border-left:3px solid transparent; }
.mobile-menu__nav a:hover { background-color:rgba(35,40,45,0.03); opacity:1; }
.mobile-menu__nav a.is-active { font-weight:600; opacity:1; border-left-color:var(--color-text); }

.mobile-menu__trust { padding:10px 24px calc(20px + env(safe-area-inset-bottom)); text-align:center; font-size:0.72rem; color:var(--color-muted); font-family:var(--font-body); display:flex; align-items:center; justify-content:center; gap:4px; border-top:1px solid rgba(35,40,45,0.06); }
.mobile-menu__trust svg { color:#C4B8A4; flex-shrink:0; }

/* ---- Contact Sheet (Bottom Sheet from phone icon) ---- */
.contact-sheet-backdrop { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background-color:rgba(0,0,0,0.35); z-index:1055; opacity:0; transition:opacity 0.3s ease; }
.contact-sheet-backdrop.show { display:block; opacity:1; }

.contact-sheet {
    display:none; position:fixed; left:0; right:0; bottom:0;
    background:rgba(255,255,255,0.82);
    -webkit-backdrop-filter:blur(28px) saturate(1.8);
    backdrop-filter:blur(28px) saturate(1.8);
    border-radius:22px 22px 0 0;
    box-shadow:0 -8px 40px rgba(35,40,45,0.18), inset 0 1px 0 rgba(255,255,255,0.5);
    z-index:1060;
    transform:translateY(100%);
    transition:transform 0.35s cubic-bezier(0.16,1,0.3,1);
    padding-bottom:env(safe-area-inset-bottom);
}
.contact-sheet.show { display:block; transform:translateY(0); }
@media(min-width:992px) { .contact-sheet { display:none!important; } }

.contact-sheet__handle-area { display:flex; justify-content:center; padding:12px 0 2px; cursor:grab; }
.contact-sheet__handle { width:40px; height:5px; background:rgba(35,40,45,0.14); border-radius:3px; }

.contact-sheet__header { display:flex; align-items:center; justify-content:space-between; padding:10px 24px 6px; }
.contact-sheet__title { font-family:var(--font-heading); font-size:1.15rem; font-weight:600; color:var(--color-text); letter-spacing:-0.01em; margin:0; }
.contact-sheet__close { width:34px; height:34px; display:flex; align-items:center; justify-content:center; background:rgba(35,40,45,0.05); border:none; border-radius:50%; font-size:1.3rem; line-height:1; color:var(--color-muted); cursor:pointer; transition:all 0.2s ease; padding:0; }
.contact-sheet__close:hover { background:rgba(35,40,45,0.10); color:var(--color-text); }

.contact-sheet__subtitle { padding:0 24px 14px; font-family:var(--font-body); font-size:0.82rem; color:var(--color-muted); margin:0; line-height:1.4; }

.contact-sheet__options { padding:0 16px 6px; display:flex; flex-direction:column; gap:6px; }

.contact-sheet__option {
    display:flex; align-items:center; gap:16px;
    padding:16px 18px; border-radius:16px;
    background:rgba(35,40,45,0.03);
    border:1px solid rgba(35,40,45,0.06);
    text-decoration:none; color:var(--color-text);
    cursor:pointer;
    transition:all 0.2s ease;
    -webkit-tap-highlight-color:transparent;
}
.contact-sheet__option:hover, .contact-sheet__option:active {
    background:rgba(35,40,45,0.07);
    border-color:rgba(35,40,45,0.10);
}
.contact-sheet__option:active { transform:scale(0.985); }

.contact-sheet__icon {
    width:46px; height:46px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    border-radius:13px;
    transition:all 0.2s ease;
}
.contact-sheet__icon svg { width:22px; height:22px; stroke-width:1.8; }

.contact-sheet__icon--call { background:rgba(39,174,96,0.10); color:#27ae60; }
.contact-sheet__icon--chat { background:rgba(0,181,205,0.10); color:var(--color-primary); }
.contact-sheet__icon--callback { background:rgba(212,163,115,0.10); color:var(--color-sand); }

.contact-sheet__text { flex:1; min-width:0; }
.contact-sheet__label { font-family:var(--font-body); font-size:0.95rem; font-weight:600; color:var(--color-text); line-height:1.3; margin:0; }
.contact-sheet__desc { font-family:var(--font-body); font-size:0.78rem; color:var(--color-muted); line-height:1.35; margin:2px 0 0; }

.contact-sheet__arrow { flex-shrink:0; width:20px; height:20px; color:rgba(35,40,45,0.25); transition:color 0.2s; }
.contact-sheet__option:hover .contact-sheet__arrow { color:rgba(35,40,45,0.45); }

/* Callback form — slides in */
.contact-sheet__form-area {
    max-height:0; overflow:hidden; opacity:0;
    transition:max-height 0.35s cubic-bezier(0.16,1,0.3,1), opacity 0.25s ease, padding 0.3s ease;
    padding:0 16px;
}
.contact-sheet__form-area.is-open { max-height:320px; opacity:1; padding:10px 16px 6px; }

.contact-sheet__form { display:flex; flex-direction:column; gap:10px; padding:14px 18px 16px; background:rgba(35,40,45,0.03); border:1px solid rgba(35,40,45,0.06); border-radius:16px; }

.contact-sheet__field { display:flex; flex-direction:column; gap:3px; }
.contact-sheet__field label { font-family:var(--font-body); font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:var(--color-muted); }
.contact-sheet__field input,
.contact-sheet__field select {
    padding:10px 14px; border:1px solid rgba(35,40,45,0.12); border-radius:10px;
    font-family:var(--font-body); font-size:0.9rem; color:var(--color-text);
    background:rgba(255,255,255,0.7); outline:none; transition:border-color 0.2s;
    -webkit-appearance:none; appearance:none;
}
.contact-sheet__field input:focus,
.contact-sheet__field select:focus { border-color:var(--color-primary); }
.contact-sheet__field input::placeholder { color:rgba(35,40,45,0.35); }

.contact-sheet__submit {
    margin-top:4px; padding:12px 24px;
    background:var(--color-text); color:#fff; border:none; border-radius:10px;
    font-family:var(--font-body); font-size:0.9rem; font-weight:600;
    cursor:pointer; transition:background 0.2s;
}
.contact-sheet__submit:hover { background:#1a1e22; }

/* Success state */
.contact-sheet__success {
    display:none; flex-direction:column; align-items:center; justify-content:center;
    padding:28px 24px 22px; text-align:center; gap:8px;
}
.contact-sheet__success.is-visible { display:flex; }
.contact-sheet__success-icon { width:52px; height:52px; border-radius:50%; background:rgba(39,174,96,0.10); display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.contact-sheet__success-icon svg { width:26px; height:26px; color:#27ae60; stroke-width:2.5; }
.contact-sheet__success-title { font-family:var(--font-heading); font-size:1.1rem; font-weight:600; color:var(--color-text); margin:0; }
.contact-sheet__success-text { font-family:var(--font-body); font-size:0.82rem; color:var(--color-muted); margin:0; line-height:1.4; }

.contact-sheet__footer { padding:10px 24px calc(14px + env(safe-area-inset-bottom)); text-align:center; }
.contact-sheet__cancel { font-family:var(--font-body); font-size:0.85rem; font-weight:500; color:var(--color-muted); background:none; border:none; cursor:pointer; padding:8px 16px; transition:color 0.2s; }
.contact-sheet__cancel:hover { color:var(--color-text); }

/* ---- Desktop Callback Modal ---- */
.callback-modal-backdrop { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.4); z-index:1055; opacity:0; transition:opacity 0.3s ease; }
.callback-modal-backdrop.show { display:block; opacity:1; }

.callback-modal {
    display:none; position:fixed; top:50%; left:50%;
    transform:translate(-50%,-50%) scale(0.95); opacity:0;
    background:var(--color-bg);
    border-radius:20px;
    box-shadow:0 24px 80px rgba(35,40,45,0.18), 0 2px 8px rgba(35,40,45,0.08);
    z-index:1060; width:92%; max-width:420px;
    transition:transform 0.35s cubic-bezier(0.16,1,0.3,1), opacity 0.3s ease;
    overflow:hidden;
}
.callback-modal.show { display:block; opacity:1; transform:translate(-50%,-50%) scale(1); }

.callback-modal__header { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 6px; }
.callback-modal__title { font-family:var(--font-heading); font-size:1.2rem; font-weight:600; color:var(--color-text); margin:0; }
.callback-modal__close { width:34px; height:34px; display:flex; align-items:center; justify-content:center; background:rgba(35,40,45,0.05); border:none; border-radius:50%; font-size:1.3rem; line-height:1; color:var(--color-muted); cursor:pointer; transition:all 0.2s; padding:0; }
.callback-modal__close:hover { background:rgba(35,40,45,0.10); color:var(--color-text); }
.callback-modal__subtitle { padding:4px 28px 20px; font-family:var(--font-body); font-size:0.85rem; color:var(--color-muted); margin:0; line-height:1.5; }

.callback-modal__form { display:flex; flex-direction:column; gap:14px; padding:0 28px 28px; }
.callback-modal__field { display:flex; flex-direction:column; gap:4px; }
.callback-modal__field label { font-family:var(--font-body); font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:var(--color-muted); }
.callback-modal__field input,
.callback-modal__field select {
    padding:12px 16px; border:1px solid rgba(35,40,45,0.12); border-radius:12px;
    font-family:var(--font-body); font-size:0.95rem; color:var(--color-text);
    background:var(--color-bg-mist); outline:none; transition:border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance:none; appearance:none;
}
.callback-modal__field input:focus,
.callback-modal__field select:focus { border-color:var(--color-primary); box-shadow:0 0 0 3px rgba(0,181,205,0.10); }
.callback-modal__field input::placeholder { color:rgba(35,40,45,0.35); }

.callback-modal__submit {
    margin-top:4px; padding:14px 24px;
    background:var(--color-text); color:#fff; border:none; border-radius:12px;
    font-family:var(--font-body); font-size:0.95rem; font-weight:600;
    cursor:pointer; transition:background 0.2s;
}
.callback-modal__submit:hover { background:#1a1e22; }

.callback-modal__success {
    display:none; flex-direction:column; align-items:center; justify-content:center;
    padding:40px 28px 36px; text-align:center; gap:10px;
}
.callback-modal__success.is-visible { display:flex; }
.callback-modal__success-icon { width:56px; height:56px; border-radius:50%; background:rgba(39,174,96,0.10); display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.callback-modal__success-icon svg { width:28px; height:28px; color:#27ae60; stroke-width:2.5; }
.callback-modal__success-title { font-family:var(--font-heading); font-size:1.15rem; font-weight:600; color:var(--color-text); margin:0; }
.callback-modal__success-text { font-family:var(--font-body); font-size:0.85rem; color:var(--color-muted); margin:0; line-height:1.5; }

/* Hide mobile navigation on desktop */
@media (min-width:992px) {
    .mobile-action-bar,
    .mobile-menu-backdrop {
        display:none!important;
    }
}

/* MODAL / BOTTOM SHEET */
.modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background-color:rgba(0,0,0,0.5); z-index:1030; align-items:flex-end; }
.modal-overlay.show { display:flex; }
@media(min-width:768px) { .modal-overlay { align-items:center; justify-content:center; } }
.modal-content-custom { background-color:var(--color-bg); border-radius:var(--radius-lg) var(--radius-lg) 0 0; padding:2rem; max-width:100%; width:100%; animation:slideUp 0.3s ease-out; }
@media(min-width:768px) { .modal-content-custom { border-radius:var(--radius-lg); max-width:500px; animation:fadeIn 0.3s ease-out; } }
@keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0;transform:scale(0.95)} to{opacity:1;transform:scale(1)} }
.modal-content-custom h3 { font-size:1.5rem; margin-bottom:1rem; }
.modal-content-custom p { color:var(--color-muted); margin-bottom:1.5rem; }
.modal-actions { display:flex; flex-direction:column; gap:0.75rem; }
@media(min-width:576px) { .modal-actions { flex-direction:row; } }

/* TOAST NOTIFICATION */
.toast-notification { position:fixed; bottom:80px; left:50%; transform:translateX(-50%); background-color:var(--color-text); color:#ffffff; padding:12px 24px; border-radius:var(--radius-md); box-shadow:var(--shadow-md); z-index:1040; display:none; white-space:nowrap; }
@media(min-width:992px) { .toast-notification { bottom:20px; } }
.toast-notification.show { display:block; animation:toastSlideUp 0.3s ease-out; }
@keyframes toastSlideUp { from{opacity:0;transform:translateX(-50%) translateY(20px)} to{opacity:1;transform:translateX(-50%) translateY(0)} }

/* MOBILE BOOKING BOTTOM SHEET */
.mbs-overlay {
    display:none; position:fixed; inset:0;
    background-color:rgba(0,0,0,0.45);
    z-index:1050; align-items:flex-end;
    -webkit-tap-highlight-color:transparent;
}
.mbs-overlay.show { display:flex; }
.mbs-sheet {
    background-color:var(--color-bg);
    border-radius:20px 20px 0 0;
    padding:0 1.5rem 2rem;
    width:100%;
    box-shadow:0 -8px 32px rgba(35,40,45,0.16);
    animation:mbsSlideUp 0.32s cubic-bezier(0.32,0.72,0,1);
    max-height:92vh; overflow-y:auto;
}
@keyframes mbsSlideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.mbs-handle-bar {
    width:40px; height:4px; border-radius:2px;
    background-color:var(--color-border);
    margin:12px auto 20px;
}
.mbs-header {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:1.5rem;
}
.mbs-title {
    font-family:var(--font-heading); font-size:1.375rem;
    color:var(--color-text); margin:0;
}
.mbs-close {
    width:36px; height:36px; border-radius:50%;
    background-color:var(--color-bg-mist);
    border:1px solid var(--color-border);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; font-size:1.125rem; line-height:1;
    color:var(--color-muted); transition:background-color 0.2s;
    flex-shrink:0;
}
.mbs-close:hover { background-color:#e8eceb; }
.mbs-field { margin-bottom:1rem; }
.mbs-field label {
    display:block; font-size:0.75rem; font-weight:600;
    letter-spacing:0.05em; text-transform:uppercase;
    color:var(--color-text); margin-bottom:0.4rem;
}
.mbs-field input, .mbs-field select {
    width:100%; padding:0.8rem 1rem;
    border:1px solid var(--color-border); border-radius:var(--radius-md);
    font-family:var(--font-body); font-size:1rem;
    background-color:#fff; transition:border-color 0.2s;
    -webkit-appearance:none; appearance:none; cursor:pointer;
}
.mbs-field input[readonly] { cursor:pointer; }
.mbs-field input::placeholder { color:rgba(35,40,45,0.38); }
.mbs-field input:focus, .mbs-field select:focus {
    outline:none; border-color:var(--color-primary);
}
.mbs-dates { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; }
.mbs-promo-toggle {
    color:var(--color-primary); text-decoration:underline;
    background:none; border:none; padding:0;
    font-size:0.85rem; font-family:var(--font-body);
    cursor:pointer; margin-bottom:0.75rem; display:inline-block;
}
.mbs-promo-field { display:none; }
.mbs-promo-field.show { display:block; }
.mbs-submit {
    width:100%; padding:16px;
    font-size:1.0625rem; font-weight:600;
    margin-top:0.5rem;
}
.mbs-helper {
    text-align:center; font-size:0.8rem;
    color:var(--color-muted); margin-top:0.75rem;
    display:flex; align-items:center; justify-content:center; gap:3px;
}
.mbs-helper svg { color:#C4B8A4; vertical-align:-2px; flex-shrink:0; }

/* VALUE STORY */
.value-story { text-align:center; max-width:800px; margin:0 auto; }
.value-story__intro { font-size:1.125rem; line-height:1.6; color:var(--color-muted); margin-bottom:2rem; }
.value-story__features { list-style:none; padding:0; margin:0 0 2rem 0; display:flex; flex-direction:column; gap:0.75rem; align-items:center; }
@media(min-width:768px) { .value-story__features { flex-direction:row; justify-content:center; gap:2rem; } }
.value-story__feature { font-size:1rem; color:var(--color-text); position:relative; padding-left:1.5rem; }
.value-story__feature::before { content:'\2713'; position:absolute; left:0; color:var(--color-primary); font-weight:600; }
.value-story__cta { display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:center; }
@media(min-width:576px) { .value-story__cta { flex-direction:row; } }
.value-story__cta-secondary { color:var(--color-text); text-decoration:underline; font-weight:600; }


/* Closing section styles are defined below after scroll-reveal rules */

.closing-section__badge { display:inline-flex; align-items:center; gap:0.5rem; background:rgba(255,255,255,0.12); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,0.2); border-radius:100px; padding:0.5rem 1.25rem; margin-bottom:2.5rem; color:#ffffff; font-size:0.85rem; font-weight:600; letter-spacing:0.04em; }
.closing-section__badge svg { opacity:0.9; flex-shrink:0; }
@media(max-width:767.98px) { .closing-section__badge { margin-bottom:2rem; font-size:0.8rem; padding:0.45rem 1rem; } }

.closing-section__grid { display:grid; grid-template-columns:1fr 1fr; gap:0.85rem; max-width:480px; margin:0 auto; }
@media(max-width:400px) { .closing-section__grid { grid-template-columns:1fr; max-width:280px; gap:0.75rem; } }

.closing-section__btn { display:flex; align-items:center; justify-content:center; gap:0.6rem; padding:0.85rem 1.25rem; border:1.5px solid rgba(255,255,255,0.4); border-radius:var(--radius-sm); background:rgba(255,255,255,0.06); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); color:#ffffff; font-size:0.88rem; font-weight:600; text-decoration:none; transition:all 0.3s cubic-bezier(0.22,1,0.36,1); letter-spacing:0.02em; }
.closing-section__btn svg { opacity:0.8; transition:opacity 0.3s; flex-shrink:0; }
.closing-section__btn:hover { background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.7); color:#ffffff; transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,0.2); }
.closing-section__btn:hover svg { opacity:1; }
.closing-section__btn:active { transform:translateY(0); }

/* FOOTER */
/* FOOTER — luxury minimal, final conversion moment */
.site-footer { background-color:#1e2a2f; color:rgba(255,255,255,0.7); padding:0; margin:0; }
main { flex:1; }
/* CLOSING SECTION — cinematic router */
.closing-section .sr { transform:translateY(24px); transition:opacity 1.2s cubic-bezier(0.22,1,0.36,1), transform 1.2s cubic-bezier(0.22,1,0.36,1); }
.closing-section .sr-d1 { transition-delay:0.25s; }
.closing-section .sr-d2 { transition-delay:0.5s; }
.vb-cinematic .sr { transform:translateY(20px); transition:opacity 1.4s cubic-bezier(0.22,1,0.36,1), transform 1.4s cubic-bezier(0.22,1,0.36,1); }
.vb-cinematic .sr-d1 { transition-delay:0.35s; }
.vb-cinematic .sr-d2 { transition-delay:0.65s; }
.closing-section {
    position:relative; min-height:400px; display:flex; align-items:center;
    justify-content:center; overflow:hidden;
}
@media(max-width:767.98px) { .closing-section { min-height:auto; padding:0; } }
.closing-section__bg {
    position:absolute; inset:0; z-index:0;
}
.closing-section__bg svg,
.closing-section__bg img {
    width:100%; height:100%; object-fit:cover; display:block;
}
.closing-section::after {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.50) 100%);
    pointer-events:none;
}
.closing-section__content {
    position:relative; z-index:2; text-align:center;
    padding:3rem 2rem; max-width:800px; width:100%;
}
@media(max-width:767.98px) { .closing-section__content { padding:3.5rem 1.5rem; } }
.closing-section__heading {
    font-family:var(--font-heading); font-size:2.75rem; font-weight:400;
    color:#ffffff; margin-bottom:1.25rem; line-height:1.15;
    text-shadow:0 2px 20px rgba(0,0,0,0.2); white-space:nowrap;
}
@media(max-width:767.98px) { .closing-section__heading { font-size:2rem; margin-bottom:1rem; white-space:normal; } }
.closing-section__badge {
    display:inline-flex; align-items:center; gap:0.5rem;
    padding:0.45rem 1.15rem; border-radius:100px;
    background:rgba(255,255,255,0.12);
    -webkit-backdrop-filter:blur(12px) saturate(1.3);
    backdrop-filter:blur(12px) saturate(1.3);
    border:1px solid rgba(255,255,255,0.2);
    color:rgba(255,255,255,0.92); font-size:0.82rem; font-weight:600;
    letter-spacing:0.04em; margin-bottom:2.5rem;
}
.closing-section__badge svg { opacity:0.85; width:14px; height:14px; }
@media(max-width:767.98px) { .closing-section__badge { margin-bottom:2rem; font-size:0.78rem; } }
.closing-section__grid {
    display:grid; grid-template-columns:1fr 1fr; gap:0.85rem;
    max-width:480px; margin:0 auto;
}
@media(max-width:479px) { .closing-section__grid { grid-template-columns:1fr; gap:0.75rem; max-width:300px; } }
.closing-section__btn {
    display:flex; align-items:center; justify-content:center; gap:0.6rem;
    padding:0.85rem 1.25rem; border-radius:var(--radius-sm);
    background:rgba(255,255,255,0.08);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,0.28);
    color:#ffffff; font-family:var(--font-body); font-size:0.88rem; font-weight:600;
    text-decoration:none; cursor:pointer; transition:all 0.3s cubic-bezier(0.22,1,0.36,1);
    letter-spacing:0.01em;
}
.closing-section__btn svg { opacity:0.8; flex-shrink:0; transition:opacity 0.3s; }
.closing-section__btn:hover {
    background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.5);
    color:#ffffff; transform:translateY(-1px);
    box-shadow:0 4px 20px rgba(0,0,0,0.15);
}
.closing-section__btn:hover svg { opacity:1; }
@media(max-width:767.98px) {
    .closing-section__btn { padding:0.8rem 1rem; font-size:0.85rem; }
}

.footer-cta-band { background:linear-gradient(135deg, #007a8a 0%, #00b5cd 100%); padding:3rem 0; text-align:center; }
.footer-cta-band__heading { font-family:var(--font-heading); font-size:1.75rem; font-weight:400; color:#ffffff; margin-bottom:0.5rem; }
.footer-cta-band__sub { font-size:0.9rem; color:rgba(255,255,255,0.85); margin-bottom:1.5rem; }
.footer-cta-band .btn-cta { background:rgba(255,255,255,0.95); color:#1a1f24; border:none; font-weight:600; }
.footer-cta-band .btn-cta:hover { background:#ffffff; }
@media(max-width:767.98px) { .footer-cta-band__heading { font-size:1.4rem; } }
.footer-main { padding:2.25rem 0 0.5rem; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:1.5rem; }
@media(max-width:991.98px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:575.98px) {
    .footer-grid { grid-template-columns:1fr 1fr; gap:0; }
    .footer-grid > div:first-child {
        grid-column:1 / -1; text-align:center;
        padding-bottom:1.5rem; margin-bottom:1.5rem;
        border-bottom:1px solid rgba(255,255,255,0.08);
    }
    .footer-grid > div:first-child .footer-social { justify-content:center; margin-top:1rem; }
    .footer-grid > div:first-child .footer-brand__logo { height:38px; margin:0 auto; }
    .footer-grid > div:first-child .footer-address { font-size:0.82rem; line-height:1.7; }
    .footer-grid > div:nth-child(2),
    .footer-grid > div:nth-child(3) { padding:0 0.5rem 1.25rem; }
    .footer-grid > div:last-child {
        grid-column:1 / -1; padding-top:1.25rem;
        border-top:1px solid rgba(255,255,255,0.08);
    }
    .footer-main { padding:2rem 0 1rem; }
    .site-footer h5 { font-size:0.65rem; margin-bottom:0.75rem; }
    .site-footer .footer-links a { font-size:0.82rem; }
    .site-footer .footer-links li { margin-bottom:0.35rem; }
    .copyright { margin-top:1.25rem; padding-top:1rem; }
}
.footer-brand { display:inline-block; text-decoration:none; margin-bottom:0.75rem; }
.footer-brand:hover { opacity:0.85; }
.footer-brand__logo { height:44px; width:auto; display:block; }
.footer-address { font-size:0.82rem; line-height:1.65; color:rgba(255,255,255,0.55); }
.footer-address a { color:rgba(255,255,255,0.65); text-decoration:none; }
.footer-address a:hover { color:#ffffff; opacity:1; }
.site-footer h5 { font-size:0.7rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.4); margin-bottom:0.75rem; font-family:var(--font-body); }
.site-footer .footer-links { list-style:none; padding:0; margin:0; }
.site-footer .footer-links li { margin-bottom:0.3rem; }
.site-footer .footer-links a { font-size:0.82rem; color:rgba(255,255,255,0.6); text-decoration:none; transition:color 0.2s; }
.site-footer .footer-links a:hover { color:#ffffff; opacity:1; }
.footer-social { display:flex; gap:1rem; margin-top:0.5rem; }
.footer-social a { width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.5); text-decoration:none; transition:all 0.2s; }
.footer-social a:hover { border-color:rgba(255,255,255,0.4); color:#ffffff; opacity:1; }
.footer-social a svg { width:16px; height:16px; }
.copyright { margin-top:1.25rem; padding-top:1rem; padding-bottom:0.75rem; border-top:1px solid rgba(255,255,255,0.08); text-align:center; font-size:0.78rem; color:rgba(255,255,255,0.3); }
.copyright p { color:rgba(255,255,255,0.3); margin:0; }

/* UTILITY CLASSES */
.w-100 { width:100% !important; }
.bg-mist { background-color:var(--color-bg-mist); }

/* ===========================================
   MOBILE RESPONSIVE OVERRIDES (<576px)
   =========================================== */
@media(max-width:575.98px) {
    .hero-content h1 { font-size:28px; }
    .hero-content__subline { font-size:1rem; }
    .scene-card__title { font-size:1.05rem; margin-bottom:0.25rem; }
    .scene-card__desc { font-size:0.82rem; line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .scene-card__icon { display:none; }
    .scene-card__content { padding:1rem 1.15rem 1.15rem; }
    .scene-card { height:280px; }
    .showcase__grid { gap:0.75rem; margin-bottom:0; }
    .showcase__grid .scene-card { flex:0 0 85%; }
    #rooms.lt-section { padding-bottom:24px; }
    .room-card__title { font-size:1.25rem; }
    .room-card__price { font-size:1.1rem; }
    .section-header__subtitle { font-size:0.9rem; margin-top:0.75rem; }
    .section-header { margin-bottom:1.5rem; }
    .offers-intro { margin-bottom:0.75rem; }
    .offers-intro h2 { font-size:24px; }
    .offers-intro__text { font-size:0.9rem; margin-top:0.75rem; }
    .experiences-intro { margin-bottom:1.5rem; }
    .experiences-intro h2 { font-size:24px; }
    .experiences-intro__text { font-size:0.9rem; margin-top:0.75rem; }
    .faq-snippet-intro { margin-bottom:1.5rem; }
    .faq-snippet-intro h2 { font-size:24px; }
    .faq-snippet-intro__text { font-size:0.9rem; margin-top:0.75rem; }
    .testimonials-intro { margin-bottom:1rem; }
    .testimonials-intro h2 { font-size:24px; }
    .testimonials-aggregate { margin-bottom:1.25rem; padding:1rem 0; gap:1.25rem; }
    .testimonials-grid {
        display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
        scroll-behavior:smooth; -webkit-overflow-scrolling:touch;
        scrollbar-width:none; gap:0; margin:0 -0.75rem; padding:0 1rem;
        scroll-padding-left:1rem; margin-bottom:0;
    }
    .testimonials-grid::-webkit-scrollbar { display:none; }
    .testimonials-grid > .testimonial-card {
        flex:0 0 82%; min-width:0; scroll-snap-align:start; margin-right:12px;
    }
    .testimonials-grid > .testimonial-card:last-child { margin-right:0.75rem; }
    .testimonial-card { padding:1.5rem; }
    .offer-card__title { font-size:1.25rem; }
    .offer-card__body { padding:1.25rem 1.25rem 0.75rem; }
    .offer-card__benefit { font-size:0.85rem; }
    .offer-card__eyebrow { font-size:0.68rem; margin-bottom:0.4rem; }
    .offer-card__validity { font-size:0.72rem; }
    .offer-card__arrow { width:28px; height:28px; bottom:10px; right:10px; }
    .offer-card__arrow svg { width:12px; height:12px; }
    .offer-card__image { margin:0 1rem 1rem; }
    .experience-card__title { font-size:1rem; }
    .experience-card__body { padding:0.75rem 0.85rem 0.85rem; }
    .experience-card__hook { font-size:0.78rem; }
    .experience-card__meta { font-size:0.72rem; }
    .experience-card__badge { font-size:0.65rem; padding:2px 8px; }
    .experience-card__see-all { font-size:0.8rem; }
    .faq-accordion .accordion-button { font-size:1rem; }
    .testimonial-card__quote { font-size:1rem; }
}

/* Mobile horizontal swipe carousel for room cards */
@media(max-width:767.98px) {
    .rooms-grid {
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scroll-behavior:smooth;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        gap:0;
        margin:0 -0.75rem;
        padding:0 1rem;
        scroll-padding-left:1rem;
    }
    .rooms-grid::-webkit-scrollbar { display:none; }
    .rooms-grid > .room-card {
        flex:0 0 85%;
        min-width:0;
        scroll-snap-align:start;
        margin-right:12px;
    }
    .rooms-grid > .room-card:last-child {
        margin-right:0.75rem;
    }
    .room-card__image { height:160px; }
    .room-card__body { padding:0.85rem 1rem 1rem; }
    .room-card__title { font-size:1.2rem; margin-bottom:0.3rem; }
    .room-card__hook { font-size:0.8rem; margin-bottom:0.5rem; margin-top:0; }
    .room-card__hook--short { margin-top:0.4rem; margin-bottom:0.4rem; }
    .room-card__highlights { padding:8px 10px; margin-bottom:0.6rem; gap:3px; }
    .room-card__hl { font-size:0.75rem; }
    .room-card__hl svg { width:13px; height:13px; }
    .room-card__hl:nth-child(3) { display:none; }
    .room-card__more { margin-top:2px; padding-top:6px; font-size:0.72rem; }
    .room-card__price { margin-bottom:0.6rem; }
    .room-card__actions { gap:0.5rem; }
    .room-card__actions a, .room-card__actions button { padding:0.45rem 0.75rem; font-size:0.82rem; }
    .room-card__arrow { width:28px; height:28px; font-size:0.7rem; }
    .room-card__photo-count { bottom:8px; right:8px; font-size:0.7rem; padding:3px 8px; }

    /* Room carousel dot indicators */
    .rooms-dots {
        display:flex;
        justify-content:center;
        gap:6px;
        margin-top:0.75rem;
        padding-bottom:0;
    }
    .rooms-dots__dot {
        width:7px;
        height:7px;
        border-radius:50%;
        background:var(--color-border);
        transition:all 0.2s ease;
        border:none;
        padding:0;
        cursor:pointer;
    }
    .rooms-dots__dot.active {
        background:var(--color-primary);
        width:20px;
        border-radius:4px;
    }
}
@media(min-width:768px) {
    .rooms-dots { display:none; }
}

/* ===========================================
   ICON SYSTEM
   =========================================== */
.taly-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-top: 2px;
    display: inline-block;
    vertical-align: middle;
}


/* =============================================
   LUXURY DATEPICKER – DUAL MONTH RANGE PICKER
   ============================================= */
.lt-dp-backdrop {
    display:none; position:fixed; top:0; left:0; right:0; bottom:0;
    background:rgba(0,0,0,0.18); z-index:1050;
    -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
}
.lt-dp-backdrop.is-visible { display:block; animation:ltDpFadeIn 0.2s ease; }

/* Calendar panel */
.lt-dp {
    position:absolute; z-index:1060;
    background:rgba(255,255,255,0.75);
    -webkit-backdrop-filter:blur(28px) saturate(1.8);
    backdrop-filter:blur(28px) saturate(1.8);
    border:1px solid rgba(255,255,255,0.55);
    border-radius:20px;
    box-shadow:0 24px 80px rgba(0,0,0,0.14), 0 2px 6px rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.5);
    padding:28px;
    opacity:0; transform:scale(0.96) translateY(10px);
    transition:opacity 0.3s cubic-bezier(0.16,1,0.3,1), transform 0.3s cubic-bezier(0.16,1,0.3,1);
    pointer-events:none;
    width:720px;
}
.lt-dp.is-open {
    opacity:1; transform:scale(1) translateY(0);
    pointer-events:auto;
}
/* Centered modal mode — when opened from arbitrary page locations */
.lt-dp.is-centered {
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%, -50%) scale(0.96);
}
.lt-dp.is-centered.is-open {
    transform:translate(-50%, -50%) scale(1);
}

/* Date range header */
.lt-dp__range-header {
    display:flex; align-items:center; justify-content:center; gap:16px;
    margin-bottom:22px; padding-bottom:18px;
    border-bottom:1px solid rgba(35,40,45,0.07);
    position:relative;
}
/* Top bar: handle + close for mobile bottom sheet */
.lt-dp__topbar {
    display:none; align-items:center; justify-content:center;
    padding:14px 16px 12px; position:relative;
    border-bottom:1px solid rgba(35,40,45,0.06);
    margin-bottom:16px;
}
.lt-dp__handle {
    width:40px; height:5px; background:rgba(35,40,45,0.2);
    border-radius:3px;
}
.lt-dp__close {
    position:absolute; right:16px; top:50%; transform:translateY(-50%);
    width:36px; height:36px; display:flex; align-items:center; justify-content:center;
    background:rgba(35,40,45,0.06); border:none; border-radius:50%;
    font-size:1.4rem; line-height:1; color:var(--color-muted); cursor:pointer;
    transition:all 0.2s ease; padding:0;
}
.lt-dp__close:hover { background:rgba(35,40,45,0.12); color:var(--color-text); }
.lt-dp__range-date {
    text-align:center; padding:10px 24px;
    border-radius:12px; cursor:pointer;
    transition:background 0.15s, box-shadow 0.15s;
    min-width:140px;
}
.lt-dp__range-date:hover { background:rgba(35,40,45,0.04); }
.lt-dp__range-date.is-active {
    background:rgba(0,0,0,0.05);
    box-shadow:inset 0 0 0 1.5px rgba(35,40,45,0.15);
}
.lt-dp__range-label {
    font-size:0.6rem; font-weight:600; text-transform:uppercase;
    letter-spacing:0.12em; color:var(--color-muted); margin-bottom:4px;
}
.lt-dp__range-value {
    font-family:var(--font-heading); font-size:1.05rem;
    color:var(--color-text); white-space:nowrap;
}
.lt-dp__range-value.is-empty { color:rgba(35,40,45,0.3); }
.lt-dp__range-arrow {
    color:rgba(35,40,45,0.25); font-size:1.1rem; flex-shrink:0;
}

/* Dual month grid */
.lt-dp__months {
    display:grid; grid-template-columns:1fr 1fr; gap:28px;
}

/* Month navigation */
.lt-dp__month-nav {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:16px;
}
.lt-dp__nav {
    width:34px; height:34px;
    display:flex; align-items:center; justify-content:center;
    border:none; background:rgba(35,40,45,0.05);
    border-radius:50%; cursor:pointer;
    transition:background 0.2s, transform 0.15s;
    color:var(--color-text); padding:0;
}
.lt-dp__nav:hover { background:rgba(35,40,45,0.1); transform:scale(1.08); }
.lt-dp__nav:active { transform:scale(0.95); }
.lt-dp__nav svg { width:14px; height:14px; }
.lt-dp__nav.is-hidden { visibility:hidden; }
.lt-dp__next--mobile { display:none; }
.lt-dp__month-title {
    font-family:var(--font-heading); font-size:1.05rem; font-weight:400;
    color:var(--color-text); text-align:center; user-select:none;
}

/* Weekday labels */
.lt-dp__weekdays {
    display:grid; grid-template-columns:repeat(7,1fr);
    text-align:center; margin-bottom:6px;
}
.lt-dp__weekday {
    font-size:0.6rem; font-weight:600;
    text-transform:uppercase; letter-spacing:0.06em;
    color:rgba(35,40,45,0.3); padding:4px 0;
}

/* Days grid */
.lt-dp__days {
    display:grid; grid-template-columns:repeat(7,1fr);
    gap:2px 0;
}

/* Day cell */
.lt-dp__day {
    position:relative;
    height:40px; display:flex; align-items:center; justify-content:center;
    font-size:0.82rem; font-weight:400;
    color:var(--color-text); border-radius:50%;
    cursor:pointer; border:none; background:transparent;
    font-family:var(--font-body);
    transition:background 0.12s ease, color 0.12s ease, transform 0.1s ease;
    margin:0; padding:0;
    z-index:1;
}
.lt-dp__day:hover:not(.is-disabled):not(.is-empty) {
    background:rgba(35,40,45,0.06); transform:scale(1.1);
}
.lt-dp__day.is-empty { cursor:default; pointer-events:none; }
.lt-dp__day.is-disabled { opacity:0.18; cursor:not-allowed; pointer-events:none; }

/* Today */
.lt-dp__day.is-today { font-weight:700; }
.lt-dp__day.is-today::after {
    content:''; position:absolute; bottom:2px; left:50%; transform:translateX(-50%);
    width:4px; height:4px; border-radius:50%; background:var(--color-primary);
}

/* Selected endpoints — always full circle */
.lt-dp__day.is-selected {
    background:rgba(0,0,0,0.72); color:#fff; font-weight:600;
    border-radius:50%;
    -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
    transform:scale(1.06); z-index:2;
    box-shadow:0 3px 12px rgba(0,0,0,0.16);
}
.lt-dp__day.is-selected::after { display:none; }
.lt-dp__day.is-selected:hover { transform:scale(1.1); background:rgba(0,0,0,0.78); }

/* In-range — teal band via ::before (behind text) */
.lt-dp__day.is-in-range {
    background:transparent; border-radius:0; color:var(--color-text);
}
.lt-dp__day.is-in-range::before {
    content:''; position:absolute; inset:0; z-index:-1;
    background:rgba(0,181,205,0.09);
}

/* Range start — right-half band behind the circle */
.lt-dp__day.is-range-start::before {
    content:''; position:absolute; top:0; right:0; bottom:0; left:50%; z-index:-1;
    background:rgba(0,181,205,0.09);
}
/* Range end — left-half band behind the circle */
.lt-dp__day.is-range-end::before {
    content:''; position:absolute; top:0; left:0; bottom:0; right:50%; z-index:-1;
    background:rgba(0,181,205,0.09);
}
/* Single-day selection — no band */
.lt-dp__day.is-range-start.is-range-end::before {
    display:none;
}

/* Hover range preview */
.lt-dp__day.is-hover-range {
    background:transparent; border-radius:0;
}
.lt-dp__day.is-hover-range::before {
    content:''; position:absolute; inset:0; z-index:-1;
    background:rgba(0,181,205,0.05);
}
.lt-dp__day.is-hover-end {
    background:rgba(0,0,0,0.07); border-radius:50%;
    font-weight:600;
}

/* Footer */
.lt-dp__footer {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:20px; padding-top:16px;
    border-top:1px solid rgba(35,40,45,0.07);
}
.lt-dp__footer-left {
    display:flex; align-items:center; gap:12px;
}
.lt-dp__clear {
    font-size:0.78rem; color:var(--color-muted);
    background:none; border:none; cursor:pointer;
    text-decoration:underline; font-family:var(--font-body); padding:4px 0;
    transition:color 0.15s;
}
.lt-dp__clear:hover { color:var(--color-text); }
.lt-dp__nights {
    font-size:0.85rem; color:var(--color-muted); font-family:var(--font-body);
    font-weight:500;
}
.lt-dp__done {
    padding:12px 28px;
    background:#23282d; color:#fff;
    border:1px solid #23282d; border-radius:var(--radius-sm);
    font-family:var(--font-body); font-size:0.9rem; font-weight:600;
    cursor:pointer; white-space:nowrap;
    transition:all 0.2s ease;
    display:none;
}
.lt-dp__done.is-visible { display:inline-block; }
.lt-dp__done:hover { background:#1a1e22; border-color:#1a1e22; transform:scale(1.01); }
.lt-dp__done:active { transform:scale(0.98); }

/* Mobile: single month, bottom sheet */
@media(max-width:767.98px) {
    .lt-dp {
        position:fixed; bottom:0; left:0; right:0; top:auto;
        width:100%; border-radius:20px 20px 0 0;
        transform:translateY(100%);
        padding:0 16px calc(20px + env(safe-area-inset-bottom));
        max-height:85vh; overflow-y:auto;
    }
    .lt-dp.is-open { transform:translateY(0); }
    .lt-dp__topbar { display:flex; }
    /* Single month on mobile — hide second month panel */
    .lt-dp__months { grid-template-columns:1fr; gap:0; }
    .lt-dp__month[data-offset="1"] { display:none; }
    /* Show next arrow on visible month */
    .lt-dp__next--mobile { display:flex; }
    .lt-dp__day { height:44px; font-size:0.88rem; }
    .lt-dp__range-date { min-width:110px; padding:8px 16px; }
    .lt-dp__range-value { font-size:0.95rem; }
    .lt-dp { width:100%; }
    /* Sticky footer so Check availability is always reachable */
    .lt-dp__footer {
        position:sticky; bottom:0; z-index:2;
        background:rgba(255,255,255,0.96);
        -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
        margin:12px -16px 0; padding:14px 16px calc(4px + env(safe-area-inset-bottom));
        border-top:1px solid rgba(35,40,45,0.08);
        flex-direction:column; gap:10px;
    }
    .lt-dp__footer-left {
        justify-content:space-between; width:100%;
    }
    .lt-dp__done.is-visible { display:block; width:100%; text-align:center; padding:14px 24px; font-size:0.95rem; }
}

@keyframes ltDpFadeIn { from{opacity:0} to{opacity:1} }

/* =============================================
   GUEST PICKER – FROSTED GLASS STEPPER
   ============================================= */

.lt-gp {
    position:absolute; z-index:1060;
    background:rgba(255,255,255,0.75);
    -webkit-backdrop-filter:blur(28px) saturate(1.8);
    backdrop-filter:blur(28px) saturate(1.8);
    border:1px solid rgba(255,255,255,0.55);
    border-radius:20px;
    box-shadow:0 24px 80px rgba(0,0,0,0.14), 0 2px 6px rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.5);
    padding:28px;
    opacity:0; transform:scale(0.96) translateY(10px);
    transition:opacity 0.3s cubic-bezier(0.16,1,0.3,1), transform 0.3s cubic-bezier(0.16,1,0.3,1);
    pointer-events:none;
    width:340px;
}
.lt-gp.is-open {
    opacity:1; transform:scale(1) translateY(0);
    pointer-events:auto;
}

/* Row */
.lt-gp__row {
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 0;
    border-bottom:1px solid rgba(35,40,45,0.06);
}
.lt-gp__row:last-child { border-bottom:none; }

/* Labels */
.lt-gp__label-group { display:flex; flex-direction:column; }
.lt-gp__label {
    font-family:var(--font-heading); font-size:1rem; font-weight:400;
    color:var(--color-text);
}
.lt-gp__sublabel {
    font-size:0.72rem; color:var(--color-muted); margin-top:2px;
}

/* Stepper controls */
.lt-gp__stepper {
    display:flex; align-items:center; gap:14px;
}
.lt-gp__btn {
    width:36px; height:36px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%;
    border:1.5px solid rgba(35,40,45,0.15);
    background:transparent;
    color:var(--color-text);
    font-size:1.1rem; font-weight:300;
    cursor:pointer;
    transition:background 0.15s, border-color 0.15s, transform 0.12s;
    padding:0; line-height:1;
    font-family:var(--font-body);
}
.lt-gp__btn:hover:not(.is-disabled) {
    background:rgba(35,40,45,0.06);
    border-color:rgba(35,40,45,0.3);
    transform:scale(1.08);
}
.lt-gp__btn:active:not(.is-disabled) { transform:scale(0.95); }
.lt-gp__btn.is-disabled {
    opacity:0.2; cursor:not-allowed; pointer-events:none;
}
.lt-gp__count {
    font-size:1rem; font-weight:600; min-width:24px;
    text-align:center; color:var(--color-text);
    font-family:var(--font-body);
}

/* Done button */
.lt-gp__done {
    width:100%; margin-top:18px; padding:10px 24px;
    background:rgba(0,0,0,0.55); color:#fff;
    border:1px solid rgba(255,255,255,0.15); border-radius:var(--radius-sm);
    font-family:var(--font-body); font-size:0.9rem; font-weight:600;
    cursor:pointer;
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    transition:all 0.2s ease;
}
.lt-gp__done:hover { background:rgba(0,0,0,0.7); border-color:rgba(255,255,255,0.25); transform:scale(1.01); }
.lt-gp__done:active { transform:scale(0.98); }

/* Mobile */
@media(max-width:767.98px) {
    .lt-gp {
        position:fixed; bottom:0; left:0; right:0; top:auto;
        width:100%; border-radius:20px 20px 0 0;
        transform:translateY(100%);
        padding:24px 20px calc(24px + env(safe-area-inset-bottom));
    }
    .lt-gp.is-open { transform:translateY(0); }
}

/* ---- VB1: Editorial photo grid + manifesto stats ---- */
/* Asymmetric: tall photo left, smaller photo + stats right */
/* ---- VB1: Cinematic Grid — edge-to-edge 2×2, immersive ---- */
.vb-cg { display:grid; grid-template-columns:1fr 1fr; gap:3px; line-height:0; }
.vb-cg__cell {
    position:relative; aspect-ratio:16/9; overflow:hidden; cursor:pointer;
}
.vb-cg__cell img,
.vb-cg__cell svg {
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform 1.4s cubic-bezier(0.22,1,0.36,1);
}
.vb-cg__cell:hover img,
.vb-cg__cell:hover svg { transform:scale(1.06); }
.vb-cg__cell::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(0deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.25) 50%,transparent 100%);
    pointer-events:none;
    transition:opacity 0.5s cubic-bezier(0.22,1,0.36,1);
}
@media(hover:hover) { .vb-cg__cell:hover::after { opacity:0; } }
.vb-cg__label { position:absolute; bottom:0; left:0; right:0; padding:28px 36px; z-index:2; transition:opacity 0.5s cubic-bezier(0.22,1,0.36,1); }
@media(hover:hover) { .vb-cg__cell:hover .vb-cg__label { opacity:0; } }
.vb-cg__ey {
    font-size:10px; font-weight:600; letter-spacing:0.2em;
    text-transform:uppercase; color:var(--color-primary); margin-bottom:8px;
}
.vb-cg__tt {
    font-family:var(--font-heading); font-size:1.7rem; font-weight:400;
    color:#fff; line-height:1.2;
}
@media(max-width:767.98px) {
    .vb-cg { grid-template-columns:1fr; }
    .vb-cg__cell { aspect-ratio:16/10; }
    .vb-cg__cell:last-child { display:none; }
    .vb-cg__tt { font-size:1.3rem; }
    .vb-cg__label { padding:20px 24px; }
}

/* ---- Scroll reveal ---- */
.sr { opacity:0; transform:translateY(40px); transition:opacity 0.9s cubic-bezier(0.22,1,0.36,1), transform 0.9s cubic-bezier(0.22,1,0.36,1); }
.sr.is-visible { opacity:1; transform:translateY(0); }
.sr-d1 { transition-delay:0.1s; }
.sr-d2 { transition-delay:0.2s; }
.sr-d3 { transition-delay:0.3s; }

/* Accessibility: respect reduced-motion — show all content immediately */
@media(prefers-reduced-motion:reduce) {
    .sr { opacity:1!important; transform:none!important; transition:none!important; }
    .sr-d1, .sr-d2, .sr-d3 { transition-delay:0s!important; }
    .closing-section .sr, .vb-cinematic .sr { opacity:1!important; transform:none!important; transition:none!important; }
}

/* Disable vertical reveal on cards inside horizontal scrollers — discovery is via swipe */
.experiences-grid > .sr {
    opacity:1; transform:none; transition:none;
}
@media(max-width:767.98px) {
    .rooms-grid > .sr {
        opacity:1; transform:none; transition:none;
    }
}

/* ---- VB2: Immersive testimonial — full-bleed photo with quote overlaid ---- */
.vb-cinematic {
    position:relative; min-height:520px; display:flex; align-items:center;
    justify-content:center; overflow:hidden;
}
@media(max-width:767.98px) { .vb-cinematic { min-height:440px; } }
.vb-cinematic__photo {
    position:absolute; inset:0; z-index:0;
}
.vb-cinematic__photo img,
.vb-cinematic__photo svg { width:100%; height:100%; object-fit:cover; display:block; }
.vb-cinematic::after {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.55) 50%, rgba(0,0,0,0.70) 100%);
    pointer-events:none;
}
.vb-cinematic__quote-block {
    position:relative; z-index:2;
    max-width:860px; padding:3rem clamp(1.5rem, 5vw, 4rem);
    text-align:center;
}
.vb-cinematic__quote {
    font-family:var(--font-heading); font-weight:400; font-style:italic;
    color:#ffffff;
    font-size:clamp(1.6rem, 3.5vw, 2.8rem);
    line-height:1.3;
    margin:0 0 2rem;
    letter-spacing:-0.01em;
    text-shadow:0 2px 20px rgba(0,0,0,0.3);
}
/* Attribution line */
.vb-cinematic__attribution {
    display:flex; align-items:center; justify-content:center;
    gap:0.75rem; flex-wrap:wrap;
}
.vb-cinematic__author {
    font-size:0.85rem; font-weight:600; color:rgba(255,255,255,0.9);
    letter-spacing:0.06em; text-transform:uppercase; margin:0;
}
.vb-cinematic__source {
    font-size:0.78rem; color:rgba(255,255,255,0.6); margin:0;
}
.vb-cinematic__divider {
    width:1px; height:14px; background:rgba(255,255,255,0.3);
}
@media(max-width:767.98px) { .vb-cinematic__divider { display:none; } }
.vb-cinematic__link {
    display:inline-block; margin-top:1.5rem;
    font-size:0.82rem; color:rgba(255,255,255,0.65);
    text-decoration:underline; text-underline-offset:3px;
    transition:color 0.2s;
}
.vb-cinematic__link:hover { color:#ffffff; }

/* ---- Weddings visual banner ---- */
.weddings-visual {
    position:relative; min-height:480px; display:flex; align-items:center;
    justify-content:center; overflow:hidden;
}
@media(max-width:767.98px) { .weddings-visual { min-height:400px; } }
.weddings-visual__bg {
    position:absolute; inset:0; z-index:0;
}
.weddings-visual__bg svg,
.weddings-visual__bg img {
    width:100%; height:100%; object-fit:cover; display:block;
}
.weddings-visual::after {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.40) 100%);
    pointer-events:none;
}
.weddings-visual__card {
    position:relative; z-index:2; text-align:center;
    max-width:540px; padding:2.5rem 2rem;
    background:rgba(255,255,255,0.12);
    -webkit-backdrop-filter:blur(20px) saturate(1.4);
    backdrop-filter:blur(20px) saturate(1.4);
    border:1px solid rgba(255,255,255,0.25);
    border-radius:var(--radius-lg);
}
.weddings-visual__card h2 {
    font-family:var(--font-heading); font-size:1.75rem; font-weight:400;
    color:#ffffff; margin-bottom:0.75rem;
}
.weddings-visual__card p {
    color:rgba(255,255,255,0.88); font-size:0.95rem; line-height:1.6;
    margin-bottom:1.5rem;
}
.weddings-visual__card .btn-cta {
    background:rgba(255,255,255,0.92); color:var(--color-text);
    border:none; font-weight:600;
}
.weddings-visual__card .btn-cta:hover {
    background:#ffffff; color:var(--color-text);
}
.weddings-visual__card .weddings-visual__secondary {
    display:inline-block; margin-left:1rem; color:rgba(255,255,255,0.88);
    font-size:0.875rem; text-decoration:underline; text-underline-offset:3px;
}
.weddings-visual__card .weddings-visual__secondary:hover { color:#ffffff; }
.weddings-visual__microtrust {
    margin-top:1rem; font-size:0.8rem; color:rgba(255,255,255,0.65); margin-bottom:0;
}
@media(max-width:767.98px) {
    .weddings-visual__card { padding:2rem 1.5rem; margin:0 1rem; }
    .weddings-visual__card h2 { font-size:1.4rem; }
    .weddings-visual__card .weddings-visual__secondary { display:block; margin:0.75rem 0 0; }
}

/* ===========================================
   DATEPICKER: GUEST STEPPER (global)
   Opt-in via <body data-guests-in-datepicker="1">
   =========================================== */
.lt-dp__guests { display:flex; flex-direction:column; gap:10px; padding:16px 0 0; border-top:1px solid rgba(35,40,45,0.07); margin-top:16px; }
.lt-dp__guests-title { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.lt-dp__guests-row { display:flex; align-items:center; justify-content:space-between; }
.lt-dp__guests-label { font-size:.88rem; font-weight:500; color:var(--color-text); }
.lt-dp__guests-stepper { display:flex; align-items:center; gap:12px; }
.lt-dp__guests-btn { width:32px; height:32px; border-radius:50%; border:1.5px solid var(--color-border); background:var(--color-bg); font-size:1.1rem; line-height:1; color:var(--color-text); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s ease; font-family:var(--font-body); padding:0; }
.lt-dp__guests-btn:hover { border-color:var(--color-text); }
.lt-dp__guests-btn.is-disabled { opacity:.3; pointer-events:none; }
.lt-dp__guests-count { font-size:.95rem; font-weight:600; color:var(--color-text); min-width:20px; text-align:center; }
/* Mobile: larger tap targets, tighter spacing */
@media(max-width:767.98px) {
    .lt-dp__guests { gap:12px; padding:14px 0 0; margin-top:14px; }
    .lt-dp__guests-btn { width:44px; height:44px; font-size:1.2rem; }
    .lt-dp__guests-count { font-size:1.05rem; min-width:28px; }
    .lt-dp__guests-label { font-size:.92rem; }
    /* Suppress via data-guests-mobile="0" on pages with own mobile guest flow */
    [data-guests-mobile="0"] .lt-dp__guests { display:none; }
}

/* ===========================================
   DATEPICKER: FOOTER LAYOUT (global)
   Single row: clear left · nights center · done right
   Opt-in via <body data-guests-in-datepicker="1">
   =========================================== */
[data-guests-in-datepicker="1"] .lt-dp__footer { flex-wrap:nowrap; justify-content:space-between; align-items:center; gap:12px; }
[data-guests-in-datepicker="1"] .lt-dp__nights { font-size:1.05rem; font-weight:600; color:var(--color-text); }
@media(min-width:768px) {
    [data-guests-in-datepicker="1"] .lt-dp__footer-left { display:flex; align-items:center; gap:16px; flex:1; }
    [data-guests-in-datepicker="1"] .lt-dp__clear { white-space:nowrap; order:-1; }
    [data-guests-in-datepicker="1"] .lt-dp__nights { order:1; text-align:center; flex:1; }
    [data-guests-in-datepicker="1"] .lt-dp__done { white-space:nowrap; }
    [data-guests-in-datepicker="1"] .lt-dp { max-height:calc(100vh - 80px); overflow-y:auto; }
}
/* Mobile: footer stacks vertically */
@media(max-width:767.98px) {
    [data-guests-in-datepicker="1"] .lt-dp__footer-left { flex-direction:column; align-items:center; gap:6px; justify-content:center; }
    [data-guests-in-datepicker="1"] .lt-dp__nights { text-align:center; width:100%; }
    [data-guests-in-datepicker="1"] .lt-dp__clear { text-align:center; }
}

/* ===== Category Icon Animations (shared across experience pages) ===== */
/* Reef: waves drift, fish swims, bubbles rise */
.reef-wave1, .reef-wave2 { animation: reefDrift 3s ease-in-out infinite; }
.reef-wave2 { animation-delay: 0.4s; }
@keyframes reefDrift { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
.reef-fish { animation: fishSwim 3s ease-in-out infinite; }
@keyframes fishSwim { 0%, 100% { transform: translate(0,0); } 25% { transform: translate(2px,-1px); } 75% { transform: translate(-2px,1px); } }
.reef-bubble1, .reef-bubble2, .reef-bubble3 { animation: bubbleUp 3s ease-out infinite; opacity: 0; }
.reef-bubble2 { animation-delay: 0.8s; }
.reef-bubble3 { animation-delay: 1.6s; }
@keyframes bubbleUp { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 0.6; } 80% { opacity: 0.3; } 100% { transform: translateY(-10px); opacity: 0; } }
/* Jungle: trunk sways, leaves rustle, bird flies */
.jungle-trunk { animation: trunkSway 3s ease-in-out infinite; transform-origin: bottom center; }
@keyframes trunkSway { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } }
.jungle-leaf1 { animation: leafRustle1 3s ease-in-out infinite; transform-origin: bottom center; }
.jungle-leaf2 { animation: leafRustle2 3s ease-in-out infinite 0.3s; transform-origin: bottom center; }
@keyframes leafRustle1 { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } }
@keyframes leafRustle2 { 0%, 100% { transform: rotate(0); } 40% { transform: rotate(-4deg); } 70% { transform: rotate(2deg); } }
.jungle-bird { animation: birdFly 3s ease-in-out infinite; opacity: 0; }
@keyframes birdFly { 0% { transform: translate(0,0) scale(0.8); opacity: 0; } 15% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(6px,-8px) scale(0.7); opacity: 0.8; } 70% { transform: translate(10px,-12px) scale(0.5); opacity: 0; } 100% { opacity: 0; } }
/* Cruises: waves move, hull rocks, flag flutters */
.cruise-wave { animation: cruiseWaveDrift 2.5s ease-in-out infinite; }
@keyframes cruiseWaveDrift { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
.cruise-hull { animation: cruiseRock 3s ease-in-out infinite; transform-origin: center bottom; }
@keyframes cruiseRock { 0%, 100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(-1px); } }
.cruise-flag { animation: flagFlutter 0.6s ease-in-out infinite alternate; transform-origin: left center; }
@keyframes flagFlutter { 0% { transform: scaleX(1) skewY(0); } 100% { transform: scaleX(0.85) skewY(2deg); } }
/* Fishing: rod casts, line draws, splash */
.fish-rod { animation: rodCast 3s ease-in-out infinite; transform-origin: 4px 4px; }
@keyframes rodCast { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(-20deg); } 30% { transform: rotate(5deg); } 45% { transform: rotate(0); } }
.fish-line { animation: lineDraw 3s ease-in-out infinite; stroke-dasharray: 20; stroke-dashoffset: 20; }
@keyframes lineDraw { 0% { stroke-dashoffset: 20; } 20% { stroke-dashoffset: 20; } 40% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; } }
.fish-splash1, .fish-splash2 { opacity: 0; animation: splashDrop 3s ease-out infinite; }
.fish-splash2 { animation-delay: 0.15s; }
@keyframes splashDrop { 0%, 35% { transform: translate(0,0); opacity: 0; } 40% { opacity: 0.8; } 55% { transform: translate(-3px,-5px); opacity: 0.4; } 70% { transform: translate(-4px,-2px); opacity: 0; } 100% { opacity: 0; } }
/* Water sports: waves ripple, person bounces, droplets fly */
.water-mainwave, .water-wave2 { animation: waterRipple 2s ease-in-out infinite; }
.water-wave2 { animation-delay: 0.3s; }
@keyframes waterRipple { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
.water-person { animation: personBounce 3s ease-in-out infinite; }
@keyframes personBounce { 0%, 100% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(1px); } }
.water-drop1, .water-drop2, .water-drop3 { animation: dropFly 3s ease-out infinite; opacity: 0; }
.water-drop2 { animation-delay: 0.3s; }
.water-drop3 { animation-delay: 0.6s; }
@keyframes dropFly { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 0.8; } 50% { transform: translateY(-8px); opacity: 0.4; } 80% { transform: translateY(-4px); opacity: 0; } 100% { opacity: 0; } }
/* Only in Belize: pin drops with radar pulse */
.belize-pin { animation: pinBounce 3s ease-out infinite; transform-origin: center bottom; }
@keyframes pinBounce { 0% { transform: translateY(-8px); opacity: 0; } 15% { transform: translateY(1px); opacity: 1; } 25% { transform: translateY(-3px); } 35% { transform: translateY(0); } 100% { transform: translateY(0); opacity: 1; } }
.belize-ring1, .belize-ring2 { transform-origin: center center; animation: radarPulse 3s ease-out infinite; opacity: 0; }
.belize-ring2 { animation-delay: 0.5s; }
@keyframes radarPulse { 0% { transform: scale(0.5); opacity: 0; } 30% { transform: scale(0.5); opacity: 0; } 40% { transform: scale(0.8); opacity: 0.5; } 70% { transform: scale(1.8); opacity: 0; } 100% { opacity: 0; } }

/* ===========================================
   MOBILE BOOKING SHEET v2: Single date field + guest stepper
   Opt-in: page must have #mbs-dates element in HTML
   Pages without it use legacy TalyBottomSheet unchanged
   =========================================== */

/* Date field with calendar icon */
.mbs-dates-wrap { position: relative; }
.mbs-dates-wrap input {
    width: 100%; padding: 12px 40px 12px 14px; border: 1px solid var(--color-border);
    border-radius: var(--radius-sm); font-family: var(--font-body); font-size: .95rem;
    background: #fff; cursor: pointer; color: var(--color-text);
}
.mbs-dates-wrap input::placeholder { color: rgba(35,40,45,0.38); }
.mbs-dates-wrap input:focus { outline: none; border-color: var(--color-primary); }
.mbs-dates-icon {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 18px; height: 18px; color: var(--color-muted); pointer-events: none;
}

/* Guest stepper inside sheet */
.mbs-guests-stepper { display: flex; flex-direction: column; gap: .75rem; }
.mbs-guests-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: .5rem 0; border-bottom: 1px solid var(--color-border);
}
.mbs-guests-row:last-child { border-bottom: none; }
.mbs-guests-label { font-size: .9rem; color: var(--color-text); font-weight: 500; }
.mbs-guests-label small {
    display: block; font-size: .75rem; color: var(--color-muted); font-weight: 400; margin-top: 1px;
}
.mbs-guests-controls { display: flex; align-items: center; gap: .75rem; }
.mbs-guests-btn {
    width: 32px; height: 32px; border-radius: 50%;
    border: 1px solid var(--color-border); background: var(--color-bg);
    font-size: 1.1rem; line-height: 1; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--color-text); transition: border-color .2s;
}
.mbs-guests-btn:hover { border-color: var(--color-text); }
.mbs-guests-btn.is-disabled { opacity: .3; pointer-events: none; }
.mbs-guests-count { font-size: .95rem; font-weight: 600; min-width: 20px; text-align: center; }

/* Promo reassurance note */
.mbs-promo-note { font-size: .72rem; color: var(--color-muted); text-align: center; margin: .75rem 0 0; }

/* Disabled submit */
.mbs-submit:disabled { opacity: .4; cursor: not-allowed; }

/* Hide datepicker footer on mobile for pages with auto-close pattern */
@media(max-width:767.98px) {
    [data-mbs-autoclose="1"] .lt-dp__footer { display: none; }
}
