:root{
  --bg:#f4f1ec;--bg2:#ebe6de;--accent:#9a6f45;--text:#1b1714;--muted:#6f665d;--paper:#1b1714;--paper-ink:#f1ece4;--band:#3a2c25;--band-ink:#f3ece3;--on-accent:#ffffff;
  --serif:'Lora',Georgia,serif;--sans:'InterText','Inter',system-ui,sans-serif;
  --radius:0px;--line:color-mix(in srgb,var(--text) 14%,transparent);
}
body{font:400 16px/1.7 var(--sans);letter-spacing:-.004em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1.04}
em,.it{font-family:var(--serif);font-style:italic}
.h2{font-size:clamp(40px,5.4vw,76px);max-width:15ch}
.kick{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--accent)}
.lead{font-size:18.5px;line-height:1.65;max-width:46ch;color:color-mix(in srgb,var(--text) 74%,var(--bg))}
.paper .lead,.band .lead{color:color-mix(in srgb,var(--paper-ink) 74%,var(--paper))}
.num{font-variant-numeric:lining-nums tabular-nums}

/* nav */
.k-nav{background:color-mix(in srgb,var(--bg) 86%,transparent);border-bottom:1px solid var(--line)}
.k-nav .wrap{height:84px}
.logo{flex-direction:column;align-items:flex-start;gap:0;line-height:1}
.logo span{font-family:var(--serif);font-size:26px;letter-spacing:-.02em}
.logo em{color:var(--accent)}
.logo small{font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.links{gap:36px}
.links a{font-size:14.5px;letter-spacing:0}
.links a.on{color:var(--accent)}
.links a.on:after{right:0}
.nav-r{display:flex;gap:12px;align-items:center}
.btn{font:500 14.5px/1 var(--sans);letter-spacing:.01em;padding:16px 26px}
.btn.line{color:var(--text);border-color:var(--text)}
.btn.line:hover{background:var(--text);color:var(--bg)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);background:transparent;position:relative;cursor:pointer}
.burger span{position:absolute;left:12px;right:12px;height:1px;background:var(--text);transition:transform .25s}
.burger span:first-child{top:18px}.burger span:last-child{top:25px}
.burger[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* hero */
.hero{padding:64px 0 90px}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end}
.hero h1{font-size:clamp(56px,8.4vw,128px);letter-spacing:-.04em;line-height:.92}
.hero .lead{margin:34px 0 40px}
.creds{display:flex;gap:0;margin-top:56px;border-top:1px solid var(--line)}
.creds div{flex:1;padding:18px 18px 0 0;font-size:13.5px;color:var(--muted)}
.creds b{display:block;font-family:var(--serif);font-weight:400;font-size:30px;color:var(--text);letter-spacing:-.03em;line-height:1.1}
figure.case{margin:0}
figure.case figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:14px;font-size:13.5px;color:var(--muted)}
figure.case figcaption b{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--text);font-size:16px}

/* before / after slider */
.smile{position:relative;aspect-ratio:4/3.3;overflow:hidden;background:radial-gradient(120% 90% at 50% 40%,color-mix(in srgb,var(--accent) 10%,var(--bg2)),var(--bg2));user-select:none;touch-action:pan-y;--x:50%}
.smile svg{position:absolute;inset:0;width:100%;height:100%}
.smile .ly{position:absolute;inset:0}
.smile .after{clip-path:inset(0 0 0 var(--x))}
.smile .ly img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.smile .pb{filter:sepia(.42) saturate(1.35) hue-rotate(-6deg) brightness(.94) contrast(.96)}
.smile .pa{filter:brightness(1.05) saturate(.96) contrast(1.03)}
.uph{position:relative;overflow:hidden;background:radial-gradient(90% 70% at 30% 20%,color-mix(in srgb,var(--accent) 14%,var(--bg2)),var(--bg2))}
.uph:not(:has(.pearls)):before,.uph:not(:has(.pearls)):after{content:'';position:absolute;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,color-mix(in srgb,var(--bg) 85%,var(--accent)) 32%,color-mix(in srgb,var(--accent) 45%,var(--text)) 100%);box-shadow:inset -10px -16px 36px rgba(0,0,0,.22),0 26px 50px -18px rgba(0,0,0,.35)}
.uph:not(:has(.pearls)):before{width:46%;aspect-ratio:1;left:14%;top:22%}
.uph:not(:has(.pearls)):after{width:26%;aspect-ratio:1;right:16%;bottom:18%}
.uph img{z-index:1}
.uph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s}
.uph img.ok{opacity:1}
.uph .pearls{position:absolute;inset:12%}
.smile .bar{position:absolute;top:0;bottom:0;left:var(--x);width:1px;background:var(--bg);pointer-events:none}
.smile .knob{position:absolute;top:50%;left:var(--x);width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--bg);box-shadow:0 8px 24px rgba(0,0,0,.2);display:grid;place-items:center;pointer-events:none}
.smile .knob svg{position:static;width:22px;height:22px}
.smile .tag{position:absolute;top:16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;background:color-mix(in srgb,var(--bg) 85%,transparent);color:var(--text);pointer-events:none}
.smile .tag.b{left:16px}.smile .tag.a{right:16px}
.smile input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.smile input:focus-visible~.knob{outline:2px solid var(--accent);outline-offset:3px}
.smile.hint .knob{animation:nudge 2.4s ease-in-out 1s 1}
@keyframes nudge{30%{transform:translateX(-30px)}65%{transform:translateX(26px)}}
@media (prefers-reduced-motion:reduce){.smile.hint .knob{animation:none}}

/* editorial intro */
.studio .wrap{display:grid;grid-template-columns:5fr 7fr;gap:90px}
.pull{font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);line-height:1.22;letter-spacing:-.02em}
.pull+p{margin-top:28px}
.pearls{position:relative;aspect-ratio:1;max-width:420px}
.pearls span{position:absolute;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,color-mix(in srgb,var(--paper-ink) 88%,var(--accent)) 30%,color-mix(in srgb,var(--accent) 40%,var(--paper)) 100%);box-shadow:inset -12px -18px 40px rgba(0,0,0,.25),0 30px 60px -20px rgba(0,0,0,.5)}
.paper .muted{color:color-mix(in srgb,var(--paper-ink) 60%,var(--paper))}

/* treatment index */
.index{margin-top:56px;border-top:1px solid var(--line)}
.index a{display:grid;grid-template-columns:70px 1.3fr 2fr 140px 40px;gap:24px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line);transition:padding .3s,background .3s}
.index a:hover{padding-left:16px;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.index .n{font-family:var(--serif);font-style:italic;color:var(--accent)}
.index h3{font-size:clamp(26px,2.6vw,36px)}
.index p{color:var(--muted);font-size:15px}
.index .p{font-family:var(--serif);font-size:19px;text-align:right}
.index .p small{display:block;font:400 12.5px var(--sans);color:var(--muted)}
.index .ar{justify-self:end;transition:transform .3s}
.index a:hover .ar{transform:translateX(6px)}

/* process */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:60px}
.proc li{list-style:none;padding:0 28px 0 0;border-left:1px solid color-mix(in srgb,var(--band-ink) 20%,transparent);padding-left:24px}
.proc li:first-child{border-left:0;padding-left:0}
.proc .n{font-family:var(--serif);font-size:54px;line-height:1;color:color-mix(in srgb,var(--band-ink) 40%,var(--band))}
.proc h3{font-size:24px;margin:18px 0 8px}

/* gallery grid */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px;margin-top:50px}
.cases.two{grid-template-columns:repeat(2,1fr)}

/* doctor */
.doc .wrap{display:grid;grid-template-columns:5fr 6fr;gap:90px;align-items:center}
.doc .portrait{aspect-ratio:4/5;overflow:hidden}
.doc .portrait svg{width:100%;height:100%;display:block}
.doc dl{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px;margin-top:34px;border-top:1px solid var(--line);padding-top:24px}
.doc dt{font-size:13px;color:var(--muted)}
.doc dd{font-family:var(--serif);font-size:19px}

/* reviews */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}
.revs blockquote{font-family:var(--serif);font-size:23px;line-height:1.42}
.revs cite{display:block;font-style:normal;margin-top:18px;font-size:14px;color:var(--muted)}
.stars{color:var(--accent);letter-spacing:3px;font-size:14px;margin-bottom:14px}

/* cta */
.cta{text-align:center;padding:140px 0}
.cta h2{font-size:clamp(46px,7vw,104px);max-width:13ch;margin:0 auto}
.cta .cta-row{justify-content:center;margin-top:40px}

/* inner pages */
.phead{padding:80px 0 50px;border-bottom:1px solid var(--line)}
.phead h1{font-size:clamp(52px,7.6vw,112px);letter-spacing:-.04em;line-height:.94;max-width:13ch}
.phead .row{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap}
.phead .lead{margin-top:0}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips button{font:400 14.5px var(--sans);padding:10px 18px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}
.chips button[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}

.tx{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding:80px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.tx:nth-child(even) .tx-media{order:2}
.tx h2{font-size:clamp(36px,4.4vw,60px)}
.tx .facts{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tx .facts div{padding:16px 0}
.tx .facts b{display:block;font-family:var(--serif);font-weight:400;font-size:22px}
.tx .facts span{font-size:13px;color:var(--muted)}
.tx details{border-bottom:1px solid var(--line);padding:16px 0}
.tx summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between}
.tx summary::-webkit-details-marker{display:none}
.tx summary:after{content:'+';font-family:var(--serif);font-size:22px;line-height:1;color:var(--accent);transition:transform .25s}
.tx details[open] summary:after{transform:rotate(45deg)}
.tx details p{margin-top:10px;color:var(--muted)}

/* estimator */
.est{display:grid;grid-template-columns:1fr 400px;gap:60px;align-items:start}
.est .grp{border-top:1px solid var(--line);padding:26px 0}
.est .grp h3{font-size:26px;margin-bottom:6px}
.est .grp>p{color:var(--muted);font-size:14.5px;margin-bottom:18px}
.trt{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.trt label{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);padding:16px;cursor:pointer;transition:border-color .2s,background .2s}
.trt label:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg))}
.trt input{accent-color:var(--accent);width:18px;height:18px;margin-top:3px;flex:none}
.trt b{display:block;font-family:var(--serif);font-weight:400;font-size:19px}
.trt small{color:var(--muted);font-size:13px}
.qty{display:flex;align-items:center;gap:14px;margin-top:12px}
.qty[hidden]{display:none}
.qty button{width:34px;height:34px;border:1px solid var(--line);background:var(--bg);cursor:pointer;font-size:18px;color:var(--text)}
.qty output{font-family:var(--serif);font-size:20px;min-width:24px;text-align:center}
.emi{display:inline-flex;border:1px solid var(--line)}
.emi button{border:0;background:transparent;padding:12px 18px;font:400 14.5px var(--sans);cursor:pointer;color:var(--muted)}
.emi button[aria-pressed=true]{background:var(--text);color:var(--bg)}
.quote{position:sticky;top:110px;background:var(--paper);color:var(--paper-ink);padding:36px}
.quote h3{font-size:28px}
.quote ul{list-style:none;margin:22px 0;display:grid;gap:10px;font-size:15px;min-height:60px}
.quote li{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid color-mix(in srgb,var(--paper-ink) 14%,transparent);padding-bottom:10px}
.quote .empty{color:color-mix(in srgb,var(--paper-ink) 55%,var(--paper));border:0}
.quote .tot{font-family:var(--serif);font-size:44px;letter-spacing:-.03em;line-height:1;margin-top:6px}
.quote .emi-line{margin-top:10px;font-size:15px;color:color-mix(in srgb,var(--paper-ink) 75%,var(--paper))}
.quote .btn{width:100%;margin-top:26px;background:var(--paper-ink);color:var(--paper);border-color:var(--paper-ink)}
.quote .btn:hover{background:transparent;color:var(--paper-ink)}
.quote p.small{font-size:12.5px;margin-top:14px;color:color-mix(in srgb,var(--paper-ink) 55%,var(--paper))}

.k-form input,.k-form select,.k-form textarea{border-bottom-color:var(--line);font-size:17px}
.k-form label{letter-spacing:0;color:var(--muted)}
.k-info dt{font-size:18px}
.k-foot{padding-top:80px}
.k-foot h4{font-size:20px}

/* contact */
.hours{width:100%;border-collapse:collapse;font-size:16px}
.hours td{padding:14px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.hours tr.today td{color:var(--accent)}
.map{position:relative;aspect-ratio:4/3.2;background:var(--bg2);overflow:hidden}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.map .btn{position:absolute;left:24px;bottom:24px}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

@media(max-width:1000px){
 .hero .wrap,.studio .wrap,.doc .wrap,.tx,.est{grid-template-columns:1fr;gap:50px}
 .tx:nth-child(even) .tx-media{order:0}
 .index a{grid-template-columns:40px 1fr 110px;row-gap:6px}.index p{grid-column:2/4}.index .ar{display:none}
 .proc{grid-template-columns:1fr 1fr;gap:34px 0}.proc li:nth-child(3){border-left:0;padding-left:0}
 .cases,.revs{grid-template-columns:1fr 1fr}
 .quote{position:static}
}
@media(max-width:900px){
 .burger{display:block}.k-nav .btn{display:none}
 .links.open{display:flex;position:absolute;top:84px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:10px 28px 20px}
 .links.open a{padding:14px 0;font-size:18px;border-bottom:1px solid var(--line)}
}
@media(max-width:640px){
 .cases,.cases.two,.revs,.trt{grid-template-columns:1fr}
 .creds{flex-wrap:wrap}.creds div{flex:1 1 45%}
 .doc dl{grid-template-columns:1fr}
}
