/* self-hosted fonts (Fontsource): no third-party request, preloaded for a stable first paint */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Tiro Devanagari Hindi";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/tiro-devanagari-hindi-devanagari-400-normal.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF}
:root{
  --ink:#1B2420; --ink2:#2c3832; --paper:#EEF1EC; --accent:#A3262A; --muted:#5B665F; --line:#C9D0C8; --tint:#E2E7E0; --ok:#2f6b3f;
  --serif:"Instrument Serif",Georgia,serif; --sans:"Instrument Sans",system-ui,sans-serif; --deva:"Tiro Devanagari Hindi","Instrument Serif",serif;
  --ease:cubic-bezier(.2,.7,.2,1); --ease2:cubic-bezier(.65,0,.35,1); --spring:cubic-bezier(.34,1.4,.64,1);
  --pad:clamp(16px,4vw,48px);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{background:var(--paper);color:var(--ink);font:400 clamp(1rem,.95rem + .25vw,1.125rem)/1.6 var(--sans);overflow-x:hidden;padding-bottom:56px}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h1{font-size:clamp(3rem,7vw,6.5rem);line-height:.95;letter-spacing:-.02em}
h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;letter-spacing:-.01em}
h3{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.15}
p+p{margin-top:1em}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:200}
.skip:focus{left:8px}
.muted{color:var(--muted)}.small{font-size:.875rem;line-height:1.5}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;max-width:1320px;margin:0 auto;padding:0 var(--pad)}
.grid>*{min-width:0}
section{padding:clamp(64px,9vw,128px) 0}
section.tight{padding:clamp(40px,6vw,80px) 0}
.eyebrow{font:600 .8rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;display:block}

/* scroll progress */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);z-index:120;pointer-events:none}

/* header */
header.site{position:sticky;top:0;z-index:90;background:rgba(238,241,236,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);view-transition-name:header;transition:box-shadow 300ms var(--ease)}
header.site.stuck{box-shadow:0 8px 24px -16px rgba(27,36,32,.35)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1320px;margin:0 auto;padding:10px var(--pad);min-height:68px}
.brand{text-decoration:none;display:block;line-height:1.1}
.brand b{font:400 1.5rem/1 var(--serif);display:block}
.brand span{font:400 .95rem/1.2 var(--deva);color:var(--muted)}
nav.main{display:none;position:relative}
nav.main ul{list-style:none;padding:0;display:flex;gap:2px}
nav.main a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;font-weight:500;transition:color 180ms var(--ease)}
nav.main a:hover,nav.main a[aria-current="page"]{color:var(--accent)}
.thread{position:absolute;left:0;bottom:2px;height:2px;width:0;background:var(--accent);transition:transform 450ms var(--ease),width 450ms var(--ease);pointer-events:none}
.btn.hdr-cta{display:none}
.menu-btn{min-height:44px;min-width:44px;padding:0 16px;background:none;border:1px solid var(--ink);font:500 1rem var(--sans);color:var(--ink);cursor:pointer;transition:background-color 180ms var(--ease),color 180ms var(--ease)}
.menu-btn:hover{background:var(--ink);color:var(--paper)}
@media(min-width:1000px){nav.main{display:block}.menu-btn{display:none}.btn.hdr-cta{display:inline-flex}}
.sheet{position:fixed;inset:0;z-index:150;background:var(--paper);display:flex;flex-direction:column;padding:16px var(--pad) 32px;overflow:auto;visibility:hidden;clip-path:circle(0 at calc(100% - 48px) 40px);transition:clip-path 600ms var(--ease2),visibility 0s linear 600ms}
.sheet.open{visibility:visible;clip-path:circle(150% at calc(100% - 48px) 40px);transition:clip-path 700ms var(--ease2),visibility 0s}
.sheet .top{display:flex;justify-content:space-between;align-items:center;min-height:52px}
.sheet ul{list-style:none;padding:0;margin:20px 0}
.sheet li a{display:block;font:400 clamp(2rem,9vw,2.75rem)/1.25 var(--serif);text-decoration:none;padding:2px 0;min-height:44px;opacity:0;transform:translateY(18px);transition:opacity 400ms var(--ease),transform 500ms var(--ease),color 180ms}
.sheet.open li a{opacity:1;transform:none;transition-delay:calc(180ms + var(--i)*55ms)}
.sheet li a[aria-current="page"]{color:var(--accent)}
.sheet .foot{margin-top:auto}
.sheet .foot a{display:block;padding:10px 0;font-weight:600}

/* buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;font:600 1rem var(--sans);text-decoration:none;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;isolation:isolate;transition:color 260ms var(--ease),border-color 260ms var(--ease),transform 160ms var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform 380ms var(--ease);z-index:-1}
.btn:hover,.btn:focus-visible{color:var(--paper)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.btn.primary::before{background:var(--ink)}
.btn.primary:hover{border-color:var(--ink)}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform 300ms var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.ul{text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/0 1.5px no-repeat;transition:background-size 280ms var(--ease);padding-bottom:2px}
.ul:hover,.ul:focus-visible{background-size:100% 1.5px}

/* bottom bar (phones) */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:100;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--ink)}
.callbar a{display:flex;align-items:center;justify-content:center;min-height:56px;color:var(--paper);font-weight:600;text-decoration:none;transition:background-color 180ms var(--ease)}
.callbar a+a{border-left:1px solid #46534b}
.callbar a:hover{background:var(--ink2)}
.callbar a.book{background:var(--accent)}
.callbar :focus-visible{outline-color:var(--paper);outline-offset:-4px}
@media(min-width:1000px){.callbar{display:none}body{padding-bottom:0}}

/* page transition (cross-document) */
@view-transition{navigation:auto}
main{view-transition-name:page;outline:none}
::view-transition-old(page){animation:vt-out 260ms var(--ease) both}
::view-transition-new(page){animation:vt-in 520ms var(--ease) 80ms both}
@keyframes vt-out{to{opacity:0;transform:translateY(-14px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(22px)}}
::view-transition-group(header){animation-duration:0s}

/* reveal system */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--ease),transform 800ms var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.js .rv.in{opacity:1;transform:none}
.js .wd{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.js .wd>span{display:inline-block;transform:translateY(105%);transition:transform 900ms var(--ease);transition-delay:calc(var(--w,0)*55ms + var(--d,0ms))}
.js .in .wd>span,.js .wd.in>span,.js .loaded .wd>span{transform:none}
.js .imgr{clip-path:inset(0 0 100% 0);transition:clip-path 1200ms var(--ease2)}
.js .imgr img{transform:scale(1.18);transition:transform 1600ms var(--ease)}
.js .imgr.in,.js .loaded .imgr{clip-path:inset(0)}
.js .imgr.in img,.js .loaded .imgr img{transform:scale(1)}
.js .hl{opacity:0;transform:translateY(14px)}
.js .loaded .hl{opacity:1;transform:none;transition:opacity 700ms var(--ease),transform 700ms var(--ease);transition-delay:var(--hd,0ms)}

/* line art */
svg.art{display:block;width:100%;height:auto;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
svg.art .d{stroke-dasharray:1;stroke-dashoffset:1}
svg.art .ac{stroke:var(--accent)}
svg.art.drawn .d{stroke-dashoffset:0;transition:stroke-dashoffset 1300ms var(--ease2)}
svg.art.drawn .ac.d{transition-duration:500ms;transition-delay:1100ms}
svg.art.drawn .t0{transition-delay:150ms}
.float{animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-10px) rotate(-.6deg)}}

/* hero */
.hero{padding-top:clamp(32px,6vw,72px);position:relative;overflow:hidden}
.ghost{position:absolute;left:6%;top:-2%;font:400 24vw/1 var(--deva);color:var(--tint);white-space:nowrap;pointer-events:none;user-select:none;z-index:0;will-change:transform}
.hero .copy{grid-column:1/-1;position:relative;z-index:2}
.hero .heroart{grid-column:1/-1;position:relative;z-index:1;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
.hero .heroart svg{width:100%;height:auto;max-height:340px}
.hero .photo{aspect-ratio:3/4;overflow:hidden;border-radius:200px 200px 0 0}
.hero .photo img{width:100%;height:100%;object-fit:cover}
.hero .lede{max-width:34ch;font-size:1.25rem;margin-top:24px}
.status{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-weight:500}
.status i{width:10px;height:10px;border-radius:50%;background:var(--muted);display:inline-block;position:relative}
.status.open i{background:var(--ok)}
.status.open i::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--ok);animation:pulse 2.2s ease-out infinite}
@keyframes pulse{from{transform:scale(.5);opacity:.9}to{transform:scale(1.6);opacity:0}}
.hero .btns{margin-top:28px}
@media(min-width:1000px){
  .hero .copy{grid-column:1/7;grid-row:1;padding-top:24px}
  .hero .heroart{grid-column:7/13;grid-row:1;margin:0;grid-template-columns:5fr 6fr}
  .hero .heroart svg{max-height:none}
}

/* marquee */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:18px 0;background:var(--tint)}
.marquee .track{display:inline-flex;gap:48px;animation:slide 38s linear infinite;padding-left:48px}
.marquee span{font:400 clamp(1.5rem,3vw,2.25rem)/1 var(--serif)}
.marquee i{color:var(--accent);font-style:normal;margin-left:48px}
.marquee:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}

/* rating */
.rating{border-bottom:1px solid var(--line)}
.rating .fig{grid-column:1/-1;font:400 clamp(5rem,14vw,10rem)/.9 var(--serif);color:var(--accent)}
.rating .txt{grid-column:1/-1;align-self:end;margin-top:16px}
.rating p.big{font:400 clamp(1.5rem,2.6vw,2.25rem)/1.2 var(--serif)}
@media(min-width:900px){.rating .fig{grid-column:2/5}.rating .txt{grid-column:6/12;margin-top:0}}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.tags span{border:1px solid var(--ink);padding:6px 16px;font-weight:500;font-size:.95rem;transition:background-color 240ms var(--ease),color 240ms var(--ease),transform 300ms var(--spring)}
.tags span:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px) rotate(-1deg)}

/* lists and layout bits */
.why{list-style:none;padding:0}
.why li{border-top:1px solid var(--line);padding:22px 0;display:grid;gap:4px}
.why li>*{transition:transform 800ms cubic-bezier(.45,.05,.2,1),color 500ms ease}
.why li>p{transition-delay:70ms,0s}
.why li:hover>*{transform:translateX(22px)}
.why li:hover>h3{color:var(--accent)}
.why li:last-child{border-bottom:1px solid var(--line)}
.why h3{font-size:1.75rem}
.split{grid-column:1/-1}
@media(min-width:900px){.split.a{grid-column:1/5}.split.b{grid-column:5/12}.split.c{grid-column:3/11}.split.l{grid-column:1/7}.split.r{grid-column:8/13}.split.m{grid-column:1/8}.split.n{grid-column:9/13}}
.row2{row-gap:40px}
.photo-frame{overflow:hidden;background:var(--tint)}
.photo-frame img{width:100%;height:100%;object-fit:cover}
.photo-frame.arch{border-radius:240px 240px 0 0}
.cap{font-size:.85rem;color:var(--muted);margin-top:10px}
.band{background:var(--ink);color:var(--paper);padding:clamp(56px,8vw,112px) 0}
.band .btn{border-color:var(--paper);color:var(--paper)}
.band .btn::before{background:var(--paper)}
.band .btn:hover,.band .btn:focus-visible{color:var(--ink)}
.band .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.band .btn.primary:hover{color:var(--ink);border-color:var(--paper)}
.band h2{max-width:16ch}
.band .btns{margin-top:24px}
.band :focus-visible{outline-color:var(--paper)}
.band .muted{color:#b4bfb7}

/* parallax photo band */
.pband{position:relative;height:clamp(300px,52vw,560px);overflow:hidden;background:var(--ink)}
.pband img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;opacity:.82;will-change:transform}
.pband .over{position:absolute;inset:0;display:flex;align-items:flex-end;padding:var(--pad);background:linear-gradient(0deg,rgba(27,36,32,.78),rgba(27,36,32,0) 55%)}
.pband h2{color:var(--paper);max-width:18ch}
.pband .over>div{max-width:1320px;margin:0 auto;width:100%;padding:0 var(--pad) 8px}

/* page head */
.pagehead{padding:clamp(40px,7vw,96px) 0 clamp(24px,4vw,48px)}
.pagehead .l{grid-column:1/-1}
.lede{font-size:1.25rem;max-width:44ch;color:var(--ink)}

/* treatments */
.tx{border-top:1px solid var(--line);padding:clamp(32px,5vw,64px) 0}
.tx:last-of-type{border-bottom:1px solid var(--line)}
.tx .n{grid-column:1/-1;font:400 clamp(3rem,8vw,6rem)/1 var(--serif);color:var(--accent)}
.tx .h{grid-column:1/-1}
.tx .b{grid-column:1/-1;margin-top:16px}
@media(min-width:900px){.tx .n{grid-column:1/3}.tx .h{grid-column:3/7}.tx .b{grid-column:7/13;margin-top:0}}
.tx ul{padding-left:1.1em;margin-top:12px}
.tx li{margin-top:6px}
.note{border-left:3px solid var(--accent);padding:4px 0 4px 18px;margin-top:24px;color:var(--muted)}

/* gallery */
.gal{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:700px){.gal{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(190px,23vw,310px)}.gal .s4{grid-column:span 4}.gal .s3{grid-column:span 3}.gal .s2{grid-column:span 2}.gal .s6{grid-column:span 6}.gal .tall{grid-row:span 2}.gal button{aspect-ratio:auto;height:100%}}
.gal button{all:unset;display:block;cursor:zoom-in;overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--tint);width:100%;box-sizing:border-box}
.gal .tall button{aspect-ratio:3/4}
@media(min-width:700px){.gal .tall button,.gal button{aspect-ratio:auto;height:100%}}
.gal button img{width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease),filter 400ms}
.gal button:hover img,.gal button:focus-visible img{transform:scale(1.07)}
.gal button::after{content:attr(data-cap);position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;color:var(--paper);font-size:.9rem;background:linear-gradient(0deg,rgba(27,36,32,.8),transparent);transform:translateY(100%);transition:transform 450ms var(--ease)}
.gal button:hover::after,.gal button:focus-visible::after{transform:none}
.gal button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
dialog.lb{border:0;padding:0;background:transparent;max-width:min(96vw,1200px);max-height:92vh;overflow:visible;margin:auto}
dialog.lb::backdrop{background:rgba(27,36,32,.9);animation:fade 300ms var(--ease)}
dialog.lb[open] figure{animation:zoom 500ms var(--ease)}
@keyframes fade{from{opacity:0}}
@keyframes zoom{from{opacity:0;transform:scale(.92) translateY(16px)}}
dialog.lb img{max-height:80vh;width:auto;max-width:96vw;margin:0 auto;background:var(--ink)}
dialog.lb figcaption{color:var(--paper);text-align:center;padding:12px;font-size:.95rem}
.lb .x,.lb .nx,.lb .pv{position:fixed;background:var(--paper);color:var(--ink);border:0;min-width:48px;min-height:48px;font:600 1.25rem var(--sans);cursor:pointer;transition:transform 200ms var(--ease),background-color 200ms}
.lb .x:hover,.lb .nx:hover,.lb .pv:hover{background:var(--accent);color:var(--paper)}
.lb .x{top:16px;right:16px}.lb .pv{left:16px;top:50%}.lb .nx{right:16px;top:50%}

/* reviews */
.reader{position:relative;overflow:hidden;min-height:20rem}
.reader blockquote{font:400 clamp(1.5rem,3.4vw,2.6rem)/1.25 var(--serif);max-width:30ch;position:absolute;inset:0 auto auto 0;opacity:0;transform:translateX(40px);pointer-events:none;transition:opacity 500ms var(--ease),transform 700ms var(--ease);width:100%}
.reader blockquote.on{position:relative;opacity:1;transform:none;pointer-events:auto}
.reader blockquote.out{transform:translateX(-40px)}
.reader cite{display:block;font:500 1rem var(--sans);font-style:normal;color:var(--muted);margin-top:20px}
.rctl{display:flex;align-items:center;gap:12px;margin-top:28px}
.rctl button{min-height:48px;min-width:48px;border:1.5px solid var(--ink);background:none;color:var(--ink);font:600 1.1rem var(--sans);cursor:pointer;transition:background-color 200ms,color 200ms,transform 160ms}
.rctl button:hover{background:var(--ink);color:var(--paper)}
.rctl button:active{transform:scale(.94)}
.rctl .pos{font-weight:500;min-width:4.5em;text-align:center}
.rlist{list-style:none;padding:0}
.rlist li{border-top:1px solid var(--line);padding:24px 0}
.rlist li:last-child{border-bottom:1px solid var(--line)}
.rlist q{font:400 1.4rem/1.35 var(--serif);quotes:none;display:block}
.rlist .who{margin-top:10px;font-size:.9rem;color:var(--muted)}
.rlist .own{margin-top:10px;padding-left:16px;border-left:2px solid var(--accent);font-size:.95rem}

/* form */
form.book{display:grid;gap:22px}
.field{display:grid;gap:8px}
.field label,.field legend{font-weight:600}
.field .opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{font:400 1rem var(--sans);color:var(--ink);background:#fff;border:1.5px solid var(--ink);padding:0 14px;min-height:50px;width:100%;border-radius:0;transition:border-color 200ms,box-shadow 300ms var(--ease),transform 200ms var(--ease)}
.field textarea{padding:12px 14px;min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(163,38,42,.16);transform:translateY(-1px)}
.field .err{color:var(--accent);font-size:.9rem;max-height:0;overflow:hidden;opacity:0;transition:max-height 300ms var(--ease),opacity 300ms}
.field.bad .err{max-height:3em;opacity:1}
.field.bad input,.field.bad select{border-color:var(--accent)}
.two{display:grid;gap:22px}
@media(min-width:700px){.two{grid-template-columns:1fr 1fr}}
.slots{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0}
.slots label{position:relative}
.slots input{position:absolute;opacity:0;inset:0;cursor:pointer;width:100%;height:100%;min-height:0}
.slots span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:92px;padding:0 12px;border:1.5px solid var(--ink);font-weight:500;background:#fff;transition:background-color 200ms,color 200ms,transform 300ms var(--spring)}
.slots input:hover+span{transform:translateY(-2px)}
.slots input:checked+span{background:var(--ink);color:var(--paper)}
.slots input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}
.slots input:disabled+span{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.summary{border:1.5px solid var(--accent);padding:16px 18px;display:none}
.summary.show{display:block;animation:vt-in 400ms var(--ease)}
.summary h2{font-size:1.4rem;margin-bottom:6px}
.summary ul{padding-left:1.1em}
.summary a{color:var(--accent);font-weight:600}
.sideinfo{border-top:1px solid var(--line);padding-top:20px}
.sideinfo+.sideinfo{margin-top:28px}
.sideinfo h3{font-size:1.5rem;margin-bottom:8px}
.steps{list-style:none;padding:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;padding:10px 0;align-items:start}
.steps li::before{content:counter(s);font:400 1.75rem/1 var(--serif);color:var(--accent)}

/* contact */
.mapwrap{position:relative;border:1.5px solid var(--ink);background:var(--tint);aspect-ratio:4/5;overflow:hidden}
@media(min-width:700px){.mapwrap{aspect-ratio:16/10}}
.mapwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.maptools{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;align-items:center}
table.hours{border-collapse:collapse;width:100%;max-width:26rem}
table.hours th,table.hours td{text-align:left;padding:10px 0;border-top:1px solid var(--line);font-weight:400}
table.hours tr:last-child th,table.hours tr:last-child td{border-bottom:1px solid var(--line)}
table.hours tr.today{color:var(--accent);font-weight:600}
dl.facts{display:grid;gap:18px}
dl.facts dt{font:600 .8rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
dl.facts dd{margin:0}
dl.facts a{text-underline-offset:3px}
.contact-line{font:400 clamp(1.5rem,3vw,2.25rem)/1.2 var(--serif)}

footer.site{border-top:1px solid var(--line);padding:40px 0 48px}
footer.site .grid{row-gap:28px}
footer.site .c1{grid-column:1/-1}.footer-col{grid-column:span 6}
@media(min-width:900px){footer.site .c1{grid-column:1/6}.footer-col{grid-column:span 2}}
footer.site ul{list-style:none;padding:0}
footer.site li a{display:inline-flex;min-height:36px;align-items:center;text-decoration:none}
footer.site h4{font:600 .8rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv,.js .hl{opacity:1;transform:none}
  .js .wd>span{transform:none}
  .js .imgr{clip-path:none}.js .imgr img{transform:none}
  svg.art .d{stroke-dashoffset:0}
  @view-transition{navigation:none}
}

/* our services */
.svc{grid-column:1/-1;margin-top:8px}
.svc-focus{display:grid;grid-template-columns:1fr;border-top:1.5px solid var(--ink);margin-top:32px}
.svc-focus a{position:relative;display:block;padding:28px 44px 30px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .3s var(--ease),padding .3s var(--ease)}
.svc-focus .k{display:block;margin-bottom:14px;font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.svc-focus h3{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.05;transition:color .3s var(--ease)}
.svc-focus p{margin-top:10px;color:var(--muted);max-width:34ch}
.svc-focus .go{position:absolute;right:4px;top:28px;color:var(--ink);transition:transform .3s var(--ease),color .3s var(--ease)}
.svc-focus .go svg,.svc-list i svg{width:20px;height:20px;display:block}
.svc-focus a:hover{background:var(--tint)}
.svc-focus a:hover h3,.svc-focus a:hover .go{color:var(--accent)}
.svc-focus a:hover .go{transform:translate(4px,-4px)}
.svc-lbl{margin-top:56px;font:600 .8rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.svc-list{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line);margin-top:16px}
.svc-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 6px;border-bottom:1px solid var(--line);text-decoration:none;font:400 1.4rem/1.2 var(--serif);transition:background .3s var(--ease),color .3s var(--ease),padding .3s var(--ease)}
.svc-list i{display:block;color:var(--muted);transition:transform .3s var(--ease),color .3s var(--ease)}
.svc-list a:hover{background:var(--tint);color:var(--accent);padding-left:16px}
.svc-list a:hover i{color:var(--accent);transform:translateX(4px)}
@media(min-width:760px){.svc-list{grid-template-columns:1fr 1fr;column-gap:48px}}
@media(min-width:900px){
  .svc-focus{grid-template-columns:repeat(3,1fr)}
  .svc-focus a{padding:34px 48px 38px 28px;border-bottom:0;border-right:1px solid var(--line)}
  .svc-focus a:first-child{padding-left:0}.svc-focus a:last-child{border-right:0}
  .svc-focus a:hover{padding-left:34px}.svc-focus a:first-child:hover{padding-left:20px}
}
@media(hover:none){.svc-focus a:hover,.svc-list a:hover{background:none;padding-left:inherit}.svc-list a:hover{color:inherit}}

/* logo */
.brand img{display:block;height:42px;width:auto}
.sheet .brand img{height:38px}
.flogo{display:block;height:58px;width:auto;margin-bottom:18px}
.band{position:relative;overflow:hidden}
.band::after{content:"";position:absolute;right:-30px;bottom:-70px;width:340px;height:370px;background:url(../img/logo-mark.webp) no-repeat center/contain;opacity:.08;pointer-events:none}
.band>.grid{position:relative;z-index:1}
@media(max-width:700px){.brand img{height:34px}.band::after{width:220px;height:240px;right:-40px}}

/* instagram reel */
.chips{list-style:none;padding:0;margin-top:22px;display:flex;flex-wrap:wrap;gap:10px}
.chips li{padding:9px 16px;border:1px solid var(--line);border-radius:999px;font:500 .92rem/1 var(--sans);background:var(--tint)}
.reel{position:relative;max-width:380px;margin:0 auto;border-radius:clamp(20px,3vw,32px);overflow:hidden;background:var(--ink);aspect-ratio:540/760;box-shadow:0 1px 0 var(--line),0 24px 48px -28px rgba(27,36,32,.45)}
.reel video{display:block;width:100%;height:100%;object-fit:cover}
.reel figcaption{position:absolute;left:16px;bottom:14px;padding:7px 12px;border-radius:999px;background:rgba(27,36,32,.72);color:#EEF1EC;font:500 .78rem/1 var(--sans);letter-spacing:.02em;pointer-events:none}
.reel button{position:absolute;display:grid;place-items:center;border:0;cursor:pointer;color:#EEF1EC;background:rgba(27,36,32,.72);transition:background .3s var(--ease),transform .3s var(--ease),opacity .3s var(--ease)}
.reel button:hover{background:var(--accent)}
.reel button svg{width:22px;height:22px;fill:currentColor;stroke:none}
.reel .reel-play{inset:0;margin:auto;width:64px;height:64px;border-radius:50%}
.reel .reel-snd{right:14px;bottom:12px;width:44px;height:44px;border-radius:50%}
.reel .reel-snd svg{fill:none;stroke:currentColor;stroke-width:1.8}.reel .reel-snd svg>path:first-child{fill:currentColor;stroke:none}
.reel .reel-snd .w{opacity:0;transition:opacity .3s}.reel .reel-snd[aria-pressed="true"] .w{opacity:1}
.reel .ps{display:none}.reel.playing .pl{display:none}.reel.playing .ps{display:block}
.reel.playing .reel-play{opacity:0;pointer-events:none}.reel.playing:hover .reel-play,.reel.playing .reel-play:focus-visible{opacity:1;pointer-events:auto}
@media(hover:none){.reel.playing .reel-play{opacity:0}}

/* seo pages: breadcrumbs, faq, treatment lists, footer columns */
.crumbs{font:500 .85rem/1.4 var(--sans);color:var(--muted);margin-bottom:22px}
.crumbs a{color:inherit;text-decoration:none;transition:color .3s var(--ease)}.crumbs a:hover{color:var(--accent)}.crumbs span{color:var(--ink)}
.faq-i{border-top:1px solid var(--line)}.faq-i:last-child{border-bottom:1px solid var(--line)}
.faq-i summary{cursor:pointer;list-style:none;padding:20px 44px 20px 0;font:400 1.35rem/1.25 var(--serif);position:relative;min-height:44px}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i summary::after{content:"+";position:absolute;right:6px;top:16px;font:300 1.7rem/1 var(--sans);color:var(--accent);transition:transform .3s var(--ease)}
.faq-i[open] summary::after{transform:rotate(45deg)}
.faq-i div p{padding:0 44px 22px 0;color:var(--muted);max-width:60ch}
.svc-list a small{display:block;margin-top:4px;font:400 .9rem/1.4 var(--sans);color:var(--muted);transition:color .3s var(--ease)}
.svc-list a:hover small{color:var(--accent)}
.svc-list a>span{display:block}
address{font-style:normal}
@media(min-width:900px){footer.site .c1{grid-column:span 4}}

.why h2{font:400 1.75rem/1.15 var(--serif);letter-spacing:0}

/* paint the hero text immediately for a fast largest paint; only its slide-in is animated */
.js .lede.hl{opacity:1}
.js .loaded .lede.hl{transition:transform 700ms var(--ease);transition-delay:var(--hd,0ms)}

footer.site h3.fh{font:600 .8rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
