/* ==========================================================================
   DHANTURI GROUP OF HOTELS — Home
   ========================================================================== */

/* ---------- TOKENS ---------- */
:root{
  --ink:#042544;
  --ink-2:#063152;
  --ink-3:#0B3D63;
  --gold:#C9A24B;
  --gold-lt:#E7CE93;
  --gold-dp:#9A7529;
  --ivory:#F7F3EA;
  --sand:#EFE6D5;
  --maroon:#6E1F27;
  --muted:#566A7C;
  --gold-tx:#765414;      /* gold for TEXT on light grounds: 6:1 on ivory */

  --f-display:"Cormorant Garamond", Georgia, serif;
  --f-sans:"Jost", "Helvetica Neue", Arial, sans-serif;

  --pad:clamp(20px, 5vw, 80px);
  --maxw:1440px;
  --sec:clamp(72px, 10vw, 160px);

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);
  --hdr:138px;
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--ivory); color:var(--ink);
  font-family:var(--f-sans); font-weight:300; font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
ul{margin:0; padding:0; list-style:none}
h1,h2,h3,h4{margin:0; font-weight:400; line-height:1.05; font-family:var(--f-display)}
p{margin:0 0 1.1em}
figure{margin:0}
svg{fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round}
::selection{background:var(--gold); color:var(--ink)}

.container{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad)}
.section{padding-block:var(--sec); position:relative}

/* ---------- TYPE HELPERS ---------- */
.h2{
  font-size:clamp(38px, 5.4vw, 82px); line-height:1.02;
  letter-spacing:-.015em; font-weight:400;
}
.h2 em{
  font-style:italic; font-weight:300;
  background:linear-gradient(100deg,var(--gold-dp),var(--gold-lt) 45%,var(--gold) 70%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lead{font-size:clamp(17px,1.35vw,20px); line-height:1.75; color:#263B4E}
.eyebrow{
  font-family:var(--f-sans); font-size:11px; font-weight:500; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-tx); margin:0 0 20px;
  display:flex; align-items:center; gap:12px;
}
.eyebrow--center{justify-content:center}
.eyebrow .dot{
  width:6px; height:6px; border-radius:50%; background:var(--gold); flex:none;
  box-shadow:0 0 0 4px rgba(201,162,75,.18);
  animation:pulse 2.6s var(--ease) infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(201,162,75,.18)}50%{box-shadow:0 0 0 9px rgba(201,162,75,0)}}

.link-underline{
  display:inline-flex; align-items:center; gap:8px; font-size:13px; letter-spacing:.13em;
  text-transform:uppercase; font-weight:500; color:var(--ink);
  padding-bottom:6px; position:relative; width:fit-content;
}
.link-underline::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--gold); transform-origin:right; transform:scaleX(1);
  transition:transform .5s var(--ease);
}
.link-underline:hover::after{transform:scaleX(0)}
.link-underline::before{
  content:"→"; order:2; font-size:15px; transition:transform .4s var(--ease); color:var(--gold-tx);
}
.link-underline:hover::before{transform:translateX(6px)}

/* ---------- BUTTONS ---------- */
.btn{
  --bg:var(--gold); --fg:var(--ink);
  position:relative; display:inline-flex; align-items:center; gap:12px;
  padding:17px 32px; border-radius:100px; overflow:hidden; isolation:isolate;
  font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  background:var(--bg); color:var(--fg); transition:color .45s var(--ease);
  white-space:nowrap;
}
.btn--sm{padding:13px 24px; font-size:11px}
.btn span{position:relative; z-index:2}
.btn__arrow{width:17px; height:17px; position:relative; z-index:2; stroke-width:1.6; transition:transform .45s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(5px)}
.btn::before{
  content:""; position:absolute; inset:0; z-index:1; border-radius:inherit;
  background:var(--ink); transform:translateY(101%); transition:transform .55s var(--ease);
}
.btn:hover::before{transform:translateY(0)}
.btn--gold:hover{color:var(--gold-lt)}
.btn--ghost{background:transparent; color:var(--ivory); box-shadow:inset 0 0 0 1px rgba(247,243,234,.35)}
.btn--ghost::before{background:var(--ivory)}
.btn--ghost:hover{color:var(--ink)}
.btn--dark{background:var(--ink); color:var(--ivory)}
.btn--dark::before{background:var(--gold)}
.btn--dark:hover{color:var(--ink)}

.circle-link,.circle-btn{
  width:48px; height:48px; border-radius:50%; display:grid; place-items:center; flex:none;
  box-shadow:inset 0 0 0 1px rgba(4,37,68,.16); transition:.45s var(--ease);
  position:relative; overflow:hidden;
}
.circle-link svg,.circle-btn svg{width:17px; height:17px; stroke-width:1.5; position:relative; z-index:2; transition:transform .45s var(--ease)}
.circle-link::before,.circle-btn::before{
  content:""; position:absolute; inset:0; background:var(--gold); border-radius:50%;
  transform:scale(0); transition:transform .5s var(--ease);
}
.circle-link:hover::before,.circle-btn:hover::before{transform:scale(1)}
.circle-link:hover svg{transform:translateX(4px)}
.circle-btn:disabled{opacity:.3; cursor:default}
.circle-btn:disabled::before{transform:scale(0)}

/* ---------- PRELOADER ---------- */
.preloader{
  position:fixed; inset:0; z-index:9999; background:var(--ink);
  display:grid; place-items:center; overflow:hidden;
}
.preloader__inner{position:relative; width:120px; height:120px; display:grid; place-items:center}
.preloader__ring{position:absolute; inset:0; width:120px; height:120px; transform:rotate(-90deg)}
.pr-track{stroke:rgba(201,162,75,.16); stroke-width:1}
.pr-fill{stroke:var(--gold); stroke-width:1.4; stroke-dasharray:339; stroke-dashoffset:339; transition:stroke-dashoffset .3s linear}
.preloader__logo{width:64px; filter:brightness(1.12)}
.preloader__word{
  position:absolute; bottom:calc(50% - 130px); display:flex; gap:.42em;
  font-family:var(--f-display); font-size:clamp(22px,3.4vw,34px); letter-spacing:.3em;
  color:var(--gold-lt); padding-left:.3em;
}
.preloader__word span{opacity:0; transform:translateY(14px); animation:prWord .7s var(--ease) forwards}
.preloader__word span:nth-child(1){animation-delay:.05s}.preloader__word span:nth-child(2){animation-delay:.11s}
.preloader__word span:nth-child(3){animation-delay:.17s}.preloader__word span:nth-child(4){animation-delay:.23s}
.preloader__word span:nth-child(5){animation-delay:.29s}.preloader__word span:nth-child(6){animation-delay:.35s}
.preloader__word span:nth-child(7){animation-delay:.41s}.preloader__word span:nth-child(8){animation-delay:.47s}
@keyframes prWord{to{opacity:1; transform:none}}
.preloader__count{
  position:absolute; right:var(--pad); bottom:calc(var(--pad) - 6px);
  font-family:var(--f-display); font-size:clamp(48px,9vw,110px); color:rgba(231,206,147,.22); line-height:1;
}
.preloader__count i{font-size:.32em; font-style:normal; vertical-align:super; margin-left:2px}
.preloader__curtain{position:absolute; inset:0; background:var(--ivory); transform:translateY(100%)}
.preloader.is-done .preloader__inner,.preloader.is-done .preloader__word,.preloader.is-done .preloader__count{
  opacity:0; transform:translateY(-24px); transition:.7s var(--ease);
}
.preloader.is-done .preloader__curtain{transform:translateY(0); transition:transform .9s .25s var(--ease)}
.preloader.is-hidden{opacity:0; visibility:hidden; transition:.4s .9s}

/* ---------- CURSOR ---------- */
.cursor,.cursor-dot{position:fixed; top:0; left:0; z-index:9000; pointer-events:none; border-radius:50%; mix-blend-mode:difference}
.cursor{
  width:36px; height:36px; margin:-18px 0 0 -18px; box-shadow:inset 0 0 0 1px rgba(231,206,147,.9);
  transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s var(--ease),opacity .3s;
  display:grid; place-items:center;
}
.cursor-dot{width:5px; height:5px; margin:-2.5px 0 0 -2.5px; background:var(--gold-lt)}
.cursor__label{
  font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
  opacity:0; transition:opacity .25s; font-weight:500;
}
.cursor.is-big{width:88px; height:88px; margin:-44px 0 0 -44px; background:var(--gold-lt); box-shadow:none}
.cursor.is-big .cursor__label{opacity:1}
.cursor.is-link{width:56px; height:56px; margin:-28px 0 0 -28px; background:rgba(231,206,147,.25); box-shadow:none}
body.no-cursor .cursor,body.no-cursor .cursor-dot{opacity:0}
@media (hover:none),(max-width:1024px){.cursor,.cursor-dot{display:none}}

/* ---------- SCROLL PROGRESS ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:100%; z-index:8000; transform-origin:0 50%;
  transform:scaleX(0); background:linear-gradient(90deg,var(--gold-dp),var(--gold-lt),var(--gold));
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.header{position:fixed; inset:0 0 auto; z-index:1000; transition:transform .6s var(--ease)}
.header.is-hidden{transform:translateY(-100%)}

.header__ticker{
  background:var(--ink); color:var(--gold-lt); overflow:hidden; height:36px;
  display:flex; align-items:center; font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  border-bottom:1px solid rgba(201,162,75,.16); transition:height .5s var(--ease),opacity .4s;
}
.ticker-track{display:flex; width:max-content; will-change:transform; gap:56px; white-space:nowrap; padding-left:56px; animation:tick 42s linear infinite}
.ticker-track a{color:var(--gold); border-bottom:1px solid rgba(201,162,75,.4)}
@keyframes tick{to{transform:translateX(-50%)}}
.header.is-stuck .header__ticker{height:0; opacity:0; border-color:transparent}

.header__bar{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(16px,2.4vw,40px);
  padding:16px var(--pad); transition:padding .5s var(--ease),background .5s var(--ease),box-shadow .5s;
  position:relative;
}
.header.is-stuck .header__bar{
  background:rgba(4,37,68,.92); backdrop-filter:blur(18px) saturate(1.4);
  padding-block:8px; box-shadow:0 1px 0 rgba(201,162,75,.16), 0 18px 44px -28px rgba(0,0,0,.9);
}

/* centred brandmark */
.brandmark{display:flex; align-items:center; justify-content:center; flex:none; position:relative}
.brandmark img{
  width:74px; display:block;
  transition:width .5s var(--ease),filter .5s var(--ease);
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.5));
}
.header.is-stuck .brandmark img{width:54px}
.brandmark::after{
  content:""; position:absolute; left:50%; bottom:-6px; width:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:translateX(-50%); transition:width .55s var(--ease);
}
.brandmark:hover::after{width:100%}

/* nav rails flank the mark */
.nav{display:flex; align-items:center; min-width:0}
.nav--l{justify-content:flex-start}
.nav--r{justify-content:flex-end; gap:clamp(10px,1.4vw,22px)}
.nav__list{display:flex; align-items:center; gap:4px}
.nav__link{
  position:relative; display:flex; align-items:center; gap:6px; padding:10px 18px;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:400; color:var(--ivory);
  overflow:hidden;
}
.nav__link span{display:block; position:relative; height:1.35em; overflow:hidden}
.nav__link span b{
  display:block; font-weight:inherit; line-height:1.35;
  transition:transform .45s var(--ease);
}
.nav__link span b+b{position:absolute; left:0; top:0; color:var(--gold-lt); transform:translateY(100%)}
.nav__link:hover span b{transform:translateY(-100%)}
.nav__link:hover span b+b{transform:translateY(0)}
.nav__link::after{
  content:""; position:absolute; left:18px; right:18px; bottom:6px; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1)}
.nav__link.is-active{color:var(--gold-lt)}
.chev{width:10px; height:7px; stroke-width:1.5; opacity:.6; transition:transform .4s var(--ease)}
.has-mega:hover .chev{transform:rotate(180deg)}

/* MEGA */
.mega{
  position:absolute; left:0; right:0; top:100%;
  background:rgba(4,37,68,.97); backdrop-filter:blur(20px);
  border-top:1px solid rgba(201,162,75,.2); border-bottom:1px solid rgba(201,162,75,.12);
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s;
}
.has-mega:hover .mega{opacity:1; visibility:visible; transform:none}
.mega__inner{
  max-width:var(--maxw); margin-inline:auto; padding:52px var(--pad) 56px;
  display:grid; grid-template-columns:.85fr 2fr; gap:clamp(32px,5vw,80px);
}
.mega__intro .eyebrow{margin-bottom:14px}
.mega__intro h4{font-size:clamp(24px,2vw,32px); color:var(--ivory); line-height:1.15; margin-bottom:14px}
.mega__note{font-size:14px; color:#B9C8D5; max-width:34ch; margin-bottom:20px}
.mega__intro .link-underline{color:var(--gold-lt)}
.mega__cols{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,48px)}
.mega__col{border-left:1px solid rgba(201,162,75,.16); padding-left:clamp(18px,2vw,32px)}
.mega__logo{height:48px; width:auto; object-fit:contain; object-position:left; background:var(--ivory); padding:7px 11px; border-radius:6px; margin-bottom:12px}
.mega__count{display:block; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:14px}
.mega__col ul li a{
  display:block; padding:5px 0; font-size:13.5px; color:#AFC2D0; position:relative; padding-left:0;
  transition:color .3s,padding-left .35s var(--ease);
}
.mega__col ul li a:hover{color:var(--gold-lt); padding-left:12px}
.mega__col ul li a::before{
  content:""; position:absolute; left:0; top:50%; width:6px; height:1px; background:var(--gold);
  opacity:0; transition:opacity .3s;
}
.mega__col ul li a:hover::before{opacity:1}


.burger{display:none; width:44px; height:44px; flex-direction:column; justify-content:center; gap:5px; align-items:flex-end}
.burger i{display:block; height:1.4px; background:var(--ivory); transition:.45s var(--ease); border-radius:2px}
.burger i:nth-child(1){width:22px}.burger i:nth-child(2){width:16px}.burger i:nth-child(3){width:22px}
.burger.is-open i:nth-child(1){transform:translateY(6.4px) rotate(45deg); width:22px}
.burger.is-open i:nth-child(2){opacity:0; transform:translateX(10px)}
.burger.is-open i:nth-child(3){transform:translateY(-6.4px) rotate(-45deg); width:22px}

/* MOBILE MENU */
.mobmenu{position:fixed; inset:0; z-index:999; visibility:hidden; pointer-events:none}
.mobmenu__bg{position:absolute; inset:0; background:var(--ink); clip-path:circle(0% at 92% 6%); transition:clip-path .8s var(--ease)}
.mobmenu.is-open{visibility:visible; pointer-events:auto}
.mobmenu.is-open .mobmenu__bg{clip-path:circle(150% at 92% 6%)}
.mobmenu__inner{
  position:relative; height:100%; display:flex; flex-direction:column; justify-content:center;
  padding:120px var(--pad) 40px; gap:40px;
}
.mobmenu__list li{overflow:hidden}
.mobmenu__list li a{
  display:flex; align-items:baseline; gap:18px; padding:10px 0;
  font-family:var(--f-display); font-size:clamp(34px,10vw,60px); color:var(--ivory); line-height:1.1;
  transform:translateY(110%); transition:transform .7s var(--ease),color .3s;
}
.mobmenu.is-open .mobmenu__list li a{transform:none}
.mobmenu.is-open .mobmenu__list li:nth-child(1) a{transition-delay:.22s}
.mobmenu.is-open .mobmenu__list li:nth-child(2) a{transition-delay:.29s}
.mobmenu.is-open .mobmenu__list li:nth-child(3) a{transition-delay:.36s}
.mobmenu.is-open .mobmenu__list li:nth-child(4) a{transition-delay:.43s}
.mobmenu.is-open .mobmenu__list li:nth-child(5) a{transition-delay:.5s}
.mobmenu__list li a em{font-family:var(--f-sans); font-style:normal; font-size:11px; letter-spacing:.2em; color:var(--gold)}
.mobmenu__list li a:hover{color:var(--gold-lt)}
.mobmenu__foot{
  margin-top:auto; padding-top:28px; border-top:1px solid rgba(201,162,75,.2);
  display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between;
  opacity:0; transition:opacity .6s .6s;
}
.mobmenu.is-open .mobmenu__foot{opacity:1}
.mobmenu__brands{display:flex; gap:12px; align-items:center}
.mobmenu__brands img{height:36px; width:auto; background:var(--ivory); padding:5px 9px; border-radius:5px}
.mobmenu__phone{color:var(--gold-lt); font-size:16px; letter-spacing:.08em}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding-block:calc(var(--hdr) + clamp(20px,4vh,44px)) clamp(120px,16vh,180px); overflow:hidden; background:var(--ink);
}
.hero__media{position:absolute; inset:0}
.hero__slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s var(--ease)}
.hero__slide.is-active{opacity:1}
.hero__slide img{width:100%; height:100%; object-fit:cover; transform:scale(1.14)}
.hero__slide.is-active img{animation:kenburns 9s linear forwards}
@keyframes kenburns{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg,rgba(11,10,9,.84) 0%,rgba(11,10,9,.32) 28%,rgba(11,10,9,.58) 62%,rgba(11,10,9,.96) 100%),
    linear-gradient(96deg,rgba(11,10,9,.86) 0%,rgba(11,10,9,.5) 34%,rgba(11,10,9,.08) 62%,transparent 78%),
    radial-gradient(88% 70% at 16% 76%,rgba(11,10,9,.62),transparent 70%);
}
.hero__grain{
  position:absolute; inset:-8%; opacity:.05; pointer-events:none; will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 2s steps(3) infinite;
}
@keyframes grain{0%{transform:translate3d(0,0,0)}33%{transform:translate3d(-2%,2%,0)}66%{transform:translate3d(2%,-2%,0)}100%{transform:translate3d(0,0,0)}}
.hero__glow{
  position:absolute; left:-10%; bottom:-30%; width:70vw; height:70vw; pointer-events:none;
  background:radial-gradient(circle,rgba(201,162,75,.2),transparent 62%); will-change:transform;
  animation:float 18s ease-in-out infinite;
}
@keyframes float{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6%,-5%,0) scale(1.12)}}

.hero__content,.hero__inner{position:relative; z-index:3; color:var(--ivory)}
.hero__eyebrow{color:var(--gold-lt); margin-bottom:26px}
.hero__title{
  font-size:clamp(52px,9.2vw,158px); line-height:.94; letter-spacing:-.03em; font-weight:300;
  margin:0 0 30px; max-width:15ch;
}
.hero__title .line{display:block; overflow:hidden; padding-bottom:.06em}
.hero__title .w{display:inline-block; transform:translateY(110%); opacity:0}
.is-ready .hero__title .w{animation:wordUp 1.15s var(--ease) forwards}
.is-ready .hero__title .line:nth-child(1) .w:nth-child(1){animation-delay:.10s}
.is-ready .hero__title .line:nth-child(1) .w:nth-child(2){animation-delay:.19s}
.is-ready .hero__title .line:nth-child(2) .w:nth-child(1){animation-delay:.28s}
.is-ready .hero__title .line:nth-child(2) .w:nth-child(2){animation-delay:.37s}
@keyframes wordUp{to{transform:none; opacity:1}}
.hero__title .w--em em{
  font-style:italic; font-weight:300; position:relative;
  background:linear-gradient(100deg,var(--gold-dp) 0%,var(--gold-lt) 40%,#FFF3D6 55%,var(--gold) 75%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:sheen 6s var(--ease) infinite;
}
@keyframes sheen{0%,100%{background-position:100% 0}50%{background-position:0 0}}

.hero__lede{max-width:56ch; font-size:clamp(15.5px,1.25vw,18.5px); color:#CBD9E3; line-height:1.8; margin-bottom:38px}
.hero__cta{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:0}
.hero__meta{border-top:1px solid rgba(247,243,234,.14); padding-top:26px}
.hero__brands{display:flex; align-items:center; gap:clamp(14px,2vw,26px); flex-wrap:wrap}
.hero__brands img{
  height:52px; width:auto; object-fit:contain; background:var(--ivory); padding:8px 14px; border-radius:6px;
  opacity:.92; transition:.5s var(--ease); box-shadow:0 10px 26px -14px rgba(0,0,0,.85);
}
.hero__brands img:hover{opacity:1; transform:translateY(-3px) scale(1.04)}
.hero__brands .sep{width:1px; height:28px; background:rgba(247,243,234,.22)}

.hero__nav{position:absolute; right:var(--pad); bottom:clamp(120px,16vh,180px); z-index:4; display:flex; flex-direction:column; gap:14px}
.hero__dot{position:relative; width:34px; height:34px; display:grid; place-items:center}
.hero__dot svg{position:absolute; inset:0; width:34px; height:34px; transform:rotate(-90deg)}
.hero__dot circle{stroke:rgba(231,206,147,.28); stroke-width:1.2; stroke-dasharray:100.5; stroke-dashoffset:100.5}
.hero__dot.is-active circle{stroke:var(--gold); animation:ring 7s linear forwards}
@keyframes ring{to{stroke-dashoffset:0}}
.hero__dot i{width:5px; height:5px; border-radius:50%; background:rgba(231,206,147,.45); transition:.4s}
.hero__dot.is-active i{background:var(--gold-lt); transform:scale(1.3)}

.hero__scroll{
  position:absolute; left:var(--pad); bottom:36px; z-index:4; display:flex; align-items:center; gap:14px;
  font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:rgba(247,243,234,.6);
}
.hero__scroll i{display:block; width:56px; height:1px; background:rgba(247,243,234,.2); position:relative; overflow:hidden}
.hero__scroll i::after{content:""; position:absolute; inset:0; background:var(--gold); transform:translateX(-100%); animation:scrollLine 2.4s var(--ease) infinite}
@keyframes scrollLine{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

/* ---------- ENQUIRY BAR ---------- */
.enquiry{position:relative; z-index:6; margin-top:-52px}
.enquiry__form{
  background:var(--ivory); border-radius:100px; padding:14px 14px 14px 34px;
  display:flex; align-items:center; gap:8px; max-width:calc(var(--maxw) - var(--pad)*2);
  box-shadow:0 30px 70px -34px rgba(4,37,68,.6), inset 0 0 0 1px rgba(201,162,75,.28);
  transform:translateY(28px); opacity:0; transition:.9s .5s var(--ease);
}
.is-ready .enquiry__form{transform:none; opacity:1}
.enquiry__field{flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:1px; padding-right:10px}
.enquiry__field label{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-tx); font-weight:500}
.enquiry__field select,.enquiry__field input{
  border:0; background:transparent; font-family:var(--f-sans); font-size:14.5px; color:var(--ink);
  padding:2px 0; width:100%; outline:none; font-weight:400; cursor:pointer;
  appearance:none; -webkit-appearance:none;
}
.enquiry__field select{
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%239A7529' stroke-width='1.4'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E") right 4px center/10px no-repeat;
  padding-right:20px; text-overflow:ellipsis;
}
.enquiry__field input::placeholder{color:#7A8E9F}
.enquiry__div{width:1px; height:34px; background:rgba(4,37,68,.1); flex:none}
.enquiry__btn{
  flex:none; display:inline-flex; align-items:center; gap:11px; background:var(--ink); color:var(--ivory);
  padding:17px 28px; border-radius:100px; font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  position:relative; overflow:hidden; isolation:isolate; transition:color .4s var(--ease);
}
.enquiry__btn span,.enquiry__btn svg{position:relative; z-index:2}
.enquiry__btn svg{width:16px; height:16px; transition:transform .4s var(--ease)}
.enquiry__btn::before{content:""; position:absolute; inset:0; background:var(--gold); transform:translateY(101%); transition:transform .5s var(--ease); z-index:1}
.enquiry__btn:hover{color:var(--ink)}
.enquiry__btn:hover::before{transform:translateY(0)}
.enquiry__btn:hover svg{transform:translateX(4px)}
.enquiry__form.is-sent .enquiry__btn{background:var(--gold); color:var(--ink)}

/* ---------- MARQUEE ---------- */
.marquee{
  overflow:hidden; background:var(--ink); color:var(--ivory); padding:26px 0; margin-top:0;
  border-block:1px solid rgba(201,162,75,.2);
}
.marquee__track{display:flex; width:max-content; will-change:transform; align-items:center; gap:34px; white-space:nowrap; animation:tick 40s linear infinite}
.marquee__track span{font-family:var(--f-display); font-size:clamp(24px,3vw,44px); font-weight:300; letter-spacing:.01em}
.marquee__track i{color:var(--gold); font-size:14px; font-style:normal}
.marquee__track span:nth-child(4n+1){font-style:italic; color:var(--gold-lt)}

/* ==========================================================================
   INTRO
   ========================================================================== */
.intro{background:var(--ivory); padding-top:clamp(80px,9vw,130px)}
.intro__grid{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(40px,7vw,120px); align-items:center}
.intro__visual{position:relative; padding-block:40px}
.intro__img{overflow:hidden; border-radius:4px; position:relative}
.intro__img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.intro__img:hover img{transform:scale(1.05)}
.intro__img--a{aspect-ratio:4/5; box-shadow:0 40px 80px -50px rgba(4,37,68,.7)}
.intro__img--b{
  position:absolute; right:-8%; bottom:0; width:52%; aspect-ratio:1/1;
  box-shadow:0 30px 60px -34px rgba(4,37,68,.65), 0 0 0 10px var(--ivory);
}
.intro__badge{
  position:absolute; left:-6%; top:6%; width:132px; height:132px; display:grid; place-items:center;
  background:var(--ink); border-radius:50%; color:var(--gold-lt);
  box-shadow:0 20px 50px -22px rgba(4,37,68,.7);
}
.intro__badge-ring{position:absolute; inset:0; width:132px; height:132px; animation:spin 24s linear infinite; fill:var(--gold); stroke:none}
.intro__badge-ring text{font-family:var(--f-sans); font-size:8.4px; letter-spacing:.24em; text-transform:uppercase}
@keyframes spin{to{transform:rotate(360deg)}}
.intro__badge-core{font-family:var(--f-display); font-size:36px; line-height:1; display:flex; align-items:baseline; gap:3px}
.intro__badge-core i{font-family:var(--f-sans); font-style:normal; font-size:11px; letter-spacing:.1em}

.intro__text .h2{margin-bottom:26px}
.intro__text p{color:#33475C; max-width:56ch}
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:44px 0 36px; padding-top:34px; border-top:1px solid rgba(4,37,68,.1)}
.stats li{display:flex; flex-direction:column; gap:6px}
.stat__num{font-family:var(--f-display); font-size:clamp(32px,3.4vw,50px); line-height:1; color:var(--ink); font-weight:400}
.stat__lbl{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted)}

/* ==========================================================================
   BRANDS
   ========================================================================== */
.brands{background:var(--sand)}
.sec-head{margin-bottom:clamp(40px,5vw,70px); max-width:60ch}
.sec-head--split{display:flex; flex-wrap:wrap; align-items:flex-end; row-gap:20px; justify-content:space-between; gap:32px; max-width:none}
.sec-head--split>div{max-width:none; flex:0 1 auto}
.sec-head--split .h2{max-width:16em}
.sec-head--split .eyebrow{white-space:nowrap}
.sec-head--center{text-align:center; max-width:none; margin-inline:auto}
.sec-head--center .eyebrow{justify-content:center}
.sec-head__note{max-width:44ch; font-size:15.5px; color:#3D5063; margin:0}

.brandcards{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,28px)}
.brandcard{
  background:var(--ivory); border-radius:6px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 1px 0 rgba(4,37,68,.06); transition:transform .7s var(--ease),box-shadow .7s var(--ease);
  position:relative;
}
.brandcard::after{
  content:""; position:absolute; inset:0; border-radius:6px; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(201,162,75,0); transition:box-shadow .6s var(--ease);
}
.brandcard:hover{transform:translateY(-10px); box-shadow:0 40px 70px -44px rgba(4,37,68,.55)}
.brandcard:hover::after{box-shadow:inset 0 0 0 1px rgba(201,162,75,.5)}
.brandcard__media{aspect-ratio:16/11; overflow:hidden; position:relative}
.brandcard__media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(11,10,9,.35))}
.brandcard__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.03); transition:transform 1.3s var(--ease)}
.brandcard:hover .brandcard__media img{transform:scale(1.11)}
.brandcard__body{padding:26px clamp(20px,2vw,30px) 8px; flex:1}
.brandcard__logo{height:66px; width:auto; object-fit:contain; object-position:left; margin-bottom:20px}
.brandcard__desc{font-size:14.5px; line-height:1.75; color:#3D5063; margin-bottom:18px}
.chips{display:flex; flex-wrap:wrap; gap:7px}
.chips li{
  font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; padding:6px 11px; border-radius:100px;
  background:rgba(201,162,75,.12); color:var(--gold-tx);
}
.brandcard__foot{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px clamp(20px,2vw,30px) 24px; margin-top:16px; border-top:1px solid rgba(4,37,68,.08);
}
.brandcard__count{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); display:flex; align-items:baseline; gap:8px}
.brandcard__count b{font-family:var(--f-display); font-size:28px; color:var(--ink); font-weight:400; letter-spacing:0}

/* ==========================================================================
   WEDDINGS
   ========================================================================== */
.weddings{background:var(--ink); color:var(--ivory); overflow:hidden; padding-bottom:clamp(56px,7vw,110px)}
.weddings__bg{
  position:absolute; inset:-20% 0 auto; height:140%; pointer-events:none; opacity:.5;
  background:
    radial-gradient(60% 45% at 82% 12%,rgba(201,162,75,.2),transparent 62%),
    radial-gradient(50% 40% at 8% 80%,rgba(110,31,39,.32),transparent 65%);
}
.weddings .sec-head__note{color:#BCCAD6}
.weddings .h2{color:var(--ivory)}

.halls{position:relative; margin-top:clamp(24px,3vw,40px)}
.halls__track{
  display:flex; gap:clamp(14px,1.6vw,24px); overflow-x:auto; scroll-snap-type:x mandatory;
  padding-inline:var(--pad); padding-bottom:8px; scrollbar-width:none; cursor:grab;
}
.halls__track::-webkit-scrollbar{display:none}
.halls__track.is-drag{cursor:grabbing; scroll-snap-type:none}
.hall{
  flex:0 0 clamp(268px,26vw,380px); scroll-snap-align:start; position:relative;
  border-radius:6px; overflow:hidden; background:var(--ink-2);
}
.hall__media{aspect-ratio:3/4; overflow:hidden; position:relative}
.hall__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(11,10,9,.05) 30%,rgba(11,10,9,.92) 100%);
}
.hall__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease),filter .8s}
.hall:hover .hall__media img{transform:scale(1.08)}
.hall__info{position:absolute; inset:auto 0 0; padding:clamp(20px,2vw,30px); z-index:2}
.hall__no{
  font-family:var(--f-display); font-size:13px; letter-spacing:.2em; color:var(--gold);
  display:block; margin-bottom:10px;
}
.hall__info h3{font-size:clamp(24px,2vw,31px); margin-bottom:8px; color:var(--ivory)}
.hall__info p{
  font-size:13.5px; color:#BCCAD6; line-height:1.65; margin:0 0 14px; max-width:32ch;
  max-height:0; opacity:0; overflow:hidden; transition:max-height .7s var(--ease),opacity .5s,margin .7s var(--ease);
}
.hall:hover .hall__info p{max-height:100px; opacity:1}
.hall__specs{display:flex; gap:26px; padding-top:14px; border-top:1px solid rgba(247,243,234,.14)}
.hall__specs li{display:flex; flex-direction:column; gap:2px}
.hall__specs i{font-style:normal; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted)}
.hall__specs b{font-family:var(--f-display); font-size:19px; font-weight:400; color:var(--gold-lt)}

.halls__ui{display:flex; align-items:center; gap:28px; margin-top:32px}
.halls__bar{flex:1; height:1px; background:rgba(247,243,234,.14); position:relative; overflow:hidden}
.halls__bar span{position:absolute; left:0; top:0; height:100%; width:22%; background:var(--gold); transition:transform .2s linear}
.halls__btns{display:flex; gap:10px}
.weddings .circle-btn{box-shadow:inset 0 0 0 1px rgba(247,243,234,.22); color:var(--ivory)}
.weddings .circle-btn:hover{color:var(--ink)}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.services{background:var(--ivory)}
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(4,37,68,.1); border:1px solid rgba(4,37,68,.1)}
.svc{background:var(--ivory); padding:clamp(30px,3vw,50px); position:relative; overflow:hidden; transition:color .5s}
.svc::before{
  content:""; position:absolute; inset:0; background:var(--ink); transform:translateY(100%);
  transition:transform .65s var(--ease);
}
.svc:hover::before{transform:translateY(0)}
.svc>*{position:relative; z-index:2; transition:color .5s var(--ease)}
.svc__ico{
  display:grid; place-items:center; width:64px; height:64px; border-radius:50%; margin-bottom:26px;
  background:rgba(201,162,75,.13); color:var(--gold-tx); transition:.6s var(--ease);
}
.svc__ico svg{width:30px; height:30px; stroke-width:1.15}
.svc:hover .svc__ico{background:var(--gold); color:var(--ink); transform:rotate(-8deg) scale(1.06)}
.svc h3{font-size:clamp(23px,1.8vw,29px); margin-bottom:12px}
.svc p{font-size:14.5px; line-height:1.75; color:#3D5063; margin:0}
.svc:hover h3{color:var(--gold-lt)}
.svc:hover p{color:#BCCAD6}

/* ==========================================================================
   CUISINE
   ========================================================================== */
.cuisine{background:var(--sand); overflow:hidden}
.cuisine__grid{display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,6vw,100px); align-items:center}
.cuisine__text .h2{margin-bottom:24px}
.cuisine__list{margin:34px 0 38px; border-top:1px solid rgba(4,37,68,.12)}
.cuisine__list li{
  display:flex; align-items:baseline; gap:20px; padding:16px 0; border-bottom:1px solid rgba(4,37,68,.12);
  transition:padding-left .45s var(--ease);
}
.cuisine__list li:hover{padding-left:12px}
.cuisine__list b{font-family:var(--f-display); font-size:22px; font-weight:400; flex:0 0 auto; min-width:9.5em}
.cuisine__list span{font-size:13.5px; color:#44576A; letter-spacing:.02em}

.cuisine__gallery{position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,1.4vw,20px)}
.cg{overflow:hidden; border-radius:5px; box-shadow:0 24px 50px -34px rgba(4,37,68,.6)}
.cg img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease)}
.cg:hover img{transform:scale(1.08)}
.cg--1{aspect-ratio:4/5}
.cg--2{aspect-ratio:4/5; margin-top:clamp(30px,5vw,64px)}
.cg--3{aspect-ratio:1/1}
.cg--4{aspect-ratio:1/1; margin-top:clamp(30px,5vw,64px)}

/* ==========================================================================
   LOCATIONS
   ========================================================================== */
/* ==========================================================================
   ROOMS
   ========================================================================== */
.rooms{background:var(--ink); color:var(--ivory); overflow:hidden}
.rooms__glow{
  position:absolute; inset:auto -10% -30% 30%; height:70%; pointer-events:none;
  background:radial-gradient(ellipse at 50% 100%, rgba(201,162,75,.14), transparent 62%);
}
.rooms__grid{
  position:relative; display:grid; grid-template-columns:.92fr 1.08fr;
  gap:clamp(40px,6vw,110px); align-items:center;
}

/* --- visual stack --- */
.rooms__visual{position:relative; padding:26px 0 74px}
.rooms__frame{
  position:relative; margin:0; border-radius:4px; overflow:hidden;
  aspect-ratio:4/5; box-shadow:0 50px 90px -40px rgba(0,0,0,.9);
}
.rooms__frame img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 1.4s var(--ease)}
.rooms__visual:hover .rooms__frame img{transform:scale(1)}
.rooms__frame::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(190deg, rgba(11,10,9,.32), transparent 42%, rgba(11,10,9,.5));
}
.rooms__rule{
  position:absolute; inset:14px; border:1px solid rgba(231,206,147,.34); border-radius:2px;
  z-index:2; pointer-events:none;
}
.rooms__detail{
  position:absolute; right:-8%; bottom:34px; width:47%; margin:0;
  border-radius:3px; overflow:hidden; aspect-ratio:4/3;
  box-shadow:0 34px 64px -26px rgba(0,0,0,.95);
  outline:7px solid var(--ink); outline-offset:-1px;
}
.rooms__detail img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.rooms__visual:hover .rooms__detail img{transform:scale(1.07)}
.rooms__badge{
  position:absolute; left:-6%; bottom:6px; z-index:3;
  display:flex; align-items:center; gap:13px;
  background:rgba(4,37,68,.9); backdrop-filter:blur(8px);
  border:1px solid rgba(201,162,75,.34); border-radius:2px; padding:15px 20px;
}
.rooms__badge b{font-family:var(--f-display); font-size:40px; line-height:1; color:var(--gold-lt); font-weight:400}
.rooms__badge span{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:#B9C8D5; line-height:1.5}

/* --- copy --- */
.rooms__text .h2{color:var(--ivory)}
.rooms__text .lead{color:#A9BDCC; max-width:46ch; margin-bottom:38px}

/* --- accordion --- */
/* --- amenities --- */
.rooms__amen{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 26px;
  list-style:none; padding:0; margin:0 0 38px; max-width:520px;
}
.rooms__amen li{display:flex; align-items:center; gap:12px; font-size:13.5px; color:#A9BDCC}
.rooms__amen svg{
  width:21px; height:21px; flex:none; fill:none; stroke:var(--gold);
  stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round;
}

@media (max-width:1024px){
  .rooms__grid{grid-template-columns:1fr; gap:64px}
  .rooms__visual{max-width:520px; margin-inline:auto; width:100%}
}
@media (max-width:720px){
  .rooms__detail{width:50%; right:0; bottom:26px; outline-width:5px}
  .rooms__badge{left:0; padding:12px 16px}
  .rooms__badge b{font-size:32px}
  .rooms__amen{grid-template-columns:1fr; gap:13px}
}

.locations{background:var(--ivory)}
.loc-tabs{display:flex; gap:8px; position:relative; flex-wrap:wrap; margin-bottom:clamp(28px,3vw,44px)}
.loc-tab{
  display:inline-flex; align-items:center; gap:12px; padding:13px 26px; border-radius:100px;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  box-shadow:inset 0 0 0 1px rgba(4,37,68,.12); transition:.45s var(--ease); position:relative; z-index:2;
}
.loc-tab i{font-style:normal; font-family:var(--f-display); font-size:15px; letter-spacing:0; opacity:.6}
.loc-tab:hover{color:var(--ink); box-shadow:inset 0 0 0 1px rgba(201,162,75,.5)}
.loc-tab.is-active{background:var(--ink); color:var(--gold-lt); box-shadow:none}
.loc-tab.is-active i{opacity:1; color:var(--gold)}

.loc-panels{position:relative}
.loc-panel{display:none}
.loc-panel.is-active{display:block}
.loc-list{border-top:1px solid rgba(4,37,68,.12)}
.loc-list li{
  display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:24px;
  padding:22px 16px 22px 0; border-bottom:1px solid rgba(4,37,68,.12);
  position:relative; opacity:0; transform:translateY(18px);
  animation:locIn .7s var(--ease) forwards;
}
.loc-panel.is-active li:nth-child(1){animation-delay:.02s}.loc-panel.is-active li:nth-child(2){animation-delay:.07s}
.loc-panel.is-active li:nth-child(3){animation-delay:.12s}.loc-panel.is-active li:nth-child(4){animation-delay:.17s}
.loc-panel.is-active li:nth-child(5){animation-delay:.22s}.loc-panel.is-active li:nth-child(6){animation-delay:.27s}
.loc-panel.is-active li:nth-child(7){animation-delay:.32s}.loc-panel.is-active li:nth-child(8){animation-delay:.37s}
@keyframes locIn{to{opacity:1; transform:none}}
.loc-list li::before{
  content:""; position:absolute; left:-16px; right:-16px; top:0; bottom:0; background:rgba(201,162,75,.08);
  opacity:0; transition:opacity .4s; border-radius:4px; z-index:-1;
}
.loc-list li:hover::before{opacity:1}
.loc-list__i{font-family:var(--f-display); font-size:14px; color:var(--gold-tx); letter-spacing:.15em}
.loc-list h3{font-size:clamp(20px,2vw,28px); font-weight:400; transition:transform .5s var(--ease)}
.loc-list li:hover h3{transform:translateX(8px)}
.loc-list a{
  font-size:13.5px; letter-spacing:.06em; color:var(--muted); white-space:nowrap;
  padding:8px 18px; border-radius:100px; box-shadow:inset 0 0 0 1px rgba(4,37,68,.12); transition:.4s var(--ease);
}
.loc-list a:hover{background:var(--ink); color:var(--gold-lt); box-shadow:none}

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
/* gold band, per the client's note — ink type on a warm gold wash */
.testi{
  position:relative; overflow:hidden; color:var(--ink);
  background:
    radial-gradient(70% 90% at 18% 8%,rgba(255,250,236,.72),transparent 58%),
    radial-gradient(60% 80% at 88% 94%,rgba(122,88,22,.3),transparent 62%),
    linear-gradient(118deg,var(--gold-dp) 0%,var(--gold) 26%,var(--gold-lt) 52%,var(--gold) 76%,var(--gold-dp) 100%);
}
.testi::before,.testi::after{
  content:""; position:absolute; left:0; right:0; height:1px; pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,248,230,.75),transparent);
}
.testi::before{top:0}
.testi::after{bottom:0}
.testi .eyebrow{color:#5E4310}
.testi__stage{position:relative; max-width:960px; margin-inline:auto; text-align:center; padding-top:20px}
.testi__quote{width:64px; height:48px; margin:0 auto 30px; fill:rgba(4,37,68,.2); stroke:none}
.testi__items{position:relative; min-height:clamp(230px,26vw,290px)}
.testi__item{
  position:absolute; inset:0; margin:0; opacity:0; transform:translateY(26px);
  transition:opacity .7s var(--ease),transform .7s var(--ease); pointer-events:none;
}
.testi__item.is-active{opacity:1; transform:none; pointer-events:auto}
.testi__item p{
  font-family:var(--f-display); font-size:clamp(23px,2.9vw,42px); line-height:1.34; font-weight:300;
  font-style:italic; color:var(--ink); margin-bottom:32px;
}
.testi__item cite{font-style:normal; display:flex; flex-direction:column; gap:6px; align-items:center}
.testi__item cite b{font-family:var(--f-sans); font-size:13px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; color:var(--ink)}
.testi__item cite span{font-size:12.5px; color:#6B5420; letter-spacing:.05em}
.testi__nav{display:flex; align-items:center; justify-content:center; gap:22px; margin-top:34px}
.testi .circle-btn{box-shadow:inset 0 0 0 1px rgba(4,37,68,.28); color:var(--ink)}
.testi .circle-btn::before{background:var(--ink)}
.testi .circle-btn:hover{color:var(--gold-lt)}
.testi__count{font-family:var(--f-display); font-size:16px; color:#6B5420; letter-spacing:.1em}
.testi__count b{color:var(--ink); font-weight:400}
.testi__count i{font-style:normal}

/* ==========================================================================
   GALLERY
   ========================================================================== */
.gallery{background:var(--ivory); padding-bottom:clamp(60px,8vw,120px); overflow:hidden}
.gal-row{overflow:hidden; margin-bottom:clamp(12px,1.4vw,20px)}
.gal-row__track{display:flex; will-change:transform; gap:clamp(12px,1.4vw,20px); width:max-content; animation:tick 60s linear infinite}
.gal-row[data-marquee="right"] .gal-row__track{animation-direction:reverse; animation-duration:72s}
.gal-row figure{
  flex:0 0 clamp(200px,22vw,330px); aspect-ratio:4/3; overflow:hidden; border-radius:5px;
  position:relative;
}
.gal-row figure img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease)}
.gal-row figure:hover img{transform:scale(1.09)}
.gal-row:hover .gal-row__track{animation-play-state:paused}

/* ==========================================================================
   CTA BAND
   ========================================================================== */
.cta{position:relative; padding-block:clamp(90px,12vw,170px); overflow:hidden; color:var(--ivory); text-align:center}
.cta__media{position:absolute; inset:-10% 0}
.cta__media img{width:100%; height:100%; object-fit:cover}
.cta__scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,10,9,.9),rgba(11,10,9,.78)),radial-gradient(60% 60% at 50% 50%,rgba(110,31,39,.35),transparent 70%)}
.cta__inner{position:relative; z-index:2; max-width:820px}
.cta .eyebrow{justify-content:center; color:var(--gold)}
.cta .h2{color:var(--ivory); margin-bottom:22px}
.cta__note{color:#AFC2D0; max-width:52ch; margin:0 auto 36px; font-size:16px}
.cta__btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{background:var(--ink); color:#BCCAD6; padding-top:clamp(60px,7vw,100px)}
.footer__top{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr; gap:clamp(24px,3vw,48px);
  padding-bottom:clamp(48px,6vw,80px);
}
.footer__logo{width:76px; margin-bottom:20px}
.footer__tag{font-size:14px; line-height:1.75; max-width:32ch; margin-bottom:24px}
.footer__social{display:flex; gap:10px}
.footer__social a{
  width:40px; height:40px; border-radius:50%; display:grid; place-items:center; color:var(--ivory);
  box-shadow:inset 0 0 0 1px rgba(247,243,234,.16); transition:.45s var(--ease);
}
.footer__social svg{width:17px; height:17px; stroke-width:1.3}
.footer__social a:hover{background:var(--gold); color:var(--ink); box-shadow:none; transform:translateY(-3px)}

.footer__col h4{
  font-family:var(--f-sans); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); font-weight:500; margin-bottom:20px;
}
.footer__col ul li a{
  display:inline-block; padding:6px 0; font-size:14px; position:relative;
  transition:color .35s,transform .4s var(--ease);
}
.footer__col ul li a:hover{color:var(--ivory); transform:translateX(5px)}
.footer__brands li a{
  display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:9px 0;
}
.footer__brands li a:hover{transform:none}
.footer__brands img{
  height:44px; width:auto; background:var(--ivory); padding:6px 10px; border-radius:5px;
  filter:grayscale(.35); transition:filter .4s var(--ease),transform .4s var(--ease);
}
.footer__brands li a:hover img{filter:none; transform:translateX(4px)}
.footer__brands li a:hover img{filter:none}
.footer__brands i{font-style:normal; font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted)}

.footer__col--contact address{font-style:normal; font-size:14px; line-height:1.8; margin-bottom:18px}
.footer__big{
  display:block; font-family:var(--f-display); font-size:clamp(22px,2vw,28px); color:var(--ivory);
  margin-bottom:12px; transition:color .35s;
}
.footer__big:hover{color:var(--gold-lt)}
.footer__col--contact .link-underline{color:var(--gold-lt); font-size:12px}

.footer__marq{overflow:hidden; border-block:1px solid rgba(201,162,75,.18); padding:18px 0}
.footer__marq-track{display:flex; width:max-content; gap:30px; white-space:nowrap; animation:tick 44s linear infinite; align-items:center}
.footer__marq-track span{font-family:var(--f-display); font-size:clamp(20px,2.4vw,34px); color:rgba(247,243,234,.14); font-weight:300}
.footer__marq-track i{color:rgba(201,162,75,.4); font-size:12px; font-style:normal}

.footer__bot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
  padding-block:26px; font-size:12.5px;
}
.footer__bot p{margin:0}
.footer__credit{position:relative; margin-left:18px; padding-left:19px; white-space:nowrap}
.footer__credit::before{
  content:"✦"; position:absolute; left:0; top:50%; transform:translateY(-50%);
  font-size:8px; color:var(--gold); opacity:.7;
}
.footer__credit a{
  color:#B4C6D3; border-bottom:1px solid rgba(201,162,75,.35); padding-bottom:1px;
  transition:color .35s var(--ease),border-color .35s var(--ease);
}
.footer__credit a:hover{color:var(--gold-lt); border-color:var(--gold)}
.footer__bot ul{display:flex; gap:24px}
.footer__bot ul a{transition:color .3s}
.footer__bot ul a:hover{color:var(--gold-lt)}

/* ---------- TO TOP ---------- */
.to-top{
  position:fixed; right:var(--pad); bottom:32px; z-index:800; width:50px; height:50px; border-radius:50%;
  background:var(--gold); color:var(--ink); display:grid; place-items:center;
  opacity:0; visibility:hidden; transform:translateY(16px) scale(.85);
  transition:.55s var(--ease); box-shadow:0 14px 32px -14px rgba(201,162,75,.8);
}
.to-top.is-on{opacity:1; visibility:visible; transform:none}
.to-top svg{width:17px; height:17px; stroke-width:1.6; transition:transform .4s var(--ease)}
.to-top:hover svg{transform:translateY(-3px)}

/* ==========================================================================
   REVEAL ANIMATIONS
   ========================================================================== */
.reveal-up{opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-up.is-in{opacity:1; transform:none}
/* the mask that drives the line reveal must still leave room for descenders
   and for gradient-clipped italics, or glyphs like g/y/j get sheared off */
.split-lines .sl{display:block; overflow:hidden; padding-bottom:.18em; margin-bottom:-.18em}
.split-lines .sl>i{display:block; font-style:inherit; transform:translateY(105%); transition:transform 1s var(--ease)}
.split-lines.is-in .sl>i{transform:none}
.split-lines.is-in .sl:nth-child(2)>i{transition-delay:.09s}
.split-lines.is-in .sl:nth-child(3)>i{transition-delay:.18s}
.split-lines.is-in .sl:nth-child(4)>i{transition-delay:.27s}
.reveal-stagger>*{opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-stagger.is-in>*{opacity:1; transform:none}
.reveal-stagger.is-in>*:nth-child(1){transition-delay:.05s}
.reveal-stagger.is-in>*:nth-child(2){transition-delay:.13s}
.reveal-stagger.is-in>*:nth-child(3){transition-delay:.21s}
.reveal-stagger.is-in>*:nth-child(4){transition-delay:.29s}
.hall{opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease),transform .8s var(--ease)}
.halls.is-in .hall{opacity:1; transform:none}
.halls.is-in .hall:nth-child(2){transition-delay:.08s}
.halls.is-in .hall:nth-child(3){transition-delay:.16s}
.halls.is-in .hall:nth-child(4){transition-delay:.24s}
.halls.is-in .hall:nth-child(5){transition-delay:.32s}
.halls.is-in .hall:nth-child(6){transition-delay:.4s}
.brandcard{opacity:0; transform:translateY(34px)}
.brandcard.is-in{opacity:1; transform:none; transition:opacity .9s var(--ease),transform .9s var(--ease),box-shadow .7s var(--ease)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1240px){
  .nav__list{gap:0}
  .nav__link{padding:10px 11px; font-size:11px; letter-spacing:.12em}
  .brandmark img{width:62px}
  .header__cta{padding:13px 18px; font-size:11px}
}
@media (max-width:1080px){
  .header__cta{display:none}
}
@media (max-width:1024px){
  :root{--hdr:104px}
  .header__bar{grid-template-columns:1fr auto 1fr}
  /* keep both rails as grid items so the mark stays centred; hide only the links */
  .nav--l .nav__list,.nav--r .nav__list{display:none}
  .nav--r{justify-content:flex-end}
  .burger{display:flex}
  .intro__grid,.cuisine__grid{grid-template-columns:1fr; gap:52px}
  .intro__visual{max-width:520px; padding-block:20px 60px}
  .cuisine__gallery{max-width:560px}
  .brandcards{grid-template-columns:1fr 1fr}
  .brandcards .brandcard:last-child{grid-column:1/-1}
  .brandcards .brandcard:last-child .brandcard__media{aspect-ratio:21/9}
  .svc-grid{grid-template-columns:1fr 1fr}
  .footer__top{grid-template-columns:1fr 1fr 1fr; gap:40px}
  .footer__brand{grid-column:1/-1}
  .enquiry__form{
    border-radius:20px; flex-wrap:wrap; padding:22px; gap:18px;
  }
  .enquiry__field{flex:1 1 42%; min-width:150px}
  .enquiry__div{display:none}
  .enquiry__btn{flex:1 1 100%; justify-content:center}
  .hero__nav{display:none}
}
@media (max-width:720px){
  :root{--sec:clamp(58px,12vw,90px)}
  .header__ticker{font-size:11px}
  .brandmark img{width:52px}
  .header.is-stuck .brandmark img{width:42px}
  .hero{min-height:92svh; padding-bottom:110px}
  .hero__title{font-size:clamp(42px,12vw,66px)}
  .hero__lede{font-size:15px; margin-bottom:30px}
  .hero__cta{gap:10px; margin-bottom:36px}
  .btn{padding:15px 24px; font-size:11px}
  .hero__brands img{height:38px; padding:6px 10px}
  .hero__scroll{display:none}
  .enquiry{margin-top:-40px}
  .marquee__track span{font-size:26px}
  .brandcards{grid-template-columns:1fr}
  .brandcards .brandcard:last-child .brandcard__media{aspect-ratio:16/11}
  .svc-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr; gap:26px 18px}
  .intro__img--b{width:56%; right:-4%}
  .intro__badge{width:100px; height:100px; left:-4%}
  .intro__badge-ring{width:100px; height:100px}
  .intro__badge-core{font-size:27px}
  .cuisine__list b{min-width:auto; flex-basis:100%}
  .cuisine__list li{flex-wrap:wrap; gap:2px}
  .loc-list li{grid-template-columns:1fr auto; gap:12px 16px}
  .loc-list__i{display:none}
  .loc-list h3{font-size:19px}
  .loc-list a{font-size:12px; padding:7px 14px}
  .loc-tab{padding:11px 18px; font-size:11px}
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__col--contact{grid-column:1/-1}
  .footer__bot{flex-direction:column; align-items:flex-start; gap:12px}
  .footer__credit{display:block; margin:8px 0 0; padding-left:0}
  .footer__credit::before{display:none}
  .to-top{width:44px; height:44px; bottom:20px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  .reveal-up,.reveal-stagger>*,.brandcard,.hall{opacity:1 !important; transform:none !important}
  .split-lines .sl>i,.hero__title .w{transform:none !important; opacity:1 !important}
}


/* --- perf: pause decorative loops when their section is out of view --- */
.is-offscreen .marquee__track,
.is-offscreen .gal-row__track,
.is-offscreen .footer__marq-track,
.is-offscreen .intro__badge-ring,
.hero.is-offscreen .hero__grain,
.hero.is-offscreen .hero__glow{animation-play-state:paused}

/* ==========================================================================
   INNER PAGES — shared
   ========================================================================== */
.phero{
  position:relative; background:var(--ink); color:var(--ivory); overflow:hidden;
  padding-block:calc(var(--hdr) + clamp(52px,8vh,96px)) clamp(64px,9vh,110px);
}
.phero__media{position:absolute; inset:0}
.phero__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:kenburns 14s linear forwards}
.phero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg,rgba(11,10,9,.9) 0%,rgba(11,10,9,.62) 44%,rgba(11,10,9,.95) 100%),
    linear-gradient(96deg,rgba(11,10,9,.9) 0%,rgba(11,10,9,.42) 52%,rgba(11,10,9,.18) 100%);
}
.phero__inner{position:relative; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad)}
.crumb{display:flex; align-items:center; gap:9px; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:20px}
.crumb a{color:var(--gold); opacity:.72; transition:opacity .3s}
.crumb a:hover{opacity:1}
.crumb i{font-style:normal; opacity:.4}
.crumb span{color:#B9C8D5}
.phero__title{
  font-family:var(--f-display); font-weight:400; line-height:1.02; letter-spacing:-.012em;
  font-size:clamp(44px,6.4vw,92px); margin:0 0 20px; max-width:16ch;
}
.phero__title em{font-style:italic; color:var(--gold-lt)}
.phero__lede{max-width:60ch; font-size:clamp(15px,1.2vw,18px); color:#CBD9E3; line-height:1.8; margin:0}
.phero__stats{display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,62px); margin-top:42px; padding-top:30px; border-top:1px solid rgba(201,162,75,.22)}
.phero__stats div b{display:block; font-family:var(--f-display); font-size:clamp(28px,3vw,42px); color:var(--gold-lt); line-height:1; font-weight:400}
.phero__stats div span{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:#B9C8D5}

/* generic two-column story block */
.story{display:grid; grid-template-columns:1fr 1fr; gap:clamp(38px,5.5vw,90px); align-items:center}
.story--flip .story__media{order:2}
.story__media{position:relative; border-radius:4px; overflow:hidden; aspect-ratio:4/3}
.story__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease)}
.story__media:hover img{transform:scale(1.05)}
.story__text p{color:#3D5063; max-width:52ch}
.story__text p+p{margin-top:16px}

/* pill filter row */
.pills{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:42px}
.pill{
  border:1px solid rgba(4,37,68,.16); background:transparent; border-radius:100px;
  padding:11px 21px; font-family:var(--f-sans); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:#3D5063; cursor:pointer;
  transition:background .4s var(--ease),color .4s,border-color .4s;
}
.pill:hover{border-color:var(--gold); color:var(--ink)}
.pill.is-on{background:var(--ink); border-color:var(--ink); color:var(--gold-lt)}

/* ---------- LOCATIONS PAGE ---------- */
.propgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.prop{
  position:relative; background:#fff; border:1px solid rgba(4,37,68,.09); border-radius:4px;
  padding:26px 26px 22px; display:flex; flex-direction:column; gap:13px;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .5s;
}
.prop:hover{transform:translateY(-5px); box-shadow:0 28px 54px -30px rgba(4,37,68,.4); border-color:rgba(201,162,75,.5)}
.prop__brand{font-size:11.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-tx)}
.prop__name{font-family:var(--f-display); font-size:24px; font-weight:400; line-height:1.18; margin:0; color:var(--ink)}
.prop__area{font-size:13px; color:#44576A; margin:0}
.prop__foot{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto; padding-top:15px; border-top:1px solid rgba(4,37,68,.08)}
.prop__tel{font-size:14px; color:var(--ink); letter-spacing:.02em; border-bottom:1px solid rgba(201,162,75,.5); padding-bottom:1px}
.prop__tel:hover{color:var(--gold-tx)}
.prop__map{
  display:inline-flex; align-items:center; gap:6px; font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:#44576A; transition:color .3s;
}
.prop__map:hover{color:var(--gold-tx)}
.prop__map svg{width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.4}
.prop.is-hidden{display:none}
.propcount{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#566A7C; margin-bottom:20px}

/* ---------- MENU PAGE ---------- */
.mcat{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:start}
.mcat+.mcat{margin-top:clamp(56px,8vw,110px)}
.mcat--flip .mcat__media{order:2}
.mcat__media{position:relative; border-radius:4px; overflow:hidden; aspect-ratio:4/5; position:sticky; top:calc(var(--hdr) + 20px)}
.mcat__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease)}
.mcat__media:hover img{transform:scale(1.06)}
.mcat__tag{
  position:absolute; left:16px; top:16px; z-index:2; background:rgba(4,37,68,.86); color:var(--gold-lt);
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; padding:8px 14px; border-radius:2px;
  border:1px solid rgba(201,162,75,.34);
}
.mcat__h{font-family:var(--f-display); font-size:clamp(30px,3.4vw,44px); font-weight:400; line-height:1.1; margin:0 0 6px; color:var(--ink)}
.msub{
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-tx);
  margin:32px 0 4px; padding-bottom:9px; border-bottom:1px solid rgba(201,162,75,.32);
}
.mcat__body .msub:first-of-type,.dacc__cols .msub:first-of-type{margin-top:22px}
.mlist{list-style:none; padding:0; margin:0}
.mlist li{
  display:flex; align-items:baseline; gap:12px; padding:12px 0;
  border-bottom:1px solid rgba(4,37,68,.09);
}
.mlist li>span{
  flex:1; font-family:var(--f-display); font-size:19px; line-height:1.3; color:var(--ink);
  position:relative;
}
.mlist li>b{
  font-family:var(--f-sans); font-weight:400; font-size:14px; letter-spacing:.03em;
  color:#3D5063; flex:none; font-variant-numeric:tabular-nums;
}
.mlist li:hover>span{color:var(--gold-tx)}
.mlist li>span{transition:color .3s}
.mlist .veg,.mlist .nonveg{
  width:11px; height:11px; flex:none; border-radius:2px; align-self:center;
  border:1.4px solid #2E7D32; position:relative;
}
.mlist .nonveg{border-color:#9A2A2A}
.mlist .veg::after,.mlist .nonveg::after{content:""; position:absolute; inset:2px; border-radius:50%; background:#2E7D32}
.mlist .nonveg::after{background:#9A2A2A}
.pills--jump{margin-bottom:38px}
.pills--jump .pill{text-decoration:none}
.mstack{display:grid}
.mnote{
  margin-top:26px; padding:18px 22px; border-left:2px solid var(--gold);
  background:rgba(201,162,75,.08); font-size:13.5px; color:#3D5063; line-height:1.7;
}

/* ---------- SERVICES PAGE ---------- */
.sblock{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(34px,5vw,80px); align-items:center}
.sblock+.sblock{margin-top:clamp(60px,9vw,130px)}
.sblock--flip .sblock__media{order:2}
.sblock__media{border-radius:4px; overflow:hidden; aspect-ratio:5/4; position:relative}
.sblock__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease)}
.sblock__media:hover img{transform:scale(1.06)}
.sblock__n{font-family:var(--f-display); font-size:52px; line-height:1; color:rgba(4,37,68,.14); margin-bottom:8px}
.sblock ul{list-style:none; padding:0; margin:22px 0 26px; display:grid; grid-template-columns:1fr 1fr; gap:11px 22px}
.sblock ul li{position:relative; padding-left:20px; font-size:14px; color:#3D5063}
.sblock ul li::before{content:""; position:absolute; left:0; top:.62em; width:8px; height:1px; background:var(--gold)}
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:s}
.step{padding:28px 22px; background:#fff; border:1px solid rgba(4,37,68,.09); border-radius:4px; transition:transform .5s var(--ease),box-shadow .5s}
.step:hover{transform:translateY(-4px); box-shadow:0 24px 46px -28px rgba(4,37,68,.36)}
.step b{display:block; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-tx); margin-bottom:12px}
.step h4{font-family:var(--f-display); font-size:22px; font-weight:400; margin:0 0 9px; color:var(--ink)}
.step p{font-size:13.5px; color:#44576A; margin:0; line-height:1.65}

/* ---------- BLOGS ---------- */
.postgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.post{display:flex; flex-direction:column; background:transparent}
.post__media{border-radius:4px; overflow:hidden; aspect-ratio:4/3; margin-bottom:17px; position:relative}
.post__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.post:hover .post__media img{transform:scale(1.06)}
.post__meta{display:flex; gap:12px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-tx); margin-bottom:10px}
.post__meta span{color:#566A7C}
.post h3{font-family:var(--f-display); font-size:24px; font-weight:400; line-height:1.24; margin:0 0 10px; color:var(--ink)}
.post:hover h3{color:var(--gold-tx)}
.post h3{transition:color .35s}
.post p{font-size:14px; color:#44576A; line-height:1.7; margin:0}
.post--feat{grid-column:1/-1; display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(28px,4vw,58px); align-items:center; margin-bottom:16px}
.post--feat .post__media{aspect-ratio:16/10; margin:0}
.post--feat h3{font-size:clamp(28px,3.4vw,46px); line-height:1.1}
.post--feat p{font-size:15.5px}

/* ---------- CONTACT ---------- */
.cgrid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(38px,5.5vw,86px); align-items:start}
.cform{display:grid; gap:18px}
.cf{display:grid; gap:8px}
.cf label{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-tx)}
.cf input,.cf select,.cf textarea{
  font-family:var(--f-sans); font-size:15px; color:var(--ink); background:transparent;
  border:0; border-bottom:1px solid rgba(4,37,68,.2); padding:11px 2px; width:100%;
  transition:border-color .4s var(--ease);
}
.cf textarea{resize:vertical; min-height:96px}
.cf input:focus,.cf select:focus,.cf textarea:focus{outline:none; border-color:var(--gold)}
.cf input::placeholder,.cf textarea::placeholder{color:#7A8E9F}
.cf--2{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.cinfo{background:var(--ink); color:var(--ivory); border-radius:4px; padding:clamp(28px,3.6vw,46px)}
.cinfo h3{font-family:var(--f-display); font-size:28px; font-weight:400; margin:0 0 22px; color:var(--ivory)}
.cinfo dl{margin:0; display:grid; gap:22px}
.cinfo dt{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:6px}
.cinfo dd{margin:0; font-size:15px; color:#AFC2D0; line-height:1.7}
.cinfo dd a{color:var(--ivory); border-bottom:1px solid rgba(201,162,75,.4)}
.cinfo dd a:hover{color:var(--gold-lt)}
.cbrands{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px}
.cbrand{background:#fff; border:1px solid rgba(4,37,68,.09); border-radius:4px; padding:22px; text-align:center}
.cbrand img{height:42px; width:auto; margin:0 auto 14px; object-fit:contain}
.cbrand a{font-size:15px; color:var(--ink); border-bottom:1px solid rgba(201,162,75,.5)}
.cbrand a:hover{color:var(--gold-tx)}
.cbrand span{display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#566A7C; margin-top:6px}

/* ---------- TIMELINE (about) ---------- */
.tl{position:relative; display:grid; gap:0}
.tl::before{content:""; position:absolute; left:15px; top:6px; bottom:6px; width:1px; background:rgba(201,162,75,.3)}
.tlrow{position:relative; padding:0 0 40px 54px}
.tlrow:last-child{padding-bottom:0}
.tlrow::before{
  content:""; position:absolute; left:9px; top:7px; width:13px; height:13px; border-radius:50%;
  background:var(--ivory); border:1.5px solid var(--gold);
}
.tlrow b{display:block; font-family:var(--f-display); font-size:30px; color:var(--gold-tx); line-height:1; margin-bottom:9px; font-weight:400}
.tlrow h4{font-family:var(--f-display); font-size:23px; font-weight:400; margin:0 0 8px; color:var(--ink)}
.tlrow p{font-size:14.5px; color:#3D5063; margin:0; line-height:1.72; max-width:52ch}

@media (max-width:1024px){
  .story,.mcat,.sblock,.cgrid,.post--feat{grid-template-columns:1fr; gap:36px}
  .story--flip .story__media,.mcat--flip .mcat__media,.sblock--flip .sblock__media{order:0}
  .mcat__media{position:relative; top:auto; max-width:480px}
  .propgrid,.postgrid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .propgrid,.postgrid,.steps,.cbrands,.sblock ul,.cf--2{grid-template-columns:1fr}
  .phero__stats{gap:22px 34px}
  .mlist li{flex-wrap:wrap; gap:9px}
}
.sec-head__side{display:flex; flex-direction:column; align-items:flex-start; gap:20px; max-width:44ch}
.pill i{font-style:normal; opacity:.5; margin-left:5px; font-size:11px}
.cform__note{margin:4px 0 0; font-size:13px; min-height:1.2em}
.cform__note.is-ok{color:#2E7D32}
.cform__note.is-bad{color:#9A2A2A}
/* flipped service blocks keep the media on the narrow column */
.sblock--flip{grid-template-columns:1.15fr .85fr}
/* a tall text column (e.g. the timeline) lets its media track the scroll */
.story--sticky{align-items:start}
.story--sticky .story__media{position:sticky; top:calc(var(--hdr) + 24px)}
@media (max-width:1024px){
  .sblock--flip{grid-template-columns:1fr}
  .story--sticky .story__media{position:relative; top:auto}
}
/* jump-link targets clear the fixed header */
.mcat,.sblock{scroll-margin-top:calc(var(--hdr) + 24px)}

/* ==========================================================================
   HOMEPAGE — STAY / DINE / CELEBRATE
   ========================================================================== */

/* --- hero rotator --- */
.hero__rotator{position:relative}
.hero__title{position:relative; min-height:1.88em; max-width:none}
.hrot{
  display:block; opacity:0; visibility:hidden;
  transform:translateY(18px); transition:opacity .7s var(--ease),transform .7s var(--ease),visibility .7s;
}
.hero__title .hrot{position:absolute; inset:0}
.hero__title .hrot.is-active,.hero__lede .hrot.is-active{opacity:1; visibility:visible; transform:none}
.hero__title .hrot:first-child{position:relative}
.hero__lede{position:relative; min-height:3.2em}
.hero__lede .hrot{position:absolute; inset:0}
.hero__lede .hrot:first-child{position:relative}

.hero__tabs{display:flex; gap:0; margin-top:44px; border-top:1px solid rgba(247,243,234,.16)}
.hero__tab{
  flex:1; max-width:210px; display:flex; align-items:baseline; gap:11px; padding:20px 4px 0;
  background:none; border:0; cursor:pointer; color:rgba(247,243,234,.55);
  font-family:var(--f-sans); position:relative; text-align:left;
  transition:color .4s var(--ease);
}
.hero__tab::before{
  content:""; position:absolute; left:0; right:14px; top:-1px; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease);
}
.hero__tab i{font-style:normal; font-size:11px; letter-spacing:.2em; opacity:.7}
.hero__tab b{font-family:var(--f-display); font-size:clamp(19px,1.8vw,25px); font-weight:400}
.hero__tab:hover{color:var(--ivory)}
.hero__tab.is-on{color:var(--gold-lt)}
.hero__tab.is-on::before{transform:scaleX(1)}

/* --- booking bar --- */
.bk{
  position:relative; background:var(--ivory); border-radius:4px;
  box-shadow:0 30px 70px -34px rgba(4,37,68,.6), inset 0 0 0 1px rgba(201,162,75,.28);
}
.bk__tabs{display:flex; gap:2px; padding:0 clamp(16px,2vw,26px); border-bottom:1px solid rgba(4,37,68,.09)}
.bk__tab{
  background:none; border:0; cursor:pointer; padding:17px 22px; position:relative;
  font-family:var(--f-sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:#44576A; transition:color .35s;
}
.bk__tab::after{
  content:""; position:absolute; left:22px; right:22px; bottom:-1px; height:2px; background:var(--gold);
  transform:scaleX(0); transition:transform .45s var(--ease);
}
.bk__tab:hover{color:var(--ink)}
.bk__tab.is-on{color:var(--ink)}
.bk__tab.is-on::after{transform:scaleX(1)}

.bk__form{display:none; align-items:flex-end; gap:0; padding:20px clamp(16px,2vw,26px)}
.bk__form.is-on{display:flex}
.bk__f{flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; padding:0 clamp(12px,1.6vw,22px)}
.bk__f label{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-tx)}
.bk__f input,.bk__f select{
  font-family:var(--f-sans); font-size:15px; color:var(--ink); background:transparent;
  border:0; padding:4px 0; width:100%; cursor:pointer;
}
.bk__f input:focus,.bk__f select:focus{outline:none}
.bk__f input::placeholder{color:#7A8E9F}
.bk__div{width:1px; align-self:stretch; background:rgba(4,37,68,.1); flex:none}
.bk__btn{
  flex:none; display:inline-flex; align-items:center; gap:10px; margin-left:clamp(12px,1.6vw,22px);
  background:var(--ink); color:var(--gold-lt); border:0; border-radius:100px; cursor:pointer;
  padding:16px 26px; font-family:var(--f-sans); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; transition:background .4s var(--ease),color .4s;
}
.bk__btn svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .4s var(--ease)}
.bk__btn:hover{background:var(--gold); color:var(--ink)}
.bk__btn:hover svg{transform:translateX(4px)}
.bk__note{margin:0; padding:0 26px 16px; font-size:13px; color:#2E7D32; min-height:1.1em}

/* --- welcome + offerings --- */
.welcome{background:var(--ivory)}
.welcome__grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(38px,5.5vw,88px); align-items:center}
.welcome__media{margin:0; position:relative; border-radius:4px; overflow:hidden}
.welcome__media img{width:100%; display:block; transition:transform 1.4s var(--ease)}
.welcome__media:hover img{transform:scale(1.04)}
.welcome__media figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:38px 22px 16px;
  background:linear-gradient(180deg,transparent,rgba(11,10,9,.86));
  color:var(--ivory); font-size:12px; letter-spacing:.06em;
}
.offers{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  margin-top:clamp(52px,7vw,96px); background:rgba(4,37,68,.1);
  border:1px solid rgba(4,37,68,.1); border-radius:4px; overflow:hidden;
}
.offer{
  background:var(--ivory); padding:30px clamp(20px,2.2vw,32px);
  display:flex; flex-direction:column; gap:9px; transition:background .45s var(--ease);
}
.offer:hover{background:#fff}
.offer__ico{
  width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(201,162,75,.4); margin-bottom:6px; transition:background .45s var(--ease),border-color .45s;
}
.offer__ico svg{width:21px; height:21px; fill:none; stroke:var(--gold-dp); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round}
.offer:hover .offer__ico{background:var(--ink); border-color:var(--ink)}
.offer:hover .offer__ico svg{stroke:var(--gold-lt)}
.offer b{font-family:var(--f-display); font-size:21px; font-weight:400; color:var(--ink); line-height:1.25}
.offer span{font-size:13.5px; color:#44576A; line-height:1.65}

/* --- locations auto-scroller --- */
.locscroll{background:var(--sand); padding-block:var(--sec); overflow:hidden}
/* a real scroller, driven by the arrows / drag / wheel — not a marquee you
   cannot stop on the property you actually want to look at */
.locscroll__viewport{margin-top:clamp(34px,4vw,54px)}
.locscroll__track{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-inline:var(--pad); padding-bottom:10px;
  scrollbar-width:none; cursor:grab; scroll-behavior:smooth;
}
.locscroll__track::-webkit-scrollbar{display:none}
.locscroll__track.is-drag{cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto}
.locscroll__track:focus-visible{outline:2px solid var(--gold); outline-offset:4px}
.locslide{flex:none; width:clamp(230px,22vw,300px); display:block; scroll-snap-align:start}
.locslide__media{display:block; aspect-ratio:4/5; border-radius:4px; overflow:hidden; position:relative}
.locslide__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease)}
.locslide:hover .locslide__media img{transform:scale(1.07)}
.locslide__media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 52%,rgba(11,10,9,.62))}
.locslide__body{display:block; padding:14px 2px 0}
.locslide__body b{display:block; font-family:var(--f-display); font-size:20px; font-weight:400; color:var(--ink)}
.locslide__body i{font-style:normal; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-tx)}

/* --- stay / dine / celebrate blocks --- */
.journeys{background:var(--ivory)}
.jblock{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,5vw,84px); align-items:center}
.jblock+.jblock{margin-top:clamp(60px,9vw,128px)}
.jblock--flip{grid-template-columns:.95fr 1.05fr}
.jblock--flip .jblock__media{order:2}
.jblock__media{position:relative; border-radius:4px; overflow:hidden; aspect-ratio:4/3; display:block}
.jblock__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease)}
.jblock__media:hover img{transform:scale(1.06)}
.jblock__badge{
  position:absolute; left:18px; top:18px; background:rgba(4,37,68,.88); color:var(--gold-lt);
  font-size:11px; letter-spacing:.24em; text-transform:uppercase; padding:9px 16px;
  border-radius:2px; border:1px solid rgba(201,162,75,.34);
}
.jblock__list{list-style:none; padding:0; margin:22px 0 28px; display:flex; flex-wrap:wrap; gap:9px}
.jblock__list li{
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-tx);
  border:1px solid rgba(201,162,75,.36); border-radius:100px; padding:7px 15px;
}

@media (max-width:1024px){
  .welcome__grid,.jblock,.jblock--flip{grid-template-columns:1fr; gap:38px}
  .jblock--flip .jblock__media{order:0}
  .offers{grid-template-columns:1fr 1fr}
  .bk__form{flex-wrap:wrap; gap:16px 0; padding:20px}
  .bk__f{flex:1 1 44%; min-width:150px}
  .bk__div{display:none}
  .bk__btn{flex:1 1 100%; justify-content:center; margin-left:0; margin-top:6px}
}
@media (max-width:720px){
  .offers{grid-template-columns:1fr}
  .hero__tabs{flex-wrap:wrap; gap:0}
  .hero__tab{flex:1 1 33%; max-width:none; padding-top:15px}
  .hero__tab b{font-size:17px}
  .hero__lede{min-height:5.4em}
  .bk__f{flex:1 1 100%}
}

/* ==========================================================================
   ROOMS / DINING / MAP
   ========================================================================== */
.rgrid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px}
.rcard{background:#fff; border:1px solid rgba(4,37,68,.09); border-radius:4px; overflow:hidden;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.rcard:hover{transform:translateY(-6px); box-shadow:0 34px 60px -36px rgba(4,37,68,.45)}
.rcard__media{position:relative; margin:0; aspect-ratio:16/10; overflow:hidden}
.rcard__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease)}
.rcard:hover .rcard__media img{transform:scale(1.06)}
.rcard__tag{position:absolute; left:14px; top:14px; background:rgba(4,37,68,.88); color:var(--gold-lt);
  font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; padding:7px 13px; border-radius:2px}
.rcard__body{padding:24px clamp(20px,2.2vw,30px) 26px}
.rcard__body h3{font-family:var(--f-display); font-size:27px; font-weight:400; margin:0 0 9px; color:var(--ink)}
.rcard__body p{font-size:14px; color:#44576A; line-height:1.72; margin:0 0 16px}
.rcard__body ul{list-style:none; padding:0; margin:0 0 18px; display:flex; flex-wrap:wrap; gap:8px}
.rcard__body ul li{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-tx);
  border:1px solid rgba(201,162,75,.34); border-radius:100px; padding:6px 13px}

.amen{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.amen li{display:flex; align-items:center; gap:13px; padding:20px; background:var(--ivory);
  border:1px solid rgba(4,37,68,.08); border-radius:4px; font-size:14px; color:#3D5063}
.amen svg{width:22px; height:22px; flex:none; fill:none; stroke:var(--gold-dp); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round}

.dgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.dcard__media{margin:0 0 17px; aspect-ratio:4/3; border-radius:4px; overflow:hidden}
.dcard__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.dcard:hover .dcard__media img{transform:scale(1.06)}
.dcard h3{font-family:var(--f-display); font-size:25px; font-weight:400; margin:0 0 9px; color:var(--ink)}
.dcard p{font-size:14px; color:#44576A; line-height:1.72; margin:0}

/* collapsible menu by department */
.dstack{border-top:1px solid rgba(4,37,68,.14)}
.dacc{border-bottom:1px solid rgba(4,37,68,.14)}
.dacc__head{width:100%; display:flex; align-items:center; gap:16px; text-align:left; cursor:pointer;
  padding:24px 4px; background:none; border:0; color:var(--ink); font-family:var(--f-sans);
  transition:padding-left .45s var(--ease)}
.dacc__head em{font-style:normal; font-size:11px; letter-spacing:.2em; color:var(--gold-tx); opacity:.7}
.dacc__head b{flex:1; font-family:var(--f-display); font-size:clamp(24px,2.6vw,34px); font-weight:400; line-height:1.15}
.dacc__n{font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:#566A7C}
.dacc__ico{position:relative; width:14px; height:14px; flex:none}
.dacc__ico::before,.dacc__ico::after{content:""; position:absolute; left:50%; top:50%; background:var(--gold-dp);
  transform:translate(-50%,-50%); transition:transform .45s var(--ease),opacity .35s}
.dacc__ico::before{width:14px; height:1px}
.dacc__ico::after{width:1px; height:14px}
.dacc:hover .dacc__head{padding-left:10px}
.dacc.is-open .dacc__head b{color:var(--gold-tx)}
.dacc.is-open .dacc__ico::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0}
/* Height-driven, not grid-template-rows:0fr/1fr — that animation needs
   Chrome 107+/Safari 16+ and silently refuses to open on anything older.
   Default is open so the menu is readable with JS off; main.js collapses
   the panels on load and drives the height from there. */
.dacc__body{overflow:hidden; transition:height .5s var(--ease)}
.dacc__body.is-shut{height:0}
.dacc__in{min-height:0}
.dacc__cols{columns:2; column-gap:clamp(30px,4vw,70px); padding-bottom:12px}
.dacc__cols .msub{break-after:avoid}
.dacc__cols .mlist{break-inside:auto; margin-bottom:22px}
.dacc__cols .mlist li{break-inside:avoid}

/* map — Google embed panel */
.gmap{
  border:1px solid rgba(4,37,68,.12); border-radius:4px; overflow:hidden;
  margin-bottom:34px; background:var(--ivory);
}
.gmap__bar{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px clamp(16px,2vw,24px); border-bottom:1px solid rgba(4,37,68,.1);
}
.gmap__who{min-width:0}
.gmap__who b{display:block; font-family:var(--f-display); font-size:21px; font-weight:400; color:var(--ink); line-height:1.2}
.gmap__who span{display:block; font-size:12.5px; color:#44576A; margin-top:3px}
.gmap__dir{
  flex:none; display:inline-flex; align-items:center; gap:8px; padding:11px 19px;
  border-radius:100px; background:var(--ink); color:var(--gold-lt);
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  transition:background .4s var(--ease),color .4s;
}
.gmap__dir svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.4}
.gmap__dir:hover{background:var(--gold); color:var(--ink)}
.gmap__frame{display:block; width:100%; height:clamp(340px,50vh,520px); border:0}

.prop{cursor:default}
.prop.is-shown{border-color:rgba(201,162,75,.7); box-shadow:0 20px 44px -28px rgba(4,37,68,.38)}
.prop__show{
  display:inline-flex; align-items:center; gap:6px; background:none; border:0; cursor:pointer;
  font-family:var(--f-sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:#44576A; padding:0; transition:color .3s;
}
.prop__show svg{width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.4}
.prop__show:hover,.prop.is-shown .prop__show{color:var(--gold-tx)}
.prop__dir{
  display:inline-block; margin-top:12px; font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold-tx); border-bottom:1px solid rgba(201,162,75,.4);
  padding-bottom:2px; width:fit-content;
}
.prop__dir:hover{color:var(--ink); border-color:var(--ink)}
.locmap__fallback{padding:40px; text-align:center; color:#44576A}

@media (max-width:1024px){
  .rgrid,.dgrid{grid-template-columns:1fr 1fr}
  .amen{grid-template-columns:1fr 1fr}
  .dacc__cols{columns:1}
}
@media (max-width:720px){
  .rgrid,.dgrid,.amen{grid-template-columns:1fr}
  .dacc__n{display:none}
}
.story__media figcaption{position:absolute; left:0; right:0; bottom:0; padding:38px 20px 15px;
  background:linear-gradient(180deg,transparent,rgba(11,10,9,.86)); color:var(--ivory); font-size:12px; letter-spacing:.05em}
.story__media--tall{aspect-ratio:3/2}
.hrot em{font-style:italic; color:var(--gold-lt)}
.hero__lede .hrot em{color:inherit}
.prop__addr{font-style:normal; font-size:12.5px; line-height:1.6; color:#566A7C; margin:2px 0 0}
@media (max-width:720px){
  .gmap__bar{flex-direction:column; align-items:flex-start; gap:14px}
  .gmap__dir{align-self:stretch; justify-content:center}
}

/* ==========================================================================
   CLIENT REVISIONS — Oct 2026
   ========================================================================== */

/* --- brandmark: gold lockup with the house line sitting under it --- */
.brandmark{flex-direction:column; gap:6px}
.brandmark img{width:104px; filter:drop-shadow(0 8px 22px rgba(0,0,0,.55))}
.header.is-stuck .brandmark img{width:76px}
.brandmark__tag{
  font-size:8.6px; letter-spacing:.3em; text-transform:uppercase; white-space:nowrap;
  color:var(--gold-lt); opacity:.78; line-height:1.5;
  max-height:1.5em; overflow:hidden;
  transition:max-height .45s var(--ease),opacity .35s,margin .45s var(--ease);
}
.header.is-stuck .brandmark__tag{max-height:0; opacity:0; margin-top:-6px}
.brandmark::after{bottom:-10px}

/* --- hero: one generic line, given enough weight to register --- */
.hero__line{
  position:relative; margin:26px 0 0; padding-left:20px; max-width:34ch;
  font-family:var(--f-display); font-style:italic; font-weight:300;
  font-size:clamp(20px,2.1vw,30px); line-height:1.35; color:var(--gold-lt);
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}
.hero__line::before{
  content:""; position:absolute; left:0; top:.22em; bottom:.22em; width:2px; border-radius:2px;
  background:linear-gradient(180deg,var(--gold-lt),rgba(201,162,75,0));
}

/* gradient-clipped italics need headroom or the descenders shear */
.hero__title{padding-bottom:.08em}
.hero__title .hrot{padding-bottom:.08em}
.hero__title .hrot em{
  font-style:italic; color:transparent;
  background:linear-gradient(100deg,var(--gold-dp) 0%,var(--gold-lt) 40%,#FFF3D6 55%,var(--gold) 78%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  animation:sheen 6s var(--ease) infinite;
}
@supports not (background-clip:text){.hero__title .hrot em{color:var(--gold-lt); background:none}}

/* --- hero CTAs rotate with the slide: "See the menu" is Dine's alone --- */
.hero__cta{position:relative; min-height:56px; margin-top:34px; display:block}
.hero__cta .hrot{position:absolute; inset:0; display:flex; flex-wrap:wrap; gap:14px}
.hero__cta .hrot:first-child{position:relative}
.hero__cta .hrot.is-active{opacity:1; visibility:visible; transform:none}

/* --- heritage band: the founders' photo running edge to edge --- */
.welcome{padding-top:0}
.heritage{
  position:relative; margin:0 0 clamp(52px,7vw,96px); isolation:isolate;
  min-height:clamp(430px,52vw,620px); display:flex; align-items:center; overflow:hidden;
}
.heritage__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:72% 50%; z-index:-2;
}
.heritage__veil{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(96deg,rgba(3,18,33,.94) 0%,rgba(3,18,33,.86) 30%,rgba(3,18,33,.42) 58%,rgba(3,18,33,.1) 78%,rgba(3,18,33,.3) 100%),
    linear-gradient(180deg,rgba(247,243,234,.9),transparent 16%,transparent 84%,rgba(247,243,234,.9));
}
.heritage__inner{width:100%; padding-block:clamp(56px,7vw,92px)}
.heritage__text{max-width:38rem}
.heritage__text .h2{color:var(--ivory)}
.heritage__text .lead{color:#C7D6E1}
.heritage__text .link-underline{color:var(--gold-lt)}
.heritage__text .link-underline::after{background:var(--gold-lt)}
.heritage__text .eyebrow{color:var(--gold-lt)}
/* sits on the dark side of the band, where it can actually be read */
.heritage__cap{
  position:absolute; left:var(--pad); bottom:20px; z-index:1; margin:0; max-width:34ch;
  font-size:11.5px; letter-spacing:.05em; line-height:1.55; color:rgba(247,243,234,.66);
  padding-left:14px; border-left:1px solid rgba(201,162,75,.55);
}

/* --- carousel controls --- */
.locscroll__aside{display:flex; align-items:center; gap:clamp(16px,2vw,28px); flex-wrap:wrap}
.locnav{display:flex; gap:10px}
.locnav .circle-btn{background:rgba(255,255,255,.5); box-shadow:inset 0 0 0 1px rgba(4,37,68,.18)}
.locnav .circle-btn:hover:not(:disabled){color:var(--ink)}
.locnav .circle-btn svg{stroke-width:1.6}
.locscroll__rail{
  position:relative; height:2px; margin-top:clamp(20px,2.4vw,32px);
  background:rgba(4,37,68,.12); border-radius:2px; overflow:hidden;
}
.locscroll__rail i{
  position:absolute; inset:0 auto 0 0; width:18%; border-radius:2px;
  background:linear-gradient(90deg,var(--gold-dp),var(--gold-lt));
  transition:transform .25s var(--ease);
}
.locslide__body b{transition:color .35s var(--ease)}
.locslide:hover .locslide__body b{color:var(--gold-tx)}

@media (max-width:720px){
  .brandmark img{width:84px}
  .header.is-stuck .brandmark img{width:62px}
  .brandmark__tag{display:none}
  .hero__line{font-size:17px; margin-top:20px}
  .hero__cta{min-height:0}
  .hero__cta .hrot{position:absolute; inset:auto 0 auto 0}
  .hero__cta .hrot:first-child{position:relative}
  /* the caption must stay out of the band's flex flow, or it takes a column */
  .heritage{align-items:flex-start; min-height:0}
  .heritage__img{object-position:64% 50%}
  .heritage__veil{
    background:linear-gradient(180deg,rgba(3,18,33,.93),rgba(3,18,33,.82) 38%,rgba(3,18,33,.95));
  }
  .heritage__inner{padding-block:clamp(48px,12vw,72px) 86px}
  .heritage__cap{left:var(--pad); right:var(--pad); bottom:22px; max-width:none}
}

/* the gold lockup is a wide wordmark, not the old square mark — size to match */
.preloader__logo{width:112px}
.footer__logo{width:150px}

/* ==========================================================================
   GOLD STANDARD PASS — rhythm, depth, motion, mobile
   ========================================================================== */
:root{
  --sec:clamp(64px,7.4vw,116px);
  --r:6px;
  --sh-1:0 1px 2px rgba(4,37,68,.06),0 8px 24px -14px rgba(4,37,68,.22);
  --sh-2:0 2px 6px rgba(4,37,68,.06),0 34px 64px -34px rgba(4,37,68,.5);
}

/* ---------- preloader: logo sits inside the ring, never under it ---------- */
.preloader__inner{width:176px; height:176px}
.preloader__ring{width:176px; height:176px}
.preloader__inner::before{
  content:""; position:absolute; inset:18px; border-radius:50%;
  background:radial-gradient(circle,rgba(201,162,75,.16),transparent 70%);
}
.preloader__logo{width:94px; position:relative; filter:drop-shadow(0 6px 18px rgba(0,0,0,.45))}
.preloader__word{display:none}
.is-returning .preloader{display:none !important}

/* ---------- page transitions: a quick fade, not the full intro ---------- */
html.is-returning body{animation:pageIn .65s var(--ease) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
html.is-leaving body{opacity:0; transition:opacity .3s ease}
.pagebar{
  position:fixed; left:0; top:0; z-index:10000; height:2px; width:100%; pointer-events:none;
  background:linear-gradient(90deg,var(--gold-dp),var(--gold-lt),var(--gold));
  transform:scaleX(0); transform-origin:0 50%;
}
html.is-leaving .pagebar{transform:scaleX(.82); transition:transform .3s var(--ease)}

/* ---------- rhythm ---------- */
.sec-head{margin-bottom:clamp(30px,3.8vw,56px)}
.sec-head .h2{margin-bottom:0}
.h2+p,.h2+.lead,.h2+.tl,.h2+ul,.h2+.story__p{margin-top:clamp(18px,1.8vw,26px)}
.story__text .eyebrow,.sblock__body .eyebrow,.jblock__body .eyebrow{margin-bottom:16px}
.story__text .btn,.sblock__body .btn{margin-top:10px}
.welcome{padding-bottom:var(--sec)}
.heritage{margin-bottom:clamp(36px,4.6vw,64px)}
.offers{margin-top:0}
.jblock+.jblock{margin-top:clamp(56px,7vw,104px)}
.sblock+.sblock{margin-top:clamp(56px,7vw,104px)}
.mcat+.mcat{margin-top:clamp(52px,6.5vw,96px)}
.lead{color:#33475C}

/* ---------- rotators stack in one grid cell: tallest slide sets the height,
              so a long headline or wrapped buttons can never spill out ---------- */
.hero__title{display:grid; min-height:0}
.hero__title .hrot,.hero__title .hrot:first-child{grid-area:1/1; position:relative; inset:auto}
.hero__cta{display:grid; min-height:0}
.hero__cta .hrot,.hero__cta .hrot:first-child{grid-area:1/1; position:relative; inset:auto; display:flex; flex-wrap:wrap; gap:14px; align-self:start}
.testi__items{display:grid; min-height:0}
.testi__item{grid-area:1/1; position:relative; inset:auto}

/* ---------- hero depth ---------- */
.hero{perspective:1600px}
.hero__media{will-change:transform; transform-origin:50% 40%}
.hero__inner{will-change:transform,opacity; transform-style:preserve-3d}
.hero__fx{position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; mix-blend-mode:screen}
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:120px; z-index:2; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(4,37,68,.35));
}

/* ---------- scroll-linked image parallax ---------- */
@property --pz{syntax:'<number>'; inherits:false; initial-value:1.14}
.px-img{
  transform:translate3d(0,var(--py,0px),0) scale(var(--pz)) !important;
  transition:--pz 1.1s var(--ease) !important; will-change:transform;
}
.heritage__img.px-img{--pz:1.24}
.cta__media img.px-img{--pz:1.12}
.jblock__media:hover .px-img,.story__media:hover .px-img,.sblock__media:hover .px-img,
.rcard:hover .px-img,.dcard:hover .px-img,.post:hover .px-img,.mcat__media:hover .px-img{--pz:1.2}

/* ---------- 3D tilt cards (fine pointers only; JS opts in) ---------- */
.tilt{position:relative; transition:opacity .9s var(--ease),transform .7s var(--ease),box-shadow .6s var(--ease)}
.tilt.tilt:hover{
  transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px);
  transition:opacity .9s var(--ease),transform .22s ease-out,box-shadow .6s var(--ease);
}
.tilt__glare{
  position:absolute; inset:0; z-index:3; pointer-events:none; border-radius:inherit; opacity:0;
  background:radial-gradient(420px circle at var(--gx,50%) var(--gy,50%),rgba(255,248,230,.22),transparent 45%);
  transition:opacity .4s var(--ease);
}
.tilt:hover .tilt__glare{opacity:1}

/* ---------- framed imagery: a hairline gold inset, the house signature ---------- */
.jblock__media,.story__media,.sblock__media{border-radius:var(--r); box-shadow:var(--sh-2)}
.jblock__media::after,.story__media::before,.sblock__media::after{
  content:""; position:absolute; inset:14px; z-index:2; pointer-events:none;
  border:1px solid rgba(231,206,147,.42); border-radius:2px;
  transition:inset .7s var(--ease),border-color .7s var(--ease);
}
.jblock__media:hover::after,.story__media:hover::before,.sblock__media:hover::after{inset:20px; border-color:rgba(231,206,147,.7)}
.jblock__badge{z-index:3; backdrop-filter:blur(8px)}

/* ---------- heritage stats ---------- */
.hstats{
  display:grid; grid-template-columns:repeat(4,auto); justify-content:start; gap:clamp(22px,3.4vw,52px);
  margin:30px 0 32px; padding:22px 0 0; border-top:1px solid rgba(201,162,75,.28); list-style:none;
}
.hstats li{display:flex; flex-direction:column; gap:6px}
.hstats b{font-family:var(--f-display); font-weight:400; font-size:clamp(30px,3vw,44px); line-height:1; color:var(--gold-lt)}
.hstats span{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:#BCCAD6}

/* ---------- offers: cards with breathing room ---------- */
.offers{border-radius:var(--r); box-shadow:var(--sh-1)}
.offer{padding:clamp(24px,2.4vw,34px)}
.offer:hover{background:#fff}
.offer:hover .offer__ico{transform:rotate(-8deg) scale(1.06)}
.offer__ico{transition:background .45s var(--ease),border-color .45s,transform .5s var(--ease)}

/* ---------- carousel cards ---------- */
.locslide__media{border-radius:var(--r); box-shadow:var(--sh-1)}
.locslide__body{padding-top:16px}
.locslide__body b{font-size:21px; line-height:1.2}
.locslide__body i{display:block; margin-top:4px}

/* ---------- brand cards ---------- */
.brandcard{border-radius:var(--r); box-shadow:var(--sh-1)}
.brandcard:hover{box-shadow:var(--sh-2)}
.brandcard__logo{height:58px}

/* ---------- testimonials ---------- */
.testi__item p{max-width:30ch; margin-inline:auto; text-wrap:balance}
@supports not (text-wrap:balance){.testi__item p{max-width:34ch}}

/* ---------- CTA band: always on a dark photograph ---------- */
.cta{background:var(--ink); isolation:isolate}
.cta__media{z-index:-2; overflow:hidden}
.cta__scrim{z-index:-1;
  background:
    radial-gradient(70% 80% at 50% 50%,rgba(4,37,68,.55),rgba(3,18,33,.92) 78%),
    linear-gradient(180deg,rgba(3,18,33,.6),rgba(3,18,33,.85));
}
.cta__inner{margin-inline:auto}
.cta .lead,.cta__note{color:#C7D6E1; max-width:50ch; margin:0 auto 34px}
.cta .h2{margin-bottom:20px}
.cta .h2 em{background:linear-gradient(100deg,var(--gold),var(--gold-lt) 50%,var(--gold)); -webkit-background-clip:text; background-clip:text}
.cta--home{padding-block:clamp(96px,11vw,160px)}

/* ---------- inner page hero ---------- */
.phero{min-height:clamp(440px,64vh,640px); display:flex; align-items:flex-end}
.phero>.phero__inner{width:100%}
.phero__media{will-change:transform}
.phero__inner{will-change:transform,opacity}
.phero__title{text-wrap:balance}
.phero::after{
  content:""; position:absolute; left:var(--pad); bottom:0; width:1px; height:56px;
  background:linear-gradient(180deg,transparent,var(--gold)); opacity:.7;
}

/* ---------- inner cards ---------- */
.rcard,.prop,.step,.cbrand,.cinfo,.post__media,.dcard__media,.mcat__media{border-radius:var(--r)}
.rcard{box-shadow:var(--sh-1); border-color:rgba(4,37,68,.07)}
.rcard:hover{box-shadow:var(--sh-2)}
.rcard__media{border-radius:0}
.rcard__body h3{font-size:clamp(25px,2.2vw,30px)}
.dcard h3{font-family:var(--f-display); font-weight:400; font-size:24px; margin:0 0 8px; color:var(--ink)}
.dcard p{font-size:14px; color:#44576A; line-height:1.7; margin:0}
.dcard__media{box-shadow:var(--sh-1)}
.step{box-shadow:var(--sh-1); border-color:rgba(4,37,68,.07)}
.amen li{border-radius:var(--r); transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .4s}
.amen li:hover{transform:translateY(-3px); box-shadow:var(--sh-1); background:#fff}
.post__media{box-shadow:var(--sh-1)}

/* property cards with photography */
.prop{overflow:hidden; box-shadow:var(--sh-1); border-color:rgba(4,37,68,.07); padding:0 24px 22px; gap:10px}
.prop:hover{box-shadow:var(--sh-2)}
.prop__media{
  position:relative; margin:0 -24px 10px; aspect-ratio:16/10; overflow:hidden; background:var(--sand);
}
.prop__media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.prop:hover .prop__media img{transform:scale(1.06)}
.prop__media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(4,37,68,.28))}
.prop__media--logo{
  display:grid; place-items:center;
  background:
    radial-gradient(80% 90% at 50% 40%,#fff,transparent 70%),
    repeating-linear-gradient(135deg,rgba(201,162,75,.07) 0 1px,transparent 1px 14px),
    var(--sand);
}
.prop__media--logo::after{display:none}
.prop__media--logo img{width:auto; height:auto; max-width:52%; max-height:46%; object-fit:contain; opacity:.92}
.prop:hover .prop__media--logo img{transform:scale(1.04)}

/* ---------- to-top: lighter, smaller, glassy ---------- */
.to-top{background:rgba(201,162,75,.92); backdrop-filter:blur(8px)}

/* ---------- footer polish ---------- */
.footer__logo{width:140px}
.footer__social a{transition:.4s var(--ease)}

/* ==========================================================================
   MOBILE
   ========================================================================== */
@media (max-width:1024px){
  .hstats{grid-template-columns:repeat(2,auto); gap:22px 40px}
  .story,.sblock,.sblock--flip,.mcat{gap:30px}
}
@media (max-width:720px){
  :root{--sec:clamp(56px,14vw,76px)}
  body{font-size:15.5px}
  .h2{font-size:clamp(34px,9.4vw,44px); line-height:1.06}
  .lead{font-size:16px; line-height:1.72}
  .eyebrow{font-size:11.5px; letter-spacing:.2em; margin-bottom:14px}
  .sec-head{margin-bottom:28px}
  .sec-head--split{gap:18px}

  /* hero */
  .hero{min-height:100svh; padding-bottom:96px}
  .hero__title{font-size:clamp(44px,12.6vw,58px); line-height:.98}
  .hero__line{font-size:18px; margin-top:18px}
  .hero__cta{margin-top:26px}
  .hero__cta .hrot{gap:10px}
  .hero__cta .btn{flex:1 1 auto; justify-content:center; padding:15px 18px}
  .hero__tabs{margin-top:30px}
  .hero__tab{padding-top:14px}
  .hero__tab b{font-size:16px}
  .hero__tab i{display:none}

  /* booking */
  .enquiry{margin-top:-36px}
  .bk{margin-inline:0; border-radius:var(--r)}
  .bk__tab{padding:16px 16px; flex:1}
  .bk__tabs{padding:0 8px}
  .bk__form{padding:18px 16px 16px; gap:14px 0}
  .bk__f{padding:0 4px}
  .bk__f input,.bk__f select{font-size:16px; padding:8px 0; border-bottom:1px solid rgba(4,37,68,.12)}
  .bk__btn{padding:16px 22px}

  /* heritage */
  .hstats{grid-template-columns:repeat(2,1fr); gap:20px 18px; margin:24px 0 26px}
  .hstats b{font-size:32px}

  /* offers */
  .offer{padding:22px 20px; flex-direction:row; flex-wrap:wrap; align-items:center; column-gap:16px; row-gap:4px}
  .offer__ico{margin:0; flex:none; width:40px; height:40px}
  .offer b{flex:1; font-size:20px}
  .offer>span:not(.offer__ico){flex-basis:100%; padding-left:56px}

  /* carousel */
  .locslide{width:72vw}
  .locscroll__aside{width:100%; justify-content:space-between}
  .locscroll__track{gap:14px}

  /* journeys */
  .jblock__media{aspect-ratio:4/3.2}
  .jblock__media::after,.story__media::before,.sblock__media::after{inset:10px}
  .jblock__list{margin:18px 0 22px}
  .jblock__body .btn{width:100%; justify-content:center}

  /* brands */
  .brandcard__body{padding:22px 20px 6px}
  .brandcard__foot{padding:16px 20px 20px}

  /* testimonials */
  .testi__item p{font-size:24px; line-height:1.36}
  .testi__quote{width:46px; height:34px; margin-bottom:22px}

  /* CTA */
  .cta__btns{flex-direction:column; align-items:stretch; max-width:340px; margin-inline:auto}
  .cta__btns .btn,.cta .btn{justify-content:center}

  /* inner hero */
  .phero{min-height:0; padding-block:calc(var(--hdr) + 40px) 56px}
  .phero__title{font-size:clamp(38px,10.4vw,50px)}
  .phero__lede{font-size:15.5px}
  .phero__stats{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:30px; padding-top:22px}
  .phero::after{height:36px}

  /* inner content */
  .rcard__body{padding:22px 20px 24px}
  .amen{grid-template-columns:1fr 1fr; gap:12px}
  .amen li{padding:16px 14px; font-size:13px; gap:10px}
  .pills{gap:8px; margin-bottom:28px}
  .pill{padding:10px 16px; font-size:11.5px}
  .prop{padding:0 20px 20px}
  .prop__media{margin:0 -20px 8px}
  .post--feat{gap:22px}
  .cinfo{padding:28px 22px}
  .tlrow{padding:0 0 32px 46px}

  /* chrome */
  .to-top{right:16px; bottom:16px; width:42px; height:42px}
  .footer__logo{width:120px}
}
@media (max-width:380px){
  .hero__cta .btn{padding:14px 14px; font-size:11.5px; letter-spacing:.12em}
  .amen{grid-template-columns:1fr}
}

/* motion off: keep it all still */
@media (prefers-reduced-motion:reduce){
  .px-img{transform:none !important}
  html.is-returning body{animation:none}
  .hero__fx{display:none}
}

/* sequential cross-fade: the outgoing line clears before the next arrives,
   so two headlines / quotes never sit on top of each other */
.hrot,.testi__item{
  transition:opacity .32s ease,transform .5s var(--ease),visibility 0s linear .32s !important;
}
.hrot.is-active,.testi__item.is-active{
  transition:opacity .7s var(--ease) .26s,transform .9s var(--ease) .26s,visibility 0s linear 0s !important;
}
.testi__item{visibility:hidden}
.testi__item.is-active{visibility:visible}

/* headings never leave a lone word on its own line */
.h2,.split-lines .sl>i,.phero__title,.cta .h2,.mcat__h,.rcard__body h3,.post h3{text-wrap:balance}
@media (max-width:380px){.amen{grid-template-columns:1fr 1fr}}
@media (max-width:340px){.amen{grid-template-columns:1fr}}
@media (max-width:720px){
  .cform .btn,.cform button[type="submit"]{width:100%; justify-content:center}
  .step{padding:22px 20px}
}

/* booking card: an inset card, not a full-bleed strip */
.enquiry .bk.container{
  width:calc(100% - var(--pad)*2); max-width:1240px; padding-inline:0; border-radius:var(--r);
  box-shadow:0 40px 80px -40px rgba(4,37,68,.55),inset 0 0 0 1px rgba(201,162,75,.3);
}
.enquiry .bk__tabs{padding:0 clamp(16px,2.2vw,30px)}
.enquiry .bk__form{padding:22px clamp(16px,2.2vw,30px)}

/* hero type respects short laptop screens as well as narrow ones */
.hero__title{font-size:clamp(52px,min(8.6vw,14.5vh),150px)}
@media (max-width:720px){.hero__title{font-size:clamp(42px,12.4vw,58px)}}

.testi__item p{max-width:38ch}
@media (max-width:720px){
  .testi__item p{max-width:none}
  .enquiry .bk.container{width:calc(100% - 32px)}
}

/* step / value cards: a confident number, a gold rule that draws on hover */
.step{position:relative; overflow:hidden; background:#fff; padding:clamp(26px,2.4vw,36px) clamp(22px,2vw,30px)}
.step::before{
  content:""; position:absolute; left:0; top:0; height:2px; width:100%;
  background:linear-gradient(90deg,var(--gold-dp),var(--gold-lt));
  transform:scaleX(.16); transform-origin:left; transition:transform .7s var(--ease);
}
.step:hover::before{transform:scaleX(1)}
.step b{display:flex; align-items:center; gap:10px; margin-bottom:16px}
.step b::after{content:""; width:22px; height:1px; background:rgba(201,162,75,.6)}
.step h4{font-size:clamp(24px,2.1vw,30px); line-height:1.15; margin-bottom:10px}
.step p{font-size:14px; line-height:1.7}
.steps{gap:clamp(14px,1.6vw,22px)}

/* ==========================================================================
   TESTIMONIALS — header navy with gold accents (replaces the gold wash)
   ========================================================================== */
.testi{
  color:var(--ivory);
  background:
    radial-gradient(60% 70% at 50% 38%,rgba(201,162,75,.12),transparent 70%),
    var(--ink);
}
/* faint gold lattice, like zari work on silk */
.testi::before{
  top:0; bottom:0; height:auto; opacity:.07;
  background:
    repeating-linear-gradient(45deg,var(--gold) 0 1px,transparent 1px 26px),
    repeating-linear-gradient(-45deg,var(--gold) 0 1px,transparent 1px 26px);
  -webkit-mask-image:radial-gradient(70% 80% at 50% 50%,transparent 30%,#000 100%);
          mask-image:radial-gradient(70% 80% at 50% 50%,transparent 30%,#000 100%);
}
.testi::after{background:linear-gradient(90deg,transparent,rgba(231,206,147,.55),transparent)}
.testi .container{position:relative; z-index:1}
.testi .eyebrow{color:var(--gold-lt)}
.testi .eyebrow .dot{background:var(--gold-lt)}
.testi__quote{fill:var(--gold); opacity:.85}
.testi__item p{color:#F7EFE2}
.testi__item cite b{color:var(--gold-lt)}
.testi__item cite span{color:rgba(247,239,226,.62)}
.testi .circle-btn{box-shadow:inset 0 0 0 1px rgba(231,206,147,.4); color:var(--gold-lt)}
.testi .circle-btn::before{background:var(--gold)}
.testi .circle-btn:hover{color:var(--ink)}
.testi__count{color:rgba(247,239,226,.55)}
.testi__count b{color:var(--gold-lt)}

/* ==========================================================================
   PROPERTY PHOTOS — one frame, one finish, in the carousel and on Locations
   (the photos themselves are re-cut to 4:3 and colour-graded to match)
   ========================================================================== */
.locslide{width:clamp(290px,27vw,390px)}
.locslide__media,.prop__media{aspect-ratio:4/3; background:#1b2a3a}
.locslide__media img,.prop__media img{object-position:50% 50%}
.locslide__media::after,.prop__media::after{
  content:""; position:absolute; inset:0; pointer-events:none; display:block;
  background:linear-gradient(180deg,rgba(4,37,68,0) 52%,rgba(4,37,68,.34));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.prop__media--logo{background:
    radial-gradient(80% 90% at 50% 40%,#fff,transparent 70%),
    repeating-linear-gradient(135deg,rgba(201,162,75,.07) 0 1px,transparent 1px 14px),
    var(--sand)}
.prop__media--logo::after{background:none}
@media (max-width:720px){ .locslide{width:80vw} }

/* footer shares the header navy; a gold hairline keeps it apart from the band above */
.footer{border-top:1px solid rgba(201,162,75,.2)}

/* the arrow is decoration, so it lives in CSS rather than in the copy */
.prop__dir::after{content:" \2192"}


/* ==========================================================================
   READABILITY PASS — every label, pill and line of text at WCAG AA or better
   ========================================================================== */

/* highlight pills ("600+ keys group-wide", "King / Twin", location chips) */
.jblock__list li,.rcard__body ul li,.chips li,.sblock ul li.pill,.amen li{font-weight:500}
.jblock__list li,.rcard__body ul li,.chips li{
  color:#5C410C; background:rgba(201,162,75,.16); border:1px solid rgba(118,84,20,.32);
  font-size:11.5px; letter-spacing:.12em; padding:7px 14px;
}
.chips li{border-radius:100px}

/* gold italic headline words: deep enough to read on ivory and sand */
.h2 em{
  background:linear-gradient(100deg,#7A5716 0%,#A9802F 50%,#7A5716 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
/* …but stay bright gold where the section is dark */
.heritage .h2 em,.cta .h2 em,.weddings .h2 em,.rooms__text .h2 em,.testi .h2 em{
  background:linear-gradient(100deg,var(--gold),var(--gold-lt) 50%,var(--gold));
  -webkit-background-clip:text; background-clip:text;
}

/* eyebrows, labels, small caps: a touch heavier */
.eyebrow,.bk__f label,.cf label,.msub,.prop__brand,.post__meta,.step b,.locslide__body i,.prop__show,.prop__dir{font-weight:500}
.eyebrow{font-size:11.5px}
.heritage .eyebrow,.cta .eyebrow,.testi .eyebrow,.phero .eyebrow,.hero .eyebrow{color:var(--gold-lt)}

/* offer icons: the gold ring and glyph were too faint on ivory */
.offer__ico{border-color:rgba(118,84,20,.5); background:rgba(201,162,75,.1)}
.offer__ico svg{stroke:#765414; stroke-width:1.5}

/* the big "01 / 02" numerals on Events were 14% ink — make them a visible gold */
.sblock__n{color:rgba(118,84,20,.8)}

/* body copy on light grounds: one notch darker */
.lead{color:#2C4053}
.story__text p,.offer span,.brandcard__desc,.rcard__body p,.dcard p,.post p,.step p,.tlrow p,.prop__area{color:#3D5063}
.prop__addr{color:#566A7C}

/* small grey text that sits on navy: brighter, not darker */
.footer__brands i,.hall__specs i{color:#B3C3D0}
.footer{color:#C3CFDA}
.footer__col ul li a{color:#C3CFDA}
.phero__stats div span,.crumb span{color:#C2D0DC}
.phero__lede,.hero__lede{color:#DCE5EC}
.heritage__text .lead{color:#D9E3EB}
.hstats span{color:#C2D0DC}
.cinfo dd{color:#C7D3DD}
.mega__note{color:#B9C8D5}
.mega__col ul li a{color:#C7D3DD}
.testi__item cite span{color:rgba(247,239,226,.78)}
.testi__count{color:rgba(247,239,226,.7)}
