:root{--paper:#f1f5f9;--navy:#09243c;--ink:#081b38;--yellow:#ffd152;--muted:#555e63;--line:#cdd6e0;--gutter:clamp(24px,4vw,72px);--curve:32px;--heading:Onest,Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 "DM Sans",Arial,sans-serif}
html{scroll-behavior:smooth}
section[id],footer[id]{scroll-margin-top:22px}
a{color:inherit;text-underline-offset:4px}
button,input,select{font:inherit}
button,summary{cursor:pointer}
button{color:inherit}
img{display:block;max-width:100%}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2,h3{font-family:var(--heading);line-height:1.08;letter-spacing:-.045em}
h2{font-size:clamp(34px,4.2vw,72px);font-weight:650}
h3{font-size:clamp(23px,2vw,36px)}
p{color:var(--muted)}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.symbols,.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
:focus-visible{outline:3px solid #22699c;outline-offset:4px}
.skip:focus{position:absolute;z-index:10;top:8px;left:8px;padding:8px;background:white}
.yellow{background:var(--yellow);color:var(--ink)}
.dark{background:var(--navy);color:white}
.dark p{color:#d4dee8}
.curved{border-radius:var(--curve)}
.section{padding:clamp(72px,8vw,132px) var(--gutter)}
.center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:16px;font:700 13px/1.3 var(--heading);letter-spacing:.085em;text-transform:uppercase}
.eyebrow::before{content:"";width:13px;height:13px;flex:none;border:1px solid #d49600;border-radius:50%;background:linear-gradient(90deg,var(--yellow) 50%,transparent 50%)}
.pill{display:inline-flex;align-items:center;justify-content:flex-start;gap:11px;border:0;border-radius:999px;text-decoration:none;min-height:55px;padding:5px 23px 5px 6px;font:600 15px/1.2 var(--heading);width:max-content;max-width:100%;transition:background .2s,color .2s}
.pill svg,.round{width:44px;height:44px;border-radius:50%;padding:12px;background:white;color:var(--navy);flex:none}
.pill:hover{background:#103557;color:white}
.pill.dark:hover{background:white;color:var(--navy)}
.topbar,.navrow{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 30px}
.topbar{min-height:100px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:800 clamp(23px,2.2vw,33px)/1 var(--heading);letter-spacing:-.045em;white-space:nowrap}
.contact-strip,.contact-strip>div,.social,.mobile-actions{display:flex;align-items:center}
.contact-strip{gap:clamp(25px,4vw,75px);font-weight:600}
.contact-strip>div{gap:18px}
small{display:block;text-transform:uppercase;letter-spacing:.055em;font-size:13px;font-weight:600}
.contact-strip small{color:var(--muted)}
.contact-strip .round{display:grid;place-items:center;background:var(--navy);color:white;width:55px;height:55px}
.navrow{min-height:80px}
nav{display:flex;flex:1;justify-content:space-between;gap:12px}
nav details{position:relative}
nav summary{padding:14px 12px;list-style:none;font:750 14px/1.25 var(--heading);text-transform:uppercase;white-space:nowrap}
nav summary::-webkit-details-marker{display:none}
nav summary::after{content:"";display:inline-block;margin-left:9px;width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:translateY(-3px) rotate(45deg)}
nav details:first-child summary{box-shadow:inset 0 -2px var(--ink)}
nav details a{display:block;min-width:180px;padding:10px 14px;background:white;text-decoration:none}
nav details a:hover{background:var(--yellow)}
.icon,.menu-toggle{display:grid;place-items:center;border:0;background:transparent;padding:8px}
.social{gap:5px}
.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:white;text-decoration:none;font-weight:750}
.social a:hover{background:var(--yellow)}
.mobile-actions{display:none}
.hero{height:clamp(540px,57vw,870px);position:relative;isolation:isolate;border-radius:var(--curve);overflow:hidden;background:#87b3c3}
.slide{position:absolute;inset:0;display:flex;align-items:center;padding-left:clamp(18px,2vw,32px)}
.slide.active{animation:fade .55s both}
@keyframes fade{from{opacity:.55}to{opacity:1}}
.slide>img{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center 44%}
.hero-copy{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:clamp(270px,24vw,388px);aspect-ratio:1;padding:24px 25px;border-radius:50%;border:10px solid #667273;background:white;text-align:center}
.hero-copy .eyebrow{border-radius:99px;background:var(--paper);padding:10px 13px;font-size:12px;margin-bottom:14px}
.hero-copy h1,.hero-copy h2{font-size:clamp(23px,2.25vw,35px);font-weight:780;max-width:12ch}
.hero-copy em{color:#a8790b;font-style:normal}
.hero-copy p{margin-top:12px;font-size:12px;line-height:1.4;max-width:25ch}
.hero-copy a{position:absolute;right:12%;bottom:-6%;display:grid;place-content:center;border-radius:50%;width:92px;height:92px;background:var(--ink);color:white;font-size:12px;font-weight:700;text-decoration:none}
.hero-copy a:hover{background:var(--yellow);color:var(--ink)}
.hero-arrows{position:absolute;right:24px;top:50%;transform:translateY(-50%);display:grid;gap:12px}
.hero-arrows button,.pause,.rail-controls button{display:grid;place-items:center;width:48px;height:48px;border:1px solid currentColor;border-radius:50%;background:var(--paper);color:var(--ink);font:32px/1 Arial}
.hero-arrows button,.pause{color:white;background:#09243c70;border-color:#ffffff90}
.hero-arrows button:hover,.pause:hover,.rail-controls button:hover{background:var(--yellow);color:var(--ink)}
.pause{position:absolute;bottom:17px;right:25px;font-size:14px;width:32px;height:32px}
.booking{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(150px,.65fr) minmax(440px,2.5fr);align-items:center;gap:24px;padding:36px var(--gutter) 44px;border-radius:0 0 var(--curve) var(--curve)}
.booking>img{width:100%;max-width:280px;height:auto;max-height:245px;object-fit:contain;object-position:bottom}
.booking h2{font-size:clamp(24px,2.4vw,42px)}
.booking form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:center}
input,select{width:100%;min-height:58px;border:1px solid transparent;background:white;color:var(--ink);border-radius:30px;padding:0 18px;font-size:15px}
select{padding-right:8px}
.booking .pill{font-size:13px;padding-right:13px;gap:7px}
.booking .pill svg{width:34px;height:34px;padding:8px}
output{display:block;font-size:13px;line-height:1.35}
.booking output{grid-column:1/-1}
output:empty{display:none}
.split-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}
.split-head p{max-width:37ch;padding-bottom:7px}
.rail-shell{margin:40px 0 20px}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 54px)/4);gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;scroll-snap-type:x mandatory}
.rail::-webkit-scrollbar{display:none}
.rail-controls{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.rail-card{display:flex;flex-direction:column;scroll-snap-align:start;position:relative;overflow:hidden;border-radius:24px;min-height:360px;background:white}
.rail-card img{width:100%;height:230px;object-fit:cover}
.rail-card .card-copy{padding:22px}
.card-title{display:block;border:0;background:transparent;text-align:left;padding:0;font:700 25px/1.08 var(--heading);letter-spacing:-.04em}
.card-title:hover{text-decoration:underline}
.rail-card p{font-size:15px;margin-top:7px}
.services .rail-card:nth-child(even){background:var(--yellow)}
.about-grid,.hours-inner,.reviews{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(30px,6vw,100px)}
.about-grid p{margin:18px 0 26px;max-width:49ch}
.experience{display:flex;align-items:center;gap:20px;margin-top:25px;text-transform:uppercase;font-weight:700;font-size:14px;line-height:1.2}
.experience strong,.stats strong,.rating strong,.review-image strong{font:650 clamp(58px,7vw,104px)/1 var(--heading);letter-spacing:-.075em;color:var(--yellow)}
.experience strong span{font-size:.55em}
.award-photo,.review-image{min-height:440px;position:relative;overflow:hidden;border-radius:var(--curve);background:#2b4b5b}
.award-photo img,.review-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.award-photo>div,.review-image>div{position:absolute;bottom:0;left:0;padding:26px 30px;background:var(--yellow);color:var(--ink);border-top-right-radius:26px}
.award-photo svg{margin-top:12px;width:38px;height:38px}
.benefits,.stats,.steps,.footer-contact,.footer-main{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.benefits{margin-top:64px}
.benefits>div{padding:20px 10px 0;border-top:1px solid #668197;font-weight:700}
.tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:38px 0 25px}
.tabs button{border:1px solid var(--line);border-radius:40px;padding:12px 19px;background:white;font-size:15px;font-weight:700}
.tabs button[aria-selected=true]{background:var(--yellow);border-color:var(--yellow)}
.care-panel{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--curve);overflow:hidden;background:white;min-height:375px}
.care-panel img{width:100%;height:100%;max-height:460px;object-fit:cover}
.care-panel>div{align-self:center;padding:clamp(25px,5vw,72px)}
.care-panel p{margin:15px 0}
.care-panel ul{padding-left:20px;margin-bottom:0}
.process-label{text-align:center;margin:66px 0 25px;font-weight:750;text-transform:uppercase;letter-spacing:.09em;font-size:14px}
.steps{list-style:none;padding:0;margin:0}
.steps li{border-top:1px solid var(--line);padding:22px 14px 0 0}
.steps span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--yellow);font-weight:750;margin-bottom:20px}
.steps p{margin-top:10px;font-size:15px}
.hours{background:linear-gradient(90deg,#09243cf0,#09243cad),url(assets/clinical-3.jpg) center/cover}
.schedule{background:var(--paper);color:var(--ink);border-radius:24px;padding:32px}
.schedule dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}
.schedule dd{margin:0;white-space:nowrap}
.stats{margin-top:60px}
.stats>div{border-top:1px solid #7e94a9;padding:24px 10px 0 0}
.stats strong,.stats span,.review-image span,.rating span{display:block}
.stats strong{font-size:clamp(45px,5vw,78px)}
.team .rail-card img{height:clamp(210px,22vw,365px);object-position:center 30%}
.team .rail-card{min-height:0}
.team>h3{margin-top:26px}
.reviews figure{margin:15px 0 22px}
.reviews blockquote{font:500 clamp(24px,3vw,45px)/1.22 var(--heading);letter-spacing:-.035em;margin:15px 0}
.reviews figcaption{color:#d4dee8}
.stars{color:var(--yellow);letter-spacing:3px}
.reviews .rail-controls{justify-content:flex-start}
.review-image strong,.rating strong{color:var(--ink);font-size:clamp(45px,5vw,80px)}
.banner{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(24px,5vw,70px);align-items:center;padding-block:58px}
.banner h2{font-size:clamp(32px,3.8vw,60px)}
.rating{border-right:1px solid #b38b2a;padding-right:26px}
.news-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:18px;margin-top:44px}
.news-card{border-radius:24px;overflow:hidden;background:white}
.news-card img{width:100%;height:230px;object-fit:cover}
.news-card>div{padding:22px}
.news-card small{margin-bottom:11px}
.news-card p{font-size:15px;margin:12px 0}
footer{padding:55px var(--gutter) 22px}
.footer-contact{padding-bottom:30px;border-bottom:1px solid #668197}
.footer-contact small{color:var(--yellow)}
.footer-main{padding:44px 0}
.footer-main h2{font-size:24px;margin-bottom:12px}
.footer-main>div>a:not(.brand){display:block;text-decoration:none;margin:5px 0}
.footer-main>div>a:hover{text-decoration:underline}
.footer-main p{font-size:15px;margin:10px 0}
.footer-main form{display:grid;grid-template-columns:1fr 44px;align-items:center;gap:5px}
.footer-main output{grid-column:1/-1}
.footer-main .icon{border-radius:50%;background:var(--yellow);color:var(--navy)}
.footer-bottom{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #668197;padding-top:18px;font-size:14px}
dialog{position:fixed;width:min(600px,calc(100% - 36px));max-height:80dvh;overflow:auto;border:0;border-radius:24px;background:var(--paper);color:var(--ink);padding:35px}
dialog::backdrop{background:#081b38c0}
dialog h2{font-size:36px;padding-right:30px;margin-bottom:18px}
dialog p{margin-bottom:18px}
dialog ul{margin-bottom:0;padding-left:20px}
.close{position:absolute;top:10px;right:12px;border:0;border-radius:50%;background:white;width:42px;height:42px;font-size:25px}
@media(min-width:1200px){nav details a{position:absolute;z-index:4;left:0;top:100%;box-shadow:0 7px 12px #081b3822}nav details a:nth-of-type(2){top:calc(100% + 48px)}nav details a:nth-of-type(3){top:calc(100% + 96px)}}
@media(max-width:1199px){
  .topbar{min-height:78px;border:0}
  .contact-strip,.navrow>.icon,.navrow>.social,.navrow>.pill{display:none}
  .mobile-actions{display:flex;gap:20px}
  .menu-toggle{gap:7px}
  .menu-toggle span{display:block;width:34px;border-top:1px solid var(--ink)}
  .navrow{display:none;position:absolute;z-index:3;top:78px;right:0;width:min(380px,100%);background:var(--paper);padding:16px 22px 24px;border-radius:0 0 0 24px;box-shadow:0 14px 25px #09243c36}
  .navrow.open,nav{display:block}
  nav details{border-bottom:1px solid var(--line)}
  nav details a{background:transparent}
  nav details:first-child summary{box-shadow:none}
  .hero{height:clamp(320px,53vw,620px)}
  .booking{grid-template-columns:170px 1fr}
  .booking form{grid-column:1/-1}
  .rail{grid-auto-columns:calc((100% - 36px)/3)}
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
}
@media(max-width:820px){
  .about-grid,.hours-inner,.reviews{grid-template-columns:1fr}
  .benefits,.stats,.steps,.footer-contact{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .rail{grid-auto-columns:calc((100% - 18px)/2)}
  .banner{grid-template-columns:auto 1fr}
  .banner .pill{grid-column:2}
  .news-grid{grid-template-columns:1fr 1fr}
  .news-card:first-child{grid-column:1/-1}
}
@media(max-width:575px){
  :root{--curve:24px;--gutter:24px}
  .topbar{padding:0 var(--gutter)}
  .mobile-actions .search-trigger{display:none}
  .navrow.open>.search-trigger{display:grid;margin-top:14px}
  .brand img{width:45px}
  .hero{height:320px}
  .slide{justify-content:center;padding:0}
  .slide>img{object-position:65% center}
  .hero-copy{width:min(320px,89%);max-height:320px;border-width:8px;padding:18px}
  .hero-copy h1,.hero-copy h2{font-size:26px}
  .hero-copy p,.hero-copy .eyebrow,.hero-copy a{display:none}
  .hero-arrows{top:auto;bottom:9px;right:9px;transform:none;display:flex;gap:4px}
  .hero-arrows button{width:28px;height:28px;font-size:21px}
  .pause{bottom:9px;left:9px;width:28px;height:28px}
  .booking{grid-template-columns:1fr;gap:22px;padding-top:35px}
  .booking>img{max-width:235px;max-height:224px;justify-self:start}
  .booking h2{font-size:26px}
  .booking form{grid-template-columns:1fr}
  .booking form input,.booking form select{padding-left:23px}
  .desktop{display:none}
  .split-head{display:block}
  .split-head p{margin-top:12px}
  .rail{grid-auto-columns:min(86%,340px)}
  .rail-shell{margin-top:26px}
  .award-photo,.review-image{min-height:310px}
  .care-panel{grid-template-columns:1fr}
  .care-panel img{max-height:250px}
  .tabs{justify-content:flex-start}
  .tabs button{font-size:13px;padding:9px 12px}
  .schedule{padding:20px}
  .schedule dl{font-size:14px}
  .news-grid,.banner,.footer-main{grid-template-columns:1fr}
  .banner .pill{grid-column:auto}
  .rating{border:0}
  .footer-contact{font-size:14px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* The reference carries large bottom corners from one section to the next. */
.curved{border-radius:0 0 clamp(50px,10.5vw,150px) clamp(50px,10.5vw,150px)}
.section .eyebrow{padding:8px 14px;border-radius:999px;background:white;color:var(--ink)}
.dark .eyebrow{background:#ffffff18;color:white}
.yellow .eyebrow{background:#ffffff9c}
.service-card{min-height:492px}
.service-card img{height:310px}
.service-card .card-copy{min-height:145px}
.process-layout{display:grid;grid-template-columns:minmax(220px,28%) 1fr;align-items:stretch;gap:24px;margin-top:62px}
.tabs{flex-direction:column;align-items:stretch;justify-content:stretch;flex-wrap:nowrap;margin:0}
.tabs button{flex:1;min-height:62px;text-align:left;padding-inline:23px;border-radius:19px}
.tabs button::after{content:"↗";float:right;margin-left:8px}
.care-panel{min-height:485px}
.care-panel img{max-height:510px}
.news-grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.news-card:first-child{grid-column:1;grid-row:span 2}
.news-card:first-child img{height:365px}
.news-card:not(:first-child){display:grid;grid-template-columns:40% 1fr}
.news-card:not(:first-child) img{height:100%;min-height:205px}
@media(min-width:1200px){
  :root{--gutter:clamp(18px,1.4vw,25px)}
  .contact-strip{gap:clamp(30px,4.2vw,80px)}
  .navrow>.pill{min-width:240px}
  .hero{height:845px;border-radius:30px 30px 135px 135px;margin-bottom:-125px}
  .slide{padding-left:15px}
  .hero-copy{width:clamp(290px,22vw,345px)}
  .hero-copy h1,.hero-copy h2{font-size:clamp(24px,2.1vw,31px)}
  .booking{padding-top:166px;padding-bottom:0;min-height:400px;grid-template-columns:minmax(240px,24%) minmax(170px,15%) minmax(0,1fr);gap:12px}
  .booking>img{align-self:end}
  .booking h2{font-size:30px}
  .booking form{grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:20px}
  .booking .pill{width:100%;min-height:55px;font-size:15px}
  .booking output{grid-row:3}
  .section h2{font-size:clamp(46px,4.15vw,68px)}
  .services,.team,.news{padding-block:120px 108px}
  .about,.hours,.reviews{padding-block:158px 118px}
  .process{padding-block:120px 100px}
  .about-grid,.hours-inner,.reviews{gap:clamp(35px,6vw,86px)}
  .award-photo{min-height:560px}
  .process-label{margin-top:90px}
  .steps li{min-height:215px}
  .stats,.benefits{margin-top:95px}
  .team .rail-card img{height:clamp(300px,26vw,400px)}
  .team>h3{margin-top:75px}
  .banner{padding-block:95px}
}
@media(min-width:576px) and (max-width:1199px){
  .hero{height:clamp(375px,69vw,660px)}
}
@media(max-width:820px){
  .process-layout{grid-template-columns:1fr;margin-top:37px}
  .tabs button{text-align:left}
  .news-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .news-card:first-child{grid-column:auto;grid-row:auto}
}
@media(max-width:575px){
  :root{--gutter:30px}
  .topbar{min-height:80px}
  .brand{font-size:25px}
  .brand img{width:50px}
  .navrow{top:80px;max-height:calc(100dvh - 80px);overflow:auto}
  .hero{height:330px;border-radius:0 0 48px 48px}
  .slide{justify-content:flex-end}
  .hero-copy{width:min(332px,93%);max-height:330px}
  .hero-copy h1,.hero-copy h2{font-size:23px}
  .booking{padding-top:48px;gap:20px}
  .booking>img{max-height:230px}
  .booking form{gap:19px}
  .booking .pill{width:100%}
  .section{padding-block:66px}
  .about,.hours,.reviews{padding-top:105px}
  .rail{grid-auto-columns:100%}
  .service-card img{height:305px}
  .award-photo,.review-image{min-height:360px}
  .care-panel img{max-height:340px}
  .steps,.benefits{grid-template-columns:1fr}
  .steps li{min-height:180px}
  .banner,.news-grid{gap:25px}
  .news-card:not(:first-child){display:block}
  .news-card:first-child img,.news-card:not(:first-child) img{height:235px}
}

