/* Annapurna Thali. A magazine food feature: brass and turmeric on warm paper. */
@font-face{font-family:"Eczar";src:url(/fonts/eczar-500.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Hind";src:url(/fonts/hind-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Rasa";src:url(/fonts/rasa-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}

:root{
  --paper:#F6F0E4;--paper2:#EDE3CF;--paper3:#E4D6BA;
  --ink:#1E1912;--ink2:#43392B;--mute:#65584A;
  --brass:#865710;--sun:#E2A11B;--sun2:#F0BC45;
  --rule:#D3C3A3;--dark:#1B140C;--dark2:#271D12;--cream:#F3E8CF;--cream2:#CDBF9F;
  --leaf:#2D6A36;--leaf-d:#7FC48A;--red:#A2361C;--red-d:#F08A6A;
  --serif:"Eczar",Georgia,"Times New Roman",serif;
  --sans:"Hind",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ital:"Rasa",Georgia,serif;
  --gut:clamp(20px,4vw,48px);--max:1320px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
html body{padding-bottom:0}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;letter-spacing:-.015em;text-wrap:balance}
p{margin:0 0 1em}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 16px;text-decoration:none}
.skip:focus{top:12px}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
html:not(.js) .js-only{display:none!important}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border:1.5px solid transparent;border-radius:3px;font:500 1rem/1 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s var(--ease);white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn .arr{width:16px;height:12px;transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn:active{transform:translateY(1px)}
.btn-lg{min-height:54px;padding:0 26px;font-size:1.0625rem}
.btn-full{width:100%}
.btn-sun{background:var(--sun);color:var(--ink);border-color:var(--sun)}
.btn-sun:hover{background:var(--sun2);border-color:var(--sun2)}
.btn-ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-ink:hover{background:#3a2f22;border-color:#3a2f22}
.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-quiet{color:var(--ink);padding:0 12px}
.btn-quiet:hover{color:var(--brass)}
.btn-ghost-d,.btn-line-d{border-color:rgba(243,232,207,.55);color:var(--cream);background:transparent}
.btn-ghost-d:hover,.btn-line-d:hover{border-color:var(--cream);background:rgba(243,232,207,.08)}
.row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- small type ---------- */
.kicker,.sec-no,.cap-n,.c-k,.tf-k,.w-k,.f-k,.bk-l,legend,.field,.dateline p,.hours dt,.hero-facts dt{font:500 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.sec-no{display:flex;align-items:baseline;gap:14px;color:var(--brass);margin:0 0 18px}
.sec-no span{font:500 1rem/1 var(--serif);letter-spacing:0;text-transform:none;color:var(--ink);padding-right:14px;border-right:1px solid var(--rule)}
.sec-sub{color:var(--mute);max-width:36em}
.cap{font:italic 400 1rem/1.45 var(--ital);color:var(--mute);margin:12px 0 0;max-width:44em}
.cap-n{font-style:normal;color:var(--brass);margin-right:12px;letter-spacing:.12em}
.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--sun);margin-right:10px;vertical-align:.08em;flex:none}
.is-open .status-dot{background:var(--leaf-d);box-shadow:0 0 0 4px rgba(127,196,138,.22)}
.is-closed .status-dot{background:var(--red-d)}

/* ---------- masthead ---------- */
.mast{position:relative;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink)}
.mast-in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:64px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand-en{font:500 1.75rem/1 var(--serif);letter-spacing:-.02em;padding-top:4px}
.brand-gu{width:46px;height:19px;fill:var(--brass);margin-top:2px}
.nav{display:none;gap:26px}
.nav a{text-decoration:none;font-size:.9375rem;color:var(--ink2);padding:6px 0;background:linear-gradient(var(--sun),var(--sun)) 0 100%/0 2px no-repeat;transition:background-size .3s var(--ease),color .2s}
.nav a:hover{color:var(--ink);background-size:100% 2px}
.mast-act{display:none;gap:6px}
.mast-act .btn{min-height:42px}
@media (min-width:900px){
  .mast{position:sticky;top:0}
  .mast-act{display:flex}
}
@media (min-width:1100px){.nav{display:flex}}
.dateline{border-bottom:1px solid var(--rule)}
.dateline p{max-width:var(--max);margin:0 auto;padding:9px var(--gut) 7px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;color:var(--mute);text-align:center}
.dl-sep{color:var(--brass)}
@media (max-width:520px){.dateline p>:nth-child(n+4){display:none}}

/* ---------- hero ---------- */
.hero{padding-bottom:clamp(40px,6vw,72px)}
.hero-stage{position:relative;overflow:hidden;background:var(--dark);color:var(--cream)}
.hero-img{position:relative;height:max(400px,calc(100svh - 250px));max-height:640px}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:46% 30%}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,7,0) 30%,rgba(20,14,7,.5) 58%,rgba(20,14,7,.9) 100%)}
.hero-title{position:absolute;left:0;right:0;bottom:0;margin:0 auto;padding-bottom:clamp(22px,4vw,48px)}
.kicker{display:flex;align-items:center;margin:0 0 14px;color:var(--cream)}
.hero h1{font-size:clamp(3.2rem,11.5vw,9rem);line-height:.9;letter-spacing:-.03em;max-width:11ch;color:#FBF4E2}
.hero h1 em{font-style:normal;color:var(--sun2)}
.hero-below{display:grid;gap:22px;padding-top:14px}
.hero-cap{margin:0;font-size:.95rem}
.standfirst{font:500 clamp(1.3rem,2.3vw,1.75rem)/1.3 var(--serif);letter-spacing:-.01em;margin:8px 0 0;max-width:24em;color:var(--ink)}
.hero-facts{display:flex;margin:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.hero-facts div{flex:1;padding:12px 14px 10px 0}
.hero-facts div+div{padding-left:14px;border-left:1px solid var(--rule)}
.hero-facts dt{color:var(--mute)}
.hero-facts dd{margin:4px 0 0;font:500 1.5rem/1.1 var(--serif);white-space:nowrap}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.hero-cta .btn{flex:1 1 auto}
@media (min-width:640px){.hero-img{height:min(80svh,760px);max-height:none}}
@media (min-width:900px){
  .hero-img{height:min(calc(100svh - 104px),56.25vw);max-height:860px}
  .hero-img::after{background:linear-gradient(180deg,rgba(20,14,7,0) 45%,rgba(20,14,7,.55) 72%,rgba(20,14,7,.88) 100%),linear-gradient(90deg,rgba(20,14,7,.45),rgba(20,14,7,0) 55%)}
  .hero h1{max-width:none}
  .hero-below{grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:28px;align-items:start;padding-top:16px}
  .hero-cap{grid-column:7/13;grid-row:1;text-align:right;justify-self:end;max-width:32em}
  .standfirst{grid-column:1/7;grid-row:1/3;margin-top:22px}
  .hero-facts{grid-column:8/13;grid-row:2}
  .hero-cta{grid-column:8/13;grid-row:3}
  .hero-cta .btn{flex:1}
}

/* ---------- statement ---------- */
.statement{padding:clamp(48px,8vw,120px) 0;border-top:1px solid var(--rule)}
.st-grid{display:grid;gap:36px}
.quote{margin:0;position:relative}
.quote p{font:500 clamp(1.9rem,4.4vw,3.6rem)/1.08 var(--serif);letter-spacing:-.025em;margin:0;text-wrap:balance}
.quote p::before{content:"\201C";display:block;font-size:2.4em;line-height:.6;height:.42em;color:var(--sun)}
.quote footer{margin-top:22px;font:italic 400 1.125rem/1.4 var(--ital);color:var(--mute)}
.quote footer::before{content:"";display:inline-block;width:36px;height:1px;background:var(--brass);vertical-align:middle;margin-right:12px}
.frame{overflow:hidden;background:var(--paper3)}
.frame img{width:100%;height:100%;object-fit:cover}
.st-text{max-width:34em;color:var(--ink2)}
.dropcap::first-letter{float:left;font:500 4.3em/.78 var(--serif);margin:.08em .09em 0 0;color:var(--brass)}
@media (min-width:900px){
  .st-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:48px;grid-template-areas:"q q q q q q q . f f f f" "t t t t t t . . f f f f"}
  .quote{grid-area:q}
  .st-fig{grid-area:f;margin:0;align-self:start}
  .st-text{grid-area:t;columns:2;column-gap:32px;max-width:none}
  .st-text p{break-inside:avoid-column}
}
.st-fig,.k-fig,.p-fig{margin:0}

/* ---------- thali (signature) ---------- */
.thali{background:var(--dark);color:var(--cream);padding:clamp(56px,8vw,112px) 0 clamp(56px,7vw,96px);position:relative}
.thali::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:repeating-linear-gradient(90deg,var(--sun) 0 18px,transparent 18px 26px)}
.thali .sec-no{color:var(--sun2)}
.thali .sec-no span{color:var(--cream);border-color:rgba(243,232,207,.25)}
.sec-head{max-width:52rem;margin-bottom:28px}
.sec-head h2,.k-text h2,.p-head h2,.pc-text h2,.b-text h2,.v-head h2,.g-text h2{font-size:clamp(2.2rem,5vw,4.25rem);line-height:.98;margin-bottom:18px}
.thali .sec-sub{color:var(--cream2)}
.days{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gut) * -1) 28px;padding:4px var(--gut)}
.days::-webkit-scrollbar{display:none}
.days button{flex:none;position:relative;min-width:56px;min-height:48px;padding:0 14px;border:1px solid rgba(243,232,207,.3);border-radius:3px;background:transparent;color:var(--cream);font:500 1.0625rem/1 var(--serif);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.days button:hover{border-color:var(--cream)}
.days button[aria-selected="true"]{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.days button.is-today::after{content:"Today";position:absolute;left:50%;top:-9px;transform:translateX(-50%);padding:1px 6px;border-radius:2px;background:var(--cream);color:var(--ink);font:500 .625rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.th-grid{display:grid;gap:32px}
.plate-col{display:grid;gap:18px;justify-items:center;align-content:start}
.plate-wrap{position:relative;width:min(100%,520px)}
.plate{width:100%;height:auto;overflow:visible;cursor:pointer}
.plate .food{transform-box:fill-box;transform-origin:center;transition:opacity .5s var(--ease),transform .6s var(--ease)}
.plate .slot.off .food{opacity:0;transform:scale(.7)}
.plate .slot.off .ktr{opacity:.85}
.plate .slot.pop .food{animation:pop .7s var(--ease) var(--dl,0ms) both}
@keyframes pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.06);opacity:1}100%{transform:scale(1)}}
.plate-count{position:absolute;left:0;bottom:0;margin:0;font:500 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--cream2)}
.plate-count span{font:500 1.75rem/1 var(--serif);letter-spacing:0;color:var(--sun2);margin-right:6px;vertical-align:-.15em}
.serve-ctl{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%}
.now-served{display:grid;gap:4px;width:100%;margin:0;padding:12px 0 2px;border-top:1px solid rgba(243,232,207,.25);text-align:center}
.ns-k{font:500 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--sun2)}
.ns-d{font:500 1.5rem/1.2 var(--serif);color:#FBF4E2}
.motion .now-served.bump .ns-d{animation:rise .6s var(--ease) both}
.serve-ctl #serve-next{flex:1 1 100%;max-width:520px}
.price-line{margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid rgba(243,232,207,.25);font:500 1.25rem/1.3 var(--serif);color:var(--sun2)}
.courses{list-style:none;margin:0;padding:0;counter-reset:c}
.courses li{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px 0 14px;border-bottom:1px solid rgba(243,232,207,.14);transition:opacity .45s var(--ease)}
.c-n{font:500 2rem/1 var(--serif);color:var(--sun2);padding-top:4px}
.c-k{margin:0 0 6px;color:var(--cream2)}
.c-dish{margin:0 0 4px;font:500 clamp(1.35rem,2.4vw,1.75rem)/1.15 var(--serif);color:#FBF4E2;transition:opacity .5s var(--ease),transform .6s var(--ease)}
.c-note{margin:0;color:var(--cream2);font-size:1rem;line-height:1.5;max-width:34em;transition:opacity .5s var(--ease) .08s}
.js .courses li.wait{opacity:.5}
.js .courses li.wait.now{opacity:1}
.js .courses li.wait.now .c-k{color:var(--cream)}
.js .courses li.wait .c-dish,.js .courses li.wait .c-note{display:none}
.js .courses li.wait .c-k{margin:10px 0 0}
.motion .courses li.just .c-dish{animation:rise .7s var(--ease) var(--dl,0ms) both}
.motion .courses li.just .c-note{animation:rise .7s var(--ease) calc(var(--dl,0ms) + 80ms) both}
.courses li.wait .c-k::after{content:" · not served yet";letter-spacing:.06em;text-transform:none;font-style:italic;font-family:var(--ital);font-size:1rem}
.courses li.now .c-n{color:var(--ink);background:var(--sun);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;padding:0;font-size:1.5rem}
.thali-done{margin-top:24px;padding:22px;border:1px solid var(--sun);border-radius:3px}
.thali-done p{font:500 1.25rem/1.35 var(--serif);margin:0 0 16px}
.week{margin-top:clamp(40px,6vw,72px);border-top:1px solid rgba(243,232,207,.25)}
.week summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px 0;font:500 1.25rem/1.2 var(--serif)}
.week summary::-webkit-details-marker{display:none}
.week summary::after{content:"+";font:400 1.75rem/1 var(--sans);color:var(--sun2);transition:transform .3s var(--ease)}
.week[open] summary::after{transform:rotate(45deg)}
.week-scroll{overflow-x:auto;margin:0 calc(var(--gut) * -1);padding:0 var(--gut)}
.week table{width:100%;min-width:760px;border-collapse:collapse;font-size:.9375rem}
.week th,.week td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-bottom:1px solid rgba(243,232,207,.14)}
.week thead th{font:500 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--cream2)}
.week tbody th{font:500 1.0625rem/1.3 var(--serif);white-space:nowrap}
.week .tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:2px;background:var(--sun);color:var(--ink);font:500 .8rem/1.5 var(--sans)}
.week-note{margin:14px 0 0;color:var(--cream2);font:italic 400 1rem/1.4 var(--ital)}
@media (min-width:900px){
  .th-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .plate-col{grid-column:1/7;position:sticky;top:96px}
  .course-col{grid-column:8/13}
  .days{margin:0 0 36px;padding:10px 0 4px;overflow:visible}
  .days button{min-width:72px}
  .now-served{display:none!important}
}
@media (max-width:899px){.days{overflow:visible;margin:0 0 28px;padding:12px 0 0}.days button{flex:1 1 0;min-width:0;padding:0}}

/* ---------- kitchen ---------- */
.kitchen{padding:clamp(56px,9vw,128px) 0}
.k-grid{display:grid;gap:36px}
.k-fig .frame{aspect-ratio:4/5}
.k-text p{color:var(--ink2);max-width:34em}
.k-list{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--ink)}
.k-list li{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);color:var(--ink2);font-size:1rem}
.k-list b{font:500 1.0625rem/1.4 var(--serif);color:var(--ink)}
@media (min-width:900px){
  .k-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center}
  .k-fig{grid-column:1/7}
  .k-text{grid-column:8/13}
}

/* ---------- prices ---------- */
.prices{padding:clamp(56px,8vw,112px) 0;background:var(--paper2);border-top:1px solid var(--rule)}
.p-grid{display:grid;gap:32px}
.ratecard{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.ratecard li{display:flex;align-items:baseline;gap:10px;padding:16px 0 14px;border-bottom:1px solid var(--rule)}
.r-name{font:500 1.3rem/1.2 var(--serif);min-width:0}
.r-name small{display:block;margin-top:4px;font:400 .9375rem/1.4 var(--sans);color:var(--mute);letter-spacing:0}
.r-dots{flex:1;min-width:16px;border-bottom:2px dotted var(--brass);opacity:.5;transform:translateY(-6px)}
.r-price{font:500 1.6rem/1 var(--serif);white-space:nowrap}
.r-hi{background:linear-gradient(90deg,rgba(226,161,27,.2),transparent 85%);border-left:3px solid var(--sun);padding-left:12px!important}
.p-fig .frame{aspect-ratio:1}
@media (min-width:900px){
  .p-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .p-head{grid-column:1/13;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end}
  .p-head .sec-no{grid-column:1/13}
  .p-head h2{grid-column:1/8;margin:0}
  .p-head .sec-sub{grid-column:9/13;margin:0 0 6px}
  .ratecard{grid-column:1/8}
  .p-fig{grid-column:9/13}
}

/* ---------- parcel ---------- */
.parcel{padding:0 0 clamp(56px,8vw,112px)}
.band{margin:0}
.band-img{overflow:hidden;aspect-ratio:4/3;background:var(--paper3)}
.band-img img{width:100%;height:100%;object-fit:cover}
.band .cap{max-width:var(--max)}
@media (min-width:700px){.band-img{aspect-ratio:21/9}}
.pc-grid{display:grid;gap:40px;margin-top:clamp(36px,6vw,72px)}
.pc-text>p{color:var(--ink2);max-width:32em}
.tiffin{margin-top:28px;padding:22px;border:1px solid var(--brass);border-radius:3px;background:linear-gradient(135deg,rgba(226,161,27,.12),transparent 60%)}
.tf-k{color:var(--brass);margin:0 0 6px}
.tf-p{font:500 2.25rem/1 var(--serif);margin:0 0 12px}
.tf-p span{font:400 1rem/1 var(--sans);color:var(--mute)}
.tiffin p:not(.tf-k):not(.tf-p){color:var(--ink2);font-size:1rem}
.order{background:#FBF7EE;border:1px solid var(--rule);border-top:3px solid var(--ink);padding:24px 20px;border-radius:0 0 3px 3px}
.order h3{font-size:1.75rem;margin-bottom:8px}
.o-items{list-style:none;margin:0 0 20px;padding:0}
.o-item{display:grid;grid-template-columns:1fr auto;grid-template-areas:"n p" "n q";gap:4px 14px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:center}
.o-name{grid-area:n}
.o-name label{display:block;font:500 1.15rem/1.25 var(--serif)}
.o-name small{display:block;color:var(--mute);font-size:.9rem;line-height:1.4;margin-top:2px}
.o-pr{grid-area:p;justify-self:end;font:500 1.1rem/1 var(--serif);color:var(--brass)}
.qty{grid-area:q;display:inline-flex;align-items:center;border:1px solid var(--ink);border-radius:3px;justify-self:end}
.qty input{width:44px;height:40px;border:0;background:transparent;text-align:center;font:500 1.15rem/1 var(--serif);-moz-appearance:textfield;appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.q-btn{width:44px;height:44px;border:0;background:transparent;font:400 1.4rem/1 var(--sans);cursor:pointer}
.q-btn:hover{background:var(--paper2)}
.qty-lg input{width:64px;height:52px;font-size:1.6rem}
.qty-lg .q-btn{width:52px;height:52px}
.o-sum{margin-top:18px;border-top:2px solid var(--ink);padding-top:14px}
.o-total{display:flex;justify-content:space-between;align-items:baseline;margin:0}
.o-total span{font:500 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.o-total output{font:500 2.5rem/1 var(--serif)}
.o-line{color:var(--mute);font-size:.95rem;margin:6px 0 16px;min-height:1.5em}
@media (min-width:900px){
  .pc-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .pc-text{grid-column:1/6}
  .order{grid-column:7/13;padding:30px 32px}
}

/* ---------- forms ---------- */
fieldset{border:0;margin:0 0 18px;padding:0;min-width:0}
legend{padding:0;margin-bottom:10px;color:var(--mute)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chips span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);font-size:1rem;transition:background-color .15s,border-color .15s,color .15s}
.chips label:hover span{border-color:var(--ink)}
.chips input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chips .past span{opacity:.4;text-decoration:line-through}
.chips input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
.field{display:block;color:var(--mute);margin-bottom:18px}
.field input,.field textarea{display:block;width:100%;margin-top:6px;min-height:48px;padding:10px 0 8px;border:0;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;font:400 1.0625rem/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink)}
.field textarea{resize:vertical;min-height:90px}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brass);box-shadow:0 2px 0 var(--sun)}
.field ::placeholder{color:#8B7D69}
.f2{display:grid;gap:0 20px}
@media (min-width:560px){.f2{grid-template-columns:1fr 1fr}}

/* ---------- book ---------- */
.book{padding:clamp(56px,8vw,112px) 0;background:var(--paper2);border-top:1px solid var(--rule)}
.b-grid{display:grid;gap:36px}
.b-text p{color:var(--ink2);max-width:30em}
.b-small{font:italic 400 1.125rem/1.45 var(--ital)}
.booker{background:#FBF7EE;border:1px solid var(--rule);border-top:3px solid var(--ink);padding:24px 20px}
.bk-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--rule)}
.bk-l{margin:0;font:500 1.6rem/1 var(--serif);letter-spacing:-.01em;text-transform:none}
.group-note{background:rgba(226,161,27,.16);border-left:3px solid var(--sun);padding:10px 14px;font-size:.95rem}
.bk-sum{display:grid;gap:12px;margin-top:6px;padding-top:16px;border-top:2px solid var(--ink)}
.bk-sum p{margin:0;font:500 1.25rem/1.3 var(--serif)}
@media (min-width:900px){
  .b-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .b-text{grid-column:1/6;position:sticky;top:110px}
  .booker{grid-column:7/13;padding:30px 32px}
  .bk-sum{grid-template-columns:1fr auto;align-items:center}
}

/* ---------- visit ---------- */
.visit{padding:0 0 clamp(56px,8vw,112px)}
.v-grid{display:grid;gap:36px;margin-top:clamp(36px,6vw,72px)}
.v-status{display:flex;align-items:center;margin:0;font:500 1.25rem/1.3 var(--serif)}
.v-status .status-dot{width:11px;height:11px}
.visit .is-open .status-dot{background:var(--leaf);box-shadow:0 0 0 4px rgba(45,106,54,.18)}
.visit .is-closed .status-dot{background:var(--red)}
.hours{margin:0;border-top:2px solid var(--ink)}
.hours div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--rule)}
.hours dt{color:var(--mute);padding-top:5px}
.hours dd{margin:0;font:500 1.2rem/1.35 var(--serif)}
.w-k{color:var(--brass);margin-bottom:10px}
.addr{font:500 1.35rem/1.35 var(--serif);margin-bottom:10px}
.w-small{color:var(--mute);font-size:1rem}
@media (min-width:900px){
  .v-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .v-head{grid-column:1/6}
  .hours{grid-column:6/10}
  .where{grid-column:10/13}
}

/* ---------- groups ---------- */
.groups{background:var(--dark2);color:var(--cream);padding:clamp(56px,8vw,112px) 0}
.groups .sec-no{color:var(--sun2)}
.groups .sec-no span{color:var(--cream);border-color:rgba(243,232,207,.25)}
.g-grid{display:grid;gap:36px}
.g-text p{color:var(--cream2);max-width:30em}
.g-text .row{margin-top:24px}
.enq .field{color:var(--cream2)}
.enq .field input,.enq .field textarea{color:var(--cream);border-bottom-color:rgba(243,232,207,.6)}
.enq .field input:focus,.enq .field textarea:focus{border-bottom-color:var(--sun)}
.enq .field ::placeholder{color:#A99A7B}
.enq input[type=date]{color-scheme:dark}
@media (min-width:900px){
  .g-grid{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
  .g-text{grid-column:1/6}
  .enq{grid-column:7/13}
}

/* ---------- footer ---------- */
.foot{background:var(--dark);color:var(--cream2);padding:48px 0 calc(160px + env(safe-area-inset-bottom));border-top:1px solid rgba(243,232,207,.12)}
.f-grid{display:grid;gap:28px}
.f-name{font:500 2.5rem/1 var(--serif);color:var(--cream);margin:0 0 6px;letter-spacing:-.02em}
.f-gu{width:68px;height:28px;fill:var(--sun2);margin-bottom:14px}
.f-k{color:var(--sun2);margin-bottom:8px}
.foot p:not(.f-name):not(.f-k){font-size:1rem}
.f-links{list-style:none;margin:0;padding:0;display:flex;gap:6px 18px;flex-wrap:wrap}
.f-links a{display:inline-block;padding:8px 0;color:var(--cream);text-underline-offset:4px}
@media (min-width:900px){.f-grid{grid-template-columns:6fr 3fr 3fr}.foot{padding-bottom:104px}}

/* ---------- phone action bar ---------- */
.actbar{position:fixed;z-index:8000;left:10px;right:10px;bottom:calc(66px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:6px;padding:6px;border-radius:6px;background:rgba(246,240,228,.96);border:1px solid var(--rule);box-shadow:0 12px 30px -12px rgba(30,25,18,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.actbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:3px;text-decoration:none;font-weight:500;font-size:.98rem;color:var(--ink)}
.actbar a svg{width:20px;height:20px}
.actbar a:not(.ab-main){border:1px solid var(--rule);background:var(--paper)}
.actbar .ab-main{background:var(--sun)}
.js .actbar{opacity:0;transform:translateY(18px);visibility:hidden;transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s linear .35s}
.js .actbar.show{opacity:1;transform:none;visibility:visible;transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s}
@media (min-width:900px){.actbar{display:none}}

/* ---------- motion ---------- */
.motion .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.motion .rv.in{opacity:1;transform:none}
.motion .par img{transform:translate3d(0,var(--py,0px),0) scale(1.12);will-change:transform}
.motion .hero-img img{animation:heroin 1.8s var(--ease) both}
.motion .hero-title>*{animation:rise 1.1s var(--ease) both}
.motion .hero-title h1{animation-delay:.12s}
@keyframes heroin{from{transform:scale(1.07)}to{transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- 404 ---------- */
.nf{min-height:calc(100svh - 64px);display:grid;place-content:center;justify-items:start;gap:0;padding:48px var(--gut);max-width:720px;margin:0 auto}
.nf h1{font-size:clamp(2.8rem,9vw,5.5rem);line-height:.95;margin:10px 0 18px}
.nf p{color:var(--ink2);max-width:30em}
.nf .row{margin-top:10px}
.nf svg{width:120px;height:auto;margin-bottom:22px}

/* ---- ZeroWeb credit (footer) ---- */
.zw-credit-row{display:flex;justify-content:center;margin-top:34px;padding:24px 20px 6px;border-top:1px solid rgba(205,191,159,.18)}
.zw-credit{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.55em;color:inherit;text-decoration:none;font-size:.95rem;line-height:1.1}
.zw-credit .zw-credit-logo{height:1.75em;width:auto;overflow:visible;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.zw-credit:hover .zw-credit-logo,.zw-credit:focus-visible .zw-credit-logo{transform:rotate(-3deg) scale(1.06)}
.zw-credit:focus-visible{outline:2px solid currentColor;outline-offset:6px;border-radius:8px}
.zw-credit svg.zc-i{flex:none;overflow:visible}
.zc-at .zc-plate{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.55em}
.zc-at .zc-katori{display:inline-grid;place-items:center;margin-top:-6px}
.zc-at .zc-t{font-family:var(--serif);font-weight:500}
.zc-steam path{animation:zc-steam 2.4s ease-in-out infinite;opacity:0}
.zc-steam path:nth-child(2){animation-delay:.8s}.zc-steam path:nth-child(3){animation-delay:1.6s}
@keyframes zc-steam{0%{opacity:0;transform:translateY(4px)}35%{opacity:.9}100%{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.zc-steam path{animation:none!important;transition:none!important}}
