/* ==========================================================================
   ANANTAM — public website stylesheet (shared by every public page)
   Mobile-first. Tokens first, then base, layout, components, page blocks.
   ========================================================================== */
:root{
  --ink:#06201d; --peacock:#0e3b36; --emerald:#14574f; --gold:#c8a24a; --gold-light:#f1d98f; --gold-deep:#9a7a2c;
  --ivory:#faf6ec; --cream:#f1e9d6; --saffron:#d98324; --wine:#7a2433;
  --text:#1c2926; --muted:#5b6a65; --line:rgba(14,59,54,.14); --line-light:rgba(241,217,143,.22);
  --serif:'Cormorant Garamond','Cormorant',Georgia,'Times New Roman',serif;
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ease:cubic-bezier(.22,.7,.2,1);
  --hdr-h:68px; --gutter:20px; --maxw:1240px;
  --shadow-s:0 6px 20px -10px rgba(6,32,29,.35); --shadow-m:0 24px 60px -28px rgba(6,32,29,.55);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (min-width:900px){ :root{ --hdr-h:80px; --gutter:40px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--hdr-h) + 16px); }
body{ margin:0; font-family:var(--sans); font-weight:400; font-size:1rem; line-height:1.65; color:var(--text); background:var(--ivory); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg,video,iframe{ max-width:100%; }
img{ display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
::selection{ background:var(--gold); color:var(--ink); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
.sr-only{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip{ position:fixed; left:12px; top:-60px; z-index:300; background:var(--gold); color:var(--ink); padding:10px 16px; font-weight:500; border-radius:2px; transition:top .2s; }
.skip:focus{ top:12px; }
[hidden]{ display:none !important; }
body.is-locked{ overflow:hidden; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:calc(var(--maxw) + var(--gutter)*2); margin:0 auto; padding:0 var(--gutter); }
.sec{ padding:clamp(64px,9vw,128px) 0; position:relative; }
.sec--tight{ padding:clamp(48px,6vw,84px) 0; }
.sec--dark{ background:var(--peacock); color:var(--ivory); isolation:isolate; }
.sec--ink{ background:var(--ink); color:var(--ivory); isolation:isolate; }
.sec--cream{ background:var(--cream); }
.sec--dark::before,.sec--ink::before{ content:""; position:absolute; inset:0; background:var(--grain); opacity:.05; pointer-events:none; z-index:-1; mix-blend-mode:screen; }
.sec--dark::after{ content:""; position:absolute; inset:0; background:radial-gradient(60% 50% at 85% 0%,rgba(200,162,74,.14),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(20,87,79,.55),transparent 70%); pointer-events:none; z-index:-1; }
.grid{ display:grid; gap:24px; }

/* ---------- type ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:14px; font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; font-weight:500; color:var(--gold-deep); }
.eyebrow::before{ content:""; width:36px; height:1px; background:currentColor; opacity:.7; }
.sec--dark .eyebrow,.sec--ink .eyebrow,.on-dark .eyebrow{ color:var(--gold-light); }
.center .eyebrow::after{ content:""; width:36px; height:1px; background:currentColor; opacity:.7; }
.h1,.h2,.h3{ font-family:var(--serif); font-weight:500; letter-spacing:-.01em; line-height:1.04; color:var(--peacock); }
.h1{ font-size:clamp(2.9rem,7.4vw,6.4rem); line-height:.98; }
.h2{ font-size:clamp(2.3rem,5vw,4rem); }
.h3{ font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.12; }
.sec--dark :is(.h1,.h2,.h3),.sec--ink :is(.h1,.h2,.h3),.on-dark :is(.h1,.h2,.h3){ color:var(--ivory); }
.h1 em,.h2 em,.h3 em{ font-style:italic; font-weight:400; color:var(--gold-deep); }
.sec--dark :is(.h1,.h2,.h3) em,.sec--ink :is(.h1,.h2,.h3) em,.on-dark :is(.h1,.h2,.h3) em{ color:var(--gold-light); }
.lead{ font-size:clamp(1.02rem,1.5vw,1.2rem); line-height:1.7; color:var(--muted); max-width:62ch; font-weight:300; }
.sec--dark .lead,.sec--ink .lead,.on-dark .lead{ color:rgba(250,246,236,.78); }
.center{ text-align:center; } .center .lead{ margin-inline:auto; }
.sec-head{ margin-bottom:clamp(32px,5vw,64px); display:grid; gap:18px; }
.sec-head.center{ justify-items:center; }
.sec-head--split{ display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:20px 40px; }
.muted{ color:var(--muted); }
.gold{ color:var(--gold-deep); }
.ornament{ display:flex; align-items:center; justify-content:center; gap:14px; color:var(--gold); margin:0 auto; }
.ornament::before,.ornament::after{ content:""; height:1px; width:min(90px,18vw); background:linear-gradient(90deg,transparent,currentColor); }
.ornament::after{ background:linear-gradient(270deg,transparent,currentColor); }
.ornament svg{ width:22px; height:22px; }

/* ---------- buttons ---------- */
.btn{ --b-bg:var(--gold); --b-fg:var(--ink); --b-bd:var(--gold);
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 28px; border:1px solid var(--b-bd); background:var(--b-bg); color:var(--b-fg);
  font-size:.78rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; border-radius:2px; white-space:nowrap; position:relative; overflow:hidden; transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .3s; }
.btn svg{ width:16px; height:16px; flex:none; transition:transform .35s var(--ease); }
.btn:hover svg.arr{ transform:translateX(4px); }
.btn--gold{ background:linear-gradient(135deg,var(--gold-light),var(--gold) 55%,#b58f33); border-color:var(--gold); }
.btn--gold:hover{ box-shadow:0 10px 30px -10px rgba(200,162,74,.75); transform:translateY(-2px); }
.btn--ghost{ --b-bg:transparent; --b-fg:var(--ivory); --b-bd:rgba(250,246,236,.45); backdrop-filter:blur(4px); }
.btn--ghost:hover{ --b-bg:rgba(250,246,236,.12); --b-bd:var(--gold-light); transform:translateY(-2px); }
.btn--dark{ --b-bg:var(--peacock); --b-fg:var(--ivory); --b-bd:var(--peacock); }
.btn--dark:hover{ --b-bg:var(--emerald); transform:translateY(-2px); }
.btn--line{ --b-bg:transparent; --b-fg:var(--peacock); --b-bd:rgba(14,59,54,.4); }
.btn--line:hover{ --b-bg:var(--peacock); --b-fg:var(--ivory); --b-bd:var(--peacock); }
.btn--wa{ --b-bg:#1f9d55; --b-fg:#fff; --b-bd:#1f9d55; } .btn--wa:hover{ --b-bg:#188a49; }
.btn--sm{ min-height:40px; padding:0 18px; font-size:.7rem; }
.btn--block{ width:100%; }
.btn[disabled],.btn.is-busy{ opacity:.6; pointer-events:none; }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; }
.link{ display:inline-flex; align-items:center; gap:8px; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500; color:var(--peacock); border-bottom:1px solid var(--gold); padding-bottom:4px; transition:gap .3s var(--ease),color .2s; }
.link:hover{ gap:14px; color:var(--gold-deep); }
.sec--dark .link,.sec--ink .link,.on-dark .link{ color:var(--gold-light); }

/* ---------- header ---------- */
.hdr{ position:fixed; inset:0 0 auto 0; z-index:100; height:var(--hdr-h); display:flex; align-items:center; color:var(--ivory); transition:background .4s,box-shadow .4s,height .3s,transform .4s var(--ease); }
.hdr::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,32,29,.72),rgba(6,32,29,0)); pointer-events:none; transition:opacity .4s; }
.hdr.is-solid{ background:rgba(6,32,29,.9); -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2); box-shadow:0 1px 0 rgba(241,217,143,.16); }
.hdr.is-solid::before{ opacity:0; }
.hdr.is-hidden{ transform:translateY(-100%); }
.hdr__in{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; }
.brand{ display:flex; align-items:center; gap:12px; flex:none; }
.brand img{ width:42px; height:42px; border-radius:11px; box-shadow:0 0 0 1px rgba(241,217,143,.35); }
.brand b{ display:block; font-family:var(--serif); font-weight:500; font-size:1.7rem; letter-spacing:.2em; line-height:1; text-transform:uppercase; }
.brand small{ display:block; font-size:.56rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold-light); margin-top:5px; opacity:.9; }
.nav{ display:none; align-items:center; gap:clamp(18px,2.4vw,38px); }
.nav a{ position:relative; font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500; padding:8px 0; opacity:.9; transition:opacity .2s,color .2s; }
.nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:2px; height:1px; background:var(--gold-light); transition:right .4s var(--ease); }
.nav a:hover,.nav a[aria-current="page"]{ opacity:1; color:var(--gold-light); }
.nav a:hover::after,.nav a[aria-current="page"]::after{ right:0; }
.hdr__cta{ display:none; }
.burger{ width:46px; height:46px; display:grid; place-items:center; background:none; border:0; color:inherit; margin-right:-8px; }
.burger span,.burger span::before,.burger span::after{ display:block; width:24px; height:1.5px; background:currentColor; transition:transform .35s var(--ease),opacity .2s; content:""; position:relative; }
.burger span::before{ position:absolute; top:-7px; } .burger span::after{ position:absolute; top:7px; }
.burger[aria-expanded="true"] span{ background:transparent; }
.burger[aria-expanded="true"] span::before{ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span::after{ transform:translateY(-7px) rotate(-45deg); }
@media (min-width:1020px){ .nav{ display:flex; } .hdr__cta{ display:inline-flex; } .burger{ display:none; } }

.mnav{ position:fixed; inset:0; z-index:90; background:var(--ink); color:var(--ivory); display:flex; flex-direction:column; padding:calc(var(--hdr-h) + 24px) var(--gutter) 28px; overflow-y:auto; visibility:hidden; opacity:0; transform:translateY(-12px); transition:opacity .35s,transform .45s var(--ease),visibility 0s .45s; }
.mnav::before{ content:""; position:absolute; inset:0; background:var(--grain),radial-gradient(70% 50% at 100% 0%,rgba(200,162,74,.18),transparent 70%); opacity:.08; pointer-events:none; }
.mnav.is-open{ visibility:visible; opacity:1; transform:none; transition:opacity .35s,transform .45s var(--ease); }
.mnav nav{ display:grid; margin:10px 0 28px; }
.mnav nav a{ font-family:var(--serif); font-size:clamp(2rem,9vw,3rem); line-height:1.1; padding:12px 0; border-bottom:1px solid var(--line-light); display:flex; justify-content:space-between; align-items:baseline; }
.mnav nav a span{ font-family:var(--sans); font-size:.65rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-light); }
.mnav nav a[aria-current="page"]{ color:var(--gold-light); }
.mnav .info{ margin-top:auto; display:grid; gap:10px; font-size:.95rem; color:rgba(250,246,236,.8); }
.mnav .info a{ color:var(--gold-light); }
.mnav .btn-row{ margin:6px 0 24px; }

/* ---------- floating action bar ---------- */
.fbar{ position:fixed; z-index:80; left:0; right:0; bottom:0; display:grid; grid-auto-flow:column; grid-auto-columns:1fr; background:rgba(6,32,29,.96); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-top:1px solid rgba(241,217,143,.25); padding-bottom:env(safe-area-inset-bottom); transition:transform .4s var(--ease); }
.fbar.is-hidden{ transform:translateY(110%); }
.fbar a,.fbar button{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:56px; padding:6px 4px; background:none; border:0; color:var(--ivory); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500; }
.fbar svg{ width:20px; height:20px; }
.fbar .is-primary{ background:linear-gradient(135deg,var(--gold-light),var(--gold)); color:var(--ink); }
.fbar .is-wa svg{ color:#4ade80; }
.fbar > * + *{ border-left:1px solid rgba(241,217,143,.14); }
body.has-fbar{ padding-bottom:calc(58px + env(safe-area-inset-bottom)); }
.wa-float{ display:none; }
@media (min-width:760px){
  .fbar{ display:none; } body.has-fbar{ padding-bottom:0; }
  .wa-float{ position:fixed; z-index:80; right:24px; bottom:24px; width:58px; height:58px; border-radius:50%; background:#1f9d55; color:#fff; display:grid; place-items:center; box-shadow:0 12px 30px -8px rgba(0,0,0,.5); transition:transform .3s var(--ease); }
  .wa-float:hover{ transform:scale(1.08) translateY(-2px); }
  .wa-float svg{ width:28px; height:28px; }
  .wa-float::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #1f9d55; animation:ping 2.6s infinite; }
  .wa-float[hidden]{ display:none; }
  .wa-float:not([hidden]){ display:grid; }
}
@keyframes ping{ 0%{ transform:scale(1); opacity:.6; } 80%,100%{ transform:scale(1.6); opacity:0; } }

/* ---------- reveal ---------- */
.js .rv{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease),transform .9s var(--ease); transition-delay:var(--d,0s); }
.js .rv.in{ opacity:1; transform:none; }
.js .rv-l{ opacity:0; transform:translateX(-40px); transition:opacity 1s var(--ease),transform 1s var(--ease); transition-delay:var(--d,0s); }
.js .rv-l.in{ opacity:1; transform:none; }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:max(640px,100svh); display:flex; align-items:flex-end; color:var(--ivory); overflow:hidden; background:var(--ink); isolation:isolate; }
.hero__slides,.hero__slide{ position:absolute; inset:0; }
.hero__slide{ opacity:0; transition:opacity 1.6s ease; }
.hero__slide.is-on{ opacity:1; }
.hero__slide img{ width:100%; height:100%; object-fit:cover; transform:scale(1.02); }
.hero__slide.is-on img{ animation:kb 11s ease-out forwards; }
@keyframes kb{ from{ transform:scale(1.02) translate3d(0,0,0); } to{ transform:scale(1.13) translate3d(-1.2%,-1%,0); } }
.hero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(6,32,29,.55) 0%,rgba(6,32,29,.15) 30%,rgba(6,32,29,.55) 68%,rgba(6,32,29,.94) 100%),radial-gradient(90% 60% at 0% 100%,rgba(6,32,29,.7),transparent 70%); }
.hero::after{ content:""; position:absolute; inset:0; z-index:1; background:var(--grain); opacity:.07; mix-blend-mode:overlay; pointer-events:none; }
.hero__body{ position:relative; z-index:2; width:100%; padding-top:calc(var(--hdr-h) + 40px); padding-bottom:clamp(120px,16vw,170px); }
.hero__eyebrow{ color:var(--gold-light); margin-bottom:22px; }
.hero h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2.9rem,8.2vw,7rem); line-height:.97; letter-spacing:-.015em; max-width:15ch; text-wrap:balance; text-shadow:0 4px 40px rgba(0,0,0,.35); }
.hero h1 em{ font-style:italic; font-weight:400; color:var(--gold-light); }
.hero__sub{ margin-top:24px; max-width:52ch; font-size:clamp(1.02rem,1.5vw,1.25rem); font-weight:300; color:rgba(250,246,236,.88); line-height:1.65; }
.hero .btn-row{ margin-top:34px; }
.hero__dots{ position:absolute; z-index:3; right:var(--gutter); top:50%; transform:translateY(-50%); display:none; flex-direction:column; gap:14px; }
.hero__dots button{ width:2px; height:34px; border:0; padding:0; background:rgba(250,246,236,.35); position:relative; transition:background .3s,height .4s var(--ease); }
.hero__dots button::after{ content:""; position:absolute; inset:-10px -12px; }
.hero__dots button.is-on{ background:var(--gold-light); height:56px; }
.hero__scroll{ position:absolute; z-index:3; left:var(--gutter); bottom:22px; display:none; align-items:center; gap:12px; font-size:.64rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(250,246,236,.7); }
.hero__scroll i{ width:1px; height:36px; background:linear-gradient(var(--gold-light),transparent); animation:drip 2.2s ease-in-out infinite; transform-origin:top; }
@keyframes drip{ 0%{ transform:scaleY(0); } 50%{ transform:scaleY(1); } 100%{ transform:scaleY(1); opacity:0; } }
@media (min-width:900px){ .hero__dots{ display:flex; } .hero__scroll{ display:flex; } }

/* quick availability strip */
.quick{ position:relative; z-index:5; margin-top:-64px; }
.quick__box{ background:rgba(250,246,236,.97); border:1px solid rgba(200,162,74,.4); box-shadow:var(--shadow-m); padding:16px; display:grid; gap:12px; border-radius:2px; }
.quick__box h2{ font-family:var(--serif); font-size:1.35rem; font-weight:500; color:var(--peacock); line-height:1.1; }
.quick__box h2 small{ display:block; font-family:var(--sans); font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:4px; }
.quick__fields{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quick__fields .field:nth-child(3),.quick__fields .btn{ grid-column:1/-1; }
.quick__alt{ display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.82rem; color:var(--muted); }
.quick__alt a{ color:var(--peacock); border-bottom:1px solid var(--gold); }
@media (min-width:900px){
  .quick{ margin-top:-52px; }
  .quick__box{ grid-template-columns:auto 1fr; align-items:center; padding:20px 28px; gap:36px; }
  .quick__fields{ grid-template-columns:1fr 1fr .7fr auto; align-items:end; gap:14px; }
  .quick__fields .field:nth-child(3),.quick__fields .btn{ grid-column:auto; }
  .quick__alt{ grid-column:1/-1; margin-top:-6px; }
}

/* ---------- forms ---------- */
.field{ display:grid; gap:6px; min-width:0; }
.field label,.field .lbl{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500; color:var(--muted); }
.sec--dark .field label,.sec--ink .field label,.on-dark .field label{ color:rgba(250,246,236,.7); }
.input,.select,.textarea{ width:100%; min-height:48px; padding:12px 14px; background:#fff; border:1px solid rgba(14,59,54,.22); border-radius:2px; color:var(--text); font-size:1rem; transition:border-color .2s,box-shadow .2s; -webkit-appearance:none; appearance:none; }
.textarea{ min-height:110px; resize:vertical; line-height:1.5; }
.select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e3b36' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:18px; padding-right:40px; }
.input:focus,.select:focus,.textarea:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,162,74,.25); }
.input[aria-invalid="true"],.select[aria-invalid="true"],.textarea[aria-invalid="true"]{ border-color:#b3261e; box-shadow:0 0 0 3px rgba(179,38,30,.12); }
.err{ font-size:.8rem; color:#b3261e; min-height:0; } .err:empty{ display:none; }
.sec--dark .err,.sec--ink .err,.on-dark .err{ color:#ffb4a9; }
.form-grid{ display:grid; gap:16px; }
@media (min-width:640px){ .form-grid--2{ grid-template-columns:1fr 1fr; } .form-grid .full{ grid-column:1/-1; } }
.hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; }
.form-note{ font-size:.82rem; color:var(--muted); }
.form-msg{ padding:12px 14px; border-left:3px solid #b3261e; background:rgba(179,38,30,.08); color:#7f1d17; font-size:.92rem; border-radius:2px; }
.form-msg:empty{ display:none; }
.stepper{ display:flex; align-items:stretch; border:1px solid rgba(14,59,54,.22); background:#fff; border-radius:2px; min-height:48px; }
.stepper button{ width:48px; background:none; border:0; font-size:1.3rem; color:var(--peacock); }
.stepper button:hover{ background:var(--cream); }
.stepper input{ flex:1; min-width:0; text-align:center; border:0; border-inline:1px solid var(--line); background:transparent; font-size:1rem; -moz-appearance:textfield; }
.stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; }
.stepper input:focus{ outline:2px solid var(--gold); outline-offset:-2px; }

/* ---------- chips / tabs ---------- */
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 16px; border:1px solid var(--line); background:transparent; border-radius:100px; font-size:.78rem; letter-spacing:.08em; color:var(--text); transition:all .25s; }
.chip:hover{ border-color:var(--gold); }
.chip[aria-pressed="true"],.chip.is-on{ background:var(--peacock); border-color:var(--peacock); color:var(--ivory); }
.sec--dark .chip,.sec--ink .chip{ border-color:var(--line-light); color:var(--ivory); }
.sec--dark .chip.is-on,.sec--ink .chip.is-on,.sec--dark .chip[aria-pressed="true"]{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.pill{ display:inline-block; padding:4px 12px; border:1px solid var(--line); border-radius:100px; font-size:.74rem; letter-spacing:.06em; color:var(--muted); }
.sec--dark .pill,.sec--ink .pill{ border-color:var(--line-light); color:rgba(250,246,236,.85); }
.badge{ display:inline-block; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; padding:4px 10px; background:var(--gold); color:var(--ink); border-radius:2px; }

/* ---------- pillars ---------- */
.pillars{ display:grid; gap:16px; }
.pillar{ position:relative; display:block; min-height:420px; overflow:hidden; color:var(--ivory); isolation:isolate; border-radius:2px; background:var(--ink); }
.pillar img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.4s var(--ease); }
.pillar::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,32,29,.1) 25%,rgba(6,32,29,.92)); transition:opacity .5s; }
.pillar::after{ content:""; position:absolute; inset:14px; border:1px solid rgba(241,217,143,.0); transition:border-color .5s,inset .5s var(--ease); pointer-events:none; }
.pillar:hover img{ transform:scale(1.07); }
.pillar:hover::after{ border-color:rgba(241,217,143,.55); inset:10px; }
.pillar__in{ position:absolute; inset:auto 0 0 0; padding:clamp(22px,3vw,36px); display:grid; gap:10px; }
.pillar__n{ font-family:var(--serif); font-size:1rem; letter-spacing:.2em; color:var(--gold-light); }
.pillar h3{ font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,4vw,3.4rem); line-height:1; }
.pillar p{ font-weight:300; color:rgba(250,246,236,.85); max-width:34ch; }
.pillar .link{ justify-self:start; color:var(--gold-light); margin-top:6px; }
@media (min-width:860px){ .pillars{ grid-template-columns:repeat(3,1fr); gap:20px; } .pillar{ min-height:620px; } .pillar:nth-child(2){ margin-top:48px; } .pillar:nth-child(3){ margin-top:0; } .pillars{ padding-bottom:0; } }

/* ---------- story ---------- */
.story{ display:grid; gap:44px; align-items:center; }
.story__media{ position:relative; padding-bottom:18%; }
.story__media .a{ width:82%; aspect-ratio:4/5; object-fit:cover; border-radius:200px 200px 2px 2px; box-shadow:var(--shadow-m); }
.story__media .b{ position:absolute; right:0; bottom:0; width:52%; aspect-ratio:1; object-fit:cover; border:8px solid var(--ivory); box-shadow:var(--shadow-m); }
.story__media .seal{ position:absolute; left:-6px; bottom:6%; width:104px; height:104px; border-radius:50%; background:var(--peacock); color:var(--gold-light); display:grid; place-items:center; text-align:center; font-family:var(--serif); font-size:.95rem; line-height:1.1; box-shadow:var(--shadow-m); border:1px solid var(--gold); }
.story__media .seal b{ display:block; font-size:1.6rem; font-weight:500; }
.story__text{ display:grid; gap:20px; justify-items:start; }
.story__text p{ color:var(--muted); font-weight:300; font-size:1.06rem; max-width:56ch; }
.sig{ display:flex; align-items:center; gap:16px; margin-top:6px; }
.sig i{ width:46px; height:1px; background:var(--gold); }
.sig span{ font-family:var(--serif); font-style:italic; font-size:1.35rem; color:var(--peacock); }
.sig small{ display:block; font-family:var(--sans); font-style:normal; font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); }
@media (min-width:900px){ .story{ grid-template-columns:1fr 1fr; gap:clamp(48px,8vw,120px); } .story--flip .story__media{ order:2; } }

/* ---------- stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
.stat{ padding:30px 12px; text-align:center; position:relative; }
.stat + .stat::before{ content:""; position:absolute; left:0; top:22%; bottom:22%; width:1px; background:var(--line-light); }
.stats .stat:nth-child(odd)::before{ display:none; }
.stat b{ display:block; font-family:var(--serif); font-weight:500; font-size:clamp(2.8rem,6vw,4.6rem); line-height:1; color:var(--gold-light); }
.stat span{ display:block; margin-top:10px; font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(250,246,236,.75); }
@media (min-width:760px){ .stats{ grid-template-columns:repeat(var(--n,4),1fr); } .stats .stat:nth-child(odd)::before{ display:block; } .stats .stat:first-child::before{ display:none; } }

/* ---------- room cards ---------- */
.rooms-track{ display:grid; grid-auto-flow:column; grid-auto-columns:min(84vw,360px); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px var(--gutter) 24px; margin:0 calc(var(--gutter)*-1); scrollbar-width:none; }
.rooms-track::-webkit-scrollbar{ display:none; }
.rooms-track > *{ scroll-snap-align:start; }
@media (min-width:1100px){ .rooms-track{ grid-auto-columns:calc((100% - 60px)/3.15); margin:0; padding-inline:0; } }
.rcard{ background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; border-radius:2px; transition:transform .5s var(--ease),box-shadow .5s; }
.rcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-m); }
.rcard__img{ position:relative; aspect-ratio:4/3.3; overflow:hidden; background:var(--cream); }
.rcard__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.rcard:hover .rcard__img img{ transform:scale(1.06); }
.rcard__img .badge{ position:absolute; left:14px; top:14px; }
.rcard__body{ padding:22px 22px 24px; display:flex; flex-direction:column; gap:12px; flex:1; }
.rcard h3{ font-family:var(--serif); font-weight:500; font-size:1.9rem; line-height:1.05; color:var(--peacock); }
.rcard__meta{ font-size:.82rem; color:var(--muted); letter-spacing:.04em; }
.rcard__feat{ display:flex; flex-wrap:wrap; gap:6px 14px; font-size:.84rem; color:var(--text); }
.rcard__feat li{ display:flex; align-items:center; gap:6px; } .rcard__feat svg{ width:14px; height:14px; color:var(--gold-deep); flex:none; }
.rcard__foot{ margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; align-items:end; justify-content:space-between; gap:10px; }
.price small{ display:block; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.price b{ font-family:var(--serif); font-weight:500; font-size:1.9rem; color:var(--peacock); line-height:1; }
.price span{ font-size:.8rem; color:var(--muted); }
.rooms-big{ display:grid; gap:28px; }
.rbig{ display:grid; background:#fff; border:1px solid var(--line); overflow:hidden; border-radius:2px; }
.rbig__img{ aspect-ratio:16/11; overflow:hidden; position:relative; background:var(--cream); }
.rbig__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); } .rbig:hover .rbig__img img{ transform:scale(1.05); }
.rbig__img .badge{ position:absolute; left:16px; top:16px; }
.rbig__body{ padding:clamp(22px,3vw,40px); display:flex; flex-direction:column; gap:16px; }
.rbig__feat{ display:grid; gap:8px 20px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.rbig__feat li{ display:flex; gap:10px; align-items:flex-start; font-size:.95rem; } .rbig__feat svg{ width:16px; height:16px; margin-top:5px; color:var(--gold-deep); flex:none; }
@media (min-width:900px){ .rbig{ grid-template-columns:1.1fr 1fr; } .rbig:nth-child(even) .rbig__img{ order:2; } .rbig__img{ aspect-ratio:auto; min-height:420px; } }

/* ---------- dishes ---------- */
.dishes{ display:grid; gap:16px; grid-template-columns:repeat(2,1fr); }
@media (min-width:900px){ .dishes{ grid-template-columns:repeat(3,1fr); gap:22px; } }
.dish{ position:relative; background:rgba(250,246,236,.04); border:1px solid var(--line-light); overflow:hidden; display:flex; flex-direction:column; border-radius:2px; transition:transform .5s var(--ease),border-color .4s; }
.dish:hover{ transform:translateY(-5px); border-color:rgba(241,217,143,.55); }
.dish__img{ aspect-ratio:1/1; overflow:hidden; background:var(--ink); } .dish__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); } .dish:hover .dish__img img{ transform:scale(1.08); }
.dish__body{ padding:14px 14px 18px; display:grid; gap:6px; flex:1; align-content:start; }
.dish h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.2rem,2.4vw,1.55rem); line-height:1.1; color:var(--ivory); display:flex; gap:8px; align-items:baseline; }
.dish p{ font-size:.86rem; color:rgba(250,246,236,.7); font-weight:300; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dish__price{ font-family:var(--serif); font-size:1.3rem; color:var(--gold-light); margin-top:auto; padding-top:6px; }
.dish .tagline{ position:absolute; left:10px; top:10px; }
.vd{ display:inline-grid; place-items:center; width:15px; height:15px; border:1.5px solid #1e8e3e; border-radius:2px; flex:none; position:relative; top:1px; }
.vd::after{ content:""; width:7px; height:7px; border-radius:50%; background:#1e8e3e; }
.vd.nv{ border-color:#b3261e; } .vd.nv::after{ background:#b3261e; }
.spice{ display:inline-flex; gap:1px; color:var(--saffron); } .spice svg{ width:13px; height:13px; } .spice .off{ color:rgba(128,128,128,.35); }

/* ---------- banquet ---------- */
.bq{ display:grid; gap:40px; align-items:center; }
.bq__img{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:2px; box-shadow:var(--shadow-m); }
.bq__img img{ width:100%; height:100%; object-fit:cover; }
.bq__img figcaption{ position:absolute; left:16px; bottom:16px; right:16px; display:flex; flex-wrap:wrap; gap:8px; }
.bq__img figcaption span{ background:rgba(6,32,29,.78); backdrop-filter:blur(6px); color:var(--gold-light); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; padding:7px 12px; border:1px solid var(--line-light); }
@media (min-width:900px){ .bq{ grid-template-columns:.95fr 1.05fr; gap:clamp(48px,7vw,110px); } }
.facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin:6px 0; }
.facts div{ background:var(--ivory); padding:16px 14px; }
.facts b{ display:block; font-family:var(--serif); font-size:2rem; font-weight:500; color:var(--peacock); line-height:1; }
.facts span{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.avail{ background:#fff; border:1px solid var(--line); padding:18px; display:grid; gap:14px; border-radius:2px; box-shadow:var(--shadow-s); }
.avail__row{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; } .avail__row .field{ flex:1 1 160px; }
.avail__res{ display:grid; gap:8px; }
.avail__res:empty{ display:none; }
.hall-row{ display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--line); font-size:.95rem; }
.hall-row b{ font-family:var(--serif); font-size:1.25rem; font-weight:500; color:var(--peacock); }
.slot{ display:inline-flex; align-items:center; gap:6px; padding:6px 12px; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; border-radius:100px; font-weight:500; min-width:112px; justify-content:center; }
.slot::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.slot--free{ background:rgba(30,142,62,.12); color:#16722f; } .slot--busy{ background:rgba(179,38,30,.1); color:#9c2119; }
.slot small{ font-size:inherit; opacity:.75; }
.hall-card{ background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; border-radius:2px; transition:transform .5s var(--ease),box-shadow .5s; }
.hall-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-m); }
.hall-card .rcard__img{ aspect-ratio:16/10; }
.hall-card__stats{ display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--line); margin:4px 0; }
.hall-card__stats div{ padding:12px 6px; text-align:center; } .hall-card__stats div + div{ border-left:1px solid var(--line); }
.hall-card__stats b{ display:block; font-family:var(--serif); font-size:1.6rem; font-weight:500; line-height:1; color:var(--peacock); }
.hall-card__stats span{ font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.cards3{ display:grid; gap:22px; } @media (min-width:700px){ .cards3{ grid-template-columns:repeat(2,1fr); } } @media (min-width:1050px){ .cards3{ grid-template-columns:repeat(3,1fr); } }
.pkg{ background:#fff; border:1px solid var(--line); padding:28px 24px; display:flex; flex-direction:column; gap:14px; position:relative; border-radius:2px; }
.pkg::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,var(--gold-light),var(--gold)); }
.pkg h3{ font-family:var(--serif); font-size:1.7rem; font-weight:500; color:var(--peacock); line-height:1.1; }
.pkg .price b{ font-size:2.3rem; }
.pkg ul{ display:grid; gap:8px; margin-top:4px; font-size:.92rem; } .pkg li{ display:flex; gap:10px; } .pkg li svg{ width:16px; height:16px; margin-top:4px; color:var(--gold-deep); flex:none; }
.diet{ display:inline-flex; align-items:center; gap:8px; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:var(--muted); }
.events{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); grid-template-columns:repeat(2,1fr); }
@media (min-width:900px){ .events{ grid-template-columns:repeat(4,1fr); } }
.event{ background:var(--ivory); padding:26px 20px; display:grid; gap:8px; align-content:start; transition:background .4s; }
.event:hover{ background:#fff; } .event svg{ width:30px; height:30px; color:var(--gold-deep); } .event h3{ font-family:var(--serif); font-weight:500; font-size:1.45rem; line-height:1.1; color:var(--peacock); } .event p{ font-size:.88rem; color:var(--muted); line-height:1.5; }
.steps{ display:grid; gap:0; counter-reset:s; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line-light); position:relative; }
.step:first-child{ border-top:0; }
.step::before{ counter-increment:s; content:counter(s,decimal-leading-zero); font-family:var(--serif); font-size:2.4rem; color:var(--gold-light); line-height:1; min-width:56px; }
.step h3{ font-family:var(--serif); font-size:1.6rem; font-weight:500; color:var(--ivory); line-height:1.1; margin-bottom:4px; }
.step p{ color:rgba(250,246,236,.72); font-weight:300; font-size:.96rem; }
@media (min-width:900px){ .steps{ grid-template-columns:repeat(5,1fr); gap:0; } .step{ grid-template-columns:1fr; border-top:1px solid var(--gold); padding:24px 20px 0 0; gap:12px; } .step:first-child{ border-top:1px solid var(--gold); } }
.incl{ display:grid; gap:12px 28px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.incl li{ display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--line); } .incl svg{ width:18px; height:18px; margin-top:4px; color:var(--gold-deep); flex:none; }

/* ---------- amenities ---------- */
.amen{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); grid-template-columns:repeat(2,1fr); }
@media (min-width:760px){ .amen{ grid-template-columns:repeat(3,1fr); } } @media (min-width:1100px){ .amen{ grid-template-columns:repeat(4,1fr); } }
.amen li{ background:var(--ivory); padding:26px 20px; display:grid; gap:8px; align-content:start; transition:background .4s; }
.amen li:hover{ background:#fff; } .amen svg{ width:28px; height:28px; color:var(--gold-deep); } .amen h3{ font-family:var(--serif); font-weight:500; font-size:1.3rem; color:var(--peacock); line-height:1.1; } .amen p{ font-size:.86rem; color:var(--muted); line-height:1.5; }

/* ---------- gallery ---------- */
.masonry{ columns:2 160px; column-gap:12px; }
@media (min-width:760px){ .masonry{ columns:3 220px; column-gap:16px; } }
.masonry figure{ break-inside:avoid; margin:0 0 12px; position:relative; overflow:hidden; border-radius:2px; background:var(--cream); }
@media (min-width:760px){ .masonry figure{ margin-bottom:16px; } }
.masonry button{ display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.masonry img{ width:100%; height:auto; transition:transform 1.1s var(--ease),filter .5s; }
.masonry figure:hover img{ transform:scale(1.06); }
.masonry figcaption{ position:absolute; inset:auto 0 0 0; padding:40px 14px 12px; background:linear-gradient(transparent,rgba(6,32,29,.88)); color:var(--ivory); font-size:.82rem; opacity:0; transform:translateY(8px); transition:all .4s var(--ease); pointer-events:none; }
.masonry figure:hover figcaption,.masonry button:focus-visible + figcaption{ opacity:1; transform:none; }
@media (hover:none){ .masonry figcaption{ opacity:1; transform:none; font-size:.74rem; padding-top:30px; } }
.masonry figcaption b{ display:block; font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-light); font-weight:500; margin-bottom:2px; }
.lb{ position:fixed; inset:0; z-index:400; background:rgba(3,14,12,.96); display:none; align-items:center; justify-content:center; touch-action:pan-y; }
.lb.is-open{ display:flex; animation:fadein .3s; }
@keyframes fadein{ from{ opacity:0; } }
.lb__img{ max-width:min(94vw,1500px); max-height:82vh; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.6); transition:opacity .25s,transform .35s var(--ease); user-select:none; -webkit-user-drag:none; }
.lb__img.is-swap{ opacity:0; transform:scale(.98); }
.lb__cap{ position:absolute; left:0; right:0; bottom:0; padding:18px 70px calc(18px + env(safe-area-inset-bottom)); text-align:center; color:rgba(250,246,236,.85); font-size:.92rem; background:linear-gradient(transparent,rgba(0,0,0,.6)); }
.lb__cap span{ opacity:.6; margin-left:10px; font-size:.8rem; }
.lb button{ position:absolute; width:52px; height:52px; display:grid; place-items:center; background:rgba(250,246,236,.08); border:1px solid rgba(250,246,236,.2); border-radius:50%; color:#fff; transition:background .2s; }
.lb button:hover{ background:rgba(250,246,236,.2); } .lb button svg{ width:22px; height:22px; }
.lb__x{ top:max(14px,env(safe-area-inset-top)); right:14px; } .lb__p{ left:14px; top:50%; margin-top:-26px; } .lb__n{ right:14px; top:50%; margin-top:-26px; }
@media (max-width:700px){ .lb__p,.lb__n{ top:auto; bottom:70px; margin:0; width:44px; height:44px; } .lb__img{ max-height:72vh; } }

/* ---------- testimonials ---------- */
.quotes{ display:grid; gap:20px; } @media (min-width:900px){ .quotes{ grid-template-columns:repeat(3,1fr); } }
.quote{ padding:34px 28px; background:rgba(250,246,236,.05); border:1px solid var(--line-light); display:grid; gap:16px; align-content:start; border-radius:2px; }
.quote svg.q{ width:34px; height:34px; color:var(--gold); }
.quote p{ font-family:var(--serif); font-size:1.4rem; line-height:1.35; font-style:italic; color:var(--ivory); }
.quote footer{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); }
.stars{ display:flex; gap:2px; color:var(--gold); } .stars svg{ width:15px; height:15px; }

/* ---------- location / contact ---------- */
.loc{ display:grid; gap:28px; } @media (min-width:900px){ .loc{ grid-template-columns:.9fr 1.1fr; gap:clamp(36px,5vw,72px); align-items:stretch; } }
.map{ position:relative; min-height:360px; background:var(--cream); border:1px solid var(--line); overflow:hidden; border-radius:2px; box-shadow:var(--shadow-s); }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.85) contrast(1.02); }
.info-list{ display:grid; gap:0; }
.info-list li{ display:grid; grid-template-columns:44px 1fr; gap:14px; padding:18px 0; border-top:1px solid var(--line); align-items:start; }
.info-list li:first-child{ border-top:0; padding-top:0; }
.info-list .ic{ width:44px; height:44px; border:1px solid var(--gold); border-radius:50%; display:grid; place-items:center; color:var(--gold-deep); } .info-list .ic svg{ width:19px; height:19px; }
.info-list h3{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; font-weight:500; color:var(--muted); font-family:var(--sans); margin-bottom:2px; }
.info-list p,.info-list a{ font-size:1.02rem; } .info-list a:hover{ color:var(--gold-deep); }
.reach{ display:grid; gap:10px; margin-top:6px; font-size:.95rem; color:var(--muted); } .reach li{ display:flex; gap:10px; } .reach svg{ width:16px; height:16px; color:var(--gold-deep); margin-top:5px; flex:none; }

/* ---------- FAQ ---------- */
.faq{ max-width:860px; margin:0 auto; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:22px 44px 22px 0; position:relative; font-family:var(--serif); font-size:clamp(1.25rem,2.4vw,1.6rem); line-height:1.25; color:var(--peacock); font-weight:500; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:6px; top:50%; width:14px; height:14px; margin-top:-9px; border-right:1.5px solid var(--gold-deep); border-bottom:1.5px solid var(--gold-deep); transform:rotate(45deg); transition:transform .4s var(--ease); }
.faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-3px; }
.faq summary:hover{ color:var(--gold-deep); }
.faq .ans{ padding:0 0 24px; color:var(--muted); max-width:68ch; font-weight:300; font-size:1.02rem; animation:fadein .5s; }
.faq .ans a{ color:var(--peacock); border-bottom:1px solid var(--gold); }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; isolation:isolate; color:var(--ivory); text-align:center; padding:clamp(80px,12vw,160px) 0; overflow:hidden; background:var(--ink); }
.cta-band > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.cta-band::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,32,29,.82),rgba(6,32,29,.7) 40%,rgba(6,32,29,.9)); }
.cta-band .h2{ max-width:18ch; margin-inline:auto; }
.cta-band .btn-row{ justify-content:center; margin-top:34px; }
.cta-band .tel{ margin-top:26px; font-size:.9rem; letter-spacing:.06em; color:rgba(250,246,236,.8); } .cta-band .tel a{ color:var(--gold-light); font-weight:500; }

/* ---------- page hero (inner pages) ---------- */
.phero{ position:relative; isolation:isolate; min-height:clamp(380px,56vh,560px); display:flex; align-items:flex-end; color:var(--ivory); overflow:hidden; background:var(--ink); }
.phero > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; animation:kb 14s ease-out forwards; }
.phero::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,32,29,.7) 0%,rgba(6,32,29,.3) 38%,rgba(6,32,29,.92) 100%); }
.phero__in{ padding-top:calc(var(--hdr-h) + 56px); padding-bottom:clamp(40px,6vw,76px); display:grid; gap:18px; max-width:860px; }
.phero .h1{ color:var(--ivory); font-size:clamp(2.8rem,7vw,5.6rem); } .phero .h1 em{ color:var(--gold-light); }
.phero p{ font-weight:300; font-size:clamp(1rem,1.5vw,1.2rem); color:rgba(250,246,236,.86); max-width:56ch; }
.crumbs{ display:flex; gap:10px; font-size:.68rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-light); } .crumbs a:hover{ text-decoration:underline; } .crumbs span{ opacity:.6; }

/* ---------- modal ---------- */
.modal{ position:fixed; inset:0; z-index:250; display:none; align-items:flex-end; justify-content:center; background:rgba(3,14,12,.7); backdrop-filter:blur(5px); padding:0; }
.modal.is-open{ display:flex; animation:fadein .25s; }
.modal__box{ background:var(--ivory); width:100%; max-width:640px; max-height:94svh; overflow-y:auto; border-radius:14px 14px 0 0; padding:26px var(--gutter) calc(26px + env(safe-area-inset-bottom)); position:relative; animation:rise .45s var(--ease); border-top:3px solid var(--gold); }
@keyframes rise{ from{ transform:translateY(40px); opacity:0; } }
.modal__x{ position:absolute; right:10px; top:10px; width:44px; height:44px; display:grid; place-items:center; border:0; background:none; color:var(--peacock); border-radius:50%; } .modal__x:hover{ background:var(--cream); } .modal__x svg{ width:22px; height:22px; }
.modal h2{ font-family:var(--serif); font-weight:500; font-size:2.1rem; color:var(--peacock); line-height:1.05; margin:4px 40px 6px 0; }
.modal .sub{ color:var(--muted); font-size:.92rem; margin-bottom:18px; }
@media (min-width:700px){ .modal{ align-items:center; padding:24px; } .modal__box{ border-radius:3px; padding:38px; } }
.success{ text-align:center; display:grid; gap:14px; justify-items:center; padding:12px 0; }
.success .tick{ width:68px; height:68px; border-radius:50%; background:linear-gradient(135deg,var(--gold-light),var(--gold)); display:grid; place-items:center; color:var(--ink); animation:pop .6s var(--ease); } .success .tick svg{ width:32px; height:32px; }
@keyframes pop{ from{ transform:scale(.4); opacity:0; } }
.success h3{ font-family:var(--serif); font-size:2rem; font-weight:500; color:var(--peacock); line-height:1.1; }
.ref{ display:inline-block; font-family:var(--serif); font-size:1.8rem; letter-spacing:.12em; padding:6px 22px; border:1px dashed var(--gold); color:var(--peacock); background:#fff; }
.on-dark .success h3,.sec--dark .success h3{ color:var(--ivory); } .sec--dark .success .muted{ color:rgba(250,246,236,.75); }
.sec--dark .ref{ background:rgba(0,0,0,.2); color:var(--gold-light); }

/* ---------- toast ---------- */
.toast{ position:fixed; z-index:500; left:50%; bottom:90px; transform:translate(-50%,20px); background:var(--ink); color:var(--ivory); padding:12px 22px; border-left:3px solid var(--gold); box-shadow:var(--shadow-m); opacity:0; pointer-events:none; transition:all .4s var(--ease); font-size:.92rem; max-width:90vw; }
.toast.is-on{ opacity:1; transform:translate(-50%,0); }

/* ---------- footer ---------- */
.ftr{ background:var(--ink); color:rgba(250,246,236,.78); position:relative; isolation:isolate; padding:clamp(56px,8vw,96px) 0 0; }
.ftr::before{ content:""; position:absolute; inset:0; background:var(--grain); opacity:.05; z-index:-1; mix-blend-mode:screen; }
.ftr::after{ content:""; position:absolute; left:0; right:0; top:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.ftr__grid{ display:grid; gap:40px; }
@media (min-width:860px){ .ftr__grid{ grid-template-columns:1.5fr 1fr 1.2fr 1.1fr; gap:48px; } }
.ftr .brand b{ font-size:1.9rem; color:var(--ivory); }
.ftr__about{ margin-top:18px; font-weight:300; max-width:34ch; font-size:.95rem; }
.ftr h4{ font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light); margin-bottom:18px; font-weight:500; }
.ftr li{ margin-bottom:10px; font-size:.95rem; } .ftr a:hover{ color:var(--gold-light); }
.ftr address{ font-style:normal; display:grid; gap:10px; font-size:.95rem; }
.social{ display:flex; gap:10px; margin-top:18px; } .social a{ width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--line-light); border-radius:50%; transition:all .3s; } .social a:hover{ background:var(--gold); color:var(--ink); border-color:var(--gold); } .social svg{ width:18px; height:18px; }
.ftr__bar{ margin-top:clamp(40px,6vw,72px); border-top:1px solid var(--line-light); padding:22px 0; display:flex; flex-wrap:wrap; gap:10px 28px; justify-content:space-between; font-size:.8rem; color:rgba(250,246,236,.55); }
.ftr__bar nav{ display:flex; gap:20px; flex-wrap:wrap; }
.ftr__mark{ font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--gold-light); }

/* ---------- skeleton / states ---------- */
.skel{ position:relative; overflow:hidden; background:rgba(14,59,54,.08); border-radius:2px; }
.sec--dark .skel,.sec--ink .skel{ background:rgba(250,246,236,.07); }
.skel::after{ content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); animation:shim 1.4s infinite; }
@keyframes shim{ to{ transform:translateX(100%); } }
.empty{ padding:40px 20px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:2px; display:grid; gap:12px; justify-items:center; }
.sec--dark .empty,.sec--ink .empty{ color:rgba(250,246,236,.7); border-color:var(--line-light); }

/* ---------- restaurant: menu ---------- */
.menu-bar{ position:sticky; top:var(--hdr-h); z-index:40; background:rgba(250,246,236,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-block:1px solid var(--line); }
.menu-bar__in{ display:grid; gap:10px; padding:10px 0; }
.menu-tabs{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding:2px var(--gutter); margin:0 calc(var(--gutter)*-1); scroll-snap-type:x proximity; }
.menu-tabs::-webkit-scrollbar{ display:none; }
.menu-tabs a{ flex:none; padding:9px 16px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; color:var(--muted); border-bottom:2px solid transparent; white-space:nowrap; scroll-snap-align:center; transition:all .25s; }
.menu-tabs a.is-on{ color:var(--peacock); border-color:var(--gold); }
.menu-tabs a:hover{ color:var(--peacock); }
.menu-tools{ display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
.search{ position:relative; flex:1 1 220px; } .search svg{ position:absolute; left:12px; top:50%; width:18px; height:18px; margin-top:-9px; color:var(--muted); pointer-events:none; } .search .input{ padding-left:40px; min-height:42px; }
.switch{ display:inline-flex; align-items:center; gap:10px; font-size:.82rem; cursor:pointer; user-select:none; }
.switch input{ position:absolute; opacity:0; width:1px; height:1px; }
.switch i{ width:44px; height:24px; background:rgba(14,59,54,.2); border-radius:100px; position:relative; transition:background .3s; flex:none; }
.switch i::after{ content:""; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .3s var(--ease); }
.switch input:checked + i{ background:#1e8e3e; } .switch input:checked + i::after{ transform:translateX(20px); }
.switch input:focus-visible + i{ outline:2px solid var(--gold); outline-offset:3px; }
.menu-cat{ padding-top:clamp(36px,5vw,64px); }
.menu-cat__head{ display:grid; gap:6px; margin-bottom:24px; }
.menu-cat__head h3{ font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4vw,3rem); color:var(--peacock); line-height:1; }
.menu-cat__head p{ color:var(--muted); font-style:italic; font-family:var(--serif); font-size:1.15rem; }
.menu-list{ display:grid; gap:0 clamp(32px,5vw,72px); } @media (min-width:900px){ .menu-list{ grid-template-columns:1fr 1fr; } }
.mi{ padding:16px 0; border-bottom:1px solid var(--line); break-inside:avoid; }
.mi__top{ display:flex; align-items:baseline; gap:10px; }
.mi__name{ font-family:var(--serif); font-weight:500; font-size:1.4rem; line-height:1.15; color:var(--text); display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.mi__dots{ flex:1; border-bottom:1px dotted rgba(14,59,54,.35); transform:translateY(-5px); min-width:20px; }
.mi__price{ font-family:var(--serif); font-size:1.4rem; font-weight:500; color:var(--peacock); white-space:nowrap; }
.mi__desc{ font-size:.92rem; color:var(--muted); margin-top:4px; font-weight:300; max-width:48ch; }
.mi__tags{ display:flex; gap:8px; align-items:center; margin-top:6px; flex-wrap:wrap; }
.tag{ font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; padding:3px 8px; border:1px solid var(--gold); color:var(--gold-deep); font-weight:500; border-radius:2px; }
.tag--chef{ background:var(--gold); color:var(--ink); }
.mi.is-sold .mi__name,.mi.is-sold .mi__price{ color:#9aa5a1; text-decoration:line-through; text-decoration-thickness:1px; } .mi.is-sold .mi__desc{ opacity:.6; }
.tag--sold{ border-color:#b3261e; color:#b3261e; text-decoration:none; }
.menu-note{ margin-top:36px; padding:18px 20px; border:1px solid var(--line); background:var(--cream); font-size:.88rem; color:var(--muted); }

/* ---------- restaurant: reserve ---------- */
.res{ display:grid; gap:40px; } @media (min-width:960px){ .res{ grid-template-columns:.8fr 1.2fr; gap:clamp(40px,6vw,96px); align-items:start; } }
.res__card{ background:var(--ivory); color:var(--text); padding:clamp(22px,3.5vw,40px); border-top:3px solid var(--gold); box-shadow:var(--shadow-m); border-radius:2px; }
.res__step{ display:grid; gap:14px; margin-bottom:26px; }
.res__step > .lbl{ display:flex; align-items:center; gap:12px; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; font-weight:500; color:var(--peacock); }
.res__step > .lbl i{ font-style:normal; width:26px; height:26px; border-radius:50%; background:var(--peacock); color:var(--gold-light); display:grid; place-items:center; font-size:.78rem; letter-spacing:0; }
.slots h4{ font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:6px 0 8px; font-weight:500; }
.slot-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(98px,1fr)); gap:8px; }
.slot-btn{ min-height:46px; border:1px solid rgba(14,59,54,.25); background:#fff; border-radius:2px; font-size:.9rem; font-weight:500; color:var(--peacock); transition:all .2s; }
.slot-btn:hover:not([disabled]){ border-color:var(--gold); background:var(--cream); }
.slot-btn[aria-pressed="true"]{ background:var(--peacock); color:var(--gold-light); border-color:var(--peacock); }
.slot-btn[disabled]{ opacity:.4; text-decoration:line-through; cursor:not-allowed; }
.res__sum{ display:flex; flex-wrap:wrap; gap:8px 18px; padding:12px 14px; background:var(--cream); font-size:.9rem; border-left:3px solid var(--gold); margin-bottom:6px; }
.occ{ display:flex; flex-wrap:wrap; gap:8px; }
.cal-actions{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:8px; }

/* ---------- prose (legal) ---------- */
.prose{ max-width:760px; margin:0 auto; } .prose h2{ font-family:var(--serif); font-size:2rem; font-weight:500; color:var(--peacock); margin:44px 0 10px; line-height:1.1; } .prose p,.prose li{ color:#3d4a46; font-weight:300; font-size:1.05rem; margin-bottom:12px; } .prose ul{ list-style:disc; padding-left:22px; } .prose a{ color:var(--peacock); border-bottom:1px solid var(--gold); } .prose .updated{ font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* ---------- 404 ---------- */
.nf{ min-height:100svh; display:grid; place-items:center; text-align:center; color:var(--ivory); background:var(--ink); position:relative; isolation:isolate; padding:40px var(--gutter); }
.nf::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 60% at 50% 40%,rgba(20,87,79,.55),transparent 70%); z-index:-1; }
.nf .num{ font-family:var(--serif); font-size:clamp(6rem,24vw,14rem); line-height:.9; font-weight:500; background:linear-gradient(135deg,var(--gold-light),var(--gold) 60%,var(--gold-deep)); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- misc ---------- */
.two{ display:grid; gap:36px; } @media (min-width:900px){ .two{ grid-template-columns:1fr 1fr; gap:64px; } }
.img-frame{ position:relative; } .img-frame img{ width:100%; height:100%; object-fit:cover; border-radius:2px; }
.img-frame::after{ content:""; position:absolute; inset:-14px 14px 14px -14px; border:1px solid var(--gold); z-index:-1; }
.hours{ display:grid; gap:8px; }
.hours div{ display:flex; justify-content:space-between; gap:20px; border-bottom:1px dotted var(--line); padding-bottom:8px; }
.sec--dark .hours div{ border-color:var(--line-light); }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .js .rv,.js .rv-l{ opacity:1; transform:none; }
  .hero__slide{ transition:none; }
}

/* ---------- print (menu) ---------- */
@media print{
  @page{ margin:14mm; }
  body{ background:#fff !important; color:#000; padding:0 !important; font-size:11pt; }
  .hdr,.fbar,.wa-float,.mnav,.ftr,.menu-bar,.phero,.no-print,.toast,.skip,#reserve,.cta-band,.sec:not(.print-keep){ display:none !important; }
  .print-keep{ padding:0 !important; background:#fff !important; }
  .print-head{ display:block !important; text-align:center; margin-bottom:16pt; }
  .menu-cat{ padding-top:14pt; break-inside:auto; } .menu-cat__head{ break-after:avoid; }
  .menu-list{ grid-template-columns:1fr 1fr; gap:0 24pt; }
  .mi{ padding:7pt 0; border-color:#bbb; } .mi__name,.mi__price{ font-size:12pt; color:#000; } .mi__desc{ color:#333; font-size:9.5pt; }
  .js .rv{ opacity:1 !important; transform:none !important; }
}
.print-head{ display:none; }

/* ---------- additions: language, services, rating, hindi ---------- */
.hdr__r{ display:flex; align-items:center; gap:12px; }
.lang{ display:inline-flex; border:1px solid rgba(241,217,143,.5); border-radius:100px; padding:2px; background:rgba(6,32,29,.35); }
.lang button{ min-width:40px; height:34px; padding:0 10px; border:0; background:none; color:var(--ivory); font-size:.78rem; font-weight:500; border-radius:100px; letter-spacing:.06em; transition:all .25s; }
.lang button[aria-pressed="true"]{ background:var(--gold); color:var(--ink); }
.lang button[lang=hi]{ font-family:'Noto Sans Devanagari',var(--sans); font-size:.9rem; }
.ftr-row{ display:flex; align-items:center; gap:10px; margin-bottom:10px; } .ftr-row svg{ width:17px; height:17px; color:var(--gold-light); flex:none; }
.muted-on-dark{ color:rgba(250,246,236,.6); font-size:.88rem; }
.fbar > *{ min-width:0; }
.hi{ display:block; font-family:'Noto Sans Devanagari',var(--sans); font-size:.82rem; font-weight:400; color:var(--muted); letter-spacing:0; line-height:1.4; }
.dish .hi{ color:rgba(250,246,236,.6); }
.mi__name .hi{ flex-basis:100%; margin-top:-2px; }

.services{ padding:30px 0 6px; }
.svc{ display:flex; flex-wrap:wrap; gap:10px 8px; justify-content:center; }
.svc li{ display:inline-flex; align-items:center; gap:9px; padding:9px 16px; border:1px solid var(--line); border-radius:100px; font-size:.82rem; letter-spacing:.04em; color:var(--peacock); background:rgba(255,255,255,.55); }
.svc svg{ width:17px; height:17px; color:var(--gold-deep); flex:none; }

.seal{ text-align:center; }
.story__media .seal b{ display:block; font-size:2.1rem; line-height:1; }
.story__media .seal > span{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-family:var(--sans); }
.rating{ display:inline-flex; align-items:center; gap:16px; padding:10px 22px 10px 12px; border:1px solid var(--line-light); border-radius:100px; background:rgba(250,246,236,.06); margin-top:6px; transition:border-color .3s; }
.rating:hover{ border-color:var(--gold); }
.rating__n{ font-family:var(--serif); font-size:2.6rem; line-height:1; color:var(--gold-light); width:70px; height:70px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gold); }
.rating__s{ display:grid; gap:4px; text-align:left; } .rating__s small{ font-size:.8rem; letter-spacing:.06em; color:rgba(250,246,236,.8); }

/* Devanagari: use matching fonts, drop uppercase tracking that breaks conjuncts */
html[lang=hi]{ --serif:'Tiro Devanagari Hindi','Cormorant Garamond',Georgia,serif; --sans:'Noto Sans Devanagari','Jost',system-ui,sans-serif; }
html[lang=hi] body{ line-height:1.75; }
html[lang=hi] :is(.h1,.h2,.h3,.hero h1,.pillar h3,.rcard h3,.brand b,.step h3,.event h3,.pkg h3,.mi__name,.menu-cat__head h3,.faq summary,.modal h2,.success h3,.dish h3,.amen h3,.hall-row b){ font-weight:400; letter-spacing:0; line-height:1.25; }
html[lang=hi] :is(.eyebrow,.btn,.link,.nav a,.fbar a,.fbar button,.badge,.tag,.chip,.field label,.field .lbl,.slot,.pill,.ftr h4,.crumbs,.price small,.stat span,.facts span,.hall-card__stats span,.diet,.mnav nav a span,.hero__scroll,.step::before){ letter-spacing:0; text-transform:none; }
html[lang=hi] .btn,html[lang=hi] .nav a{ font-size:.92rem; }
html[lang=hi] .eyebrow{ font-size:.9rem; }
html[lang=hi] .hero h1{ font-size:clamp(2.4rem,6.4vw,5.4rem); max-width:18ch; }
html[lang=hi] .brand b{ letter-spacing:.2em; font-family:'Cormorant Garamond',serif; }
@media (max-width:480px){ .brand b{ font-size:1.4rem; letter-spacing:.16em; } .brand img{ width:36px; height:36px; } .brand small{ letter-spacing:.2em; font-size:.5rem; } .brand{ gap:9px; } .hdr__r{ gap:4px; } .lang button{ min-width:34px; height:32px; padding:0 8px; } }
.sec-head--split > div:first-child{ flex:1 1 460px; max-width:760px; }
.hero h1{ font-size:clamp(2.6rem,6.6vw,5.8rem); max-width:17ch; }
.pillar img.pos-low{ object-position:50% 75%; }
.stat b,.price b,.mi__price,.dish__price,.facts b,.hall-card__stats b,.rating__n,.pkg .price b{ font-variant-numeric:lining-nums; }
.facts{ width:100%; }
html[lang=hi] .brand small{ letter-spacing:.04em; text-transform:none; font-size:.7rem; margin-top:3px; }
.menu-bar__in{ grid-template-columns:minmax(0,1fr); }
.menu-cat{ scroll-margin-top:calc(var(--hdr-h) + 130px); }
@media (min-width:900px){ .menu-tabs{ margin:0; padding:2px 0; } }
.hall-card h3{ font-family:var(--serif); font-weight:500; font-size:1.9rem; line-height:1.05; color:var(--peacock); }
@media (min-width:900px){ .rbig__img{ min-height:400px; } .rbig__img img{ position:absolute; inset:0; } }
.menu-tabs{ margin:0; padding:2px 0; max-width:100%; }
/* light cards sitting inside dark sections keep light-theme colours */
.res__card,.avail,.modal__box{ color:var(--text); }
.res__card .field label,.res__card .field .lbl,.avail .field label,.avail .field .lbl,.modal__box .field label{ color:var(--muted); }
.res__card .err,.avail .err,.modal__box .err{ color:#b3261e; }
.res__card .success h3,.avail .success h3{ color:var(--peacock); }
.res__card .success .muted,.sec--dark .res__card .muted{ color:var(--muted); }
.res__card .ref,.sec--dark .res__card .ref{ background:#fff; color:var(--peacock); }
.res__card .chip,.sec--dark .res__card .chip{ border-color:var(--line); color:var(--text); }
.res__card .chip.is-on,.sec--dark .res__card .chip.is-on,.res__card .chip[aria-pressed="true"]{ background:var(--peacock); border-color:var(--peacock); color:var(--ivory); }
.res__card .btn--line{ --b-fg:var(--peacock); }
.sec--dark .res__card .form-msg,.sec--dark .avail .form-msg{ color:#7f1d17; }
.sec--dark .avail .form-note{ color:var(--muted); }
.menu-bar__in{ padding:10px var(--gutter); }
.ftr .link{ color:var(--gold-light); white-space:nowrap; }
.link{ white-space:nowrap; }
