@font-face{font-family:DM Sans;src:url(dm-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:Playfair;src:url(playfair.woff2) format("woff2");font-display:swap}
@font-face{font-family:Playfair;src:url(playfair-italic.woff2) format("woff2");font-style:italic;font-display:swap}
:root{--ivory:#f7f4eb;--paper:#f0eade;--sand:#d9c8af;--ink:#142e32;--petrol:#193b40;--slate:#4d6260;--line:#c9c3b7;--serif:Playfair,Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--side:clamp(21px,5.2vw,96px);--bar:74px}
:root{--stone-grain:url(textura-mineral.svg),url(textura-caliza.svg);--stone-light:linear-gradient(123deg,#e3eae5,#f7f7f2 57%,#edf0eb);--stone-mist:linear-gradient(130deg,#d3dfd9,#e9eee9 48%,#dce5de);--stone-blend:soft-light,soft-light,normal}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 20px)}
body{margin:0;background:var(--ivory);color:var(--ink);font:16px/1.55 var(--sans)}
h1,h2,h3,p,figure{margin:0}
img{display:block;max-width:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default}
[hidden]{display:none!important}
:focus-visible{outline:2px solid #ae702b;outline-offset:5px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.01;letter-spacing:-.045em}
h2{font-size:clamp(45px,6.4vw,106px)}
h3{font-size:clamp(24px,3vw,41px);letter-spacing:-.028em}
em{font-weight:400}
.wrap{width:min(100% - var(--side)*2,1470px);margin-inline:auto}
.eyebrow,.chapter,figcaption{font:700 11px/1.45 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.eyebrow i{display:inline-block;vertical-align:.08em;width:7px;height:7px;background:currentColor;border-radius:50%;margin-right:9px}
.chapter{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:14px;color:var(--slate)}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:21px;font-weight:700;line-height:.98;letter-spacing:.16em;width:max-content}
.brand small{display:block;font-size:8px;margin-top:5px;letter-spacing:.32em}
.mark{display:block;width:32px;aspect-ratio:742/811;flex:none;background:currentColor;mask:url(simbolo.svg) center/contain no-repeat}
.button{min-height:47px;display:inline-flex;align-items:center;justify-content:space-between;gap:19px;padding:11px 17px;border:1px solid transparent;font-size:14px;font-weight:700;white-space:nowrap;line-height:1.25;transition:background .2s,color .2s}
.button-dark{background:var(--ink);color:var(--ivory)}
.button-dark:hover{background:#315256}
.button-light{background:#f5ebd9;color:var(--ink)}
.button-light:hover{background:white}
.button-outline{border-color:currentColor;background:transparent}
.button-outline:hover{background:#e5daca}
.text-link{display:inline-flex;align-items:center;gap:14px;border:0;border-bottom:1px solid currentColor;padding:0 0 4px;background:transparent;font-size:14px;font-weight:700;width:max-content}
.text-link:hover{opacity:.76}
.skip{position:fixed;top:5px;left:5px;z-index:100;transform:translateY(-130%);background:var(--ivory);padding:12px}
.skip:focus{transform:none}
.patient-header{position:sticky;top:0;z-index:10;background:#f4f7f2;border-bottom:1px solid #d1dbd4}
.patient{background:#f3f5f0;background-image:var(--stone-grain),var(--stone-light);background-blend-mode:var(--stone-blend)}
.presentation-nav{background:#e5ece6;background-image:var(--stone-grain),var(--stone-mist);background-blend-mode:var(--stone-blend);border-top:1px solid #c9d6ce}
.presentation-nav a{display:inline-flex;align-items:center;gap:8px;min-height:33px;font-size:12px;font-weight:700}
.presentation-nav a:hover{text-decoration:underline;text-underline-offset:3px}
html:has(.presentation-nav){scroll-padding-top:calc(var(--bar) + 54px)}
.bar{height:var(--bar);display:flex;align-items:center;justify-content:space-between;gap:24px}
.patient-nav{display:flex;align-items:center;gap:clamp(22px,3vw,46px);font-size:14px;font-weight:600}
.patient-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.mobile-menu{display:none}
.hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;overflow:hidden;min-height:clamp(630px,calc(100svh - var(--bar)),950px);background:#1a3537;color:var(--ivory)}
.patient:has(.presentation-nav) .hero{min-height:clamp(585px,calc(100svh - var(--bar) - 34px),950px)}
.hero-photo,.hero-wash,.hero-iris{position:absolute;inset:0;pointer-events:none}
.hero-photo{inset:-8% 0 0;background:url(hero.webp) 50% 54%/cover no-repeat;transform:translateY(var(--shift,0px));z-index:-3}
.hero-wash{z-index:-2;background:linear-gradient(90deg,rgba(11,29,32,.66),rgba(13,27,30,.31) 51%,transparent 83%),linear-gradient(0deg,rgba(14,32,34,.72),transparent 28%)}
.hero-iris{z-index:-1;background:#203b3d;mask:url(simbolo.svg) center/contain no-repeat;animation:iris 1050ms cubic-bezier(.24,.68,.31,1) both}
@keyframes iris{0%{transform:scale(3);opacity:.94}55%{opacity:.35}100%{transform:scale(6);opacity:0;visibility:hidden}}
.hero-content{padding-block:70px 96px}
.hero-label{color:#e8d5b6}
.hero h1{font-size:clamp(78px,9.2vw,156px);line-height:.95;margin:22px 0 26px}
.hero h1 em{color:#ecddc4}
.hero-deck{font-size:clamp(16px,1.45vw,22px);max-width:390px;line-height:1.45;margin-bottom:29px}
.hero-note{position:absolute;inset:auto 0 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#f7f1e4}
.hero-note a{display:flex;align-items:center;gap:9px;font-weight:600}
.hero-note a span{font-size:19px}
.hero-note>span{font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.services,.visit,.team{padding-block:clamp(64px,8.5vw,136px)}
.section-intro{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-block:37px 45px}
.section-intro p{max-width:320px;color:var(--slate);padding-bottom:4px;font-size:17px}
.service-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(22px,5vw,78px)}
.service-index{border-top:1px solid var(--line)}
.service-index button{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:13px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:23px 12px;color:var(--slate);font:400 clamp(23px,3.05vw,48px)/1.08 var(--serif);letter-spacing:-.04em}
.service-index button span{font:700 10px/1 var(--sans);letter-spacing:.13em}
.service-index button b{font:400 21px/1 var(--sans)}
.service-index button[aria-selected="true"]{color:var(--ink);background:#e0e9e3;background-image:var(--stone-grain),var(--stone-mist);background-blend-mode:var(--stone-blend);box-shadow:inset 3px 0 #5c8278}
.service-index button:hover{color:var(--ink)}
.service-panel{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,.86fr);align-items:center;gap:24px}
.service-panel img{width:100%;height:300px;background:var(--sand)}
figcaption{font-size:9px;letter-spacing:.14em;color:var(--slate);margin-top:9px}
.panel-copy .eyebrow{color:var(--slate);margin-bottom:12px}
.panel-copy .text-link{margin-top:20px}
.team{background:var(--ink);color:var(--ivory)}
.team .chapter{color:#ddc9ad;border-color:#536364}
.team .section-intro p{color:#ddd8cb}
.team h2 em{color:#d9c6a8}
.directory{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.5fr);gap:clamp(16px,3vw,50px);align-items:stretch}
.directory-index{min-width:0}
.directory-tools,.directory-picker{display:grid;gap:8px;padding:0 0 15px}
.directory-tools label,.directory-picker span{color:#dac5aa}
.directory select{width:100%;padding:10px 13px;background:#203d40;border:1px solid #78918c;color:var(--ivory);min-height:45px;cursor:pointer}
.directory-picker{display:none}
.directory-list{margin:0;padding:0;list-style:none;max-height:335px;overflow:auto;border-top:1px solid #5c7472;scrollbar-color:#b9ad96 #254044;scrollbar-width:thin}
.directory-list button{position:relative;display:grid;text-align:left;gap:3px;width:100%;padding:11px 35px 11px 10px;color:var(--ivory);background:none;border:0;border-bottom:1px solid #5c7472;line-height:1.3}
.directory-list button::after{content:"→";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#dccbb1}
.directory-list button span{color:#ded1bc;font-size:12px}
.directory-list button:hover,.directory-list button[aria-pressed="true"]{background:#2b4a4d}
.directory-list button[aria-pressed="true"]{box-shadow:inset 3px 0 #d9bb90}
.directory-list button:focus-visible{outline-offset:-4px}
.directory-feature{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1fr);min-height:415px;background:#eef2ed;background-image:var(--stone-grain),var(--stone-light);background-blend-mode:var(--stone-blend);color:var(--ink)}
.directory-photo{position:relative;container-type:inline-size;overflow:hidden;min-height:100%;background:#cadbd3;background-image:var(--stone-grain),radial-gradient(ellipse at 27% 15%,#f0f5ed,#c8d9d0 55%,#8fa9a0);background-blend-mode:var(--stone-blend)}
.directory-photo img{position:absolute;left:50%;top:max(-18%,-28cqw);width:auto;height:min(150%,232cqw);max-width:none;transform:translateX(-50%);filter:contrast(.96) brightness(1.045) saturate(.95)}
.directory-bio{align-self:center;padding:clamp(18px,3vw,48px)}
.directory-bio h3{font-size:clamp(28px,3.45vw,61px);margin:11px 0 16px;overflow-wrap:break-word}
.directory-bio .eyebrow{color:var(--slate)}
.directory-bio p:not(.eyebrow){font-size:15px;color:#314b4e}
.directory-bio .text-link{margin-top:23px}
.reviews{padding-block:clamp(64px,8vw,125px);background:#edf0e9;background-image:var(--stone-grain),var(--stone-light);background-blend-mode:soft-light,multiply,normal}
.review-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:35px 0 37px}
.review-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(19px,4vw,66px)}
.review-main{position:relative;isolation:isolate;overflow:hidden;background:#1d3b3e;background-image:url(textura-mineral.svg),linear-gradient(126deg,#3a5758 0%,#28474a 44%,#1b3a3f 44.3%,#142e32 100%);background-blend-mode:soft-light,normal;color:var(--ivory);padding:clamp(25px,4vw,65px)}
.review-main::after{content:"";position:absolute;right:-5%;bottom:-22%;width:43%;aspect-ratio:742/811;z-index:-1;background:#e5d5b2;opacity:.11;mask:url(simbolo.svg) center/contain no-repeat;pointer-events:none}
.review-main .eyebrow,.review-main figcaption{color:#e5d3b7}
.review-main blockquote{font:400 clamp(25px,4vw,61px)/1.12 var(--serif);letter-spacing:-.04em;margin:23px 0 21px}
.review-side{align-self:stretch;display:grid;grid-template-rows:1fr 1fr}
.review-side figure{border-top:1px solid var(--line);padding:clamp(18px,3vw,38px) 0;align-content:center}
.review-side figure:last-child{border-bottom:1px solid var(--line)}
.review-side blockquote{margin:10px 0;font:400 clamp(20px,2.1vw,32px)/1.2 var(--serif);letter-spacing:-.025em}
.review-layout figcaption{font-size:10px}
.visit{color:var(--ink);background:#e5ece7;background-image:var(--stone-grain),linear-gradient(145deg,#f3f5ef,#e0e9e2);background-blend-mode:soft-light,multiply,normal}
.visit-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.13fr);gap:6%;align-items:center;margin-top:39px}
.visit h2{font-size:clamp(42px,5.4vw,88px)}
address{font-style:normal;margin:26px 0 0;font-size:17px;border-left:2px solid #9a7f61;padding-left:15px}
.visit-links{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0 16px}
.visit-channels{display:flex;flex-wrap:wrap;gap:11px 21px}
.map-link{display:block;position:relative;isolation:isolate;background:#dbd8c7;border:1px solid #c4bfac;overflow:hidden}
.map-link img{width:100%;height:auto;aspect-ratio:760/460;min-height:260px;object-fit:cover}
.map-heading,.map-open{position:absolute;background:var(--ivory);box-shadow:0 2px 9px #142e3226}
.map-heading{left:clamp(10px,2.3vw,30px);top:clamp(10px,2.3vw,30px);display:flex;align-items:center;gap:10px;padding:9px 13px;font-size:14px;line-height:1.2}
.map-heading .mark{width:24px}
.map-heading small{display:block;margin-top:3px;font-size:11px;color:var(--slate)}
.map-open{right:clamp(10px,2.3vw,30px);bottom:clamp(10px,2.3vw,30px);padding:9px 12px;font-size:12px;font-weight:700}
.map-open span{margin-left:5px}
.map-link:hover .map-open{background:var(--ink);color:var(--ivory)}
.visit-map figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 10px}
.visit-map figcaption a{text-decoration:underline;text-underline-offset:2px}
.patient-footer{position:relative;isolation:isolate;overflow:hidden;background:#172f33;background-image:url(textura-mineral.svg),linear-gradient(126deg,#28484a,#142e32 78%);background-blend-mode:soft-light,normal;color:var(--ivory);padding:clamp(41px,6vw,85px) 0 0}
.patient-footer::after{content:"";position:absolute;right:-3%;bottom:-47%;width:min(37%,460px);aspect-ratio:742/811;z-index:-1;background:#d9c8af;opacity:.09;mask:url(simbolo.svg) center/contain no-repeat;pointer-events:none}
.footer-inner{display:grid;grid-template-columns:1.35fr .75fr 1fr 1.15fr;gap:clamp(18px,4vw,52px);padding-bottom:clamp(31px,4vw,56px)}
.footer-brand .brand{font-size:25px}
.footer-brand p,.footer-links p:not(.eyebrow){max-width:255px;font-size:14px;color:#e4ddce}
.footer-brand p{margin-top:16px}
.footer-links{display:grid;gap:8px;align-content:start}
.footer-links .eyebrow{color:#e2cdb0;margin-bottom:3px}
.footer-links a,.footer-bottom a{width:fit-content;font-size:14px;font-weight:600}
.footer-links a:hover,.footer-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-links a span,.footer-bottom a span{margin-left:5px;color:#e2cdb0}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #81938e80;padding-block:16px;font-size:12px;color:#e4ddce}
.footer-bottom a{font-size:12px}
.icon-button{display:grid;place-items:center;background:transparent;color:inherit;border:1px solid currentColor;width:43px;height:43px;font-size:20px;line-height:1}
.icon-button:hover{background:#a9927038}
dialog{width:min(565px,calc(100% - 30px));max-height:calc(100% - 30px);border:1px solid var(--line);background:var(--ivory);color:var(--ink);padding:0}
dialog::backdrop{background:#132e34a8}
.dialog-inner{padding:clamp(26px,5vw,54px);position:relative}
.dialog-inner .close{position:absolute;right:12px;top:12px}
.dialog-inner h2{font-size:clamp(38px,6vw,65px);margin:13px 30px 16px 0}
.dialog-inner .eyebrow{padding-right:35px}
.dialog-inner ul{padding-left:18px}
.dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:25px}
@media(max-width:1050px){
 .service-panel{grid-template-columns:1fr;gap:15px}
 .service-panel img{height:245px;object-position:center 54%}
 .directory-feature{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
}
@media(max-width:740px){
 :root{--bar:61px}
 .bar{gap:8px}
 .brand{font-size:17px;gap:7px}
 .brand small{font-size:7px;margin-top:4px}
 .mark{width:26px}
 .header-cta{min-height:41px;font-size:12px;padding-inline:10px;gap:6px}
 .mobile-menu{display:inline-flex;gap:5px;align-items:center;min-height:42px;background:transparent;border:0;padding:5px;color:var(--ink);font-size:12px;font-weight:700;margin-left:auto}
 .patient-nav{display:none;position:absolute;inset:100% 0 auto;background:#f4f7f2;padding:12px var(--side) 18px;box-shadow:0 10px 18px #132e3324}
 .mobile-menu[aria-expanded="true"]+.patient-nav{display:grid;gap:0}
 .patient-nav a{padding:10px 0;border-bottom:1px solid var(--line)}
 .hero{min-height:clamp(550px,calc(100svh - var(--bar)),800px);justify-content:flex-end}
 .patient:has(.presentation-nav) .hero{min-height:clamp(510px,calc(100svh - var(--bar) - 34px),800px)}
 .hero-photo{inset:-7% 0 auto;height:81%;background-position:65% center}
 .hero-wash{background:linear-gradient(0deg,#1a3537 12%,#1a3537 25%,#132e31d9 38%,#142b2f42 66%,transparent 86%)}
 .hero-content{padding-block:70px 105px}
 .hero h1{font-size:clamp(50px,13.3vw,91px);margin:15px 0 20px}
 .hero-deck{max-width:280px;margin-bottom:20px}
 .hero-note{bottom:17px;font-size:11px}
 .hero-note>span{font-size:8px}
 .section-intro{display:block;margin-block:25px 30px}
 .section-intro p{margin-top:17px;font-size:16px}
 .service-layout,.visit-layout{grid-template-columns:minmax(0,1fr)}
 .service-layout{gap:23px}
 .service-index button{min-height:59px;padding:14px 8px;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;font-size:clamp(22px,5.7vw,34px)}
 .service-panel{grid-template-columns:1fr;gap:12px}
 .service-panel img{height:clamp(190px,61vw,340px)}
 .panel-copy .eyebrow{margin-bottom:5px}
 .panel-copy .text-link{margin-top:10px}
 .directory,.review-layout{grid-template-columns:minmax(0,1fr)}
 .directory-picker{display:grid;padding-bottom:0}
 .directory-list{display:none}
 .directory-feature{min-height:0;grid-template-columns:minmax(0,1fr)}
 .directory-photo{height:clamp(235px,65vw,340px)}
 .directory-bio{padding:20px}
 .directory-bio h3{font-size:clamp(25px,7vw,40px);margin:8px 0 10px}
 .directory-bio p:not(.eyebrow){font-size:14px}
 .directory-bio .eyebrow{font-size:9px}
 .directory-bio .text-link{font-size:12px;width:auto;margin-top:14px;gap:4px}
 .review-head{display:block;margin-block:24px}
 .review-head .text-link{margin-top:17px;width:auto}
 .review-main blockquote{margin-block:17px}
 .review-side figure{padding:17px 0}
 .visit-layout{gap:25px;margin-top:25px}
 .visit h2{font-size:clamp(37px,10vw,58px)}
 .footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 13px}
 .footer-brand,.footer-location{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .hero-photo{transform:none}
 .hero-iris{display:none}
}
