    :root{
      --bg:#090d12;
      --bg-soft:#121a24;
      --card:#182434;
      --line:rgba(180,208,241,.18);
      --text:#f4f7fb;
      --muted:#a6b4c8;
      --gold:#efc27a;
      --gold-2:#ffe0ac;
      --mint:#7fd6c9;
      --hero-strip-bg:rgba(245,240,232,.48);
      --hero-strip-text:#14120f;
      --form-field-bg:rgba(255,255,255,.04);
      --form-field-border:rgba(255,255,255,.08);
      --form-label:#ddd2c0;
      --form-option-bg:#f6f2ea;
      --form-option-text:#14120f;
      --shadow:0 24px 60px rgba(2,8,18,.45);
      --radius:24px;
      --container:min(1180px, calc(100% - 32px));
    }
    :root[data-theme="light"]{
      --bg:#eef3f8;
      --bg-soft:#ffffff;
      --card:#f5f9ff;
      --line:rgba(26,47,74,.16);
      --text:#142033;
      --muted:#4d627e;
      --gold:#d79a43;
      --gold-2:#f0bf77;
      --mint:#2f8f81;
      --hero-strip-bg:rgba(10,12,16,.42);
      --hero-strip-text:#f6f2ea;
      --form-field-bg:rgba(255,255,255,.78);
      --form-field-border:rgba(26,47,74,.18);
      --form-label:#32465f;
      --form-option-bg:#ffffff;
      --form-option-text:#1c2a3d;
      --shadow:0 20px 48px rgba(22,43,73,.14);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    .page-loader {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: grid;
      place-items: center;
      background: #0b0b0f;
      opacity: 1;
      visibility: visible;
      transition: opacity 0.6s ease, visibility 0.6s ease;
    }
    .page-loader.is-hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    .page-loader__inner {
      color: #f5f1e8;
      font-size: 2rem;
      letter-spacing: 0.18em;
      font-weight: 700;
    }
    @media (prefers-reduced-motion: reduce) {
      .page-loader {
        transition: none;
      }
    }

    body{
      margin:0;
      position:relative;
      font-family:"Manrope",sans-serif;
      background:
        radial-gradient(circle at 18% 12%, rgba(127,214,201,.12), transparent 34%),
        radial-gradient(circle at 82% 10%, rgba(239,194,122,.16), transparent 30%),
        linear-gradient(160deg, #070b11 0%, #0c141e 48%, #0a121b 100%);
      color:var(--text);
      line-height:1.6;
      min-height:100vh;
    }
    body::before,
    body::after{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      z-index:-1;
    }
    body::before{
      background:radial-gradient(circle at 20% 80%, rgba(127,214,201,.08), transparent 36%);
    }
    body::after{
      background-image:linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
      background-size:34px 34px;
      opacity:.12;
    }

    a{text-decoration:none;color:inherit}
    img{max-width:100%;display:block}
    .container{width:var(--container);margin:auto}
    .section{padding:88px 0}
    .eyebrow{
      display:inline-block;
      color:var(--gold-2);
      letter-spacing:.16em;
      text-transform:uppercase;
      font-size:.78rem;
      font-weight:700;
      margin-bottom:14px;
    }
    h1,h2,h3{
      margin:0 0 16px;
      line-height:1.1;
    }
    h1,h2{
      font-family:"Fraunces",serif;
      letter-spacing:.01em;
    }
    h1{font-size:clamp(2.8rem, 7vw, 5.4rem)}
    h2{font-size:clamp(2rem, 4vw, 3.2rem)}
    p{margin:0 0 14px;color:var(--muted)}
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      min-height:52px;
      padding:0 22px;
      border-radius:999px;
      border:1px solid transparent;
      font-weight:700;
      position:relative;
      overflow:hidden;
      isolation:isolate;
      transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease, filter .35s ease, background-color .35s ease;
      cursor:pointer;
    }
    .btn::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(120deg, transparent 18%, rgba(255,255,255,.35), transparent 82%);
      transform:translateX(-140%);
      transition:transform .45s ease;
      pointer-events:none;
      z-index:-1;
    }
    .btn:hover::after{
      transform:translateX(140%);
    }
    .btn-primary{
      background:linear-gradient(135deg,var(--gold),var(--gold-2));
      color:#141414;
      box-shadow:0 12px 30px rgba(201,169,106,.22);
    }
    .btn-primary:hover{transform:translateY(-2px)}
    .btn-secondary{
      border-color:rgba(255,255,255,.16);
      color:var(--text);
      background:rgba(255,255,255,.02);
    }
    .btn-secondary:hover{
      background:rgba(255,255,255,.05);
      transform:translateY(-2px);
    }
    .btn-reserve{
      background:linear-gradient(135deg,var(--gold),var(--gold-2));
      color:#121212;
      border-color:rgba(0,0,0,.18);
      box-shadow:0 10px 26px rgba(201,169,106,.24);
    }
    .btn-reserve:hover{
      transform:translateY(-2px);
      filter:brightness(1.03);
      box-shadow:0 14px 32px rgba(201,169,106,.3);
    }
    .btn-reserve:focus-visible{
      outline:3px solid rgba(229,198,141,.55);
      outline-offset:2px;
    }
    .btn-reserve:active{
      transform:translateY(0);
      box-shadow:0 6px 18px rgba(201,169,106,.26);
      filter:brightness(.98);
    }

    /* Header */
    .header{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter:blur(14px);
      background:rgba(15,15,17,.72);
      border-bottom:1px solid rgba(255,255,255,.06);
      transition:background .3s ease, backdrop-filter .3s ease, border-color .3s ease, box-shadow .3s ease;
    }
    .header-scrolled{
      background:rgba(9,12,17,.88);
      backdrop-filter:blur(18px);
      border-color:rgba(255,255,255,.08);
      box-shadow:0 14px 38px rgba(0,0,0,.26);
    }
    .nav{
      display:flex;
      align-items:center;
      justify-content:space-between;
      min-height:78px;
      gap:20px;
    }
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.logo-img{
  height:48px;
  width:auto;
  display:block;
}
.logo-sprite{
  position:absolute;
  width:0;
  height:0;
      overflow:hidden;
      pointer-events:none;
    }
    .logo-wordmark{
      display:block;
      width:auto;
      height:44px;
    }
    .logo-wordmark.logo-compact{height:40px}
.logo-wordmark .logo-disc{fill:var(--gold)}
.logo-wordmark .logo-ring{fill:none;stroke:var(--gold-2);stroke-width:1.7}
.logo-wordmark .logo-num{
  fill:#151515;
  font-family:"Manrope",sans-serif;
  font-size:18px;
  font-weight:800;
      letter-spacing:.03em;
    }
.logo-wordmark .logo-hotel{
  fill:var(--gold-2);
  font-family:"Manrope",sans-serif;
  font-size:11.4px;
  font-weight:800;
  letter-spacing:.32em;
}
.logo-wordmark .logo-name{
  fill:#f8f3e8;
  font-family:"Fraunces",serif;
  font-size:30px;
  font-weight:700;
  letter-spacing:.08em;
}
.brand-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#e9e3d8;
}
.brand-name{
  font-family:"Fraunces",serif;
  font-size:1.08rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.brand-tagline{
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#b9b1a3;
}
    .logo-wordmark-light .logo-disc{fill:#222227}
    .logo-wordmark-light .logo-ring{stroke:#4a4a52}
    .logo-wordmark-light .logo-num{fill:#f3efe7}
    .logo-wordmark-light .logo-hotel{fill:#4a4a52}
    .logo-wordmark-light .logo-name{fill:#1d1d21}
.footer-brand .logo-wordmark{height:46px}
.footer-brand{
  display:flex;
  align-items:center;
  gap:10px;
}
.footer-logo{
  height:48px;
  width:auto;
  display:block;
}
.footer-brand-text{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.footer-brand-name{
  font-weight:700;
  font-size:1rem;
  color:#e9e3d8;
}
.footer-brand-tagline{
  font-size:.8rem;
  color:#999;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-brand-copy{
  margin:10px 0 0;
  max-width:36ch;
  color:#b5ad9f;
  font-size:.92rem;
}
    .menu{
      display:flex;
      align-items:center;
      gap:26px;
      margin-left:88px;
      color:#ddd6cb;
      font-size:.95rem;
    }
    .nav-actions{
      display:flex;
      align-items:center;
      gap:10px;
      margin-left:auto;
    }
    .lang-switch{
      display:inline-flex;
      align-items:center;
      border:1px solid rgba(180,208,241,.26);
      border-radius:999px;
      padding:3px;
      background:rgba(255,255,255,.04);
    }
    .lang-btn{
      min-height:32px;
      min-width:40px;
      border:0;
      border-radius:999px;
      background:transparent;
      color:#dce6f3;
      font-weight:700;
      cursor:pointer;
      padding:0 12px;
      transition:background .2s ease, color .2s ease;
    }
    .lang-btn.is-active{
      background:rgba(127,214,201,.22);
      color:#f8fcff;
    }
    .theme-toggle{
      min-height:38px;
      border-radius:999px;
      border:1px solid rgba(180,208,241,.28);
      background:rgba(255,255,255,.04);
      color:#e8f0fa;
      font-weight:700;
      padding:0 14px;
      cursor:pointer;
      transition:transform .2s ease, background .2s ease, border-color .2s ease;
    }
    .theme-toggle:hover{
      transform:translateY(-1px);
      background:rgba(255,255,255,.08);
      border-color:rgba(239,194,122,.5);
    }
    .menu a{position:relative}
    .menu a::after{
      content:"";
      position:absolute;
      left:0;bottom:-8px;
      width:0;height:2px;
      background:var(--gold);
      transition:.25s ease;
    }
    .menu a:hover::after{width:100%}
    .menu-toggle{
      display:none;
      width:48px;
      height:48px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.04);
      color:#f3eee4;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      transition:background .2s ease, border-color .2s ease, transform .2s ease;
    }
    .menu-toggle:hover{
      background:rgba(255,255,255,.08);
      border-color:rgba(201,169,106,.4);
      transform:translateY(-1px);
    }
    .menu-toggle:focus-visible{
      outline:3px solid rgba(229,198,141,.55);
      outline-offset:2px;
    }
    .menu-toggle svg{width:22px;height:22px}

    body.menu-open{overflow:hidden}
    .mobile-menu{
      position:fixed;
      inset:0;
      z-index:75;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .28s ease, visibility .28s ease;
    }
    .mobile-menu.is-open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    .mobile-menu-backdrop{
      position:absolute;
      inset:0;
      background:rgba(6,6,9,.72);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
    }
    .mobile-menu-panel{
      position:relative;
      z-index:1;
      width:min(560px, calc(100% - 24px));
      max-height:calc(100vh - 24px);
      margin:12px auto;
      border:1px solid rgba(255,255,255,.14);
      border-radius:26px;
      background:linear-gradient(165deg, rgba(24,24,28,.98), rgba(14,14,17,.97));
      box-shadow:0 24px 60px rgba(0,0,0,.5);
      overflow:auto;
      padding:22px 20px 26px;
      transform:translateY(-16px) scale(.98);
      transition:transform .3s ease;
    }
    .mobile-menu.is-open .mobile-menu-panel{
      transform:translateY(0) scale(1);
    }
    .mobile-menu-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:18px;
    }
    .mobile-menu-close{
      width:40px;
      height:40px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.16);
      background:rgba(255,255,255,.05);
      color:#f2ece2;
      font-size:1.1rem;
      cursor:pointer;
    }
    .mobile-menu-close:focus-visible{
      outline:3px solid rgba(229,198,141,.55);
      outline-offset:2px;
    }
    .mobile-menu-links{
      display:grid;
      gap:10px;
      margin-bottom:20px;
    }
    .mobile-menu-links a{
      border:1px solid rgba(255,255,255,.1);
      border-radius:16px;
      min-height:50px;
      display:flex;
      align-items:center;
      padding:0 16px;
      color:#eee7dc;
      background:rgba(255,255,255,.03);
      transition:border-color .2s ease, background .2s ease, transform .2s ease;
    }
    .mobile-menu-links a:hover{
      border-color:rgba(201,169,106,.36);
      background:rgba(255,255,255,.06);
      transform:translateX(2px);
    }
    .mobile-menu-socials{
      display:flex;
      gap:10px;
      margin-bottom:16px;
      flex-wrap:wrap;
    }
    .mobile-menu-socials a{
      flex:1;
      min-width:140px;
      min-height:44px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.03);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#e2dacd;
      font-weight:600;
      font-size:.9rem;
    }
    .mobile-menu-cta .btn{width:100%}
    .mobile-mode-row{
      display:flex;
      gap:10px;
      align-items:center;
      justify-content:space-between;
      margin-bottom:18px;
    }
    .mobile-mode-row .lang-switch{flex:1}
    .mobile-mode-row .theme-toggle{min-width:98px}

    /* Hero */
    .hero{
      --hero-parallax-offset: 0px;
      min-height:calc(100vh - 78px);
      display:grid;
      align-items:center;
      position:relative;
      overflow:hidden;
      isolation:isolate;
      background:linear-gradient(rgba(10,10,12,.75), rgba(10,10,12,.9));
    }
    .hero::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 20% 20%, rgba(201,169,106,.18), transparent 28%),
        radial-gradient(circle at 85% 30%, rgba(201,169,106,.10), transparent 20%);
      pointer-events:none;
      z-index:-1;
    }
    .hero::after{
      content:"";
      position:absolute;
      inset:-10% -1.5% -4%;
      background:url('https://images.unsplash.com/photo-1551882547-ff40c63fe5fa?auto=format&fit=crop&w=1800&q=80') center 46%/cover no-repeat;
      transform:translateY(var(--hero-parallax-offset)) scale(1.04);
      will-change:transform;
      pointer-events:none;
      z-index:-2;
    }
    .hero-grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:40px;
      align-items:end;
    }
    .hero-copy p{
      max-width:640px;
      font-size:1.05rem;
      color:#d8d0c4;
    }
    .hero-copy .eyebrow,
    .hero-copy h1,
    .hero-copy p{
      display:inline-block;
      background:var(--hero-strip-bg);
      color:var(--hero-strip-text);
      padding:2px 6px 3px;
      box-decoration-break:clone;
      -webkit-box-decoration-break:clone;
      border-radius:6px;
    }
    .hero-copy .eyebrow{
      margin-bottom:10px;
    }
    .hero-copy h1{
      margin-right:100%;
      margin-bottom:12px;
      line-height:1.2;
    }
    .hero-copy p{
      margin-bottom:18px;
      line-height:1.55;
    }
    .hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin-top:28px;
    }
    .hero-card{
      background:rgba(23,23,27,.68);
      border:1px solid rgba(255,255,255,.09);
      box-shadow:var(--shadow);
      border-radius:28px;
      padding:28px;
      align-self:end;
      position:relative;
      overflow:hidden;
      transition:transform .34s cubic-bezier(.2,.8,.2,1), border-color .34s ease, box-shadow .34s ease;
    }
    .hero-card::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(135deg, rgba(127,214,201,.2), transparent 48%, rgba(239,194,122,.2));
      opacity:0;
      transition:opacity .34s ease;
      pointer-events:none;
      z-index:-1;
    }
    .hero-card:hover{
      transform:translateY(-8px);
      border-color:rgba(239,194,122,.42);
    }
    .hero-card:hover::after{
      opacity:1;
    }
    .quick-book{
      display:grid;
      gap:14px;
    }
    .booking-psychology{
      margin:4px 0 2px;
      min-height:34px;
      border-radius:14px;
      padding:10px 12px;
      border:1px solid rgba(239,194,122,.32);
      background:rgba(255,255,255,.02);
      color:var(--gold-2);
      font-size:.86rem;
      line-height:1.35;
      transition:opacity .4s ease, transform .4s ease;
    }
    .booking-psychology.fade-out{
      opacity:0;
      transform:translateY(6px);
    }
    .field{
      display:grid;
      gap:8px;
    }
    .field label{
      font-size:.9rem;
      color:var(--form-label);
      font-weight:600;
    }
    .field input,.field select{
      width:100%;
      min-height:50px;
      border-radius:16px;
      border:1px solid var(--form-field-border);
      background:var(--form-field-bg);
      color:var(--text);
      padding:0 16px;
      outline:none;
    }
    .field select option{
      color:var(--form-option-text);
      background:var(--form-option-bg);
    }

    /* Stats */
    .stats{
      margin-top:-48px;
      position:relative;
      z-index:2;
    }
    .stats-grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:16px;
    }
    .stat{
      background:var(--bg-soft);
      border:1px solid var(--line);
      border-radius:22px;
      padding:24px;
      box-shadow:var(--shadow);
    }
    .stat strong{
      display:block;
      font-size:1.7rem;
      color:var(--text);
      margin-bottom:6px;
    }
    .stat span{color:var(--muted)}

    /* Concept Story */
    .story-section{padding-top:96px}
    .story-grid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:28px;
      align-items:stretch;
    }
    .story-copy{
      background:
        linear-gradient(155deg, rgba(201,169,106,.12), rgba(255,255,255,.02)),
        var(--bg-soft);
      border:1px solid var(--line);
      border-radius:30px;
      padding:34px;
      box-shadow:var(--shadow);
    }
    .story-manifesto{
      margin:0 0 24px;
      max-width:58ch;
      color:#ddd4c8;
      font-size:1.03rem;
    }
    .story-points{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:14px;
    }
    .story-point{
      border:1px solid rgba(255,255,255,.09);
      border-radius:18px;
      padding:18px 16px;
      background:rgba(0,0,0,.14);
    }
    .story-point strong{
      display:block;
      margin-bottom:6px;
      color:var(--gold-2);
      letter-spacing:.03em;
      text-transform:uppercase;
      font-size:.78rem;
    }
    .story-point p{
      margin:0;
      color:#cec6ba;
      font-size:.94rem;
      line-height:1.55;
    }
    .story-visual{
      border-radius:30px;
      border:1px solid var(--line);
      overflow:hidden;
      min-height:420px;
      position:relative;
      box-shadow:var(--shadow);
      background:
        linear-gradient(180deg, rgba(15,15,17,.08), rgba(15,15,17,.9)),
        url('https://images.unsplash.com/photo-1549294413-26f195200c16?auto=format&fit=crop&w=1300&q=80') center 58%/cover no-repeat;
      display:flex;
      align-items:flex-end;
      padding:26px;
    }
    .story-caption{
      max-width:420px;
      padding:18px 20px;
      border-radius:18px;
      background:rgba(15,15,17,.74);
      border:1px solid rgba(255,255,255,.14);
      backdrop-filter:blur(6px);
    }
    .story-caption span{
      display:block;
      margin-bottom:8px;
      color:var(--gold-2);
      letter-spacing:.14em;
      text-transform:uppercase;
      font-size:.72rem;
      font-weight:700;
    }
    .story-caption p{
      margin:0;
      color:#ece6dd;
      font-size:.98rem;
      line-height:1.5;
    }

    /* About */
    .about-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:28px;
      align-items:center;
    }
    .image-stack{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:16px;
    }
    .image-stack img{
      border-radius:24px;
      aspect-ratio:4/5;
      object-fit:cover;
      box-shadow:var(--shadow);
    }
    .panel{
      background:var(--bg-soft);
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:28px;
    }

    /* Rooms */
    .section-head{
      display:flex;
      justify-content:space-between;
      gap:20px;
      align-items:end;
      margin-bottom:28px;
    }
    .rooms-grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:20px;
    }
    .room-card{
      display:block;
      background:var(--bg-soft);
      border:1px solid var(--line);
      border-radius:26px;
      overflow:hidden;
      position:relative;
      transition:.35s cubic-bezier(.2,.8,.2,1);
      cursor:pointer;
      color:inherit;
      isolation:isolate;
      z-index:0;
    }
    .room-card::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(130deg, rgba(255,255,255,0), rgba(255,255,255,.12), rgba(255,255,255,0));
      opacity:0;
      transform:translateX(-55%);
      transition:opacity .4s ease, transform .4s ease;
      z-index:-1;
    }
    .room-card:hover{
      transform:translateY(-6px);
      box-shadow:var(--shadow);
    }
    .room-card:hover::after{
      opacity:1;
      transform:translateX(55%);
    }
    .room-card:focus-visible{
      outline:3px solid rgba(229,198,141,.55);
      outline-offset:3px;
    }
    .room-card img{
      width:100%;
      aspect-ratio:4/3;
      object-fit:cover;
      object-position:center 58%;
    }
    .room-body{padding:20px}
    .room-meta{
      display:flex;
      justify-content:space-between;
      gap:10px;
      font-size:.92rem;
      color:#d3cabf;
      margin-bottom:10px;
    }
    .price{
      color:var(--gold-2);
      font-weight:800;
    }
    .room-card-note{
      margin-top:14px;
      font-size:.82rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--gold-2);
      font-weight:700;
    }
    .room-features{
      margin-top:14px;
      padding-top:12px;
      border-top:1px solid rgba(255,255,255,.08);
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }
    .room-feature{
      display:inline-flex;
      align-items:center;
      gap:6px;
      min-height:30px;
      padding:0 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.1);
      background:rgba(255,255,255,.02);
      color:#d5ccbe;
      font-size:.76rem;
      line-height:1;
      white-space:nowrap;
    }
    .room-feature svg{
      width:13px;
      height:13px;
      color:#d8c39a;
      flex:0 0 auto;
    }

    /* Room Modal */
    body.modal-open{overflow:hidden}
    .room-modal{
      position:fixed;
      inset:0;
      z-index:80;
      display:grid;
      place-items:center;
      padding:24px;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .28s ease, visibility .28s ease;
    }
    .room-modal.is-open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    .room-modal-backdrop{
      position:absolute;
      inset:0;
      background:rgba(8,8,10,.72);
      backdrop-filter:blur(9px);
    }
    .room-modal-dialog{
      position:relative;
      z-index:1;
      width:min(980px, 100%);
      max-height:calc(100vh - 48px);
      overflow:auto;
      border-radius:28px;
      border:1px solid rgba(255,255,255,.12);
      background:linear-gradient(145deg, rgba(23,23,27,.98), rgba(15,15,17,.98));
      box-shadow:0 24px 70px rgba(0,0,0,.5);
      transform:translateY(20px) scale(.985);
      transition:transform .3s ease;
    }
    .room-modal.is-open .room-modal-dialog{
      transform:translateY(0) scale(1);
    }
    .room-modal-close{
      position:absolute;
      top:16px;
      right:16px;
      width:40px;
      height:40px;
      border-radius:50%;
      border:1px solid rgba(255,255,255,.18);
      background:rgba(10,10,12,.6);
      color:#f4f1ea;
      display:grid;
      place-items:center;
      cursor:pointer;
      font-size:1.25rem;
      line-height:1;
    }
    .room-modal-close:focus-visible{
      outline:3px solid rgba(229,198,141,.55);
      outline-offset:2px;
    }
    .room-modal-hero{
      position:relative;
      min-height:300px;
    }
    .room-modal-hero img{
      width:100%;
      height:100%;
      max-height:420px;
      object-fit:cover;
      filter:saturate(1.04);
    }
    .room-modal-hero::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(15,15,17,.2), rgba(15,15,17,.78));
      pointer-events:none;
    }
    .room-modal-hero-copy{
      position:absolute;
      left:24px;
      right:24px;
      bottom:20px;
      z-index:1;
      max-width:60ch;
    }
    .room-modal-hero-copy p{
      margin:8px 0 0;
      color:#e8e1d6;
    }
    .room-modal-content{
      padding:28px;
      display:grid;
      gap:24px;
    }
    .room-modal-specs{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:14px;
    }
    .room-spec{
      border:1px solid var(--line);
      border-radius:18px;
      background:rgba(255,255,255,.02);
      padding:16px;
    }
    .room-spec span{
      display:block;
      text-transform:uppercase;
      letter-spacing:.1em;
      font-size:.72rem;
      color:var(--gold-2);
      margin-bottom:5px;
      font-weight:700;
    }
    .room-spec strong{
      color:#f5f0e7;
      font-size:1rem;
    }
    .room-modal-amenities{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:10px 14px;
    }
    .room-modal-amenity{
      border:1px solid rgba(255,255,255,.1);
      border-radius:14px;
      background:rgba(255,255,255,.02);
      padding:11px 13px;
      color:#ddd4c8;
      font-size:.92rem;
    }
    .room-modal-gallery{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:12px;
    }
    .room-modal-gallery img{
      width:100%;
      aspect-ratio:4/3;
      object-fit:cover;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
    }
    .room-modal-actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    /* Gallery */
    .gallery-system{
      display:grid;
      grid-template-columns:repeat(12, minmax(0,1fr));
      gap:16px;
    }
.gallery-card{
  grid-column:span 4;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow);
  position:relative;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease;
  cursor:pointer;
  isolation:isolate;
}
.gallery-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(8,10,14,0) 45%, rgba(8,10,14,.55) 100%);
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}
.gallery-card img{
  transition:transform .6s cubic-bezier(.2,.8,.2,1), filter .4s ease;
}
    .gallery-card.featured{grid-column:span 6}
.gallery-card:hover{
  transform:translateY(-6px);
  border-color:rgba(239,194,122,.44);
  box-shadow:var(--shadow);
}
.gallery-card:hover::after{
  opacity:1;
}
.gallery-card:hover img{
  transform:scale(1.08);
  filter:brightness(1.05);
}
    .gallery-card img{
      width:100%;
      aspect-ratio:4/3;
      object-fit:cover;
    }
    .gallery-copy{
      padding:16px 18px 18px;
    }
    .gallery-copy h3{
      margin:0 0 6px;
      font-size:1.08rem;
      font-family:Inter,sans-serif;
      color:#f2ede4;
    }
    .gallery-copy p{
      margin:0;
      font-size:.93rem;
      color:#c6beaf;
    }
    .gallery-lightbox{
      position:fixed;
      inset:0;
      z-index:90;
      display:grid;
      place-items:center;
      padding:24px;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .38s cubic-bezier(.2,.7,.2,1), visibility .38s ease;
      background:rgba(8,10,14,.86);
      backdrop-filter:blur(7px);
    }
    .gallery-lightbox.is-open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    .lightbox-open{
      overflow:hidden;
    }
    .gallery-lightbox-backdrop{
      position:absolute;
      inset:0;
      background:transparent;
    }
    .gallery-lightbox-frame{
      position:relative;
      z-index:1;
      width:min(1040px,100%);
      margin:0;
      padding:0;
      max-height:calc(100vh - 140px);
      transform:scale(.97);
      transition:transform .38s cubic-bezier(.2,.7,.2,1), opacity .38s ease;
      opacity:0;
    }
    .gallery-lightbox.is-open .gallery-lightbox-frame{
      transform:scale(1);
      opacity:1;
    }
    .gallery-lightbox-frame img{
      width:100%;
      height:auto;
      max-height:calc(100vh - 220px);
      object-fit:contain;
      border-radius:22px;
      border:1px solid rgba(255,255,255,.16);
      box-shadow:var(--shadow);
      background:rgba(255,255,255,.02);
      display:block;
      transition:opacity .45s ease, transform .45s ease;
    }
    .gallery-lightbox-frame img.is-swapping{
      opacity:.2;
      transform:scale(.985);
    }
    .gallery-lightbox-close{
      position:fixed;
      top:18px;
      right:18px;
      z-index:2;
      width:42px;
      height:42px;
      border-radius:50%;
      border:1px solid rgba(255,255,255,.22);
      color:var(--text);
      background:rgba(20,24,32,.85);
      display:grid;
      place-items:center;
      font-size:1.5rem;
      line-height:1;
      cursor:pointer;
    }
    .gallery-lightbox-control{
      position:fixed;
      top:50%;
      transform:translateY(-50%);
      z-index:2;
      width:46px;
      height:46px;
      border:1px solid rgba(255,255,255,.2);
      border-radius:50%;
      display:grid;
      place-items:center;
      font-size:1.45rem;
      line-height:1;
      cursor:pointer;
      background:rgba(16,22,30,.85);
      color:var(--text);
    }
    .gallery-lightbox-control.prev{left:22px}
    .gallery-lightbox-control.next{right:22px}
    .gallery-lightbox-frame figcaption{
      margin:12px 6px 0;
      color:var(--muted);
      text-align:center;
      min-height:18px;
      font-size:.92rem;
    }
    .gallery-lightbox-counter{
      position:fixed;
      bottom:18px;
      z-index:2;
      left:50%;
      transform:translateX(-50%);
      border:1px solid rgba(255,255,255,.24);
      color:var(--text);
      border-radius:999px;
      padding:8px 14px;
      background:rgba(15,20,28,.72);
      font-size:.82rem;
      letter-spacing:.06em;
      text-transform:uppercase;
    }

    /* Offers */
    .offers-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:18px;
    }
    .offer-card{
      background:var(--bg-soft);
      border:1px solid var(--line);
      border-radius:24px;
      padding:28px;
      display:grid;
      gap:12px;
      min-height:100%;
      position:relative;
      transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
    }
    .offer-card:hover{
      transform:translateY(-7px);
      border-color:rgba(239,194,122,.42);
      box-shadow:0 22px 44px rgba(2,8,18,.44);
    }
    .offer-badge{
      display:inline-flex;
      width:max-content;
      padding:6px 12px;
      border-radius:999px;
      font-size:.74rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      border:1px solid rgba(239,194,122,.42);
      color:var(--gold-2);
      font-weight:700;
    }
    .offer-card h3{
      margin:0;
      font-size:1.45rem;
      font-family:"Fraunces",serif;
      color:#f6efe4;
      line-height:1.2;
    }
    .offer-card p{
      margin:0;
      color:#d0c5b7;
      line-height:1.55;
    }
    .offer-highlight{
      margin-top:4px;
      color:var(--gold-2);
      font-size:.93rem;
      font-weight:600;
      letter-spacing:.01em;
    }
    .offer-card .btn{
      width:max-content;
      margin-top:2px;
    }

    .media-lobby{object-position:center 52%}
    .media-room-detail{object-position:center 64%}
    .media-bedding{object-position:center 68%}
    .media-corridor{object-position:center 56%}
    .media-facade{object-position:center 45%}
    .media-breakfast{object-position:center 62%}
    .media-neighborhood{object-position:center 48%}
    .media-about-a{object-position:center 60%}
    .media-about-b{object-position:center 54%}
    .media-room-exclusive{object-position:center 58%}
    .media-room-deluxe{object-position:center 61%}
    .media-room-standard{object-position:center 55%}
    .media-room-economy{object-position:center 57%}
    .media-mini-a{object-position:center 58%}
    .media-mini-b{object-position:center 52%}
    .media-mini-c{object-position:center 62%}
    .media-mini-d{object-position:center 56%}
    .media-mini-e{object-position:center 50%}
    .media-mini-f{object-position:center 63%}
    .media-mini-g{object-position:center 48%}
    .media-mini-h{object-position:center 59%}
    .media-mini-i{object-position:center 55%}
    .media-mini-j{object-position:center 60%}
    .media-mini-k{object-position:center 51%}
    .media-mini-l{object-position:center 57%}

    /* Amenities */
    .amenities{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:18px;
    }
    .amenity{
      background:var(--bg-soft);
      border:1px solid var(--line);
      border-radius:24px;
      padding:24px;
    }
    .amenity h3{
      font-size:1.08rem;
      margin-bottom:8px;
      font-family:Inter,sans-serif;
    }

    /* CTA */
    .cta{
      background:
        linear-gradient(135deg, rgba(201,169,106,.12), rgba(255,255,255,.03)),
        var(--bg-soft);
      border:1px solid var(--line);
      border-radius:30px;
      padding:36px;
      display:grid;
      grid-template-columns:1.15fr .85fr;
      gap:24px;
      align-items:center;
    }

    /* Instagram Moments */
    .instagram-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:16px;
      align-items:stretch;
    }
    .instagram-card{
      position:relative;
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      overflow:hidden;
      min-height:220px;
      display:block;
      background:var(--bg-soft);
      text-decoration:none;
      transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
      box-shadow:var(--shadow);
    }
    .instagram-card img{
      width:100%;
      height:100%;
      object-fit:cover;
      aspect-ratio:1/1;
      transition:transform .45s ease;
    }
    .instagram-card::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(to top, rgba(9,14,21,.75), rgba(9,14,21,0));
      opacity:0.9;
      transition:opacity .28s ease;
    }
    .instagram-card-caption{
      position:absolute;
      left:16px;
      right:16px;
      bottom:14px;
      z-index:2;
      color:#f3eee3;
      pointer-events:none;
    }
    .instagram-card-caption span{
      display:block;
      margin-bottom:4px;
      font-family:"Fraunces",serif;
      font-size:1.06rem;
      letter-spacing:.01em;
      color:var(--text);
    }
    .instagram-card-caption small{
      display:block;
      margin:0;
      font-size:.84rem;
      color:#f0e2cf;
      line-height:1.35;
    }
    .instagram-card:hover{
      transform:translateY(-6px);
      border-color:rgba(239,194,106,.46);
      box-shadow:0 22px 44px rgba(2,8,18,.45);
    }
    .instagram-card:hover img{
      transform:scale(1.05);
    }
    .instagram-card:hover::after{
      opacity:.68;
    }

        /* Contact */
    .contact-grid{
      display:grid;
      grid-template-columns:1.1fr 1fr;
      gap:24px;
      align-items:start;
    }
    .contact-panel{
      display:grid;
      gap:16px;
    }
    .contact-method-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:14px;
      margin-top:2px;
    }
    .contact-side{
      display:grid;
      gap:18px;
    }
    .contact-card{
      padding:14px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
      display:grid;
      gap:8px;
      min-height:140px;
    }
    .contact-card-tag{
      display:inline-flex;
      align-self:flex-start;
      padding:5px 10px;
      border-radius:999px;
      border:1px solid rgba(239,194,122,.4);
      color:var(--gold-2);
      letter-spacing:.06em;
      text-transform:uppercase;
      font-size:.72rem;
      font-weight:700;
    }
    .contact-card h3{
      margin:0;
      font-size:1.03rem;
      color:var(--text);
      font-family:"Fraunces",serif;
    }
    .contact-card p{
      margin:0;
      color:var(--muted);
      font-size:.9rem;
      line-height:1.45;
    }
    .contact-inline-link{
      font-weight:700;
      margin-top:2px;
      display:inline-flex;
      align-items:center;
      width:max-content;
      color:var(--gold-2);
      text-underline-offset:3px;
      transition:transform .2s ease, color .2s ease;
    }
    .contact-inline-link:hover{transform:translateX(2px)}
    .contact-whatsapp{
      margin-top:8px;
      align-self:flex-start;
      width:max-content;
      min-width:210px;
    }

    .contact-form-panel h3,
    .contact-map h3{
      margin-bottom:2px;
      font-size:1.08rem;
    }
    .contact-form-panel .form-grid{
      display:grid;
      gap:14px;
    }
    .contact-form-panel .field,
    .field-message{
      gap:8px;
      min-width:0;
    }
    .contact-form-panel .field input,
    .contact-form-panel textarea{
      width:100%;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.09);
      background:rgba(255,255,255,.04);
      color:var(--text);
      padding:0 14px;
      outline:none;
      font-family:inherit;
    }
    .contact-form-panel textarea{
      min-height:150px;
      padding:14px;
      resize:vertical;
    }
    .field-error{
      margin:0;
      min-height:18px;
      font-size:.82rem;
      color:#ffb1ad;
      display:none;
      letter-spacing:.01em;
    }
    .field.is-invalid input,
    .field.is-invalid textarea{
      border-color:rgba(255,120,120,.65);
      box-shadow:0 0 0 3px rgba(255,120,120,.12);
      background:rgba(255,70,70,.05);
    }
    .field-error.visible{display:block}

    .contact-status{
      margin:2px 0 0;
      min-height:22px;
      font-size:.94rem;
      font-weight:700;
      color:var(--muted);
    }
    .contact-status.success{
      color:#7fd6c9;
    }
    .contact-status.error{
      color:#ffb1ad;
    }

    .contact-map{
      display:grid;
      gap:14px;
      padding:24px;
    }
    .contact-map-frame{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.12);
      overflow:hidden;
      box-shadow:var(--shadow);
      background:#0c0f14;
    }
    .contact-map-frame iframe{
      width:100%;
      min-height:250px;
      border:0;
      display:block;
    }

    /* Footer */
    .footer{
      padding:28px 0 44px;
      border-top:1px solid rgba(255,255,255,.06);
      color:#a89f93;
    }
    .footer-wrap{
      display:flex;
      justify-content:space-between;
      gap:20px;
      flex-wrap:wrap;
      align-items:center;
    }
    .footer-links{
      color:#bcb3a5;
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      align-items:center;
    }
    .floating-whatsapp{
      position:fixed;
      right:22px;
      bottom:92px;
      z-index:59;
      width:max-content;
      height:54px;
      padding:0 16px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.2);
      background:linear-gradient(135deg, #25D366, #1FAF56);
      color:#fff;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      font-size:.82rem;
      letter-spacing:.02em;
      font-weight:700;
      box-shadow:0 14px 32px rgba(0,0,0,.28);
      transition:transform .3s cubic-bezier(.2,.8,.2,1), filter .3s ease;
      text-decoration:none;
    }
    .floating-whatsapp:hover{
      transform:translateY(-2px);
      filter:brightness(1.04);
    }
    .floating-whatsapp svg{
      width:18px;
      height:18px;
      display:block;
    }
    .mobile-sticky-cta{display:none}
    .mobile-action-bar{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:10px;
      padding:10px;
      border:1px solid rgba(255,255,255,.12);
      border-radius:22px;
      background:rgba(20,20,24,.72);
      backdrop-filter:blur(18px);
      -webkit-backdrop-filter:blur(18px);
      box-shadow:0 14px 34px rgba(0,0,0,.34);
    }
    .mobile-action-btn{
      min-height:52px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      color:#f0ebe2;
      font-size:.78rem;
      font-weight:700;
      letter-spacing:.02em;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:4px;
      transition:transform .2s ease, border-color .2s ease, background .2s ease;
    }
    .mobile-action-btn svg{
      width:17px;
      height:17px;
      color:#d8c39a;
    }
    .mobile-action-btn:hover{
      transform:translateY(-1px);
      border-color:rgba(201,169,106,.42);
      background:rgba(255,255,255,.07);
    }
    .mobile-action-btn:active{
      transform:translateY(0);
      background:rgba(255,255,255,.09);
    }
    .mobile-action-btn:focus-visible{
      outline:3px solid rgba(229,198,141,.5);
      outline-offset:2px;
    }
    .mobile-action-btn.mobile-reserve{
      background:linear-gradient(135deg, rgba(201,169,106,.94), rgba(229,198,141,.92));
      color:#171717;
      border-color:rgba(0,0,0,.18);
    }
    .mobile-action-btn.mobile-reserve svg{color:#1e1e1e}
    .reveal-init{
      opacity:0;
      transform:translateY(20px);
      transition:opacity .6s ease, transform .6s ease;
      will-change:opacity, transform;
    }
    .reveal-in{
      opacity:1;
      transform:translateY(0);
    }

    /* Modernization overrides */
    .header{
      background:rgba(8,14,22,.72);
      border-bottom:1px solid rgba(180,208,241,.2);
      box-shadow:0 10px 30px rgba(2,8,18,.32);
    }
    .hero::before{
      background:
        radial-gradient(circle at 14% 16%, rgba(127,214,201,.2), transparent 30%),
        radial-gradient(circle at 84% 26%, rgba(239,194,122,.24), transparent 24%);
      animation:heroFloat 12s ease-in-out infinite alternate;
    }
    .hero-card,
    .story-copy,
    .panel,
    .stat,
    .room-card,
    .gallery-card,
    .amenity,
    .cta,
    .room-modal-dialog{
      background:linear-gradient(165deg, rgba(18,26,36,.88), rgba(11,18,27,.92));
      border:1px solid rgba(180,208,241,.18);
      backdrop-filter:blur(10px);
    }
    .room-card,
    .gallery-card,
    .amenity,
    .story-point,
    .instagram-card,
    .offer-card,
    .contact-item{
      transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
    }
    .room-card:hover,
    .gallery-card:hover,
    .amenity:hover,
      .story-point:hover,
      .offer-card:hover,
      .instagram-card:hover,
      .contact-item:hover{
        transform:translateY(-7px);
        border-color:rgba(239,194,122,.44);
        box-shadow:0 22px 44px rgba(2,8,18,.44);
      }
    .btn-primary,
    .btn-reserve,
    .mobile-action-btn.mobile-reserve{
      background:linear-gradient(135deg, var(--gold), var(--gold-2));
      color:#10141b;
    }
    .btn-secondary{
      border-color:rgba(180,208,241,.28);
      background:rgba(127,214,201,.08);
      color:#e5f1ff;
    }
    .menu a::after{background:var(--mint)}
    .price,
    .eyebrow,
    .room-card-note,
    .story-point strong,
    .contact-item span{color:var(--gold-2)}
    .mobile-action-bar{
      border-color:rgba(180,208,241,.24);
      background:rgba(10,18,28,.76);
    }
    .footer{
      border-top:1px solid rgba(180,208,241,.2);
      color:#99abc2;
    }
    @keyframes heroFloat{
      from{transform:translateY(-6px) scale(1)}
      to{transform:translateY(6px) scale(1.03)}
    }

    @media (max-width: 1100px){
      .hero-grid,
      .story-grid,
      .about-grid,
      .cta,
      .contact-grid{
        grid-template-columns:1fr;
      }
      .contact-method-grid{
        grid-template-columns:1fr;
      }
      .story-points{grid-template-columns:repeat(3,1fr)}
      .rooms-grid{grid-template-columns:repeat(2,1fr)}
      .room-modal-gallery{grid-template-columns:repeat(2,1fr)}
      .gallery-card,
      .gallery-card.featured{grid-column:span 6}
      .stats-grid{grid-template-columns:repeat(2,1fr)}
      .offers-grid{grid-template-columns:repeat(2,1fr)}
      .instagram-grid{grid-template-columns:repeat(2,1fr)}
      .amenities{grid-template-columns:repeat(2,1fr)}
    }

    @media (max-width: 760px){
      .menu{display:none}
      .nav-actions{display:none}
      .menu-toggle{display:flex}
      .section{padding:72px 0}
      .rooms-grid,
      .amenities,
      .stats-grid,
      .form-row{grid-template-columns:1fr}
      .gallery-system{grid-template-columns:1fr}
      .gallery-card,
      .gallery-card.featured{grid-column:auto}
      .hero-card{padding:22px}
      .hero::after{transform:translateY(0) scale(1.02);}
      .cta{padding:28px}
      .image-stack{grid-template-columns:1fr}
      .story-copy{padding:26px}
      .story-points{grid-template-columns:1fr}
      .story-visual{min-height:320px}
      .offers-grid{grid-template-columns:1fr}
      .instagram-grid{grid-template-columns:1fr}
      .room-modal{padding:14px}
      .room-modal-dialog{max-height:calc(100vh - 24px)}
      .room-modal-hero{min-height:220px}
      .room-modal-hero img{max-height:260px}
      .room-modal-content{padding:20px}
      .room-modal-specs,
      .room-modal-amenities,
      .room-modal-gallery{grid-template-columns:1fr}
      .room-modal-actions .btn{width:100%}
      .nav .btn-reserve{display:none}
      body{padding-bottom:116px}
      .mobile-sticky-cta{
        display:block;
        position:fixed;
        left:14px;
        right:14px;
        bottom:0;
        z-index:60;
        padding:10px 0 calc(10px + env(safe-area-inset-bottom));
      }
      .floating-whatsapp{
        right:16px;
        bottom:94px;
        width:54px;
        height:54px;
        padding:0;
      }
      .gallery-lightbox-control{
        width:40px;
        height:40px;
      }
      .gallery-lightbox-frame{
        max-height:calc(100vh - 170px);
      }
      .gallery-lightbox-frame img{
        max-height:calc(100vh - 250px);
      }
      .gallery-lightbox-close{
        top:12px;
        right:12px;
        width:40px;
        height:40px;
      }
      .gallery-lightbox-counter{
        bottom:14px;
        font-size:.76rem;
      }
      .floating-whatsapp span{
        display:none;
      }
    }
    :root[data-theme="light"] body{
      background:
        radial-gradient(circle at 18% 12%, rgba(47,143,129,.14), transparent 38%),
        radial-gradient(circle at 84% 8%, rgba(215,154,67,.2), transparent 32%),
        linear-gradient(160deg, #eff4fa 0%, #f7faff 52%, #eef3f9 100%);
    }
    :root[data-theme="light"] body::after{
      background-image:linear-gradient(rgba(21,40,64,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(21,40,64,.05) 1px, transparent 1px);
    }
    :root[data-theme="light"] .header{
      background:rgba(241,247,255,.8);
      border-bottom:1px solid rgba(26,47,74,.14);
      box-shadow:0 10px 24px rgba(26,47,74,.08);
    }
    :root[data-theme="light"] .brand-text{
      color:#1d2b3d;
    }
    :root[data-theme="light"] .brand-tagline{
      color:#3f556f;
    }
    :root[data-theme="light"] .menu,
    :root[data-theme="light"] .menu a{
      color:#1e2f45;
    }
    :root[data-theme="light"] .menu a::after{
      background:#c58b37;
    }
    :root[data-theme="light"] .hero-card,
    :root[data-theme="light"] .story-copy,
    :root[data-theme="light"] .panel,
    :root[data-theme="light"] .stat,
    :root[data-theme="light"] .room-card,
    :root[data-theme="light"] .gallery-card,
    :root[data-theme="light"] .amenity,
    :root[data-theme="light"] .cta,
    :root[data-theme="light"] .room-modal-dialog{
      background:linear-gradient(165deg, rgba(255,255,255,.9), rgba(242,248,255,.92));
      border:1px solid rgba(26,47,74,.14);
      box-shadow:0 18px 44px rgba(22,43,73,.12);
    }
    :root[data-theme="light"] .story-manifesto{
      color:#24364b;
    }
    :root[data-theme="light"] .story-point{
      background:rgba(255,255,255,.7);
      border:1px solid rgba(26,47,74,.12);
    }
    :root[data-theme="light"] .story-point strong{
      color:#2b4a63;
    }
    :root[data-theme="light"] .story-point p{
      color:#3a4c61;
    }
    :root[data-theme="light"] .room-card{
      color:#1c2a3d;
    }
    :root[data-theme="light"] .room-meta{
      color:#2b3f56;
    }
    :root[data-theme="light"] .room-card h3{
      color:#1f2f45;
    }
    :root[data-theme="light"] .room-card p{
      color:#3a4c61;
    }
    :root[data-theme="light"] .room-feature{
      color:#2d3f54;
      border-color:rgba(26,47,74,.16);
      background:rgba(255,255,255,.7);
    }
    :root[data-theme="light"] .room-card-note,
    :root[data-theme="light"] .price{
      color:#b26b16;
    }
    :root[data-theme="light"] .room-card:hover .room-meta span:first-child,
    :root[data-theme="light"] .room-card:focus-visible .room-meta span:first-child,
    :root[data-theme="light"] .room-card:hover h3,
    :root[data-theme="light"] .room-card:focus-visible h3{
      color:var(--gold);
    }
    :root[data-theme="light"] .room-modal-hero-copy p{
      color:#f7f2e8;
    }
    :root[data-theme="light"] .room-modal-hero-copy h2{
      color:#ffffff;
    }
    :root[data-theme="light"] .room-modal-content{
      color:#1e2f45;
    }
    :root[data-theme="light"] .room-spec{
      background:rgba(255,255,255,.75);
      border:1px solid rgba(26,47,74,.14);
    }
    :root[data-theme="light"] .room-spec span{
      color:#35506a;
    }
    :root[data-theme="light"] .room-spec strong{
      color:#1c2a3d;
    }
    :root[data-theme="light"] .room-modal-amenity{
      color:#2d3f54;
      background:rgba(255,255,255,.8);
      border:1px solid rgba(26,47,74,.16);
      box-shadow:0 10px 20px rgba(26,47,74,.12);
    }
    :root[data-theme="light"] .room-modal-cta{
      background:rgba(255,255,255,.85);
      border:1px solid rgba(26,47,74,.16);
      box-shadow:0 12px 26px rgba(26,47,74,.12);
    }
    :root[data-theme="light"] .room-modal-cta .cta-copy h4{
      color:#1f2f45;
    }
    :root[data-theme="light"] .room-modal-cta .cta-copy p{
      color:#3a4c61;
    }
    :root[data-theme="light"] .eyebrow{
      color:#2b4a63;
    }
    :root[data-theme="light"] .hero-copy .eyebrow{
      color:#ffffff;
    }
    :root[data-theme="light"] .gallery-copy h3{
      color:#b26b16;
    }
    :root[data-theme="light"] .gallery-copy p{
      color:#d9a44a;
    }
    :root[data-theme="light"] .offer-card h3{
      color:#1f2f45;
    }
    :root[data-theme="light"] .offer-card p{
      color:#3a4c61;
    }
    :root[data-theme="light"] .offer-badge{
      color:#2b4a63;
      border-color:rgba(26,47,74,.22);
      background:rgba(26,47,74,.08);
    }
    :root[data-theme="light"] .offer-highlight{
      color:#1f4b7a;
    }
    :root[data-theme="light"] .instagram-card-caption{
      color:#ffffff;
    }
    :root[data-theme="light"] .instagram-card-caption span{
      color:#ffffff;
    }
    :root[data-theme="light"] .instagram-card-caption small{
      color:#ffffff;
    }
    :root[data-theme="light"] .contact-card{
      background:rgba(255,255,255,.82);
      border:1px solid rgba(26,47,74,.14);
    }
    :root[data-theme="light"] .contact-card-tag{
      color:#2b4a63;
      border-color:rgba(26,47,74,.22);
    }
    :root[data-theme="light"] .contact-inline-link{
      color:#1f4b7a;
    }
    :root[data-theme="light"] .footer{
      color:#1b2b3f;
    }
    :root[data-theme="light"] .footer-brand-name{
      color:#18283c;
    }
    :root[data-theme="light"] .footer-brand-tagline{
      color:#2a3c52;
    }
    :root[data-theme="light"] .footer-brand-copy{
      color:#2a3c52;
    }
    :root[data-theme="light"] .footer-col h4{
      color:#18283c;
    }
    :root[data-theme="light"] .footer-col a,
    :root[data-theme="light"] .footer-col span{
      color:#2a3c52;
    }
    :root[data-theme="light"] .footer-bottom{
      color:#41566f;
    }
    :root[data-theme="light"] .map-section .map-header h2{
      color:#1a2a3e;
    }
    :root[data-theme="light"] .map-section .map-header p{
      color:#2a3c52;
    }
    :root[data-theme="light"] .btn-secondary{
      color:#1f2f45;
      border-color:rgba(26,47,74,.2);
      background:rgba(26,47,74,.06);
    }
    :root[data-theme="light"] .btn-secondary:hover{
      background:rgba(26,47,74,.12);
    }
    :root[data-theme="light"] .lang-btn{color:#294461}
    :root[data-theme="light"] .theme-toggle{
      color:#1e3552;
      background:rgba(39,88,143,.05);
      border-color:rgba(39,88,143,.2);
    }
    @media (prefers-reduced-motion: reduce){
      .page-loader{
        transition:none;
      }
      .page-loader-track span{
        animation:none;
        opacity:.8;
        transform:none;
      }
      .hero::after{
        transform:translateY(0) scale(1);
      }
      .reveal-init{
        opacity:1;
        transform:none;
        transition:none;
      }
    }
/* Premium transitions and reveals */
body,
.panel,
.room-card,
.gallery-card,
.hero-card,
.story-copy,
.stat,
.amenity,
.offer-card,
.btn,
.mobile-menu-panel,
.contact-card,
.floating-whatsapp,
.room-modal-dialog {
  transition: background-color .4s ease, color .4s ease, border-color .4s ease, box-shadow .4s ease, transform .35s ease, opacity .35s ease;
}

.room-card:hover,
.gallery-card:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 26px 52px rgba(2,8,18,.48);
}

.btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 14px 30px rgba(2,8,18,.36);
}

.floating-whatsapp {
  transition: transform .3s cubic-bezier(.2,.8,.2,1), filter .3s ease, box-shadow .35s ease;
}

.floating-whatsapp:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(0,0,0,.32);
}

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .6s ease, transform .6s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-up { transform: translateY(24px); }
.fade-in { transform: none; }

.hero [data-hero-stagger] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
  transition-delay: var(--hero-delay, 0s);
}

.hero [data-hero-stagger].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.room-card {
  position: relative;
  overflow: hidden;
}

.room-card img {
  transition: transform .45s ease;
}

.room-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.25) 100%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}

.room-card:hover img { transform: scale(1.08); }
.room-card:hover::after { opacity: 1; }
.room-card .room-body { transition: transform .35s ease; }
.room-card:hover .room-body { transform: translateY(-6px); }

.booking-note {
  margin: 4px 0 0;
  font-size: .86rem;
  color: var(--muted);
  opacity: .88;
}

/* Modal polish */
.room-modal{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease, visibility .32s ease;}
.room-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;}
.room-modal-backdrop{background:rgba(8,8,10,.78);backdrop-filter:blur(12px);} 
.room-modal-dialog{opacity:0;transform:translateY(26px) scale(.98);} 
.room-modal.is-open .room-modal-dialog{opacity:1;transform:translateY(0) scale(1);} 
.room-modal-hero{min-height:360px;border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden;}
.room-modal-hero img{max-height:520px;transition:transform .6s ease;}
.room-modal-hero:hover img{transform:scale(1.04);} 
.room-modal-hero::after{background:linear-gradient(180deg, rgba(10,10,12,.06), rgba(10,10,12,.78));}
.room-modal-hero-copy{backdrop-filter:blur(6px);padding:18px 18px 16px;border-radius:16px;background:rgba(12,12,14,.48);}
.room-modal-content{gap:26px;padding:30px;} 
.room-modal-specs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;} 
.room-spec{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 26px rgba(0,0,0,.28);} 
.room-modal-amenities{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;} 
.room-modal-amenity{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px 14px;box-shadow:0 8px 18px rgba(0,0,0,.18);} 
.room-modal-gallery{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;} 
.room-modal-gallery img{border-radius:16px;transition:transform .4s ease, box-shadow .4s ease;} 
.room-modal-gallery img:hover{transform:scale(1.03);box-shadow:0 14px 28px rgba(0,0,0,.28);} 
.room-modal-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;} 
.room-modal-actions .btn{min-width:160px;} 

.room-modal-close{background:rgba(12,12,14,.7);backdrop-filter:blur(6px);} 
.room-modal-close:hover{transform:scale(1.05);} 

@media (prefers-reduced-motion: reduce) {
  body,
  .panel,
  .room-card,
  .gallery-card,
  .hero-card,
  .story-copy,
  .stat,
  .amenity,
  .offer-card,
  .btn,
  .mobile-menu-panel,
  .contact-card,
  .floating-whatsapp,
  .reveal,
  .hero [data-hero-stagger],
  .room-card img,
  .room-card::after,
  .room-card .room-body,
  .room-modal,
  .room-modal-dialog,
  .room-modal-hero img,
  .room-modal-gallery img,
  .room-modal-close {
    transition: none !important;
    transform: none !important;
  }
}
/* Booking modal */
.booking-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease, visibility .32s ease;}
.booking-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;}
.booking-modal-backdrop{position:absolute;inset:0;background:rgba(6,8,12,.78);backdrop-filter:blur(12px);}
.booking-modal-dialog{position:relative;z-index:1;width:min(720px, 100%);border-radius:26px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(150deg, rgba(18,20,26,.95), rgba(12,14,18,.95));box-shadow:0 26px 72px rgba(0,0,0,.55);padding:26px 26px 22px;opacity:0;transform:translateY(24px) scale(.98);transition:opacity .32s ease, transform .32s ease;}
.booking-modal.is-open .booking-modal-dialog{opacity:1;transform:translateY(0) scale(1);}
.booking-modal-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(12,12,14,.7);color:#f4f1ea;display:grid;place-items:center;cursor:pointer;font-size:1.2rem;}
.booking-modal-close:hover{transform:scale(1.05);} 
.booking-modal-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px;}
.booking-modal-subtitle{margin:6px 0 0;color:#d7cfbf;}
.booking-modal-badge{padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);font-size:.85rem;color:#e8e1d5;letter-spacing:.02em;}
.booking-summary{display:grid;gap:10px;margin:12px 0 18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:14px 16px;background:rgba(255,255,255,.03);} 
.summary-row{display:flex;justify-content:space-between;gap:12px;color:#d6cec0;font-size:.95rem;}
.summary-row strong{color:#f5f0e7;}
.summary-row.total strong{color:var(--gold-2);font-size:1.05rem;}
.booking-modal-actions{display:flex;flex-wrap:wrap;gap:10px;}
#booking-status{margin:6px 0 0;color:#ffb1ad;font-weight:700;font-size:.9rem;min-height:18px;}

@media (max-width: 760px){
  .booking-modal-dialog{padding:20px 18px;}
  .booking-modal-header{flex-direction:column;align-items:flex-start;}
  .booking-modal-actions .btn{width:100%;}
}
/* Gallery enhanced */
.gallery-card{overflow:hidden;}
.gallery-card::after{background:linear-gradient(180deg, rgba(8,10,14,0) 45%, rgba(8,10,14,.55) 100%);}
.gallery-card img{transition:transform .6s ease, filter .4s ease;}
.gallery-card:hover img{transform:scale(1.08);filter:brightness(1.05);}

/* Map */
.map-embed{border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:var(--bg-soft);}
.map-embed iframe{width:100%;min-height:320px;border:0;display:block;}

/* Insta preview */
.insta-preview .insta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.insta-card{position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .3s ease, box-shadow .3s ease;}
.insta-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.35) 100%);opacity:0;transition:opacity .3s ease;}
.insta-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.insta-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.32);}
.insta-card:hover::after{opacity:1;}
.insta-card:hover img{transform:scale(1.05);}

/* Footer */
.footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;color:#bcb3a5;}
.footer-col h4{margin:0 0 10px;font-size:.98rem;color:#e9e3d8;letter-spacing:.04em;}
.footer-col a,.footer-col span{display:block;color:#bcb3a5;margin-bottom:6px;font-size:.94rem;}
.footer-bottom{margin-top:14px;color:#918878;font-size:.86rem;text-align:center;}
.footer-credit{
  text-align:center;
  color:#8a8a8a;
  font-size:.9rem;
  margin-top:20px;
}

/* Location map */
.map-section .map-header{
  text-align:center;
  max-width:640px;
  margin:0 auto 28px;
}
.map-section .map-header h2{margin-bottom:8px;}
.map-section .map-header p{margin:0;color:var(--muted);}
.map-embed{
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:var(--bg-soft);
  aspect-ratio:16 / 9;
}
.map-embed iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* Room modal CTA */
.room-modal-cta{border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:rgba(255,255,255,.02);box-shadow:0 12px 28px rgba(0,0,0,.2);}
.room-modal-cta .cta-copy h4{margin:0 0 6px;color:#f6efe4;font-size:1.05rem;}
.room-modal-cta .cta-copy p{margin:0;color:#cfc6b8;font-size:.95rem;}

/* Hero enhancements */
.hero::after{transition:transform 1.2s ease, filter .8s ease;}
.hero:hover::after{transform:translateY(var(--hero-parallax-offset,0px)) scale(1.04);filter:brightness(1.02);}

@media (max-width: 900px){
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 640px){
  .footer-columns{grid-template-columns:1fr;}
}
@media (max-width: 600px){
  .insta-preview .insta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 420px){
  .insta-preview .insta-grid{grid-template-columns:1fr;}
}
/* Floating WhatsApp FAB */
.floating-whatsapp{
  position:fixed;
  right:22px;
  bottom:28px;
  z-index:120;
  width:64px;
  height:64px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#eafcf1;
  background:radial-gradient(circle at 28% 28%, #5bf383 0%, #25d366 42%, #138f6b 82%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 42px rgba(0,0,0,.32);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  overflow:visible;
  text-decoration:none;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, filter .3s ease;
}
.floating-whatsapp:hover,
.floating-whatsapp:focus-visible{
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 22px 52px rgba(0,0,0,.36);
  filter:brightness(1.03);
  outline:none;
}
.floating-whatsapp__icon svg{
  width:26px;
  height:26px;
  display:block;
  fill:currentColor;
}
.floating-whatsapp__label{
  position:absolute;
  right:78px;
  top:50%;
  transform:translateY(-50%) translateY(6px);
  padding:10px 14px;
  border-radius:14px;
  background:rgba(10,12,16,.92);
  border:1px solid rgba(255,255,255,.12);
  color:#f7f1e7;
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.01em;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  box-shadow:0 16px 36px rgba(0,0,0,.4);
  transition:opacity .24s ease, transform .24s ease;
}
.floating-whatsapp:hover .floating-whatsapp__label,
.floating-whatsapp:focus-visible .floating-whatsapp__label{
  opacity:1;
  transform:translateY(-50%);
}
@media (max-width: 780px){
  .floating-whatsapp{
    width:58px;
    height:58px;
    right:16px;
    bottom:88px;
  }
  .floating-whatsapp__label{display:none;}
}
