/* Nunchi Spa homepage redesign. Brand tokens from design.md: sage, warm brown, cream, charcoal. Cormorant Garamond + Lato. */
:root{--ink:#243129;--ink-2:#1d2822;--pearl:#f9f5f0;--paper:#fdfaf7;--mist:#eef2ed;--sage:#58705e;--blush:#c5d4c8;--warm:#765744;--warm-l:#8c6f5a;--earth:#d4bfb0;--sand:#f1e8e0;--text:#2d2d2d;--muted:#5f5953;--line:#d9d0c7;--max:1220px;--bar:36px;--head:80px;--panel:109px;--ov:54px;--r:4px;--ease:cubic-bezier(.16,1,.3,1)}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--pearl);color:var(--text);font:400 16px/1.65 Lato,Arial,sans-serif;overflow-x:hidden}
body.lock{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4,p,ul{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
section[id]{scroll-margin-top:calc(var(--head) + 12px)}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;letter-spacing:-.02em;line-height:1.08}
:focus-visible{outline:2px solid var(--warm);outline-offset:3px}
.dark :focus-visible,.hero :focus-visible,.site-head :focus-visible,.final :focus-visible,.foot :focus-visible{outline-color:var(--blush)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;padding:12px 18px;background:var(--pearl);color:var(--ink);border-radius:var(--r);font-weight:700}
.skip:focus{top:8px}
.wrap{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.pad{padding:clamp(56px,7vw,96px) 0}
.eyebrow{display:block;margin-bottom:14px;color:#4a6050;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.h2{font-size:clamp(2.2rem,4.2vw,3.6rem);max-width:22ch;text-wrap:balance}
.lede{max-width:56ch;margin-top:16px;color:var(--muted);font-size:1.02rem}
.note{margin-top:10px;color:var(--muted);font-size:.78rem}

/* Buttons: one label per intent. Call to reserve is the only primary action. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border:1px solid transparent;border-radius:var(--r);font-weight:700;font-size:.95rem;line-height:1.1;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn--stack{flex-direction:column;gap:3px;padding:8px 32px;min-height:60px}
.btn--stack small{font-size:.72rem;font-weight:400;letter-spacing:.04em;opacity:.85}
.btn .lab{display:inline-flex;align-items:center;gap:10px}
.btn--pearl{background:var(--pearl);color:var(--ink)}
.btn--pearl:hover{background:var(--blush)}
.btn--warm{background:var(--warm);color:#fff}
.btn--warm:hover{background:#5f4636}
.btn--line-dark{border-color:rgba(249,245,240,.45);color:var(--pearl)}
.btn--line-dark:hover{border-color:var(--pearl);background:rgba(249,245,240,.08)}
.btn--line{border-color:var(--warm);color:var(--warm)}
.btn--line:hover{background:var(--warm);color:#fff}
.btn--sm{min-height:44px;padding:0 18px;font-size:.84rem}
.tlink{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--warm);font-weight:700;font-size:.9rem;border-bottom:1px solid currentColor;padding-bottom:1px}
.tlink:hover{color:var(--ink)}

/* Rating line */
.rating{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.88rem;color:var(--muted)}
.rating strong{color:inherit;font-weight:700}
.stars:before{content:"\f005\f005\f005\f005\f005";font-family:"Nunchi Icons";font-weight:900;font-size:.82rem;letter-spacing:.16em;color:var(--warm-l)}
.rating--dark{color:#d6ddd8}
.rating--dark .stars:before{color:var(--blush)}
.rating a:hover,a.rating:hover{text-decoration:underline;text-underline-offset:3px}

/* Utility bar + header */
.bar{height:var(--bar);background:var(--ink-2);color:#c9d3cc;font-size:.78rem}
.bar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.bar b{color:var(--pearl);font-weight:700}
.bar a{color:var(--pearl);font-weight:700}
.bar a:hover{text-decoration:underline}
.site-head{position:sticky;top:0;z-index:60;height:var(--head);background:rgba(36,49,41,.96);border-bottom:1px solid rgba(197,212,200,.14);color:var(--pearl);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.head-in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.logo{display:block;justify-self:center}
.logo img{width:64px;height:64px;object-fit:contain}
.dnav{display:flex;align-items:center;gap:2px;height:100%}
.head-r{display:flex;align-items:center;justify-content:flex-end;gap:8px;height:100%}
.call-ico{display:none;width:48px;height:48px;place-items:center;border-radius:var(--r);background:var(--pearl);color:var(--ink);font-size:1.05rem}
.dnav>li{height:100%;display:flex;align-items:center}
.nav-a,.nav-btn{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 13px;border:0;background:none;color:#e6ece8;font-size:.86rem;font-weight:700;letter-spacing:.01em;border-radius:var(--r);transition:color .2s,background-color .2s}
.nav-a:hover,.nav-btn:hover,.has-mega.open>.nav-btn{color:#fff;background:rgba(249,245,240,.08)}
.nav-btn:after{content:"";width:6px;height:6px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .25s var(--ease)}
.has-mega.open>.nav-btn:after{transform:rotate(225deg);margin-top:3px}
.head-cta{margin-left:6px;min-height:44px;padding:0 20px;font-size:.86rem}
.burger{display:none;justify-self:start;width:48px;height:48px;border:1px solid rgba(197,212,200,.3);border-radius:var(--r);background:none;color:var(--pearl);font-size:1.15rem}

/* Mega menu */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);color:var(--text);border-bottom:1px solid var(--line);box-shadow:0 28px 48px -24px rgba(36,49,41,.35);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s .22s}
.has-mega.open .mega{opacity:1;visibility:visible;transform:none;transition:opacity .22s var(--ease),transform .22s var(--ease)}
.mega-in{display:grid;grid-template-columns:repeat(3,1fr) 1.15fr;gap:40px;padding:36px 0 40px}
.mega-in--2{grid-template-columns:1fr 1fr 1.1fr}
.mega h3{margin-bottom:14px;font-size:.72rem;font-family:Lato,sans-serif;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--sage)}
.mega li a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;font-size:.95rem;color:var(--text);transition:color .2s,transform .2s var(--ease)}
.mega li a:hover{color:var(--warm);transform:translateX(3px)}
.mega li em{font-style:normal;color:var(--muted);font-size:.82rem;white-space:nowrap}
.mega li a span small{display:block;margin-top:2px;color:var(--muted);font-size:.8rem;font-weight:400}
.mega-all{display:inline-flex;margin-top:12px;color:var(--warm);font-weight:700;font-size:.88rem;border-bottom:1px solid currentColor}
.mega-feat{position:relative;background:var(--ink);color:var(--pearl);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.mega-feat img{width:100%;aspect-ratio:16/10;object-fit:cover}
.mega-feat div{padding:26px 26px 28px}
.mega-feat h4{font:400 1.45rem/1.15 "Cormorant Garamond",serif;margin-bottom:6px}
.mega-feat p{font-size:.85rem;color:#c9d3cc;margin-bottom:14px}

/* Mobile drawer */
.drawer{display:none}

/* Hero */
.hero{background:var(--ink);color:var(--pearl);display:grid;grid-template-columns:minmax(0,13fr) minmax(0,11fr);min-height:clamp(500px,calc(100dvh - var(--bar) - var(--head) - var(--panel) + var(--ov) - 20px),800px)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:40px clamp(24px,4vw,64px) calc(40px + var(--ov)) max(24px,calc((100vw - var(--max))/2))}
.hero h1{font-size:clamp(2.7rem,5.2vw,5.4rem);font-weight:300;line-height:1.02}
.hero h1 em{display:block;color:var(--blush);padding-bottom:.12em;line-height:1.12}
.hero-tag{display:block;margin-bottom:8px;font:italic 400 1.8rem/1.2 "Cormorant Garamond",Georgia,serif;color:var(--blush)}
.hero-sub{max-width:50ch;margin-top:22px;color:#d6ddd8;font-size:1.12rem}
.hero-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero .rating{margin-top:20px}
.hero-media{position:relative;overflow:hidden;min-height:360px}
.hero-media picture{display:contents}
.hero-media img{animation:drift 16s var(--ease) both;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:100% center}
.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#243129 0,rgba(36,49,41,.97) 16%,rgba(36,49,41,.88) 24%,rgba(36,49,41,.68) 33%,rgba(36,49,41,.42) 43%,rgba(36,49,41,.2) 54%,rgba(36,49,41,.06) 66%,rgba(36,49,41,0) 78%)}
@keyframes shine{0%{transform:translateX(-120%)}30%,100%{transform:translateX(120%)}}
@keyframes drift{from{transform:scale(1.07)}to{transform:none}}

/* Trust strip */

.trust{position:relative;z-index:2;margin-top:calc(var(--ov) * -1)}
.ledge{display:grid;grid-template-columns:auto 1fr;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 48px -28px rgba(36,49,41,.5)}
.lg-rate{display:flex;align-items:center;gap:14px;padding:22px 36px 22px 28px;border-right:1px solid var(--line);transition:background-color .2s}
.lg-rate:hover{background:var(--pearl)}
.lg-txt{display:grid;gap:2px}
.lg-score{display:flex;align-items:center;gap:10px}
.lg-score b{font:400 2.5rem/1 "Cormorant Garamond",serif;font-variant-numeric:lining-nums;color:var(--ink)}
.lg-sub{color:var(--muted);font-size:.8rem}
.lg-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:0}
.lg-facts li{display:flex;align-items:center;gap:14px;padding:20px 28px}
.lg-facts li+li{border-left:1px solid var(--line)}
.lg-facts i{flex:none;display:grid;place-items:center;width:26px;height:26px;color:var(--warm-l);font-size:1.15rem}
.lg-facts .pct{font:700 .8rem/1 Lato,Arial,sans-serif;font-style:normal;width:26px;height:26px;border:1.5px solid var(--warm-l);border-radius:50%}
.lg-facts b{display:block;font-size:.95rem;line-height:1.3}
.lg-facts span{display:block;color:var(--muted);font-size:.8rem;line-height:1.4}

/* Treatments bento */
.treat{background:var(--pearl)}
.tgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:44px}
.tcard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .25s,transform .35s var(--ease)}
.tcard:hover{border-color:var(--earth);transform:translateY(-3px)}
.tcard img{width:100%;aspect-ratio:4/3;object-fit:cover}
.tcard .tb{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;flex:1}
.tcard h3{font-size:1.5rem}
.tcard h3 a:hover,.more li b a:hover{color:var(--warm)}
.tcard .meta{color:var(--muted);font-size:.82rem}
.price{font:700 1.1rem/1.2 Lato,Arial,sans-serif;color:var(--warm);font-variant-numeric:lining-nums tabular-nums}
.price small{margin-right:5px;font-size:.74rem;font-weight:400;letter-spacing:.04em;color:var(--muted)}
.tcard--feat .price{font-size:1.4rem}
.exp-item .price,.exp-big .price{font-size:1.15rem}
.tcard .tfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:10px}
.tcard--feat{grid-column:span 6;grid-row:span 2}
.tcard--feat img{aspect-ratio:auto;flex:1 1 0;height:0;min-height:300px}
.tcard--feat .tb{flex:none}
.tcard--feat h3{font-size:2.1rem}
.tcard--feat p{max-width:40ch;color:var(--muted);font-size:.95rem}
.tcard--s{grid-column:span 3}
.more{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,2.3fr);gap:32px;padding:30px;background:var(--mist);border-radius:var(--r)}
.more h3{font-size:1.7rem}
.more p{margin-top:6px;color:var(--muted);font-size:.88rem}
.more ul{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 32px}
.more li{display:flex;flex-direction:column}
.more li b{font:600 1.25rem "Cormorant Garamond",serif}
.more li span{color:var(--muted);font-size:.8rem}
.more li em{font-style:normal;color:var(--warm);font-weight:700;font-size:.95rem}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px;margin-top:40px}

/* Reserve band */
.reserve{background:var(--mist)}
.reserve-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.reserve .cta-row{margin-top:30px}
.verbs li{padding:22px 0}
.verbs li+li{border-top:1px solid rgba(88,112,94,.28)}
.verbs h3{font-size:1.9rem;color:var(--ink)}
.verbs p{margin-top:4px;color:var(--muted);max-width:42ch}

/* Experiences */
.exp-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px;margin-top:44px;align-items:start}
.exp-big img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.exp-big h3{margin-top:18px;font-size:2.2rem}
.exp-big p{max-width:50ch;margin-top:8px;color:var(--muted)}
.exp-big .row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:14px}
.exp-list{display:grid;gap:16px}
.exp-item{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);transition:border-color .25s,transform .35s var(--ease)}
.exp-item:hover{border-color:var(--earth);transform:translateY(-2px)}
.exp-item img{width:132px;aspect-ratio:1;object-fit:cover;border-radius:var(--r)}
.exp-item h3{font-size:1.4rem}
.exp-item p{color:var(--muted);font-size:.85rem;margin:2px 0 6px}

/* Why */
.why{background:var(--paper);border-block:1px solid var(--line)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 36px;margin-top:44px}
.why-grid li{padding-top:20px;border-top:2px solid var(--sage)}
.why-grid h3{font-size:1.5rem;margin-bottom:8px}
.why-grid p{color:var(--muted);font-size:.92rem}

/* Reviews */
.rev-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.big{font:400 clamp(5rem,10vw,8rem)/.9 "Cormorant Garamond",serif;color:var(--ink);font-variant-numeric:lining-nums}
.big small{font-size:.28em;color:var(--muted);margin-left:6px}
.rev-l .stars:before{font-size:1.05rem}
.rev-l p{margin:14px 0 22px;color:var(--muted)}
.quotes li{padding:22px 0}
.quotes li:first-child{padding-top:0}
.quotes li+li{border-top:1px solid var(--line)}
.quotes p{font:400 1.45rem/1.3 "Cormorant Garamond",serif;max-width:34ch}
.quotes cite{display:block;margin-top:8px;color:var(--muted);font-size:.8rem;font-style:normal}
.quotes cite b{color:var(--text)}

/* Membership */
.member{background:var(--ink);color:var(--pearl)}
.member .eyebrow{color:var(--blush)}
.member .lede{color:#c9d3cc}
.ledger{margin-top:40px;border:1px solid rgba(197,212,200,.25);border-radius:var(--r)}
.plan{display:grid;grid-template-columns:minmax(150px,.6fr) minmax(0,2fr) 110px auto;gap:12px 32px;align-items:center;padding:24px 28px}
.plan+.plan{border-top:1px solid rgba(197,212,200,.2)}
.plan h3{font-size:1.9rem}
.plan p{color:#c9d3cc;font-size:.9rem}
.plan .price{color:var(--pearl);font-size:1.5rem}
.plan--more{background:rgba(249,245,240,.05)}

/* Areas */
.areas-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.chip{display:flex;flex-direction:column;justify-content:center;min-width:170px;min-height:64px;padding:12px 20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);transition:border-color .2s,transform .3s var(--ease)}
.chip:hover{border-color:var(--warm);transform:translateY(-2px)}
.chip b{font:500 1.25rem "Cormorant Garamond",serif}
.chip span{color:var(--muted);font-size:.78rem}

/* FAQ */
.faq{background:var(--paper);border-block:1px solid var(--line)}
.faq-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:14px 0;cursor:pointer;list-style:none;font:500 1.35rem/1.25 "Cormorant Garamond",serif}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";flex:none;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--earth);border-radius:50%;font:400 1.1rem/1 Lato,sans-serif;color:var(--warm);transition:transform .25s var(--ease)}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{padding:0 48px 22px 0;color:var(--muted)}
.faq details a{color:var(--warm);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Visit */
.visit-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);margin-top:40px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.visit-info{padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;gap:18px}
.visit-info h3{font-size:1.9rem}
.visit-info dl{margin:0;display:grid;gap:14px}
.visit-info dt{color:var(--sage);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.visit-info dd{margin:2px 0 0}
.visit-info dd a{color:var(--warm);font-weight:700}
.visit-info .cta-row{margin-top:6px}
.visit-map iframe{display:block;width:100%;height:100%;min-height:440px;border:0;filter:grayscale(.65) sepia(.08) contrast(.92)}

/* Google mark, status, WhatsApp */
.g{flex:none;display:inline-block;vertical-align:-3px}
.g--lg{width:22px;height:22px}
.rating .g{margin-right:-2px}
.dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#7bc48f;vertical-align:1px}
.dot.off{background:#d9b38c}
.wa-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid rgba(197,212,200,.4);border-radius:var(--r);color:var(--pearl);font-size:.84rem;font-weight:700;transition:background-color .2s,border-color .2s}
.wa-btn:hover{background:rgba(249,245,240,.08);border-color:var(--pearl)}
.wa-btn i{display:grid;place-items:center;width:22px;height:22px}
.wa-btn img{width:22px;height:22px;filter:brightness(0) invert(1)}
.wa-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;font-size:.9rem;color:var(--warm);border-bottom:1px solid currentColor;padding-bottom:1px}
.wa-link img{width:18px;height:18px}
.final .wa-link{color:var(--blush)}
/* Price guide */
.pg{background:var(--paper);border-block:1px solid var(--line)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.tab{min-height:46px;padding:0 20px;border:1px solid var(--line);border-radius:var(--r);background:transparent;font-weight:700;font-size:.9rem;color:var(--muted);transition:background-color .2s,color .2s,border-color .2s}
.tab:hover{border-color:var(--warm);color:var(--warm)}
.tab[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--pearl)}
.js .tpanel[hidden]{display:none}
.tpanel{margin-top:24px}
.tpanel h3{font-size:1.5rem;margin-bottom:12px}
.ptab{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ptab th,.ptab td{padding:14px 12px;text-align:right;font-size:.95rem}
.ptab th:first-child,.ptab td:first-child{text-align:left;padding-left:12px}
.ptab thead th{color:var(--sage);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--ink)}
.ptab tbody th{font:600 1.3rem/1.2 "Cormorant Garamond",serif;color:var(--text)}
.ptab tbody tr:nth-child(even){background:rgba(238,242,237,.7)}
.ptab td{color:var(--text);font-weight:700;font-size:1rem}
.ptab td.na{color:#8a827a}
.ptab .sub{display:block;font:400 .78rem Lato,sans-serif;color:var(--muted)}
.pg-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:28px}
.pg-foot p{color:var(--muted);font-size:.85rem;max-width:56ch}
/* Reviews */
.gbadge{display:inline-flex;align-items:center;gap:12px;padding:10px 16px 10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.gbadge svg{width:28px;height:28px}
.gbadge b{display:block;font-size:.92rem;line-height:1.2}
.gbadge span span{display:block;color:var(--muted);font-size:.75rem}
.rev-l .big{margin-top:22px}
.topics{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.topics li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.8rem;color:var(--muted)}
.topics b{color:var(--text)}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rgrid:focus-visible{outline-offset:6px}
.rcard{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.rcard .stars:before{font-size:.8rem}
.rcard p{font:400 1.22rem/1.35 "Cormorant Garamond",serif;flex:1}
.rcard cite{display:flex;align-items:center;gap:8px;font-style:normal;font-size:.8rem;color:var(--muted)}
.rcard cite b{color:var(--text)}
.rcard cite svg{flex:none;width:14px;height:14px}
.rev-in{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}
/* Map facade */
.map-facade{position:relative;display:grid;place-items:center;min-height:440px;height:100%;padding:24px;text-align:center;background:linear-gradient(rgba(88,112,94,.07) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,rgba(88,112,94,.07) 1px,transparent 1px) 0 0/44px 44px,var(--mist)}
.map-facade div{display:grid;gap:10px;justify-items:center;max-width:300px}
.map-facade b{font:400 1.6rem "Cormorant Garamond",serif}
.map-facade span{color:var(--muted);font-size:.88rem}
/* Premium pass: warm sections, italic accents, depth, mark watermark */
.h2 em{font-style:italic;color:var(--warm);padding-bottom:.1em;line-height:1.15}
.hero-copy{background:none}
#experiences,#reviews{background:var(--sand)}
.reserve{background:linear-gradient(135deg,#7a5b47 0%,#654a39 100%);color:var(--pearl)}
.reserve .h2,.reserve .verbs h3{color:var(--pearl)}
.reserve .h2 em{color:var(--earth)}
.reserve .lede,.reserve .verbs p{color:#eadfd5}
.reserve .verbs li+li{border-color:rgba(249,245,240,.22)}
.reserve .btn--warm{background:var(--pearl);color:var(--ink)}
.reserve .btn--warm:hover{background:var(--blush)}
.reserve .rating{color:#eadfd5}
.reserve .stars:before{color:var(--earth)}
.reserve .wa-link{color:var(--pearl)}
.reserve :focus-visible{outline-color:var(--pearl)}
.member .h2 em,.final h2 em{color:var(--blush)}
.member,.final{position:relative;overflow:hidden}
.member:before,.final:before{content:"";position:absolute;right:-3%;bottom:-22%;width:min(48vw,540px);aspect-ratio:1;background:url(../images/nunchi-logo-mark.webp) center/contain no-repeat;opacity:.04;pointer-events:none}
.member>*,.final>*{position:relative}
.reserve .wa-link img,.final .wa-link img{width:22px;height:22px;filter:brightness(0) invert(1)}
.tcard img{transition:transform .9s var(--ease)}
.tcard:hover img{transform:scale(1.04)}
.tcard:hover{box-shadow:0 24px 44px -28px rgba(36,49,41,.4)}

/* Final CTA */
.final{background:var(--ink);color:var(--pearl);text-align:center;padding:clamp(72px,9vw,128px) 0}
.final h2{font-size:clamp(2.5rem,5.4vw,4.8rem);font-weight:300;max-width:18ch;margin-inline:auto;text-wrap:balance}
.final h2 em{color:var(--blush)}
.final p{max-width:46ch;margin:18px auto 30px;color:#d6ddd8}
.final .rating{justify-content:center}

/* Footer */
.foot{background:var(--ink-2);color:#b9c4bb;font-size:.9rem;padding:64px 0 0}
.foot-grid{display:grid;grid-template-columns:1.3fr 1.7fr 1fr 1fr;gap:40px}
.foot-cols{columns:2;column-gap:24px}
.foot-cols li{break-inside:avoid}
.foot .foot-all{color:var(--pearl);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.foot h3{margin-bottom:14px;color:var(--pearl);font:700 .72rem Lato,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.foot li a{display:inline-block;padding:6px 0;color:#b9c4bb;transition:color .2s}
.foot li a:hover{color:#fff}
.foot address{font-style:normal;line-height:1.75;margin-bottom:22px}
.foot address a{color:var(--pearl);font-weight:700}
.foot-logo{display:inline-block;margin-bottom:16px}
.foot-logo img{width:96px;height:96px;max-width:none;margin:0 0 0 -6px}
.foot-brand p{max-width:34ch;margin-bottom:22px}
.foot-call{display:inline-block;margin:0 0 14px;padding:6px 0;font:700 1.05rem/1.2 Lato,Arial,sans-serif;letter-spacing:.02em;color:var(--pearl);transition:color .2s}
.foot-call:hover{color:var(--blush)}
.foot-social{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.foot-social .ig{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid rgba(197,212,200,.35);border-radius:var(--r);color:var(--pearl);font-size:.88rem;font-weight:700;transition:background-color .2s,border-color .2s}
.foot-social .ig:hover{background:rgba(249,245,240,.08);border-color:var(--pearl)}
.foot-social .ig svg{flex:none;color:var(--blush)}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 20px}
.foot-links a{display:inline-block;padding:10px 0;color:#b9c4bb;transition:color .2s}
.foot-links a:hover{color:#fff}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:48px;padding:20px 0 28px;border-top:1px solid rgba(197,212,200,.16);font-size:.8rem}
.foot-base nav{display:flex;gap:20px}
.foot-base a{color:#b9c4bb;text-decoration:underline;text-underline-offset:3px;padding:4px 0}

/* Mobile sticky action bar */
.sticky{display:none}

/* Reveal: only hidden when JS runs */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .rv.in{opacity:1;transform:none}

@media(max-width:1080px){
  .dnav,.head-cta,.wa-btn{display:none}
  .burger{display:block}
  .head-r{justify-content:flex-end}
  .call-ico{display:grid}
  .drawer{position:fixed;inset:calc(var(--head)) 0 0;z-index:55;display:none;flex-direction:column;overflow-y:auto;padding:12px 24px 32px;background:var(--ink);color:var(--pearl)}
  .drawer.open{display:flex}
  .drawer details{border-bottom:1px solid rgba(197,212,200,.18)}
  .drawer summary,.drawer>a{display:flex;justify-content:space-between;align-items:center;min-height:58px;list-style:none;cursor:pointer;font:400 1.6rem "Cormorant Garamond",serif;border-bottom:1px solid rgba(197,212,200,.18)}
  .drawer details summary{border-bottom:0}
  .drawer summary::-webkit-details-marker{display:none}
  .drawer summary:after{content:"+";font:400 1.4rem Lato,sans-serif;color:var(--blush)}
  .drawer details[open] summary:after{content:"\2212"}
  .drawer details a{display:flex;justify-content:space-between;min-height:46px;align-items:center;padding-left:4px;color:#d6ddd8;font-size:1rem}
  .drawer details a em{font-style:normal;color:var(--blush);font-size:.85rem}
  .drawer details div{padding-bottom:14px}
  .drawer .d-cta{margin-top:26px;display:grid;gap:14px;justify-items:center}
  .drawer .d-cta .btn{width:100%}
  .drawer .d-cta>small{color:#b9c4bb}
  .drawer .d-cta .btn small{color:var(--ink);opacity:1;font-weight:700;font-size:.8rem;letter-spacing:.03em}
  .why-grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand,.foot-treat{grid-column:1/-1}
  .plan{grid-template-columns:minmax(0,1fr) auto}
  .plan p{grid-column:1/-1;grid-row:2}
  .plan .btn{grid-column:1/-1}
}
@media(max-width:899px){
  .ledge{grid-template-columns:1fr}
  .lg-rate{padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .lg-score b{font-size:2.1rem}
  .lg-facts li{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 12px}
  .lg-facts i{width:20px;height:20px;font-size:1rem}
  .lg-facts .pct{width:20px;height:20px;font-size:.62rem}
  .lg-facts b{font-size:.8rem}
  .lg-facts span{font-size:.72rem}
  :root{--panel:166px;--ov:50px}
  .hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(480px,calc(100dvh - var(--bar) - var(--head) - var(--panel) + var(--ov) - 20px),900px)}
  .hero-copy{position:relative;z-index:1;padding:32px 24px calc(28px + var(--ov))}
  .hero-media{position:absolute;inset:0;min-height:0}
  .hero-media img{inset:0 0 auto auto;width:auto;height:66%;max-width:none;object-fit:cover;object-position:right center}
  .hero-media:after{background:linear-gradient(180deg,rgba(36,49,41,.28) 0,rgba(36,49,41,.12) 14%,rgba(36,49,41,.55) 34%,rgba(36,49,41,.92) 50%,#243129 63%)}
  .hero .rating{display:none}
  .reserve-in,.rev-in,.faq-in,.exp-grid,.visit-grid{grid-template-columns:1fr}
  .map-facade{min-height:300px}
  .tcard--feat{grid-column:1/-1;grid-row:auto}
  .tcard--feat img{flex:none;aspect-ratio:4/3;min-height:0}
  .tcard--s{grid-column:span 6}
  .more{grid-template-columns:1fr;padding:24px}
  .more ul{grid-template-columns:1fr 1fr}
  .visit-map iframe{min-height:340px}
}
@media(max-width:767px){
  :root{--head:64px;--panel:183px;--ov:44px}
  .wrap{width:calc(100% - 32px)}
  .bar .hide-m{display:none}
  .bar .wrap{gap:8px;white-space:nowrap}
  .bar{font-size:.74rem}
  .bar .wrap{justify-content:center}
  .logo img{width:56px;height:56px}
  .head-in{gap:8px}
  .hero-copy{padding:24px 16px calc(20px + var(--ov))}
  .hero-sub{margin-top:12px;font-size:1rem}
  .hero-sub .m-hide{display:none}
  .hero-tag{font-size:1.3rem;margin-bottom:6px}
  .hero-act{margin-top:18px;gap:6px}
  .hero-act .btn{width:100%}
  .hero-act .btn--line-dark{min-height:44px;border:0;background:none;text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(249,245,240,.5)}
  .tcard--s{grid-column:1/-1}
  .tcard--s{flex-direction:row}
  .tcard--s img{width:42%;aspect-ratio:auto;object-fit:cover}
  .tcard--s .tb{padding:14px 16px}
  .tcard h3{font-size:1.35rem}
  .more ul{grid-template-columns:1fr 1fr;gap:16px 20px}
  .more li b{font-size:1.1rem}
  .rgrid{grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;padding-bottom:12px;margin-inline:-16px;padding-inline:16px;scrollbar-width:thin}
  .rcard{scroll-snap-align:start}
  .tab{flex:1 1 auto;padding:0 14px}
  .ptab th,.ptab td{padding:12px 6px;font-size:.88rem}
  .ptab th:first-child,.ptab td:first-child{padding-left:8px}
  .ptab tbody th{font-size:1.12rem}
  .exp-item{grid-template-columns:96px minmax(0,1fr)}
  .exp-item img{width:96px}
  .why-grid{grid-template-columns:1fr}
  .faq details p{padding-right:0}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .foot{padding-top:44px}
  .foot-logo{margin-bottom:10px}
  .foot-logo img{width:56px;height:56px}
  .foot-brand p{display:none}
  .foot-call{padding:10px 0;margin:0 0 4px}
  .foot-base a{padding:10px 0}
  .foot address{margin-bottom:16px}
  .foot h3{margin-bottom:6px}
  .foot-cols{column-gap:16px}
  .foot li a{padding:8px 0}
  .foot-base{margin-top:28px;gap:6px 20px}
  .foot-base nav{flex-wrap:wrap;gap:4px 18px}
  .cta-row .btn{width:100%}
  .final .btn{width:100%}
  .sticky{display:grid;grid-template-columns:1fr auto;gap:8px;position:fixed;z-index:50;left:12px;right:12px;bottom:12px;padding:8px;background:rgba(29,40,34,.96);border:1px solid rgba(197,212,200,.22);border-radius:var(--r);box-shadow:0 14px 34px rgba(13,13,13,.4);opacity:0;transform:translateY(calc(100% + 24px));pointer-events:none;transition:opacity .3s,transform .35s var(--ease)}
  .sticky.on{opacity:1;transform:none;pointer-events:auto}
  .sticky .btn{min-height:56px;padding:0 12px}
  .sticky .btn--pearl{flex-direction:column;gap:3px}
  .sticky .btn--pearl small{font-size:.7rem;letter-spacing:.01em;opacity:1;color:var(--warm);font-weight:700}
  .sticky .wa{min-height:56px}
  .sticky .btn--pearl{position:relative;overflow:hidden}
  .sticky .btn--pearl:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 34%,rgba(140,111,90,.36) 50%,transparent 66%);transform:translateX(-120%);animation:shine 3s ease-in-out infinite}
  .sticky .wa{width:56px;padding:0}
  .sticky .wa img{width:26px;height:26px;filter:brightness(0) invert(1)}
  .foot{padding-bottom:88px}
}
@media(max-width:420px){.bar .hide-s{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{opacity:1;transform:none;transition:none}*{transition-duration:.01ms!important;animation:none!important}}
