@font-face{font-family:'League Spartan';font-style:normal;font-display:swap;font-weight:100 900;src:url('assets/fonts/league-spartan-latin-wght-normal.woff2') format('woff2-variations')}
:root{--cream:#fff;--ink:#090909;--paper:#fff;--soft:#eee9e2;--card:#f0ece7;--field-border:#514d47;--button-bg:#000;--button-ink:#fff;--button-hover:#47413b;--footer-bg:#000;--header-height:58px;color-scheme:light}
:root[data-theme="dark"]{--cream:#121212;--ink:#f4f1ec;--paper:#1d1d1d;--soft:#282521;--card:#242321;--field-border:#8c8882;--button-bg:#f4f1ec;--button-ink:#111;--button-hover:#d5d0c9;--footer-bg:#070707;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'League Spartan',Arial,sans-serif;transition:background-color .3s ease,color .3s ease}
body.intro-active{overflow:hidden}
body.intro-skip-motion .home-hero,body.intro-skip-motion .hero-brand,body.intro-skip-motion .hero-logo,body.intro-skip-motion .hero-brand h1{transition:none!important;animation:none!important}
button,input,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
::selection{background:var(--ink);color:var(--cream)}

.site-header{height:var(--header-height);background:#000;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 3.8%;position:sticky;top:0;z-index:50;box-shadow:0 3px 8px #0003}
.header-logo{display:block;width:62px;aspect-ratio:645/452;background:#000;flex:none}
.logo-crop{display:block;position:relative;overflow:hidden;background:#000;aspect-ratio:645/452}
.logo-crop img{position:absolute;width:248.062%;max-width:none;height:auto;left:-70.698%;top:-80.31%}
.header-logo .logo-crop{width:100%;height:100%}
/* Keep the cropped logo's lower edge solid black at fractional pixel sizes. */
.header-logo .logo-crop::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:#000;pointer-events:none}
.site-nav{display:flex;gap:clamp(22px,3.5vw,48px);height:100%;align-items:center}
.site-nav>a{font:700 10px/1 'League Spartan',Arial,sans-serif;letter-spacing:.36em;position:relative;white-space:nowrap;padding:8px 0}
.site-nav>a:not(.nav-book)::after{content:'';height:1px;background:#fff;position:absolute;bottom:2px;left:0;right:100%;transition:right .25s ease}
.site-nav>a:not(.nav-book):hover::after,.site-nav>a.active:not(.nav-book)::after{right:4px}
.site-nav .nav-book{background:#fff;color:#000;padding:8px 17px;letter-spacing:.3em;transition:background .2s,color .2s}
.site-nav .nav-book:hover,.site-nav .nav-book.active{background:#cfcac3}
.header-controls{display:flex;align-items:center;gap:15px}
.theme-toggle{display:grid;place-items:center;width:40px;height:40px;padding:8px;border:1px solid #777;background:transparent;color:#fff;border-radius:50%;transition:background .2s,border-color .2s,transform .25s}
.theme-toggle:hover{background:#ffffff1c;border-color:#fff;transform:rotate(-15deg)}
.theme-toggle:focus-visible,.menu-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .sun-icon,:root[data-theme="dark"] .theme-toggle .moon-icon{display:none}
:root[data-theme="dark"] .theme-toggle .sun-icon{display:block}
.menu-toggle{display:none}

.page{animation:page-in .45s ease both}
#home-page{animation:none}
@keyframes page-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.1,1)}
.reveal.visible{opacity:1;transform:none}
.service-card:nth-child(2),.treatment-card:nth-child(2){transition-delay:.09s}
.service-card:nth-child(3),.treatment-card:nth-child(3){transition-delay:.18s}
.treatment-card:nth-child(4){transition-delay:.27s}
.section-shell{padding-left:3.8%;padding-right:3.8%}
.mono-heading{font-size:clamp(25px,3vw,38px);font-weight:400;letter-spacing:-.06em;line-height:1.08;margin:0}
.spaced-copy{font-size:12px;line-height:2.15;letter-spacing:.28em}
.black-button{background:var(--button-bg);color:var(--button-ink);border:0;text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:bold;padding:10px 20px;min-width:45px;transition:background .2s,transform .2s}
.black-button:hover{background:var(--button-hover);transform:translateY(-2px)}

.home-hero{height:395px;position:relative;text-align:center;transition:height 1.1s cubic-bezier(.22,1,.36,1)}
.hero-brand{position:absolute;left:50%;top:30px;display:flex;flex-direction:column;align-items:center;transform:translateX(-50%);transition:top 1.1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}
.hero-logo{width:110px;height:auto;transition:width 1.1s cubic-bezier(.22,1,.36,1)}
.hero-brand h1{position:relative;font-family:'League Spartan',Arial,sans-serif;font-size:clamp(36px,4vw,52px);font-weight:800;letter-spacing:-.075em;line-height:1.1;margin:12px 0 0;min-height:58px;transition:font-size 1.1s cubic-bezier(.22,1,.36,1),min-height 1.1s cubic-bezier(.22,1,.36,1),margin-top 1.1s cubic-bezier(.22,1,.36,1)}
.wordmark-measure{visibility:hidden;white-space:nowrap}
.typed-line{position:absolute;left:0;top:0;white-space:nowrap;display:inline-flex;align-items:flex-start}
#typed-name{display:inline-block;white-space:pre}
.typed-char{display:inline-block;white-space:pre;opacity:0;transform:translate3d(0,.08em,0);animation:typed-char-in .18s ease-out forwards}
@keyframes typed-char-in{to{opacity:1;transform:translate3d(0,0,0)}}
.intro-active .home-hero{height:calc(100svh - var(--header-height));min-height:470px}
.intro-active .hero-brand{top:50%;transform:translate(-50%,-50%) translateY(-6vh)}
.intro-active .hero-logo{width:clamp(160px,18vw,220px);animation:loader-logo-in 1.35s cubic-bezier(.16,.7,.2,1) both}
.intro-active .hero-logo::before,.intro-active .hero-logo::after{content:'';position:absolute;top:0;bottom:0;width:51%;background:var(--cream);z-index:2;will-change:transform;animation-duration:1.35s;animation-timing-function:cubic-bezier(.76,0,.24,1);animation-fill-mode:both}
.intro-active .hero-logo::before{left:0;animation-name:loader-reveal-left}
.intro-active .hero-logo::after{right:0;animation-name:loader-reveal-right}
@keyframes loader-logo-in{from{opacity:.5;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@keyframes loader-reveal-left{to{transform:translate3d(-101%,0,0)}}
@keyframes loader-reveal-right{to{transform:translate3d(101%,0,0)}}
.intro-active .hero-brand h1{font-size:clamp(46px,6vw,78px);min-height:1.14em;margin-top:15px}
.intro-active .brand-subtitle{opacity:0!important}
.intro-active #services,.intro-active .home-contact,.intro-active #home-page [data-footer]{opacity:0;visibility:hidden;pointer-events:none}
.type-cursor{position:relative;top:.08em;display:none;width:2px;height:.9em;margin-left:3px;background:var(--ink);opacity:0;flex:none}
.intro-active.typing-started .type-cursor{display:block;opacity:1;animation:blink .75s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.brand-subtitle{font-size:9px;letter-spacing:.45em;text-transform:uppercase;margin:2px 0 0;opacity:0;transition:opacity .5s ease}
.brand-subtitle.visible{opacity:1}
.clinic-film{position:relative;width:100%;height:clamp(420px,68vw,900px);overflow:hidden;background:#111;scroll-margin-top:var(--header-height);transition:opacity .75s ease .35s}
.clinic-film-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.clinic-film::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0000004d 0%,#00000016 42%,transparent 68%);pointer-events:none}
.clinic-film-overlay{position:absolute;z-index:2;left:clamp(24px,5vw,78px);top:50%;transform:translateY(-50%);color:#fff;text-align:left;text-transform:uppercase;max-width:min(42vw,560px);text-shadow:0 1px 14px #0005}
.clinic-film-overlay.visible{transform:translateY(-50%)}
.clinic-film-kicker{margin:0 0 18px;font-size:clamp(10px,1vw,15px);font-weight:500;letter-spacing:.34em}
.clinic-film-overlay h2{margin:0;font-size:clamp(27px,3.2vw,50px);font-weight:300;line-height:1.08;letter-spacing:.01em}
.clinic-film-button{display:inline-flex;align-items:center;justify-content:center;min-width:190px;margin-top:28px;padding:16px 30px;background:#fff;color:#111;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.28em;text-shadow:none;transition:transform .2s ease,background-color .2s ease}
.clinic-film-button:hover{background:#eee;transform:translateY(-2px)}
.clinic-film-button:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:640px){.clinic-film{height:70svh;min-height:480px}.clinic-film-video{object-position:58% center}.clinic-film-overlay{left:24px;top:50%;max-width:72vw}}
.services-section{padding-top:4px;padding-bottom:95px;scroll-margin-top:var(--header-height);transition:opacity .75s ease .35s}
.services-section h2{margin:0 0 40px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.service-card{min-width:0}
.source-crop{position:relative;overflow:hidden}
.source-crop img{position:absolute;max-width:none;height:auto;display:block}
.service-art{width:100%;aspect-ratio:253/250;background:#241f1e}
.service-art img{width:328.85%;top:-30.4%}
.crop-service-one img{left:-12.65%}
.crop-service-two img{left:-115.4%}
.crop-service-three img{left:-217.8%}
.service-card h3{font-size:14px;font-weight:400;letter-spacing:-.08em;margin:26px 0 12px}
.service-price{font-size:12px;letter-spacing:.28em;margin:0 0 18px}
.service-card .spaced-copy{max-width:28ch;margin:0}
.service-card:hover .service-art img,.treatment-card:hover .treatment-art img{transform:scale(1.025);transition:transform .5s ease}
.home-contact{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:40px;padding-bottom:80px;min-height:440px}
.home-contact .spaced-copy{max-width:350px;margin:30px 0 0}

.contact-form{font-size:10px;letter-spacing:.24em}
.contact-form .form-field{display:block;margin-bottom:18px}
.contact-form label{display:block}
.name-row{display:flex;gap:8px;margin-top:13px}
.name-row>label{flex:1;min-width:0;letter-spacing:.19em}
.contact-form input,.contact-form textarea{display:block;width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--field-border);border-radius:22px;padding:9px 12px;outline:none;margin-top:8px;font-size:12px;letter-spacing:0;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink);box-shadow:0 0 0 2px currentColor}
.contact-form textarea{min-height:52px}
.form-feedback{font-size:10px;letter-spacing:0;line-height:1.6;min-height:1em}

.treatments-page{background:var(--cream);min-height:590px;padding-top:37px;padding-bottom:120px;transition:background-color .3s ease}
.page-title{text-align:center;margin:0 0 80px}
.page-title span{letter-spacing:0}
.treatment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.treatment-card{background:var(--card);padding:18px 18px 22px;text-align:center;min-width:0;transition:background-color .3s ease}
.treatment-photo-link{display:block}
.treatment-photo-link:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.treatment-art{aspect-ratio:146/114;width:100%;background:#d9d5d0}
.treatment-art img{width:569.86%;top:-184.2%}
.crop-treatment-one img{left:-35.6%}
.crop-treatment-two img{left:-169.2%}
.crop-treatment-three img{left:-304.1%}
.crop-treatment-four img{left:-437%}
.treatment-art.uploaded img{width:100%;height:100%;top:0;left:0;object-fit:cover}
.treatment-card h2{font-size:11px;font-weight:400;margin:18px 0 14px;letter-spacing:-.05em;white-space:nowrap}
.treatment-card p{font-size:10px;line-height:2;letter-spacing:-.07em;margin:0}

.treatment-detail{min-height:calc(100vh - var(--header-height));padding-top:55px;padding-bottom:95px}
.detail-back{display:inline-block;font-size:12px;letter-spacing:.12em;margin-bottom:42px;text-decoration:underline;text-underline-offset:5px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(35px,6vw,100px);align-items:start;max-width:1320px;margin:auto}
.treatment-detail-art{max-width:630px}
.detail-copy{padding-top:8px}
.detail-kicker{font-size:11px;letter-spacing:.32em;text-transform:uppercase;margin:0 0 15px}
.detail-copy h1{font-size:clamp(38px,5vw,76px);letter-spacing:-.07em;line-height:1.02;margin:0 0 23px}
.detail-overview{font-size:clamp(16px,1.4vw,20px);line-height:1.55;margin:0 0 26px}
.detail-facts{display:flex;flex-wrap:wrap;gap:10px 35px;border-top:1px solid var(--field-border);border-bottom:1px solid var(--field-border);padding:17px 0;margin-bottom:26px;font-size:13px}
.detail-facts strong{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.detail-section{margin:0 0 22px}
.detail-section h2{font-size:19px;font-weight:600;margin:0 0 7px}
.detail-section p{font-size:15px;line-height:1.65;margin:0}
.detail-book{display:inline-block;margin-top:12px}

.contact-page{min-height:590px;display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:85px;padding-bottom:80px}
.contact-page h1{margin-bottom:45px}
.contact-page .spaced-copy{max-width:360px;margin:0 0 45px}
.contact-page .spaced-copy a{text-decoration:underline}

.booking-page{min-height:calc(100vh - var(--header-height));display:grid;grid-template-columns:1fr 1fr;background:var(--cream);transition:background-color .3s ease}
.booking-copy{padding:110px 8% 60px}
.booking-copy h1{font-size:clamp(34px,4vw,62px);line-height:1.02;margin:0 0 20px}
.booking-copy .spaced-copy{max-width:350px;margin:0}
.booking-widget{background:var(--paper);width:min(95%,500px);min-height:400px;align-self:start;justify-self:center;margin:84px 0 60px;padding:20px 20px 24px;font-family:'League Spartan',Arial,sans-serif;box-shadow:0 1px 6px #0000000b;transition:background-color .3s ease}
.widget-top{display:flex;justify-content:flex-end;gap:12px}
.widget-top button{border:0;background:none;color:inherit;text-transform:uppercase;font-size:7px;font-weight:700;padding:0}
.widget-title{text-align:center;font-size:10px;font-weight:600;margin:29px 0 37px}
.widget-title span:first-child{font-size:14px;margin-right:3px}
.service-list{box-shadow:0 1px 7px #00000015}
.service-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 13px;border-bottom:1px solid #c9c9c9;min-height:67px}
.service-item:last-child{border-bottom:0}
.service-item strong{display:block;font-size:9px;font-weight:600;margin-bottom:3px}
.service-item small{display:block;font-size:8px}
.service-item button{background:var(--button-bg);color:var(--button-ink);border:0;font-size:7px;text-transform:uppercase;font-weight:700;padding:8px 9px;transition:background .2s}
.service-item button:hover{background:var(--button-hover)}
.powered-by{text-align:center;font-size:9px;line-height:1.1;margin:34px 0 0}
.powered-by strong{font-size:11px;letter-spacing:-.06em}
.time-picker,.booking-confirmation{font-size:12px}
.back-link{background:none;border:0;padding:0;color:var(--ink);font-size:10px;text-decoration:underline;margin-bottom:15px}
.time-picker h2,.booking-confirmation h2{font-size:19px;font-weight:500;margin:6px 0}
.time-picker p,.booking-confirmation p{font-size:11px;line-height:1.6}
.time-picker label,.time-label{display:block;font-size:10px;margin:18px 0 7px;font-weight:700}
.time-picker input{padding:9px;border:1px solid var(--field-border);background:var(--paper);color:var(--ink);width:100%;max-width:260px}
.times{display:flex;gap:7px;flex-wrap:wrap}
.times button{border:1px solid var(--field-border);background:var(--paper);color:var(--ink);padding:8px 10px;font-size:10px}
.times button.selected{background:var(--button-bg);color:var(--button-ink);border-color:var(--button-bg)}
.confirm-button{display:block;margin-top:20px;width:100%}
.confirm-button:disabled{opacity:.4;cursor:not-allowed;transform:none}

.site-footer{position:relative;background:var(--footer-bg);color:#fff;padding:55px 3.8% 30px;margin-top:0;transition:background-color .3s ease}
.footer-content{position:relative;display:grid;grid-template-columns:92px 76px minmax(180px,1fr) minmax(170px,250px);gap:5%;align-items:start;max-width:1300px;margin:auto}
.footer-brand{background:#fff;color:#000;padding:7px 8px 10px;min-height:153px;display:flex;flex-direction:column;align-items:center}
.footer-logo{width:61px;height:auto}
.footer-brand strong{font-family:'League Spartan',Arial,sans-serif;font-size:11px;letter-spacing:-.08em;white-space:nowrap}
.social-links{display:flex;gap:4px;margin-top:auto}
.social-links a{display:grid;place-items:center;background:#fff;color:#000;border:1px solid #888;width:13px;height:13px;font:10px 'League Spartan',Arial,sans-serif}
.footer-menu h2,.footer-details h2{font-size:11px;font-weight:400;border-bottom:1px solid #9e9e9e;padding-bottom:7px;margin:0 0 12px;letter-spacing:0}
.footer-menu a{display:block;background:#fff;color:#000;text-align:center;font-size:8px;letter-spacing:.2em;margin:4px 0;padding:3px}
.footer-menu a:hover{background:#d4cdc4}
.map-panel{aspect-ratio:223/135;max-height:150px;min-width:0;background:#383838;border:1px solid #777;z-index:0}
.footer-details{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.footer-details p{font-size:9px;line-height:2.4;letter-spacing:.2em;overflow-wrap:anywhere}
.footer-details a:hover{text-decoration:underline}
.copyright{border-top:1px solid #777;text-align:center;margin:37px 0 0;padding-top:17px;font-size:9px;letter-spacing:.26em}

@media(min-width:900px){
  :root{--header-height:72px}
  .header-logo{width:76px}
  .site-nav>a{font-size:clamp(11px,.95vw,14px);letter-spacing:.25em}
  .site-nav .nav-book{padding:11px 20px}
  .home-hero{height:clamp(425px,52vh,540px)}
  .hero-brand{top:38px}
  .hero-logo{width:clamp(150px,12vw,190px)}
  .hero-brand h1{font-size:clamp(58px,5.5vw,80px);min-height:1.1em;margin-top:16px}
  .brand-subtitle{font-size:clamp(11px,.9vw,14px);letter-spacing:.34em;margin-top:5px}
  .intro-active .hero-logo{width:clamp(205px,19vw,275px)}
  .intro-active .hero-brand h1{font-size:clamp(68px,6.3vw,95px)}
  .mono-heading{font-size:clamp(38px,3.5vw,52px)}
  .spaced-copy{font-size:clamp(14px,1.15vw,17px);line-height:1.8;letter-spacing:.18em}
  .services-section h2{margin-bottom:44px}
  .service-card h3{font-size:19px}
  .service-price{font-size:15px}
  .home-contact{padding-top:70px;padding-bottom:95px;min-height:520px}
  .contact-form{font-size:13px;letter-spacing:.16em}
  .contact-form input,.contact-form textarea{font-size:15px;padding:12px 15px}
  .black-button{font-size:12px;padding:14px 24px}
  .treatments-page{min-height:720px;padding-top:55px}
  .treatment-card{padding:22px}
  .treatment-card h2{font-size:16px}
  .treatment-card p{font-size:13px;line-height:1.55;letter-spacing:0}
  .contact-page{min-height:720px;padding-top:100px}
  .booking-widget{width:min(95%,560px);min-height:460px;margin-top:75px;padding:30px}
  .widget-top button{font-size:11px}
  .widget-title{font-size:16px}
  .service-item{min-height:76px}
  .service-item strong{font-size:14px}
  .service-item small{font-size:12px}
  .service-item button{font-size:11px;padding:10px 13px}
  .powered-by{font-size:12px}
  .powered-by strong{font-size:15px}
  .time-picker,.booking-confirmation{font-size:15px}
  .back-link{font-size:13px}
  .time-picker h2,.booking-confirmation h2{font-size:25px}
  .time-picker p,.booking-confirmation p{font-size:14px}
  .time-picker label,.time-label,.times button{font-size:13px}
  .site-footer{padding-top:65px}
  .footer-content{grid-template-columns:120px 115px minmax(200px,1fr) minmax(210px,270px);gap:4%}
  .footer-details{grid-template-columns:80px minmax(0,1fr);gap:10px}
  .footer-brand{min-height:195px;width:120px}
  .footer-logo{width:80px}
  .footer-brand strong{font-size:15px}
  .social-links a{width:20px;height:20px;font-size:13px}
  .footer-menu h2,.footer-details h2{font-size:15px}
  .footer-menu a{font-size:12px;padding:5px}
  .footer-details p{font-size:13px;line-height:2;letter-spacing:.1em}
  .copyright{font-size:12px}
}
@media(min-width:1100px){
  .footer-content{grid-template-columns:120px 115px minmax(200px,1fr) minmax(340px,370px)}
  .footer-details{grid-template-columns:minmax(100px,1fr) minmax(190px,1.7fr)}
}

@media(max-width:700px){
  :root{--header-height:58px}
  .site-header{padding:0 20px}
  .header-controls{gap:8px}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:34px;height:34px;border:0;background:none}
  .menu-toggle span{display:block;width:25px;height:1px;background:#fff}
  .site-nav{display:none;position:absolute;top:58px;left:0;right:0;height:auto;background:#000;padding:15px 20px 22px;flex-direction:column;align-items:stretch;gap:0}
  .site-nav.open{display:flex}
  .site-nav>a{font-size:11px;padding:15px 0}
  .site-nav .nav-book{text-align:center;margin-top:7px}
  .section-shell{padding-left:20px;padding-right:20px}
  .home-hero{height:350px}
  .intro-active .home-hero{height:calc(100svh - var(--header-height));min-height:490px}
  .intro-active .hero-logo{width:clamp(145px,28vw,190px);height:auto}
  .intro-active .hero-brand h1{font-size:clamp(43px,8vw,61px)}
  .service-grid{gap:12px}
  .service-card h3{font-size:12px}
  .spaced-copy{font-size:11px;letter-spacing:.19em}
  .home-contact,.contact-page{grid-template-columns:1fr;gap:40px}
  .treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-layout{grid-template-columns:1fr}
  .treatment-detail{padding-top:35px}
  .detail-back{margin-bottom:25px}
  .booking-page{grid-template-columns:1fr}
  .booking-copy{padding:55px 25px 20px}
  .booking-widget{margin:20px auto 70px;width:calc(100% - 40px)}
  .footer-content{grid-template-columns:90px 1fr 1fr;gap:20px}
  .map-panel{grid-column:1/3;grid-row:2}
  .footer-details{grid-column:3;grid-row:1/3;grid-template-columns:1fr}
}
@media(max-width:480px){
  .home-hero{height:310px}
  .hero-brand{top:35px}
  .hero-logo{width:95px}
  .hero-brand h1{font-size:36px;min-height:43px}
  .intro-active .home-hero{height:calc(100svh - var(--header-height));min-height:480px}
  .intro-active .hero-logo{width:min(43vw,170px);height:auto}
  .intro-active .hero-brand h1{font-size:clamp(38px,10vw,50px)}
  .services-section{padding-bottom:55px}
  .service-grid{grid-template-columns:1fr;gap:38px}
  .service-art{aspect-ratio:253/210}
  .service-art img{width:328.85%}
  .service-card .spaced-copy{max-width:none}
  .home-contact{padding-top:20px}
  .treatments-page{padding-top:45px;padding-bottom:80px}
  .page-title{margin-bottom:45px}
  .treatment-grid{gap:8px}
  .treatment-card{padding:9px 9px 17px}
  .treatment-card h2{font-size:10px;white-space:normal;min-height:2.2em}
  .treatment-card p{font-size:9px}
  .contact-page{padding-top:60px}
  .name-row{flex-direction:column}
  .footer-content{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1;width:95px}
  .footer-menu{grid-column:2}
  .map-panel{grid-column:1/3;grid-row:auto}
  .footer-details{grid-column:1/3;grid-row:auto;grid-template-columns:1fr 1fr}
}
/* Interactive facial treatment map */
.face-map-section{margin:0 0 64px;padding:34px 0 58px;border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent)}
.face-map-heading{max-width:680px;margin:0 auto 34px;text-align:center}
.face-map-kicker{margin:0 0 10px;font-size:10px;font-weight:700;letter-spacing:.28em}
.face-map-heading h2{margin:0;font-size:clamp(30px,4vw,54px);font-weight:300;letter-spacing:-.035em}
.face-map-heading>p:last-child{max-width:560px;margin:14px auto 0;font-size:12px;line-height:1.65;letter-spacing:.04em;color:color-mix(in srgb,var(--ink) 70%,transparent)}
.face-explorer{position:relative;display:grid;grid-template-columns:minmax(170px,1fr) minmax(330px,520px) minmax(170px,1fr);align-items:center;gap:clamp(22px,3.5vw,54px);max-width:1240px;margin:0 auto;padding:22px 0}
.face-labels{display:flex;flex-direction:column;gap:7px;min-width:0;position:relative;z-index:8}
.face-label-group{margin:0 0 2px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:color-mix(in srgb,var(--ink) 54%,transparent)}
.face-label-group-spaced{margin-top:17px}
.face-label{appearance:none;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;gap:11px;width:100%;min-height:42px;padding:8px 0;text-align:left;font-size:12px;letter-spacing:.09em;line-height:1.2;transition:opacity .2s ease,transform .2s ease}
.face-labels-left .face-label{justify-content:flex-end;text-align:right}
.face-labels-left .face-label span{order:2}
.face-label span{width:7px;height:7px;border-radius:50%;border:1px solid currentColor;background:transparent;flex:0 0 auto;transition:transform .2s ease,background-color .2s ease}
.face-label:hover,.face-label:focus-visible,.face-label.is-active{opacity:1;transform:translateX(3px)}
.face-labels-left .face-label:hover,.face-labels-left .face-label:focus-visible,.face-labels-left .face-label.is-active{transform:translateX(-3px)}
.face-label:hover span,.face-label:focus-visible span,.face-label.is-active span{background:currentColor;transform:scale(1.28)}
.face-label:focus-visible{outline:1px solid currentColor;outline-offset:5px}

.face-model-stage{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;z-index:2}
.face-photo-frame{position:relative;width:min(100%,500px);padding:13px 13px 48px;background:#fff;border:1px solid #d8d2ca;box-shadow:0 24px 55px #00000020;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--face-rx,0deg)) rotateY(var(--face-ry,0deg));transition:transform .18s ease-out;will-change:transform}
.face-model-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center center}
.face-photo-frame::after{content:'SOUSA CLINIC · TREATMENT MAP';position:absolute;left:18px;right:18px;bottom:16px;text-align:center;color:#171717;font-size:8px;font-weight:600;letter-spacing:.22em;white-space:nowrap}
.face-model-hint{margin:14px 0 0;font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:color-mix(in srgb,var(--ink) 48%,transparent);text-align:center}

.face-highlight{position:absolute;border-radius:999px;background:#ffffff33;border:1px solid #ffffffe0;box-shadow:0 0 0 1px #00000012,0 0 18px #ffffff55;backdrop-filter:blur(1px);opacity:0;transform:scale(.94);transition:opacity .18s ease,transform .18s ease;pointer-events:none;z-index:3}
.face-highlight.is-active{opacity:1;transform:scale(1.03)}
.highlight-forehead{top:14%;left:35%;width:30%;height:15%}
.highlight-frown{top:28%;left:43%;width:14%;height:11%}
.highlight-crows-left{top:31%;left:22%;width:17%;height:13%}
.highlight-crows-right{top:30%;left:60%;width:17%;height:13%}
.highlight-cheek-left{top:44%;left:18%;width:24%;height:20%}
.highlight-cheek-right{top:42%;left:59%;width:24%;height:20%}
.highlight-lips{top:61%;left:39%;width:27%;height:13%}
.highlight-jaw{top:67%;left:25%;width:52%;height:22%;border-radius:42% 42% 50% 50%}
.highlight-texture{top:13%;left:15%;width:70%;height:68%;border-radius:44%}
.highlight-scarring-left{top:47%;left:26%;width:11%;height:12%}
.highlight-scarring-right{top:46%;left:64%;width:11%;height:12%}

.face-card{position:absolute;z-index:7;width:190px;padding:15px 15px 24px;background:#fff;color:#111;border:1px solid #d8d2ca;box-shadow:0 20px 45px #0003;opacity:0;visibility:hidden;transform:translateY(8px) scale(.97) rotate(var(--card-tilt,-2deg));transition:opacity .18s ease,transform .18s ease,visibility .18s ease;pointer-events:none}
.face-card::after{content:'SOUSA CLINIC';display:block;margin-top:14px;padding-top:9px;border-top:1px solid #ded8d1;text-align:right;font-size:7px;font-weight:600;letter-spacing:.2em;color:#666}
.face-card.is-active{opacity:1;visibility:visible;transform:translateY(0) scale(1) rotate(var(--card-tilt,-2deg))}
.face-card-category{margin:0 0 7px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.23em;color:#777}
.face-card h3{margin:0 0 8px;font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:400;line-height:1.05;letter-spacing:-.02em}
.face-card>p:last-of-type{margin:0;font-size:11px;line-height:1.48;letter-spacing:.015em;color:#454545}
.face-card-forehead{top:-2%;right:-13%;--card-tilt:-2deg}
.face-card-frown{top:11%;left:-13%;--card-tilt:2deg}
.face-card-crows{top:24%;right:-15%;--card-tilt:-2.5deg}
.face-card-cheeks{top:39%;left:-16%;--card-tilt:2.2deg}
.face-card-lips{top:52%;right:-14%;--card-tilt:-1.8deg}
.face-card-jaw{bottom:-2%;right:-10%;--card-tilt:1.5deg}
.face-card-texture{top:43%;left:-17%;--card-tilt:-1.5deg}
.face-card-scarring{bottom:3%;left:-13%;--card-tilt:2deg}

.face-map-note{max-width:720px;margin:30px auto 0;text-align:center;font-size:9px;line-height:1.6;letter-spacing:.08em;color:color-mix(in srgb,var(--ink) 50%,transparent)}

@media(min-width:900px){
  .face-map-section{margin-bottom:78px;padding-top:44px;padding-bottom:70px}
  .face-map-heading{margin-bottom:42px}
  .face-label{font-size:13px;min-height:44px}
}

@media(max-width:900px){
  .face-explorer{grid-template-columns:minmax(145px,1fr) minmax(300px,430px) minmax(145px,1fr);gap:22px}
  .face-card{width:170px}
}

@media(max-width:780px){
  .face-map-section{padding-top:28px;padding-bottom:42px;margin-bottom:48px}
  .face-explorer{grid-template-columns:1fr 1fr;gap:22px 18px;padding-top:10px}
  .face-model-stage{grid-column:1/3;grid-row:1}
  .face-labels-left,.face-labels-right{grid-row:2;align-self:start}
  .face-labels-left .face-label,.face-labels-right .face-label{justify-content:flex-start;text-align:left}
  .face-labels-left .face-label span{order:0}
  .face-labels-left .face-label:hover,.face-labels-left .face-label:focus-visible,.face-labels-left .face-label.is-active,.face-label:hover,.face-label:focus-visible,.face-label.is-active{transform:none}
  .face-photo-frame{width:min(88vw,500px)}
  .face-card{width:min(205px,48vw)}
  .face-card-forehead{top:0;right:-4%}
  .face-card-frown{top:8%;left:-4%}
  .face-card-crows{top:22%;right:-5%}
  .face-card-cheeks{top:37%;left:-5%}
  .face-card-lips{top:51%;right:-4%}
  .face-card-jaw{bottom:0;right:-3%}
  .face-card-texture{top:42%;left:-5%}
  .face-card-scarring{bottom:2%;left:-3%}
}

@media(max-width:480px){
  .face-map-heading{margin-bottom:24px}
  .face-map-heading>p:last-child{font-size:11px}
  .face-explorer{grid-template-columns:1fr;gap:17px}
  .face-model-stage{grid-column:1;grid-row:1}
  .face-labels-left{grid-row:2}
  .face-labels-right{grid-row:3}
  .face-label-group-spaced{margin-top:10px}
  .face-label{min-height:44px;border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
  .face-photo-frame{width:100%;padding:9px 9px 42px}
  .face-photo-frame::after{bottom:14px;font-size:7px}
  .face-card{left:50%!important;right:auto!important;top:auto!important;bottom:11px!important;width:min(250px,calc(100% - 20px));transform:translateX(-50%) translateY(8px) scale(.97) rotate(0deg)}
  .face-card.is-active{transform:translateX(-50%) translateY(0) scale(1) rotate(0deg)}
  .face-model-hint{display:none}
}


@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page,.hero-logo,.type-cursor{animation:none}body,.treatments-page,.treatment-card,.booking-page,.booking-widget,.site-footer,.home-hero,.hero-brand,.hero-logo,.hero-brand h1,.services-section{transition:none}.reveal{transition:none;opacity:1;transform:none}.brand-subtitle{opacity:1;transition:none}}

/* Monochrome clinic map — keep the map legible without coloured tiles or pins. */
.map-panel{background:#efefef;border-color:#777}
.map-panel .leaflet-tile-pane{filter:grayscale(1) contrast(1.18) brightness(1.04)}
.map-panel .leaflet-marker-pane,.map-panel .leaflet-shadow-pane{filter:grayscale(1) contrast(1.35)}
.map-panel .leaflet-control-zoom a{background:#fff;color:#111;border-color:#999}
.map-panel .leaflet-control-zoom a:hover{background:#e8e8e8;color:#000}
.map-panel .leaflet-control-attribution{background:#ffffffe6;color:#222}
.map-panel .leaflet-control-attribution a{color:#111;text-decoration:underline}
.map-panel .leaflet-popup-content-wrapper{background:#fff;color:#111}
