@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url(fonts/figtree-latin-wght-normal.woff2) format("woff2");font-weight:300 900;font-display:swap}
:root{--cream:#fbf8f1;--aqua:#cdeeea;--aqua2:#e6f6f3;--teal:#0d3b3d;--teal2:#145254;--coral:#ff7a59;--coral2:#f0623f;--sand:#f1ebdd;--ink:#0d2b2d;--pad:clamp(18px,3.6vw,56px);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--cream);color:var(--ink);font-family:"Figtree",system-ui,sans-serif;font-size:17px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.02;font-variation-settings:"SOFT" 100,"WONK" 0}
h2{font-size:clamp(2.2rem,5.2vw,5rem)}
em{font-style:italic;font-weight:300;color:var(--coral2)}
.eyebrow{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal2);margin-bottom:1.2rem;display:flex;align-items:center;gap:10px}
.eyebrow:before{content:"";width:22px;height:2px;background:var(--coral);border-radius:2px}
.eyebrow.light{color:var(--aqua)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.95em 1.6em;border-radius:99px;font-weight:600;font-size:.95rem;transition:transform .35s var(--ease),background .25s,box-shadow .3s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-coral{background:var(--coral);color:#fff;box-shadow:0 10px 24px -10px rgba(255,122,89,.8)}.btn-coral:hover{background:var(--coral2)}
.btn-ghost{border:1.5px solid rgba(13,43,45,.25)}.btn-ghost:hover{border-color:var(--ink)}
.btn-ghost-d{border:1.5px solid rgba(255,255,255,.35);color:#fff}.btn-ghost-d:hover{border-color:#fff}
.btn-light{background:var(--cream);color:var(--teal)}
.btn.sm{padding:.7em 1.2em;font-size:.85rem}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:120}.progress i{display:block;height:100%;background:var(--coral);transform-origin:0 50%;transform:scaleX(0)}

.nav{position:fixed;z-index:100;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:14px var(--pad);transition:background .4s,backdrop-filter .4s,transform .5s var(--ease),color .4s}
.nav.solid{background:rgba(251,248,241,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(13,43,45,.08)}
.nav.hide{transform:translateY(-110%)}
.logo{display:flex;align-items:center;gap:8px;font-family:"Fraunces",serif;font-size:1.6rem;letter-spacing:-.04em;font-weight:500}
.logo small{font-family:"Figtree";font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal2);align-self:flex-end;margin-bottom:6px;margin-left:2px}
.logo .dot{width:14px;height:14px;border-radius:50% 50% 50% 8%;background:var(--coral);display:block;transform:rotate(-20deg)}
.links{display:flex;gap:clamp(14px,2.4vw,34px);font-weight:500;font-size:.93rem}
.links a{position:relative;padding:4px 0}.links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--coral);transform:scaleX(0);transition:transform .4s var(--ease);transform-origin:left}.links a:hover:after{transform:scaleX(1)}

/* hero */
.hero{height:380vh;position:relative}
.hero-pin{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;background:var(--aqua2);isolation:isolate}
.hero-bg-blobs i{position:absolute;border-radius:50%;filter:blur(60px);opacity:.7}
.b1{width:46vw;height:46vw;left:-10vw;top:-12vw;background:#ffe3d8}.b2{width:40vw;height:40vw;right:30vw;bottom:-18vw;background:#bfe9e1}
.hero-copy{position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);width:min(52vw,720px);z-index:3}
.hero h1{font-size:clamp(3rem,7.2vw,7.4rem);line-height:.96;font-weight:400;margin-bottom:1.6rem;letter-spacing:-.04em}
.hero h1 .l{display:block;overflow:hidden;padding:.04em 0 .1em}.hero h1 .l>span{display:block;transform:translateY(105%);animation:up 1.1s var(--ease) forwards}
.hero h1 .l:nth-child(2)>span{animation-delay:.1s}.hero h1 .l:nth-child(3)>span{animation-delay:.2s}
@keyframes up{to{transform:none}}
.lede{font-size:clamp(1rem,1.3vw,1.2rem);max-width:34ch;opacity:.85;margin-bottom:1.8rem}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:2rem}
.hero-facts{list-style:none;display:flex;gap:clamp(14px,2.4vw,34px);flex-wrap:wrap;font-size:.88rem;opacity:.85}.hero-facts b{display:block;font-family:"Fraunces";font-weight:500;font-size:1.15rem}
.arch{position:absolute;inset:0;clip-path:inset(11% 5% 11% 58% round 999px 999px 28px 28px);z-index:2;overflow:hidden;will-change:clip-path;background:var(--aqua)}
.arch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.arch .a-tooth{inset:auto;left:58%;top:11%;width:37%;height:78%;object-fit:cover;transform-origin:50% 50%}
.a-room{opacity:0;transform:scale(1.25)}
.a-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,40,42,.0),rgba(7,40,42,.6));opacity:0}
.float{position:absolute;z-index:4;background:#fff;border-radius:18px;padding:12px 16px;box-shadow:0 18px 40px -18px rgba(13,59,61,.45);display:grid;line-height:1.2;font-size:.78rem;opacity:.95}
.float b{font-family:"Fraunces";font-size:1.25rem;font-weight:500}
.f1{right:7vw;top:22%}.f2{right:42vw;bottom:14%}.f3{right:4vw;bottom:20%}
.room-copy{position:absolute;z-index:5;left:var(--pad);bottom:clamp(28px,9vh,100px);color:#fff;opacity:0;transform:translateY(40px);display:grid;gap:12px;justify-items:start}
.room-copy h2{font-size:clamp(2.2rem,5.6vw,5.4rem);max-width:12ch;margin-bottom:.6rem}.room-copy em{color:#ffc3b0}
.hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:5;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.7}
.hint i{width:1.5px;height:28px;background:currentColor;transform-origin:top;animation:hint 1.6s var(--ease) infinite}
@keyframes hint{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* marquee */
.mq{background:var(--teal);color:var(--aqua);overflow:hidden;padding:clamp(16px,2.2vw,28px) 0}
.mq-track{display:flex;gap:2rem;align-items:center;white-space:nowrap;width:max-content;font-family:"Fraunces";font-style:italic;font-weight:300;font-size:clamp(1.8rem,4vw,3.6rem);letter-spacing:-.03em;will-change:transform}
.mq-track i{width:12px;height:12px;border-radius:50% 50% 50% 8%;background:var(--coral);display:block;flex:none}

/* care */
.care{height:560vh;position:relative}
.care-pin{position:sticky;top:0;height:100vh;height:100dvh;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(24px,5vw,90px);padding:96px var(--pad) 40px;align-items:center;max-width:1560px;margin:0 auto;grid-template-rows:minmax(0,1fr);overflow:hidden}
.care-l{height:100%;display:flex;flex-direction:column;min-height:0}
.care-frame{position:relative;flex:1;min-height:0;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--aqua);box-shadow:0 30px 60px -30px rgba(13,59,61,.5)}
.care-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity .8s var(--ease),transform 1.6s var(--ease)}
.care-frame img.on{opacity:1;transform:scale(1)}
.care-count{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(255,255,255,.9);padding:.4em 1em;border-radius:99px;font-weight:600;font-size:.75rem;letter-spacing:.1em}
.svc{list-style:none;border-top:1.5px solid var(--ink)}
.svc li{border-bottom:1px solid rgba(13,43,45,.16)}
.svc button{display:flex;gap:18px;align-items:baseline;width:100%;text-align:left;padding:clamp(7px,1.3vh,16px) 4px;opacity:.38;transition:opacity .4s,padding .4s var(--ease)}
.svc .n{font-size:.78rem;font-weight:600;letter-spacing:.1em;color:var(--coral2)}
.svc .t{font-family:"Fraunces";font-size:clamp(1.4rem,2.5vw,2.6rem);letter-spacing:-.035em;line-height:1.05}
.svc li.on button{opacity:1;padding-left:10px}
.svc li button:hover{opacity:.8}
.svc .d{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .6s var(--ease),opacity .5s;overflow:hidden}
.svc .d>div{min-height:0;overflow:hidden;display:grid;justify-items:start}
.svc li.on .d{grid-template-rows:1fr;opacity:1}
.svc .d p{max-width:44ch;opacity:.85;padding-left:10px}
.svc .d .meta{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--teal2);margin:10px 0 12px}
.svc .d .btn{margin:0 0 10px 10px;justify-self:start}

/* studio */
.studio{background:var(--sand);padding:clamp(80px,14vh,170px) 0;overflow:hidden;color:var(--ink)}
.studio-head{padding:0 var(--pad);max-width:1500px;margin:0 auto}
.studio-head h2{max-width:16ch}
.smile{display:block;width:calc(100% - 2*var(--pad));margin:clamp(20px,5vh,60px) auto;height:90px;color:var(--coral)}
.rows{display:grid;gap:clamp(14px,2vw,28px)}
.rrow{display:flex;gap:clamp(14px,2vw,28px);width:max-content;will-change:transform}
.rrow figure{width:clamp(260px,36vw,560px);aspect-ratio:3/2;border-radius:24px;overflow:hidden;position:relative;flex:none}
.rrow figure:nth-child(2n){aspect-ratio:4/5;width:clamp(220px,26vw,420px);align-self:center}
.rrow img{width:100%;height:100%;object-fit:cover}
.rrow figcaption{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);padding:.35em .9em;border-radius:99px;font-size:.78rem;font-weight:600}

/* numbers */
.nums{background:var(--teal);color:#fff;padding:clamp(60px,10vh,120px) var(--pad)}
.nums-in{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1300px;margin:0 auto}
.nums b{display:block;font-family:"Fraunces";font-weight:300;font-size:clamp(3.6rem,9vw,8.5rem);line-height:.9;letter-spacing:-.05em;color:var(--aqua)}
.nums span{font-size:.92rem;opacity:.8}
.nums-note{max-width:1300px;margin:30px auto 0;font-size:.75rem;opacity:.5}

/* team */
.team{padding:clamp(80px,14vh,170px) var(--pad);background:var(--cream)}
.team-head{max-width:1500px;margin:0 auto 40px}.team-head h2{max-width:14ch}.hint2{margin-top:14px;font-size:.85rem;opacity:.6}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1500px;margin:0 auto}
.tc{position:relative;aspect-ratio:3/4;perspective:1000px;text-align:left;display:block;width:100%}
.tc .face,.tc .back{position:absolute;inset:0;border-radius:24px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .8s var(--ease);display:flex;flex-direction:column;padding:16px;overflow:hidden}
.tc .face{background:#fff;box-shadow:0 20px 40px -26px rgba(13,59,61,.5);gap:2px;justify-content:flex-end}
.tc .tf{position:absolute;inset:0;background:linear-gradient(160deg,var(--a),var(--b))}.tc .tf svg{position:absolute;left:12%;right:12%;bottom:0;width:76%;height:auto}
.tc .face b,.tc .face small{position:relative;z-index:1;background:rgba(255,255,255,.92);align-self:flex-start;padding:.15em .7em;border-radius:99px}
.tc .face b{font-family:"Fraunces";font-weight:500;font-size:1.05rem;margin-bottom:4px}.tc .face small{font-size:.76rem}
.tc .back{background:var(--teal);color:#fff;transform:rotateY(180deg);justify-content:center;gap:8px}
.tc .back b{font-family:"Fraunces";font-size:1.5rem;font-weight:400;margin-bottom:6px;color:var(--aqua);letter-spacing:-.02em}.tc .back span{font-size:.9rem;opacity:.9}
.tc[aria-pressed=true] .face,.tc:hover .face{transform:rotateY(-180deg)}.tc[aria-pressed=true] .back,.tc:hover .back{transform:rotateY(0)}
@media (hover:none){.tc:hover .face{transform:none}.tc:hover .back{transform:rotateY(180deg)}.tc[aria-pressed=true] .face{transform:rotateY(-180deg)}.tc[aria-pressed=true] .back{transform:none}}

/* book */
.book{background:var(--teal);color:#fff;padding:clamp(80px,14vh,170px) var(--pad);position:relative;overflow:hidden}
.book:before{content:"";position:absolute;right:-10vw;top:-10vw;width:50vw;height:50vw;border-radius:50%;background:radial-gradient(closest-side,rgba(205,238,234,.18),transparent)}
.book-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,90px);max-width:1500px;margin:0 auto;position:relative}
.book-l h2{margin-bottom:1.4rem}.book-l p{opacity:.85;max-width:40ch}
.book-l em{color:#ffb9a3}
.sum{margin:30px 0 18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:20px 22px;max-width:420px}
.sum h4{font-size:1.3rem;margin-bottom:12px}
.sum dl{display:grid;grid-template-columns:70px 1fr;gap:8px 10px;font-size:.92rem}.sum dt{opacity:.6}.sum dd{font-weight:600;transition:color .3s}.sum dd.set{color:var(--aqua)}
.warn{font-size:.8rem;opacity:.65!important}
.book-r{background:var(--cream);color:var(--ink);border-radius:30px;padding:clamp(20px,3vw,44px);box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:26px;counter-reset:s}
.steps li{counter-increment:s;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding-top:12px;border-top:3px solid rgba(13,43,45,.14);opacity:.5;transition:all .4s}
.steps li:before{content:counter(s) " ";color:var(--coral2)}
.steps li.on{opacity:1;border-color:var(--coral)}.steps li.past{opacity:.9;border-color:var(--teal2)}
.pane{display:none}.pane.on{display:block;animation:pin .6s var(--ease)}
@keyframes pin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.pane h3{font-size:clamp(1.6rem,2.6vw,2.4rem);margin-bottom:1.2rem}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.opt{position:relative;cursor:pointer}.opt input{position:absolute;opacity:0}
.opt span{display:flex;flex-direction:column;gap:2px;padding:15px 16px;border:1.5px solid rgba(13,43,45,.18);border-radius:16px;transition:all .3s var(--ease);background:#fff;height:100%}
.opt b{font-weight:600;font-size:.98rem}.opt small{opacity:.6;font-size:.8rem}
.opt:hover span{border-color:var(--teal2)}
.opt input:checked+span{border-color:var(--coral);background:#fff3ee;box-shadow:0 0 0 3px rgba(255,122,89,.25)}
.opt input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.tog{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:.92rem;margin-top:8px}.tog input{position:absolute;opacity:0}
.tog i{width:44px;height:26px;border-radius:99px;background:rgba(13,43,45,.2);position:relative;transition:background .3s;flex:none}
.tog i:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s var(--ease);box-shadow:0 2px 4px rgba(0,0,0,.2)}
.tog input:checked+i{background:var(--coral)}.tog input:checked+i:after{transform:translateX(18px)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:18px}
.cal .h{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;opacity:.5;text-align:center;padding-bottom:4px}
.cal button{aspect-ratio:1;border-radius:14px;border:1.5px solid rgba(13,43,45,.14);background:#fff;display:grid;place-items:center;line-height:1.05;font-weight:600;font-size:1.05rem;transition:all .25s var(--ease)}
.cal button small{display:block;font-size:.58rem;font-weight:500;opacity:.55;text-transform:uppercase;letter-spacing:.06em}
.cal button:hover:not(:disabled){border-color:var(--teal2);transform:translateY(-2px)}
.cal button:disabled{opacity:.28;cursor:not-allowed;background:transparent;border-style:dashed}
.cal button.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.cal .sp{visibility:hidden}
.slots{display:flex;flex-wrap:wrap;gap:8px;min-height:80px}
.slot-hint{opacity:.55;font-size:.92rem}
.slots button{padding:.7em 1.2em;border-radius:99px;border:1.5px solid rgba(13,43,45,.18);font-weight:600;background:#fff;transition:all .25s}
.slots button:hover:not(:disabled){border-color:var(--teal2)}
.slots button:disabled{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.slots button.on{background:var(--coral);border-color:var(--coral);color:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.fld{display:grid;gap:6px}.fld span{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.65}
.fld input,.fld textarea{font:inherit;font-size:1rem;padding:.8em 1em;border:1.5px solid rgba(13,43,45,.18);border-radius:14px;background:#fff;outline:0;transition:border-color .25s,box-shadow .25s;resize:vertical;width:100%;color:var(--ink)}
.fld input:focus,.fld textarea:focus{border-color:var(--teal2);box-shadow:0 0 0 3px rgba(20,82,84,.15)}
.fld input.bad{border-color:var(--coral2);box-shadow:0 0 0 3px rgba(255,122,89,.25)}
.pref{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 16px}.pref>span{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.65}
.seg{display:inline-flex;background:rgba(13,43,45,.08);border-radius:99px;padding:3px}.seg button{padding:.5em 1.1em;border-radius:99px;font-weight:600;font-size:.85rem;transition:all .25s}.seg button.on{background:var(--teal);color:#fff}
.rev{display:grid;grid-template-columns:110px 1fr;gap:10px 14px;margin-bottom:18px;padding:18px;background:#fff;border-radius:18px;border:1px solid rgba(13,43,45,.1)}
.rev dt{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.55;padding-top:3px}.rev dd{font-weight:600}
.pane.done{text-align:center;padding:10px 0}
.ok{width:84px;height:84px;margin:0 auto 18px;color:var(--teal2)}.ok svg{width:100%;height:100%}
.ok circle{stroke-dasharray:190;stroke-dashoffset:190}.ok path{stroke-dasharray:50;stroke-dashoffset:50;color:var(--coral2)}
.pane.done.on .ok circle{animation:dash .9s var(--ease) forwards}.pane.done.on .ok path{animation:dash .6s .5s var(--ease) forwards}
@keyframes dash{to{stroke-dashoffset:0}}
.pane.done p{max-width:40ch;margin:10px auto}.ref{margin:18px 0 22px!important}.ref b{font-family:"Fraunces";font-size:1.5rem;color:var(--coral2)}
.pane.done .btn-light{background:var(--teal);color:#fff}
.err{color:var(--coral2);font-weight:600;font-size:.88rem;min-height:1.4em;margin-top:10px}
.nav-b{display:flex;justify-content:space-between;gap:10px;margin-top:6px}.nav-b .btn-ghost-d{border-color:rgba(13,43,45,.25);color:var(--ink)}.nav-b .btn-ghost-d:hover{border-color:var(--ink)}
.nav-b .btn[hidden]{display:none}.nav-b.solo{justify-content:flex-end}
.fine{font-size:.74rem;opacity:.55;margin-top:14px}

/* faq */
.faq{padding:clamp(80px,14vh,170px) var(--pad);background:var(--aqua2)}
.faq-in{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(30px,6vw,100px);max-width:1500px;margin:0 auto}
.faq h2{max-width:10ch;position:sticky;top:110px}
.acc{border-top:1.5px solid var(--ink)}
.acc button{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;text-align:left;padding:24px 4px;font-family:"Fraunces";font-size:clamp(1.25rem,2.1vw,1.8rem);letter-spacing:-.02em;line-height:1.15;border-bottom:1px solid rgba(13,43,45,.2)}
.acc button i{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--ink);position:relative;flex:none;transition:all .4s var(--ease)}
.acc button i:before,.acc button i:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .4s var(--ease)}
.acc button i:after{transform:translate(-50%,-50%) rotate(90deg)}
.acc button[aria-expanded=true] i{background:var(--coral);border-color:var(--coral);color:#fff}.acc button[aria-expanded=true] i:after{transform:translate(-50%,-50%) rotate(0)}
.pn{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}.pn>p{overflow:hidden;min-height:0;max-width:52ch;opacity:.8}
.acc button[aria-expanded=true]+.pn{grid-template-rows:1fr}.acc button[aria-expanded=true]+.pn>p{padding:6px 4px 24px}

/* visit */
.visit{background:var(--cream);padding:clamp(70px,12vh,150px) var(--pad)}
.visit-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center;max-width:1400px;margin:0 auto}
.vi-img{border-radius:999px 999px 28px 28px;overflow:hidden;aspect-ratio:4/5;max-height:80vh;width:min(100%,520px);justify-self:center}
.vi-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.vi-t h2{margin-bottom:1.6rem}.vi-t dl{display:grid;grid-template-columns:70px 1fr;gap:12px 14px;margin-bottom:2rem}.vi-t dt{font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.55;padding-top:4px}

.foot{background:var(--teal);color:#fff;padding:clamp(40px,7vh,90px) var(--pad) 70px;overflow:hidden}
.foot-big{font-family:"Fraunces";font-weight:300;font-size:26vw;line-height:.8;letter-spacing:-.06em;color:var(--aqua);margin:0 0 .12em -1vw;white-space:nowrap}
.foot-row{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.2);padding-top:20px;font-size:.85rem}
.gtag{padding:.7em 1.3em;border:1px solid rgba(255,255,255,.4);border-radius:99px;font-weight:600;transition:all .3s}.gtag:hover{background:#fff;color:var(--teal)}
.gbadge{position:fixed;z-index:95;left:50%;transform:translateX(-50%);bottom:12px;display:flex;align-items:center;gap:8px;font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.65em 1.1em;border-radius:99px;background:rgba(13,59,61,.9);color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.gbadge i{width:8px;height:8px;border-radius:50% 50% 50% 20%;background:var(--coral)}
.toast{position:fixed;z-index:140;left:50%;bottom:58px;transform:translate(-50%,30px);background:var(--ink);color:#fff;padding:.8em 1.3em;border-radius:99px;font-size:.88rem;opacity:0;pointer-events:none;transition:all .45s var(--ease);max-width:calc(100% - 32px);text-align:center}.toast.on{opacity:1;transform:translate(-50%,0)}

@media (max-width:900px){
  .links{display:none}.nav .btn{padding:.7em 1.1em;font-size:.82rem}.logo small{display:none}
  .hero-copy{width:auto;right:var(--pad);top:96px;transform:none}
  .hero h1{font-size:clamp(2.8rem,13vw,4.2rem);margin-bottom:1rem}.lede{font-size:.98rem;margin-bottom:1.1rem}.hero-cta{margin-bottom:0}.hero-facts{display:none}
  .arch{clip-path:inset(60% 8% 9% 8% round 999px 999px 24px 24px)}
  .arch .a-tooth{left:8%;top:60%;width:84%;height:31%}
  .f1{right:5vw;top:56%}.f2{display:none}.f3{right:auto;left:5vw;bottom:14%}
  .care{height:520vh}.care-pin{grid-template-columns:1fr;grid-template-rows:34% minmax(0,1fr);gap:12px;padding:76px var(--pad) 22px;align-items:start}
  .care-frame{border-radius:999px 999px 22px 22px}
  .svc .t{font-size:1.5rem}.svc button{padding:9px 4px}
  .nums-in{grid-template-columns:1fr 1fr;gap:34px 16px}
  .team-grid{grid-template-columns:1fr 1fr}
  .book-in,.faq-in,.visit-in{grid-template-columns:1fr}.faq h2{position:static}
  .opts,.grid2{grid-template-columns:1fr}
  .rev{grid-template-columns:90px 1fr}
  .steps li{font-size:.62rem;letter-spacing:.04em}
  .gbadge{font-size:.58rem}
}
@media (max-width:520px){body{font-size:16px}.cal{gap:4px}.cal button{font-size:.9rem;border-radius:10px}.tc .back b{font-size:1.15rem}.tc .back span{font-size:.78rem}}
@media (prefers-reduced-motion:reduce){.hero h1 .l>span{animation:none;transform:none}}
