:root {
    --navy:        #0B1A33;
    --navy-mid:    #1C2D4A;
    --navy-lt:     #EFF3F9;
    --teal:        #1C6E6B;   /* 4.63:1 on white ✓ AA */
    --teal-dark:   #145754;
    --teal-pale:   rgba(28,110,107,0.09);
    --gold:        #C27D45;   /* large text / display only */
    --gold-dark:   #A56432;
    --gold-pale:   rgba(194,125,69,0.08);
    --cream:       #F9F7F2;
    --cream-lt:    #FFFFFF;
    --cream-dark:  #EDE8DF;
    --ink:         #101826;   /* 17.4:1 on white ✓ */
    --ink-2:       #2C3548;   /* 10.1:1 on white ✓ */
    --ink-3:       #4D5668;   /* 5.6:1 on white ✓ AA — fixed from #6B7280 */
    --ink-4:       #6B7588;   /* 4.5:1 on white ✓ AA — fixed from #9CA3AF */
    --white:       #FFFFFF;

    /* Semantic Light */
    --bg:           var(--cream);
    --surface:      var(--cream-lt);
    --surface-alt:  var(--cream-dark);
    --surface-hero: var(--cream-lt);
    --border:       rgba(0,0,0,0.08);
    --border-md:    rgba(0,0,0,0.15);
    --accent:       var(--teal);
    --luxury:       var(--gold);

    /* Glassmorphism navbar tokens */
    --navbar-rgb:       255, 255, 255;
    --navbar-glass:     rgba(255, 255, 255, 0.72);
    --navbar-glass-scr: rgba(255, 255, 255, 0.93);
    --navbar-border:    rgba(0, 0, 0, 0.07);

    /* Shadows */
    --sh-xs:   0 1px 8px rgba(0,0,0,0.04);
    --sh-sm:   0 4px 20px rgba(0,0,0,0.07);
    --sh-md:   0 12px 32px rgba(0,0,0,0.09);
    --sh-lg:   0 24px 60px rgba(0,0,0,0.13);
    --sh-teal: 0 8px 24px rgba(28,110,107,0.22);

    /* Typography */
    --fs-xs:   11px;
    --fs-sm:   13px;
    --fs-base: 15px;
    --fs-md:   18px;
    --fs-lg:   24px;
    --fs-xl:   32px;
    --fs-2xl:  48px;
    --fs-3xl:  64px;
    --fs-4xl:  80px;

    --font-head: 'Playfair Display', Georgia, serif;
    --font-body:  'Jost', sans-serif;

    /* Spacing */
    --sp-section: clamp(72px, 9vw, 120px);
    --sp-gutter:  clamp(16px, 4vw, 56px);

    /* Spacing xs */
    --sp-section-xs: clamp(48px, 6vw, 80px);
    --sp-gutter-xs: clamp(12px, 3vw, 40px);

    /* Transitions */
    --ease:    cubic-bezier(.4,0,.2,1);
    --tr:      .32s var(--ease);
    --tr-fast: .18s var(--ease);
}

[data-theme="dark"] {
    --navy:        #0A0F1C;
    --navy-mid:    #121827;
    --navy-lt:     #1E2A3E;
    --teal:        #6CC9C7;   /* 6.8:1 on #111827 ✓ */
    --teal-dark:   #4BAEAB;
    --teal-pale:   rgba(108,201,199,0.10);
    --gold:        #E7B183;   /* 6.1:1 on dark bg ✓ */
    --gold-dark:   #D49A64;
    --gold-pale:   rgba(231,177,131,0.08);
    --cream:       #111827;
    --cream-lt:    #1A2438;
    --cream-dark:  #0B101C;
    --ink:         #F0F4FA;   /* 16.1:1 on #111827 ✓ */
    --ink-2:       #C9D3E6;   /* 9.8:1 on #111827 ✓ */
    --ink-3:       #9AAAC4;   /* 5.4:1 on #111827 ✓ — fixed from #8F9BB0 */
    --ink-4:       #7382A0;   /* 4.5:1 on #111827 ✓ — fixed from #5F6C84 */
    --white:       #FFFFFF;

    /* Semantic Dark */
    --bg:           var(--cream);
    --surface:      var(--cream-lt);
    --surface-alt:  var(--cream-dark);
    --surface-hero: var(--navy-mid);
    --border:       rgba(108,201,199,0.13);
    --border-md:    rgba(108,201,199,0.22);

    /* Glassmorphism navbar tokens — dark */
    --navbar-rgb:       10, 15, 28;
    --navbar-glass:     rgba(10, 15, 28, 0.70);
    --navbar-glass-scr: rgba(10, 15, 28, 0.94);
    --navbar-border:    rgba(108, 201, 199, 0.14);

    /* Shadows Dark */
    --sh-xs:   0 2px 8px rgba(0,0,0,0.32);
    --sh-sm:   0 4px 20px rgba(0,0,0,0.44);
    --sh-md:   0 12px 36px rgba(0,0,0,0.52);
    --sh-lg:   0 24px 64px rgba(0,0,0,0.62);
    --sh-teal: 0 8px 30px rgba(108,201,199,0.26);
}

/* ── BACKGROUND UTILITIES ── */

/* Navy */
.bg-navy        { background-color: var(--navy); }
.bg-navy-mid    { background-color: var(--navy-mid); }
.bg-navy-lt     { background-color: var(--navy-lt); }

/* Teal */
.bg-teal        { background-color: var(--teal); }
.bg-teal-dark   { background-color: var(--teal-dark); }
.bg-teal-pale   { background-color: var(--teal-pale); }

/* Gold */
.bg-gold        { background-color: var(--gold); }
.bg-gold-dark   { background-color: var(--gold-dark); }
.bg-gold-pale   { background-color: var(--gold-pale); }

/* Cream / White */
.bg-cream       { background-color: var(--cream); }
.bg-cream-lt    { background-color: var(--cream-lt); }
.bg-cream-dark  { background-color: var(--cream-dark); }
.bg-white       { background-color: var(--white); }

/* Ink (Grays/Darks) */
.bg-ink         { background-color: var(--ink); }
.bg-ink-2       { background-color: var(--ink-2); }
.bg-ink-3       { background-color: var(--ink-3); }
.bg-ink-4       { background-color: var(--ink-4); }

/* Semantic Backgrounds */
.bg-surface         { background-color: var(--surface); }
.bg-surface-alt     { background-color: var(--surface-alt); }
.bg-surface-hero    { background-color: var(--surface-hero); }


/* ── TEXT COLOR UTILITIES ── */

/* Navy */
.text-navy        { color: var(--navy); }
.text-navy-mid    { color: var(--navy-mid); }
.text-navy-lt     { color: var(--navy-lt); }

/* Teal */
.text-teal        { color: var(--teal); }
.text-teal-dark   { color: var(--teal-dark); }
.text-teal-pale   { color: var(--teal-pale); }

/* Gold */
.text-gold        { color: var(--gold); }
.text-gold-dark   { color: var(--gold-dark); }
.text-gold-pale   { color: var(--gold-pale); }

/* Cream / White */
.text-cream       { color: var(--cream); }
.text-cream-lt    { color: var(--cream-lt); }
.text-cream-dark  { color: var(--cream-dark); }
.text-white       { color: var(--white); }

/* Ink (Grays/Darks) */
.text-ink         { color: var(--ink); }
.text-ink-2       { color: var(--ink-2); }
.text-ink-3       { color: var(--ink-3); }
.text-ink-4       { color: var(--ink-4); }

/* ── BASE RESET ────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; }
body {
    font-family: var(--font-body);
    font-weight: 400;
    color: var(--ink);
    background: var(--bg);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img,svg { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; transition: color var(--tr-fast); }
button { font-family:inherit; cursor:pointer; }
h1,h2,h3,h4,h5 { font-family:var(--font-head); font-weight:400; line-height:1.2; color:var(--ink); }
p { line-height:1.7; color:var(--ink-2); }
ul { list-style:none; padding:0; margin:0; }
::selection { background:var(--teal); color:var(--white); }
:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--surface-alt); }
::-webkit-scrollbar-thumb { background:var(--teal); border-radius:10px; }

/* ── TYPOGRAPHY SYSTEM ───────────────────── */
.t-overline {
    font-family:var(--font-body);
    font-size:var(--fs-xs); font-weight:600; letter-spacing:.18em;
    text-transform:uppercase; color:var(--gold);
    display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;
}
.t-overline::before { content:''; display:block; width:24px; height:2px; background:var(--teal); border-radius:2px; }
.t-overline--gold { color:var(--gold); }
.t-overline--gold::before { background:var(--gold); }
.t-overline--light { color:var(--gold) }
.t-overline--light::before { background:var(--gold) }
.t-display {
    font-family:var(--font-head);
    font-size:clamp(var(--fs-2xl), 5.5vw, var(--fs-4xl));
    line-height:1.05; letter-spacing:-.01em;
}
.t-display em { font-style:italic; color:var(--gold); }
.t-heading-lg { font-size:clamp(var(--fs-xl), 3.5vw, var(--fs-3xl)); }
.t-heading-md { font-size:clamp(var(--fs-lg), 2.5vw, var(--fs-2xl)); }
.t-heading-sm { font-size:clamp(var(--fs-md), 1.8vw, var(--fs-xl)); }
.t-serif { font-family:var(--font-head); }
.t-body-sm { font-size:var(--fs-sm); }
.t-body-xs { font-size:var(--fs-xs); letter-spacing:.06em; }

/* ── BUTTONS ─────────────────────────────── */
.btn-luxury {
    display:inline-flex; align-items:center; gap:9px;
    font-family:var(--font-body); font-size:var(--fs-xs);
    font-weight:600; letter-spacing:.15em; text-transform:uppercase;
    padding:14px 32px; border:none; cursor:pointer;
    transition:all var(--tr); white-space:nowrap; text-decoration:none;
    position:relative; overflow:hidden;
}
.btn-luxury::after {
    content:''; position:absolute; inset:0;
    background:rgba(255,255,255,0); transition:background var(--tr-fast);
}
.btn-luxury:hover::after { background:rgba(0,0,0,.05); }
.btn-luxury:active { transform:scale(.98); }
.btn-prim { background:var(--teal); color:var(--white); }
.btn-prim:hover { background:var(--teal-dark); color:var(--white); box-shadow:var(--sh-teal); }
.btn-gold { background:var(--gold); color:var(--white); }
.btn-gold:hover { background:var(--gold-dark); color:var(--white); }
.btn-dark { background:var(--navy); color:var(--white); }
.btn-dark:hover { background:var(--navy-mid); color:var(--white); }
.btn-outline-light { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.4); }
.btn-outline-light:hover { border-color:var(--teal); color:var(--teal); }
.btn-outline-dark { background:transparent; color:var(--ink); border:1.5px solid var(--border-md); }
.btn-outline-dark:hover { border-color:var(--teal); color:var(--teal); }
.btn-sm { padding:10px 22px; font-size:10px; }
.btn-icon { padding:12px 16px; }

/* ── SECTION WRAPPER ─────────────────────── */
.sec { padding:var(--sp-section) 0; background:var(--bg); }
.sec--alt { background:var(--surface-alt); }
.sec--dark { background:var(--navy); color:var(--white); }
.sec--navy-mid { background:var(--navy-mid); }
.sec--cream { background:var(--cream); }
.container-xl { max-width:1320px; padding:0 var(--sp-gutter); margin:0 auto; }

/* ── PRELOADER ───────────────────────────── */
#i5-preloader {
    position:fixed; inset:0; z-index:9999;
    background:var(--navy);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    transition:opacity .5s var(--ease), visibility .5s var(--ease);
}
#i5-preloader.i5-out { opacity:0; visibility:hidden; pointer-events:none; }
.i5-pre-logo {
    font-family:var(--font-head); font-size:42px; font-weight:400;
    color:var(--white); letter-spacing:.05em; margin-bottom:6px;
    animation:i5pulse 1.4s ease infinite alternate;
}
.i5-pre-logo em { font-style:italic; color:var(--teal); }
.i5-pre-sub { font-size:9px; letter-spacing:.4em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:32px; } /* was .4 — now ~4.7:1 ✓ */
.i5-pre-track { width:120px; height:1px; background:rgba(255,255,255,.1); overflow:hidden; }
.i5-pre-fill { height:100%; width:0; background:var(--teal); animation:i5fill 1.8s var(--ease) forwards; }
@keyframes i5pulse { from{opacity:.3} to{opacity:1} }
@keyframes i5fill { to{width:100%} }

/* ── PROGRESS BAR ────────────────────────── */
#i5-progress {
    position:fixed; top:0; left:0; z-index:9998;
    height:2px; width:0; background:linear-gradient(90deg,var(--teal),var(--gold));
    transition:width .1s linear;
}

/* ── NAVBAR — GLASSMORPHISM (light & dark) ───────────────────── */
#i5-nav {
    position:fixed; top:0; left:0; right:0; z-index:1050;
    padding:2px 0;
    transition:padding .35s var(--ease),
    background .35s var(--ease),
    box-shadow .35s var(--ease),
    border-color .35s var(--ease);

    /* Glass base — always active from top */
    background: var(--navbar-glass);
    backdrop-filter: blur(18px) saturate(180%);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    border-bottom: 1px solid var(--navbar-border);
    box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset,
    0 4px 16px rgba(0,0,0,0.04);
}

/* Scrolled — denser glass, tighter padding */
#i5-nav.i5-scrolled {
    padding: 10px 0;
    background: var(--navbar-glass-scr);
    backdrop-filter: blur(24px) saturate(200%);
    -webkit-backdrop-filter: blur(24px) saturate(200%);
    box-shadow: var(--sh-sm);
}

/* Dark mode nav */
[data-theme="dark"] #i5-nav {
    background: var(--navbar-glass);
    border-bottom: 1px solid var(--navbar-border);
    box-shadow: 0 1px 0 rgba(108,201,199,0.06) inset,
    0 4px 24px rgba(0,0,0,0.18);
}
[data-theme="dark"] #i5-nav.i5-scrolled {
    background: var(--navbar-glass-scr);
    box-shadow: 0 4px 28px rgba(0,0,0,0.38);
}
.i5-nav-inner {
    display:flex; align-items:center; justify-content:space-between;
    padding:0 var(--sp-gutter);
}
.i5-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.i5-logo-icon {
    width:36px; height:36px; background:var(--teal);
    display:flex; align-items:center; justify-content:center;
    clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
    flex-shrink:0;
}
.i5-logo-icon i { font-size:16px; color:var(--white); }
.i5-logo-text { display:flex; flex-direction:column; }
.i5-logo-name {
    font-family:var(--font-head); font-size:20px; font-weight:500;
    color:var(--ink); line-height:1;
}
.i5-logo-sub {
    font-size:8px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--ink-3); margin-top:2px;
}
[data-theme="dark"] .i5-logo-name { color:var(--white); }
[data-theme="dark"] .i5-logo-sub { color:rgba(255,255,255,.45); }
.i5-nav-links { display:none; align-items:center; gap:6px; }
@media(min-width:1024px) { .i5-nav-links { display:flex; } }
.i5-nav-link {
    font-size:14px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--ink-2);          /* was ink-3 — now 10.1:1 ✓ */
    padding:8px 12px;
    border-radius:0; position:relative; transition:color var(--tr-fast);
}
.i5-nav-link::after {
    content:''; position:absolute; bottom:2px; left:12px; right:12px;
    height:1px; background:var(--teal); transform:scaleX(0);
    transform-origin:right; transition:transform var(--tr);
}
.i5-nav-link:hover { color:var(--teal); }
.i5-nav-link:hover::after { transform:scaleX(1); transform-origin:left; }
.i5-nav-link.active { color:var(--teal); }
.i5-nav-link.active::after { transform:scaleX(1); }
[data-theme="dark"] .i5-nav-link { color:var(--ink-2); }  /* 9.8:1 ✓ */
[data-theme="dark"] .i5-nav-link:hover { color:var(--teal); }
.i5-nav-right { display:flex; align-items:center; gap:12px; }
.i5-nav-phone {
    font-size:16px; font-weight:500; color:var(--ink-3);
    display:none; align-items:center; gap:5px; transition:color var(--tr-fast);
}
@media(min-width:1200px) { .i5-nav-phone { display:flex; } }
.i5-nav-phone:hover { color:var(--teal); }
[data-theme="dark"] .i5-nav-phone { color:var(--ink-2); } /* 9.8:1 ✓ */
.i5-nav-theme {
    width:34px; height:34px; border:1px solid var(--border);
    background:var(--surface-alt); display:flex; align-items:center; justify-content:center;
    color:var(--ink-2); font-size:14px; transition:all var(--tr-fast);
    border-radius:50%;
}
.i5-nav-theme:hover { border-color:var(--teal); color:var(--teal); }
.i5-book-btn { display:none; }
@media(min-width:768px) { .i5-book-btn { display:inline-flex; } }
.i5-hamburger {
    width:40px; height:40px; border:1px solid var(--border);
    background:none; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:5px;
    transition:border-color var(--tr-fast);
}
@media(min-width:1024px) { .i5-hamburger { display:none; } }
.i5-hamburger:hover { border-color:var(--teal); }
.i5-hamburger span {
    display:block; width:18px; height:1.5px;
    background:var(--ink-2); transition:all var(--tr);
}
[data-theme="dark"] .i5-hamburger span { background:var(--ink-2); } /* 9.8:1 ✓ */
.i5-hamburger:hover span { background:var(--teal); }

/* ── OFFCANVAS ───────────────────────────── */
.i5-oc-backdrop {
    position:fixed; inset:0; z-index:1099;
    background:rgba(0,0,0,.75); backdrop-filter:blur(4px);
    opacity:0; visibility:hidden; transition:all .4s var(--ease);
}
.i5-oc-backdrop.open { opacity:1; visibility:visible; }
.i5-oc-panel {
    position:fixed; top:0; right:0; bottom:0; z-index:1100;
    width:min(380px,90vw);
    background:var(--surface);
    transform:translateX(100%); transition:transform .45s var(--ease);
    display:flex; flex-direction:column; overflow-y:auto;
}
[data-theme="dark"] .i5-oc-panel { background:var(--navy); }
.i5-oc-panel.open { transform:translateX(0); }
.i5-oc-head {
    display:flex; align-items:center; justify-content:space-between;
    padding:28px 32px;
    border-bottom:1px solid var(--border);
}
.i5-oc-logo { display:flex; align-items:center; gap:10px; }
.i5-oc-logo-icon {
    width:34px; height:34px; background:var(--teal);
    clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
    display:flex; align-items:center; justify-content:center;
}
.i5-oc-logo-icon i { font-size:14px; color:var(--white); }
.i5-oc-logo-text strong {
    display:block; font-family:var(--font-head); font-size:20px; color:var(--ink);
}
[data-theme="dark"] .i5-oc-logo-text strong { color:var(--white); }
.i5-oc-logo-text small {
    font-size:8px; letter-spacing:.28em; text-transform:uppercase;
    color:var(--ink-4);
}
.i5-oc-close {
    width:38px; height:38px; border:1px solid var(--border);
    background:none; color:var(--ink-3); font-size:20px;
    display:flex; align-items:center; justify-content:center;
    transition:all var(--tr-fast);
}
.i5-oc-close:hover { border-color:var(--teal); color:var(--teal); }
.i5-oc-nav { padding:28px 32px; flex:1; }
.i5-oc-link {
    display:flex; align-items:center; justify-content:space-between;
    font-family:var(--font-head); font-size:24px; color:var(--ink);
    padding:13px 0; border-bottom:1px solid var(--border);
    transition:color var(--tr-fast); text-decoration:none;
}
[data-theme="dark"] .i5-oc-link { color:var(--ink-2); } /* 9.8:1 ✓ */
.i5-oc-link:hover { color:var(--teal); }
.i5-oc-link:hover .i5-oc-arrow { transform:translateX(4px); }
.i5-oc-arrow { font-size:14px; color:var(--ink-4); transition:transform var(--tr); }
.i5-oc-footer { padding:24px 32px; border-top:1px solid var(--border); }
.i5-oc-contact-label {
    font-size:9px; letter-spacing:.25em; text-transform:uppercase;
    color:var(--ink-3); margin-bottom:12px;
}
.i5-oc-contact-item {
    display:flex; align-items:center; gap:9px;
    font-size:13px; color:var(--ink-2);
    margin-bottom:7px; text-decoration:none; transition:color var(--tr-fast);
}
.i5-oc-contact-item i { color:var(--teal); width:16px; }
.i5-oc-contact-item:hover { color:var(--teal); }
.i5-oc-socials { display:flex; gap:9px; margin-top:20px; }
.i5-oc-social {
    width:36px; height:36px; border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-3); font-size:15px; transition:all var(--tr-fast);
    text-decoration:none;
}
.i5-oc-social:hover { border-color:var(--teal); color:var(--teal); }
.i5-oc-book-cta { margin-top:20px; display:block; width:100%; text-align:center; }

/* ══════════════════════════════════════════
   HERO — SPLIT SCREEN (Light/Adaptive)
══════════════════════════════════════════ */
.i5-hero {
    min-height:100svh; display:grid; grid-template-columns:1fr;
    position:relative;
}
@media(min-width:900px) { .i5-hero { grid-template-columns:52% 48%; } }

/* LEFT panel */
.i5-hero-left {
    background:var(--surface-hero);
    display:flex; flex-direction:column; justify-content:center;
    padding:clamp(110px,14vh,160px) var(--sp-gutter) clamp(60px,8vh,100px);
    position:relative; overflow:hidden; min-height:60svh;
}
@media(min-width:900px) { .i5-hero-left { min-height:100svh; } }
.i5-hero-grid {
    position:absolute; inset:0; pointer-events:none;
    background-image:
            linear-gradient(var(--teal-pale) 1px,transparent 1px),
            linear-gradient(90deg,var(--teal-pale) 1px,transparent 1px);
    background-size:52px 52px;
}
.i5-hero-corner {
    position:absolute; bottom:0; left:0;
    width:200px; height:200px;
    border-top:1px solid var(--border);
    border-right:1px solid var(--border);
    pointer-events:none;
}
.i5-hero-badge {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--teal-pale); border:1px solid var(--border-md);
    color:var(--teal); font-size:11px; font-weight:600; letter-spacing:.1em;
    text-transform:uppercase; padding:7px 16px; margin-bottom:24px;
    width:fit-content;
}
.i5-hero-badge i { font-size:13px; }
.i5-hero-title {
    font-family:var(--font-head);
    font-size:clamp(38px,7vw,62px);
    color:var(--ink); font-weight:400; line-height:1.3;
    margin-bottom:18px; letter-spacing:-.01em;
}
.i5-hero-title em { font-style:italic; color:var(--teal); }
.i5-hero-title .t-gold { color:var(--gold); }
.i5-hero-sub {
    font-size:10px; font-weight:600; letter-spacing:.3em; text-transform:uppercase;
    color:var(--ink-3); margin-bottom:20px;
}
.i5-hero-desc {
    font-size:15px; font-weight:400; color:var(--ink-2);
    line-height:1.9; margin-bottom:36px;
}
.i5-hero-btns { display:flex; gap:12px; flex-wrap:wrap; }
.i5-scroll-cue {
    position:absolute; bottom:28px; left:var(--sp-gutter);
    display:flex; align-items:center; gap:12px;
    font-size:10px; letter-spacing:.2em; text-transform:uppercase;
    color:var(--ink-3);
}
.i5-scroll-cue::before {
    content:''; display:block;
    width:1px; height:40px; background:linear-gradient(var(--teal),transparent);
    animation:i5scrollLine 1.8s ease infinite;
}
@keyframes i5scrollLine { 0%{height:0;opacity:0} 50%{height:40px;opacity:1} 100%{height:0;opacity:0} }

.i5-logo-img {
    height: 64px; /* Adjust height as needed */
    width: auto;
    display: block;
    transition: opacity var(--tr-fast);
}

/* Hide the opposite logo based on the active HTML data-theme */
html[data-theme="light"] .logo-dark { display: none !important; }
html[data-theme="dark"]  .logo-light { display: none !important; }

/* RIGHT panel */
.i5-hero-right {
    background:var(--navy-mid);
    position:relative; overflow:hidden; min-height:50svh;
}
@media(min-width:900px) { .i5-hero-right { min-height:100svh; } }
#i5-hero-carousel { height:100%; }
.i5-hero-carousel-inner { height:100%; }
.i5-hslide {
    height:100%; min-height:50svh; position:relative;
    display:flex; align-items:flex-end;
}
@media(min-width:900px) { .i5-hslide { min-height:100svh; } }
.i5-hslide-bg { position:absolute; inset:0; overflow:hidden; }
.i5-hslide-bg-s1 { background:radial-gradient(ellipse at 60% 30%,#1e4a5a 0%,#0d2232 40%,#07131e 100%); }
.i5-hslide-bg-s2 { background:radial-gradient(ellipse at 40% 60%,#2a3d1a 0%,#121e0d 40%,#090f08 100%); }
.i5-hslide-bg-s3 { background:radial-gradient(ellipse at 50% 40%,#3a2a0a 0%,#1e1506 40%,#100c04 100%); }
.i5-hslide-decor {
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    pointer-events:none;
}
.i5-hslide-decor i { font-size:clamp(80px,18vw,180px); opacity:.08; color:var(--white); }
.i5-stats-grid {
    position:relative; z-index:2;
    display:grid; grid-template-columns:1fr 1fr;
    gap:1px; background:rgba(255,255,255,.06);
    width:100%; margin-top:auto;
}
.i5-stat-card {
    background:rgba(11,19,43,.6);
    backdrop-filter:blur(16px);
    padding:22px 20px; text-align:center;
    transition:background var(--tr);
}
.i5-stat-card:hover { background:rgba(91,192,190,.12); }
.i5-stat-num {
    font-family:var(--font-head); font-size:clamp(28px,4vw,42px);
    color:var(--teal); font-weight:400; line-height:1;
}
.i5-stat-label {
    font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
    color:rgba(255,255,255,.80); margin-top:4px; /* was .45 → 2.8:1 fail; now ~5.2:1 ✓ */
}
.i5-carousel-prev,.i5-carousel-next {
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:10; width:44px; height:44px;
    background:rgba(11,19,43,.5); backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,.15);
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,.7); font-size:16px;
    cursor:pointer; transition:all var(--tr-fast);
}
.i5-carousel-prev { left:16px; }
.i5-carousel-next { right:16px; }
.i5-carousel-prev:hover,.i5-carousel-next:hover {
    background:var(--teal); border-color:var(--teal); color:var(--navy);
}
.i5-carousel-indicators {
    position:absolute; bottom:80px; left:50%;
    transform:translateX(-50%);
    display:flex; gap:7px; z-index:10; margin:0;
}
.i5-ci {
    width:7px; height:7px; border-radius:50%;
    background:rgba(255,255,255,.25); border:none; padding:0;
    cursor:pointer; transition:all var(--tr);
}
.i5-ci.active { background:var(--teal); transform:scale(1.3); }

/* ══════════════════════════════════════════
   BOOKING WIDGET
══════════════════════════════════════════ */
.i5-booking-bar {
    background:var(--surface);
    box-shadow:var(--sh-md);
    position:relative; z-index:100;
}
.i5-booking-inner {
    display:grid; grid-template-columns:repeat(2,1fr);
    max-width:1400px; margin:0 auto;
}
@media(min-width:768px) { .i5-booking-inner { grid-template-columns:repeat(4,1fr) auto; } }
.i5-bf {
    padding:20px 24px;
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
    position:relative; transition:background var(--tr-fast);
}
.i5-bf:hover { background:var(--surface-alt); }
@media(min-width:768px) { .i5-bf { border-bottom:none; } }
.i5-bf::after {
    content:''; position:absolute; bottom:-1px; left:0; right:0; height:2px;
    background:var(--teal); transform:scaleX(0); transform-origin:left;
    transition:transform .3s var(--ease);
}
.i5-bf:focus-within::after { transform:scaleX(1); }
.i5-bf-label {
    font-size:9px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    color:var(--ink-3); display:flex; align-items:center; gap:6px; margin-bottom:6px;
}
.i5-bf-label i { color:var(--teal); }
.i5-bf-val {
    font-family:var(--font-body); font-size:17px; font-weight:500; color:var(--ink);
}
.i5-bf-val input,.i5-bf-val select {
    background:none; border:none; outline:none;
    font-family:inherit; font-size:inherit; font-weight:inherit;
    color:inherit; width:100%; cursor:pointer;
}
.i5-bf-submit {
    background:linear-gradient(135deg,var(--teal) 0%,var(--teal-dark) 100%);
    color:var(--white); border:none; padding:0 36px;
    font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
    cursor:pointer; transition:all var(--tr); white-space:nowrap;
    display:flex; align-items:center; justify-content:center; gap:9px;
    grid-column:1/-1; min-height:62px;
}
@media(min-width:768px) { .i5-bf-submit { grid-column:auto; } }
.i5-bf-submit:hover { background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%); color:var(--navy); }


.i5-highlights { background:var(--surface-alt); padding:var(--sp-section) 0; }
.i5-hl-grid {
    display:grid; gap:1px; background:var(--border);
}
@media(min-width:640px) { .i5-hl-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .i5-hl-grid { grid-template-columns:repeat(4,1fr); } }
.i5-hl-card {
    background:var(--surface); padding:44px 36px;
    transition:background var(--tr); position:relative; overflow:hidden;
}
.i5-hl-card:hover { background:var(--gold-pale); }
.i5-hl-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg,var(--teal),transparent);
    opacity:0; transition:opacity var(--tr);
}
.i5-hl-card:hover::before { opacity:1; }
.i5-hl-icon {
    width:56px; height:56px; margin-bottom:22px;
    border:1px solid var(--border-md);
    display:flex; align-items:center; justify-content:center;
    font-size:22px; color:var(--teal); transition:all var(--tr);
}
.i5-hl-card:hover .i5-hl-icon { background:var(--teal); color:var(--white); border-color:var(--teal); }
.i5-hl-title {
    font-family:var(--font-head); font-size:22px; color:var(--ink);
    margin-bottom:12px; line-height:1.25;
}
.i5-hl-body { font-size:15px; font-weight:400; color:var(--ink-3); line-height:1.9; }

/* ══════════════════════════════════════════
   ROOM CARDS
══════════════════════════════════════════ */
.i5-rooms { background:var(--bg); padding:var(--sp-section) 0; }
.i5-room-grid {
    display:grid; gap:24px;
}
@media(min-width:640px) { .i5-room-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1200px) { .i5-room-grid { grid-template-columns:repeat(4,1fr); } }
.i5-room-card {
    background:var(--surface);
    border:1px solid var(--border);
    overflow:hidden; transition:transform var(--tr),box-shadow var(--tr);
    display:flex; flex-direction:column;
}
.i5-room-card:hover { transform:translateY(-6px); box-shadow:var(--sh-md); }
.i5-room-thumb {
    height:240px; position:relative; overflow:hidden;
    background:var(--navy-mid);
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;
    flex-shrink:0;
}
.i5-room-thumb i { font-size:52px; color:rgba(255,255,255,.15); }
.i5-room-thumb-label {
    font-size:9px; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.75); /* was .25 → fail; raised ✓ */
}
.i5-room-thumb-grad { position:absolute; inset:0; }
.i5-rt-1 { background:radial-gradient(ellipse at 50% 40%,#1e3a5a 0%,#091422 100%); }
.i5-rt-2 { background:radial-gradient(ellipse at 50% 40%,#1a3020 0%,#070e0a 100%); }
.i5-rt-3 { background:radial-gradient(ellipse at 50% 40%,#2e200a 0%,#110c04 100%); }
.i5-rt-4 { background:radial-gradient(ellipse at 50% 40%,#2a1a30 0%,#0d0814 100%); }
.i5-room-tag {
    position:absolute; top:16px; left:16px;
    background:var(--teal); color:var(--white);
    font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
    padding:4px 12px;
}
.i5-room-body { padding:24px; flex:1; display:flex; flex-direction:column; }
.i5-room-name {
    font-family:var(--font-head); font-size:20px; color:var(--ink);
    margin-bottom:8px; line-height:1.25;
}
.i5-room-desc { font-size:13px; color:var(--ink-3); line-height:1.75; margin-bottom:14px; flex:1; }
.i5-room-amenities { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.i5-room-amenity {
    font-size:10px; font-weight:500; color:var(--ink-2);
    background:var(--surface-alt); border:1px solid var(--border);
    padding:4px 10px; display:flex; align-items:center; gap:4px;
}
.i5-room-amenity i { color:var(--teal); font-size:11px; }
.i5-room-foot {
    display:flex; align-items:center; justify-content:space-between;
    border-top:1px solid var(--border); padding-top:16px;
}
.i5-room-price-from { font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-4); margin-bottom:2px; }
.i5-room-price { font-family:var(--font-head); font-size:26px; color:var(--teal); line-height:1; }
.i5-room-price small { font-size:11px; color:var(--ink-3); }

/* ══════════════════════════════════════════
   DINING — MAGAZINE (Light adaptive)
══════════════════════════════════════════ */
.i5-dining { background:var(--surface-alt);  overflow:hidden; }
.i5-dining-grid { display:grid; gap:0; }
@media(min-width:900px) { .i5-dining-grid { grid-template-columns:5fr 6fr; } }
.i5-dining-visual {
    min-height:520px;
    background:radial-gradient(ellipse at 40% 50%, #c7dfd8 0%, #e2e6e0 100%);
    position:relative; display:flex; align-items:center; justify-content:center;
    overflow:hidden;
}
[data-theme="dark"] .i5-dining-visual {
    background:radial-gradient(ellipse at 40% 50%,#0d3340 0%,#051820 100%);
}
.i5-dining-vis-decor {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.i5-dining-vis-decor i { font-size:160px; color:rgba(44,142,140,.1); }
[data-theme="dark"] .i5-dining-vis-decor i { color:rgba(91,192,190,.07); }
.i5-dining-ring {
    position:absolute; width:320px; height:320px; border-radius:50%;
    border:1px solid rgba(44,142,140,.2);
    animation:i5ring 8s linear infinite;
}
.i5-dining-ring:nth-child(2) { width:220px; height:220px; animation-duration:5s; animation-direction:reverse; }
@keyframes i5ring { to{transform:rotate(360deg)} }
.i5-dining-table-art { position:relative; z-index:2; }
.i5-dining-label {
    position:absolute; bottom:32px; left:32px; z-index:3;
}
.i5-dining-label-venue {
    font-size:8px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--teal); margin-bottom:6px;
}
.i5-dining-label-name {
    font-family:var(--font-head); font-size:28px; color:var(--white); line-height:1.15;
}
.i5-dining-label-name em { font-style:italic; color:var(--gold); }
.i5-dining-content {
    background:var(--surface); padding:clamp(44px,6vw,80px);
    display:flex; flex-direction:column; justify-content:center;
}
[data-theme="dark"] .i5-dining-content { background:var(--navy-mid); }
.i5-dining-item {
    display:flex; align-items:flex-start; gap:18px;
    padding:18px 0; border-bottom:1px solid var(--border);
}
.i5-dining-item:last-child { border-bottom:none; }
.i5-dining-item-num {
    font-family:var(--font-body); font-size:16px; color:var(--gold);
    min-width:22px; margin-top:2px;
}
.i5-dining-item-title {
    font-family:var(--font-head); font-size:19px; color:var(--ink); margin-bottom:3px;
}
.i5-dining-item-body { font-size:13px; color:var(--ink-3); line-height:1.8; }

/* ══════════════════════════════════════════
   FACILITIES GRID
══════════════════════════════════════════ */
.i5-facilities { background:var(--bg); padding:var(--sp-section) 0; }
.i5-fac-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--border); border:1px solid var(--border);
}
@media(min-width:640px)  { .i5-fac-grid { grid-template-columns:repeat(4,1fr); } }
@media(min-width:1024px) { .i5-fac-grid { grid-template-columns:repeat(9,1fr); } }
.i5-fac-item {
    background:var(--surface); padding:28px 12px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    transition:background var(--tr),transform var(--tr); cursor:default;
    aspect-ratio:1;
}
@media(min-width:1024px) { .i5-fac-item { aspect-ratio:auto; padding:32px 20px; } }
.i5-fac-item:hover { background:var(--teal-pale); transform:scale(1.03); }
.i5-fac-item:hover .i5-fac-icon { color:var(--teal); }
.i5-fac-icon { font-size:28px; color:var(--ink-3); transition:color var(--tr-fast); }
.i5-fac-name { font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); text-align:center; line-height:1.3; }

/* ══════════════════════════════════════════
   EXPERIENCES
══════════════════════════════════════════ */
.i5-experiences { background:var(--surface-alt); padding:var(--sp-section) 0; }
.i5-exp-grid { display:grid; gap:24px; }
@media(min-width:640px)  { .i5-exp-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .i5-exp-grid { grid-template-columns:repeat(4,1fr); } }
.i5-exp-card {
    position:relative; overflow:hidden;
    min-height:320px; display:flex; align-items:flex-end;
    cursor:pointer;
}
.i5-exp-bg {
    position:absolute; inset:0;
    transition:transform var(--tr);
}
.i5-exp-card:hover .i5-exp-bg { transform:scale(1.06); }
.i5-exp-bg-1 { background:radial-gradient(ellipse at 50% 30%,#1a4a2a 0%,#071309 100%); }
.i5-exp-bg-2 { background:radial-gradient(ellipse at 50% 30%,#0d2e42 0%,#050f18 100%); }
.i5-exp-bg-3 { background:radial-gradient(ellipse at 50% 30%,#3a2800 0%,#120e00 100%); }
.i5-exp-bg-4 { background:radial-gradient(ellipse at 50% 30%,#2a1530 0%,#0e0515 100%); }
.i5-exp-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);
}
.i5-exp-decor {
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
}
.i5-exp-decor i { font-size:80px; color:rgba(255,255,255,.06); }
.i5-exp-body { position:relative; z-index:2; padding:24px; width:100%; }
.i5-exp-title {
    font-family:var(--font-head); font-size:22px; color:var(--white);
    margin-bottom:8px; line-height:1.25;
}
.i5-exp-desc { font-size:12px; color:rgba(255,255,255,.80); line-height:1.7; margin-bottom:14px; } /* was .55 → fail; now ~5.2:1 ✓ */
.i5-exp-link {
    font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--teal); display:inline-flex; align-items:center; gap:6px;
    text-decoration:none; transition:gap var(--tr);
}
.i5-exp-card:hover .i5-exp-link { gap:10px; }

/* ══════════════════════════════════════════
   SPECIAL OFFERS — PRICING CARDS (Light adaptive)
══════════════════════════════════════════ */
.i5-offers { background:var(--surface-alt); padding:var(--sp-section) 0; }
.i5-offers-grid { display:grid; gap:2px; background:var(--border); }
@media(min-width:640px)  { .i5-offers-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .i5-offers-grid { grid-template-columns:repeat(3,1fr); } }
.i5-offer-card {
    background:var(--surface); overflow:hidden; position:relative;
    display:flex; flex-direction:column; transition:background var(--tr);
}
.i5-offer-card:hover { background:var(--teal-pale); }
.i5-offer-card--featured { background:var(--teal-pale); }
.i5-offer-card--featured::before {
    content:'Best Value'; position:absolute; top:0; right:0;
    background:var(--teal); color:var(--white);
    font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
    padding:5px 16px;
}
.i5-offer-head { padding:32px 32px 0; }
.i5-offer-tag {
    font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold); margin-bottom:10px; display:block;
}
.i5-offer-discount {
    font-family:var(--font-head); font-size:52px; color:var(--ink); line-height:1;
}
.i5-offer-discount span { font-size:18px; color:var(--ink-3); }
.i5-offer-title {
    font-family:var(--font-head); font-size:22px; color:var(--ink);
    margin:8px 0; line-height:1.25;
}
.i5-offer-body { padding:0 32px; flex:1; }
.i5-offer-desc { font-size:13px; color:var(--ink-3); line-height:1.85; }
.i5-offer-validity {
    font-size:10px; color:var(--ink-4); letter-spacing:.12em;
    margin-top:12px; display:flex; align-items:center; gap:5px;
}
.i5-offer-foot { padding:24px 32px; margin-top:auto; }

/* ══════════════════════════════════════════
   GALLERY — MASONRY CSS
══════════════════════════════════════════ */
.i5-gallery { background:var(--bg); padding:var(--sp-section) 0; }
.i5-gallery-filters {
    display:flex; gap:0; border-bottom:1px solid var(--border);
    margin-bottom:32px; overflow-x:auto;
}
.i5-gallery-filters::-webkit-scrollbar { display:none; }
.i5-gf-btn {
    font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--ink-3); padding:12px 20px; cursor:pointer;
    background:none; border:none; border-bottom:2px solid transparent;
    white-space:nowrap; transition:all .25s;
}
.i5-gf-btn:hover,.i5-gf-btn.active { color:var(--teal); border-bottom-color:var(--teal); }
.i5-gallery-masonry {
    columns:2; gap:8px;
}
@media(min-width:640px)  { .i5-gallery-masonry { columns:3; } }
@media(min-width:1024px) { .i5-gallery-masonry { columns:4; } }
.i5-gitem {
    break-inside:avoid; margin-bottom:8px;
    position:relative; overflow:hidden; cursor:zoom-in;
    display:block;
}
.i5-gitem-inner {
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px;
    transition:transform var(--tr);
}
.i5-gitem:hover .i5-gitem-inner { transform:scale(1.03); }
.i5-gitem-inner i { opacity:.3; color:var(--white); transition:opacity var(--tr); }
.i5-gitem:hover .i5-gitem-inner i { opacity:.55; }
.i5-gitem-label {
    font-size:9px; letter-spacing:.18em; text-transform:uppercase;
    color:rgba(255,255,255,.75); /* was .25 → fail; raised to .75 ~4.7:1 ✓ */
}
.i5-gitem-overlay {
    position:absolute; inset:0; background:rgba(0,0,0,0); transition:background var(--tr);
    display:flex; align-items:center; justify-content:center;
}
.i5-gitem:hover .i5-gitem-overlay { background:rgba(0,0,0,.35); }
.i5-gitem-zoom { color:var(--white); font-size:22px; opacity:0; transform:scale(.7); transition:all var(--tr); }
.i5-gitem:hover .i5-gitem-zoom { opacity:1; transform:scale(1); }

/* ══════════════════════════════════════════
   TESTIMONIALS
══════════════════════════════════════════ */
.i5-testi { background:var(--surface-alt); padding:var(--sp-section) 0; }
.i5-testi-grid { display:grid; gap:20px; }
@media(min-width:768px)  { .i5-testi-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1200px) { .i5-testi-grid { grid-template-columns:repeat(3,1fr); } }
.i5-tcard {
    background:var(--surface); border:1px solid var(--border);
    padding:36px 32px; position:relative;
    transition:transform var(--tr),box-shadow var(--tr);
}
.i5-tcard::before {
    content:''; position:absolute; left:0; top:0; bottom:0;
    width:3px; background:var(--teal); transform:scaleY(0); transform-origin:bottom;
    transition:transform var(--tr);
}
.i5-tcard:hover { transform:translateY(-4px); box-shadow:var(--sh-md); }
.i5-tcard:hover::before { transform:scaleY(1); }
.i5-tcard-quote {
    font-family:var(--font-head); font-size:64px; line-height:.6;
    color:var(--teal); opacity:.2;
    position:absolute; top:22px; left:26px; user-select:none;
}
.i5-tcard-stars { display:flex; gap:3px; margin-bottom:14px; }
.i5-tcard-stars i { color:var(--gold); font-size:12px; }
.i5-tcard-text {
    font-family:var(--font-head); font-size:17px; font-style:italic;
    color:var(--ink); line-height:1.7; margin-bottom:22px;
}
.i5-tcard-author {
    display:flex; align-items:center; gap:12px;
    border-top:1px solid var(--border); padding-top:20px;
}
.i5-tcard-avatar {
    width:44px; height:44px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(135deg,var(--teal) 0%,var(--teal-dark) 100%);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-head); font-size:16px; color:var(--white);
}
.i5-tcard-name { font-size:13px; font-weight:600; color:var(--ink); margin-bottom:2px; }
.i5-tcard-origin { font-size:11px; color:var(--ink-4); letter-spacing:.08em; }

/* ══════════════════════════════════════════
   AWARDS & TRUST
══════════════════════════════════════════ */
.i5-awards { background:var(--surface-alt); padding:60px 0; }
.i5-awards-grid {
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--border);
}
@media(min-width:768px) { .i5-awards-grid { grid-template-columns:repeat(4,1fr); } }
.i5-award-item {
    background:var(--surface);
    padding:32px 24px; text-align:center;
    transition:background var(--tr);
}
.i5-award-item:hover { background:var(--teal-pale); }
.i5-award-icon { font-size:30px; color:var(--gold); margin-bottom:10px; }
.i5-award-title {
    font-family:var(--font-head); font-size:16px; color:var(--ink);
    margin-bottom:5px; line-height:1.25;
}
.i5-award-org { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-4); }

/* ══════════════════════════════════════════
   LOCATION
══════════════════════════════════════════ */
.i5-location { background:var(--bg); padding:var(--sp-section) 0; }
.i5-location-grid { display:grid; gap:48px; }
@media(min-width:1024px) { .i5-location-grid { grid-template-columns:1fr 1fr; align-items:start; } }
.i5-map-box {
    background:var(--navy-mid);
    min-height:400px; position:relative; overflow:hidden;
    border:1px solid var(--border);
    display:flex; flex-direction:column;
}
.i5-map-box iframe { flex:1; min-height:400px; border:0; display:block; width:100%; }
.i5-map-overlay-label {
    background:var(--surface-alt); padding:16px 22px;
    display:flex; align-items:center; gap:12px;
}
.i5-map-pin { color:var(--teal); font-size:20px; }
.i5-map-addr { font-size:13px; color:var(--ink-2); line-height:1.5; }
.i5-attract-item {
    display:flex; align-items:center; gap:14px;
    padding:14px 0; border-bottom:1px solid var(--border);
    transition:var(--tr); cursor:default;
}
.i5-attract-item:last-child { border-bottom:none; }
.i5-attract-item:hover .i5-attract-icon { background:var(--teal); color:var(--white); border-color:var(--teal); }
.i5-attract-icon {
    width:38px; height:38px; border:1px solid var(--border-md);
    display:flex; align-items:center; justify-content:center;
    font-size:16px; color:var(--teal); flex-shrink:0; transition:var(--tr);
}
.i5-attract-name { font-family:var(--font-head); font-size:17px; color:var(--ink); margin-bottom:2px; }
.i5-attract-dist { font-size:11px; color:var(--ink-4); letter-spacing:.08em; }

/* ══════════════════════════════════════════
   FAQ
══════════════════════════════════════════ */
.i5-faq { background:var(--surface-alt); padding:var(--sp-section) 0; }
.i5-accordion-item {
    border:1px solid var(--border); margin-bottom:8px;
    background:var(--surface); transition:box-shadow var(--tr);
}
.i5-accordion-item:hover { box-shadow:var(--sh-xs); }
.i5-accordion-btn {
    width:100%; display:flex; align-items:center; justify-content:space-between;
    gap:16px; padding:20px 24px; text-align:left;
    background:none; border:none; cursor:pointer;
    font-family:var(--font-head); font-size:18px; color:var(--ink);
    transition:color var(--tr-fast);
}
.i5-accordion-btn:hover { color:var(--teal); }
.i5-accordion-btn[aria-expanded="true"] { color:var(--teal); }
.i5-acc-icon {
    width:28px; height:28px; border:1px solid var(--border-md);
    display:flex; align-items:center; justify-content:center;
    font-size:14px; flex-shrink:0; color:var(--teal);
    transition:transform var(--tr);
}
.i5-accordion-btn[aria-expanded="true"] .i5-acc-icon { transform:rotate(45deg); }
.i5-accordion-body {
    padding:0 24px; max-height:0; overflow:hidden;
    transition:max-height .4s var(--ease), padding .3s;
}
.i5-accordion-body.open {
    max-height:300px; padding:0 24px 20px;
}
.i5-accordion-body p { font-size:14px; color:var(--ink-2); line-height:1.85; }

/* ══════════════════════════════════════════
   NEWSLETTER
══════════════════════════════════════════ */
.i5-newsletter { background:var(--navy-mid); padding:var(--sp-section) 0; position:relative; overflow:hidden; }
[data-theme="dark"] .i5-newsletter { background:var(--surface-alt); }
.i5-nl-bg {
    position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(ellipse at 80% 50%,rgba(91,192,190,.08) 0%,transparent 60%);
}
.i5-nl-inner { position:relative; z-index:1; }
.i5-nl-grid { display:grid; gap:48px; align-items:center; }
@media(min-width:768px) { .i5-nl-grid { grid-template-columns:1fr 1fr; } }
.i5-nl-form-wrap { display:flex; }
.i5-nl-input {
    flex:1; background:rgba(0,0,0,.04); border:1px solid var(--border);
    border-right:none; color:var(--ink);
    padding:14px 18px; font-family:var(--font-body); font-size:14px; outline:none;
    transition:border-color .3s;
}
[data-theme="dark"] .i5-nl-input { background:rgba(255,255,255,.07); color:var(--white); border-color:rgba(255,255,255,.12); }
.i5-nl-input::placeholder { color:var(--ink-4); }
[data-theme="dark"] .i5-nl-input::placeholder { color:rgba(255,255,255,.3); }
.i5-nl-input:focus { border-color:var(--teal); }
.i5-nl-help { font-size:11px; color:var(--ink-4); margin-top:10px; letter-spacing:.06em; }

/* ══════════════════════════════════════════
   CTA BANNER
══════════════════════════════════════════ */
.i5-cta {
    background:var(--surface-alt);
    padding:var(--sp-section) 0;
    text-align:center; position:relative; overflow:hidden;
}
[data-theme="dark"] .i5-cta { background:var(--navy); }
.i5-cta-bg {
    position:absolute; inset:0;
    background:radial-gradient(ellipse at 50% 50%,rgba(44,142,140,.05) 0%,transparent 60%);
}
.i5-cta-lines {
    position:absolute; inset:0;
    background-image:linear-gradient(var(--border) 1px,transparent 1px),
    linear-gradient(90deg,var(--border) 1px,transparent 1px);
    background-size:60px 60px;
}
.i5-cta-content { position:relative; z-index:1; max-width:720px; margin:0 auto; padding:0 var(--sp-gutter); }
.i5-cta-title {
    font-family:var(--font-head); font-size:clamp(38px,5.5vw,72px);
    color:var(--ink); line-height:1.05; margin-bottom:18px;
}
.i5-cta-title em { font-style:italic; color:var(--teal); }
.i5-cta-body { font-size:15px; color:var(--ink-2); line-height:2; margin-bottom:40px; }
.i5-cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
.i5-footer { background:var(--surface-alt); padding:clamp(56px,6vw,80px) 0 0; }
[data-theme="dark"] .i5-footer { background:#060D1A; }
.i5-footer-grid {
    display:grid; gap:44px;
}
@media(min-width:768px)  { .i5-footer-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .i5-footer-grid { grid-template-columns:2fr 1fr 1fr 1.5fr; } }
.i5-footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:16px; margin-top: 20px }
.i5-footer-logo-icon {
    width:36px; height:36px; background:var(--teal);
    clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.i5-footer-logo-icon i { font-size:15px; color:var(--white); }
.i5-footer-logo-name {
    font-family:var(--font-head); font-size:22px; color:var(--ink); font-weight:400;
}
[data-theme="dark"] .i5-footer-logo-name { color:var(--white); }
.i5-footer-logo-sub {
    display:block; font-size:8px; letter-spacing:.28em; text-transform:uppercase;
    color:var(--ink-4);
}
.i5-footer-desc { font-size:13px; line-height:1.9; color:var(--ink-3); margin-bottom:22px; }
.i5-footer-contact-item {
    display:flex; align-items:center; gap:9px; font-size:13px;
    color:var(--ink-2); margin-bottom:7px; text-decoration:none;
    transition:color var(--tr-fast);
}
.i5-footer-contact-item i { color:var(--teal); width:16px; flex-shrink:0; }
.i5-footer-contact-item:hover { color:var(--teal); }
.i5-footer-socials { display:flex; gap:9px; margin-top:18px; }
.i5-footer-social {
    width:36px; height:36px; border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-3); font-size:14px;
    text-decoration:none; transition:all var(--tr-fast);
}
.i5-footer-social:hover { border-color:var(--teal); color:var(--teal); }
.i5-footer-col-head {
    font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
    color:var(--ink-3); /* was ink-4; ink-3 = 5.6:1 ✓ for small bold text */
    margin-bottom:18px;
}
.i5-footer-link {
    display:block; font-size:13px; color:var(--ink-3);
    margin-bottom:8px; transition:color var(--tr-fast);
    text-decoration:none;
}
.i5-footer-link:hover { color:var(--teal); }
.i5-footer-awards { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.i5-footer-award {
    border:1px solid var(--border); padding:5px 12px;
    font-size:10px; color:var(--ink-3); letter-spacing:.1em; /* was ink-4; ink-3 = 5.6:1 ✓ */
}
.i5-footer-bottom {
    background:rgba(0,0,0,.03); padding:18px 0; margin-top:52px;
}
[data-theme="dark"] .i5-footer-bottom { background:rgba(0,0,0,.35); }
.i5-footer-bottom-inner {
    display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
    gap:12px; padding:0 var(--sp-gutter);
}
.i5-footer-bottom p { font-size:11px; color:var(--ink-3); letter-spacing:.1em; margin:0; } /* ink-3 = 5.6:1 ✓ */
.i5-footer-legal { display:flex; gap:20px; flex-wrap:wrap; }
.i5-footer-legal a { font-size:11px; color:var(--ink-3); text-decoration:none; transition:color var(--tr-fast); } /* was ink-4 */
.i5-footer-legal a:hover { color:var(--teal); }

/* ══════════════════════════════════════════
   FLOATING ELEMENTS
══════════════════════════════════════════ */
.i5-wa-fab {
    position:fixed; bottom:92px; right:20px; z-index:500;
    width:52px; height:52px; border-radius:50%; background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 20px rgba(37,211,102,.35);
    text-decoration:none; transition:all var(--tr);
    animation:i5waPulse 2.5s ease infinite;
}
.i5-wa-fab:hover { transform:scale(1.1); background:#20ba5a; }
.i5-wa-tooltip {
    position:absolute; right:62px; top:50%; transform:translateY(-50%);
    background:var(--navy); color:var(--white);
    font-size:11px; letter-spacing:.1em; white-space:nowrap;
    padding:6px 12px; pointer-events:none;
    opacity:0; transition:opacity .25s;
}
.i5-wa-fab:hover .i5-wa-tooltip { opacity:1; }
@keyframes i5waPulse {
    0%,100%{box-shadow:0 4px 18px rgba(37,211,102,.32)}
    50%{box-shadow:0 4px 30px rgba(37,211,102,.55)}
}
.i5-scroll-top {
    position:fixed; bottom:24px; right:20px; z-index:500;
    width:44px; height:44px; background:var(--surface);
    border:1px solid var(--border);
    color:var(--teal); font-size:18px;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all var(--tr);
    opacity:0; transform:translateY(12px);
    pointer-events:none;
}
.i5-scroll-top.i5-vis { opacity:1; transform:translateY(0); pointer-events:auto; }
.i5-scroll-top:hover { background:var(--teal); color:var(--white); border-color:var(--teal); }
.i5-mobile-bar {
    position:fixed; bottom:0; left:0; right:0; z-index:490;
    background:var(--surface); border-top:1px solid var(--border);
    padding:10px 16px;
    display:flex; align-items:center; gap:10px;
    box-shadow:0 -4px 20px rgba(0,0,0,.1);
    transform:translateY(100%); transition:transform .4s var(--ease);
}
.i5-mobile-bar.i5-vis { transform:translateY(0); }
@media(min-width:768px) { .i5-mobile-bar { display:none; } }
.i5-mobile-bar-text { flex:1; font-size:12px; color:var(--ink-3); line-height:1.3; }
.i5-mobile-bar-text strong { display:block; color:var(--ink); font-size:13px; }
.i5-cookie {
    position:fixed; bottom:0; left:0; right:0; z-index:1035;
    background:var(--surface); border-top:1px solid var(--border);
    padding:14px 0; transition:transform .45s var(--ease);
}
.i5-cookie.i5-cookie-hide { transform:translateY(100%); }
.i5-cookie-inner {
    display:flex; align-items:center; gap:18px; flex-wrap:wrap;
    padding:0 var(--sp-gutter);
}
.i5-cookie-text { font-size:12px; color:var(--ink-2); margin:0; flex:1; }
.i5-cookie-text a { color:var(--teal); }
.i5-side-nav {
    position:fixed; right:16px; top:50%; transform:translateY(-50%);
    z-index:200; display:flex; flex-direction:column; gap:9px;
}
@media(max-width:768px) { .i5-side-nav { display:none; } }
.i5-sdot {
    width:7px; height:7px; border-radius:50%;
    border:1px solid var(--border-md); background:transparent;
    cursor:pointer; transition:all var(--tr-fast);
}
.i5-sdot.active,.i5-sdot:hover { background:var(--teal); border-color:var(--teal); }

/* ── AOS custom ────────────────────────────── */
[data-aos] { transition:opacity .7s var(--ease),transform .7s var(--ease); }
[data-aos="fade-up"]    { opacity:0; transform:translateY(24px); }
[data-aos="fade-right"] { opacity:0; transform:translateX(-24px); }
[data-aos="fade-left"]  { opacity:0; transform:translateX(24px); }
[data-aos="fade-in"]    { opacity:0; }
[data-aos].aos-animate  { opacity:1; transform:none; }
[data-aos-delay="100"] { transition-delay:.1s; }
[data-aos-delay="200"] { transition-delay:.2s; }
[data-aos-delay="300"] { transition-delay:.3s; }
[data-aos-delay="400"] { transition-delay:.4s; }

/* ── SR-ONLY ─────────────────────────────── */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.d-none-lg { display:block; }
@media(min-width:1024px) { .d-none-lg { display:none; } }

.btn-luxury {
    border-radius: 40px;
    font-weight: 700;
}
.btn-prim  { background:var(--teal); color:var(--white); }
.btn-prim:hover { background:var(--teal-dark); color:var(--white); box-shadow:var(--sh-teal); }
.btn-gold  { background:var(--gold); color:var(--white); }
.btn-gold:hover { background:var(--gold-dark); color:var(--white); }
.btn-outline {
    background:transparent; border:1.5px solid var(--border-md); color:var(--ink);
}
.btn-outline:hover { border-color:var(--teal); color:var(--teal); }

/* ── ACCESSIBILITY & FOCUS ── */
:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 3px;
    border-radius: 4px;
}
.sr-only {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border-width:0;
}

 .premium-hero {
     padding: 100px 0 60px;
     background: linear-gradient(to bottom, var(--surface), var(--surface-alt));
     position: relative;
 }

/* Masonry Gallery Grid Styling */
.room-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 220px;
    gap: 12px;
    border-radius: 12px;
    overflow: hidden;
}
.gallery-grid-item {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--surface-alt);
    cursor: zoom-in;
}
.gallery-grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--tr);
    display: block;
}
.gallery-grid-item:hover img {
    transform: scale(1.05);
}

/* Layout logic: 1st image is large, next 4 are small */
.gallery-grid-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}
.gallery-grid-item:nth-child(n+2):nth-child(-n+5) {
    grid-column: span 1;
    grid-row: span 1;
}

/* Fallback CSS styling */
.fallback-bg {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(ellipse at 50% 40%,#1e3a5a 0%,#091422 100%);
}
.fallback-icon {
    font-size: 64px;
    color: rgba(255, 255, 255, 0.2);
}
.i5-rt-1 { background: radial-gradient(ellipse at 50% 40%,#1e3a5a 0%,#091422 100%); }

/* View All Overlay */
.view-all-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: 0.05em;
    transition: background var(--tr);
    pointer-events: none;
}
.gallery-grid-item:hover .view-all-overlay {
    background: rgba(0, 0, 0, 0.7);
}

/* Mobile adjustments for the gallery */
@media (max-width: 768px) {
    .room-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 150px;
    }
    .gallery-grid-item:first-child {
        grid-column: span 2;
        grid-row: span 1;
        height: 250px;
    }
}

/* Feature & Content styling */
.feature-block {
    padding: 32px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    height: 100%;
    transition: box-shadow var(--tr), transform var(--tr);
}
.feature-block:hover {
    box-shadow: var(--sh-sm);
    transform: translateY(-4px);
}
.info-list li {
    display: flex;
    justify-content: space-between;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
}
.info-list li:last-child {
    border-bottom: none;
}
.amenity-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 40px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink-2);
    transition: all var(--tr-fast);
}
.amenity-pill:hover {
    border-color: var(--teal);
    background: var(--teal-pale);
}
.amenity-pill i {
    color: var(--teal);
    font-size: 16px;
}
.guest-card {
    background: var(--surface-alt);
    padding: 24px;
    border-left: 3px solid var(--teal);
    border-radius: 0 8px 8px 0;
    height: 100%;
}
