@font-face{font-family:Montserrat;src:url('fonts/montserrat-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('fonts/montserrat-medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Gandhi;src:url('fonts/gandhi-serif.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Gandhi;src:url('fonts/gandhi-serif-italic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}

:root{--ink:#172033;--dark:#071d49;--white:#ffffff;--paper:#f0f5ff;--brand:#0d6efd;--muted:#586477;--line:#d7e2f2;--serif:Gandhi,Georgia,serif;--sans:Montserrat,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:104px}
body{margin:0;background:var(--white);color:var(--ink);font:400 14px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{display:block;max-width:100%;height:auto}
button,a,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #0d6efd;outline-offset:6px}
::selection{background:var(--brand);color:#ffffff}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:400}
h2{font:400 clamp(40px,4.1vw,60px)/1.08 var(--serif);letter-spacing:-1.5px}
h2 em{font-weight:400}
p+p{margin-top:18px}
.shell{width:min(1248px,calc(100% - 112px));margin-inline:auto}
.section-space{padding-block:110px}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:2.1px;line-height:1.8;color:var(--brand)}
.dark-eyebrow{color:#0d6efd}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--brand);color:#ffffff;padding:10px 20px;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:54px;padding:15px 25px;background:var(--brand);color:#ffffff;font-size:12px;font-weight:500;line-height:1.5;border:1px solid var(--brand);transition:background .2s,transform .2s}
.button:hover{background:#0b5ed7;transform:translateY(-2px)}
.button span{font-size:19px;line-height:1}
.button-small{min-height:44px;padding:11px 19px;font-size:11px}
.text-link{display:inline-flex;align-items:center;gap:27px;padding:10px 0 8px;border-bottom:1px solid #a8c9ff;color:var(--brand);font-size:12px;line-height:1.6}
.text-link span[aria-hidden]{font-size:20px;line-height:1}
.text-link:hover{border-color:currentColor}
.dark-link{color:var(--ink);border-color:#a8c9ff}

/* Identity and navigation */
.site-header{position:relative;z-index:30;background:#ffffff;color:#172033;border-bottom:1px solid var(--line)}
.header-inner{height:96px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:inline-flex;align-items:center;flex-shrink:0}
.brand img{width:200px;height:auto;object-fit:contain}


.main-nav{display:flex;align-items:center;gap:34px;font-size:11px}
.main-nav>a:not(.button){padding-block:12px;color:#344258}
.main-nav>a:not(.button):hover{color:var(--brand)}
.menu-toggle{display:none}

/* Cinematic campaign */
.hero{position:relative;isolation:isolate;min-height:730px;height:calc(100svh - 96px);max-height:1000px;overflow:hidden;background:#071d49;color:var(--white)}
.hero-image{position:absolute;inset:0;z-index:-3}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,29,73,.95) 0%,rgba(7,29,73,.78) 27%,rgba(7,29,73,.16) 62%),linear-gradient(0deg,rgba(7,29,73,.75),transparent 23%)}
.hero-content{padding-top:68px;padding-bottom:100px}
.hero .eyebrow{display:flex;align-items:center;gap:12px;letter-spacing:2px}
.tiny-star{font:32px/1 var(--serif)}
h1{font:400 clamp(76px,7.5vw,112px)/.99 var(--serif);letter-spacing:-3px;margin-top:26px;max-width:660px}
h1 em{color:#4c93ff}
.hero-description{margin-top:27px;font-size:13px;line-height:1.95;color:#e0ebff}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}
.hero-link{color:#ffffff;font-size:11px;border-bottom:0;gap:17px}
.hero-foot{position:absolute;bottom:29px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff30;padding-top:22px;font-size:8px;letter-spacing:2px;color:#dce8ff}
.hero-foot a{display:flex;gap:24px;align-items:center}
.hero-foot a span{font-size:18px}
.hero-side{position:absolute;right:22px;top:45%;writing-mode:vertical-rl;color:#dce8ff;font-size:8px;letter-spacing:3px}
.care-strip{background:#0d6efd;color:#ffffff}
.care-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-block:25px;font-size:11px;letter-spacing:.4px}
.care-inner>span{display:flex;align-items:center;gap:15px}
.care-inner>span>span{color:#ffffff;font-size:25px;line-height:1}

.hero .eyebrow,.experience .eyebrow{color:#8cbbff}
.experience .text-link{color:#8cbbff}
.contact .eyebrow,.contact .text-link{color:#ffffff}
.contact .button{background:#ffffff;color:var(--brand);border-color:#ffffff}
.contact .button:hover{background:#e6efff}

/* Practice introduction and services */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.intro h2{margin-top:25px}
.intro-copy{max-width:490px}
.intro-copy .lead{font:25px/1.45 var(--serif);color:var(--ink)}
.intro-copy>p{color:var(--muted);font-size:13px}
.intro-copy .text-link{margin-top:16px}
.treatments{background:var(--paper);position:relative}
.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:45px}
.section-top h2{margin-top:20px}
.section-top>p{font-size:12px;color:var(--muted);padding-bottom:4px}
.featured-treatments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.treatment-image{position:relative;overflow:hidden;aspect-ratio:1.3;background:#ccc}
.treatment-image:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#0006);pointer-events:none}
.treatment-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.treatment-card:hover .treatment-image img{transform:scale(1.035)}
.image-tag{position:absolute;bottom:18px;left:20px;z-index:1;font-size:8px;letter-spacing:1.8px;color:white}
.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:23px}
.card-heading h3{font:28px/1.2 var(--serif);letter-spacing:-.5px}
.card-heading>span{color:#64748b;font-size:9px}
.treatment-card>p{margin-top:13px;font-size:12px;line-height:1.9;color:var(--muted)}
.treatment-card .text-link{margin-top:15px;font-size:10px;gap:45px}
.more-treatments-heading{margin-top:65px;padding-top:30px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}
.more-treatments-heading>span:last-child{font-size:11px;color:var(--muted)}
.more-treatments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px;margin-top:34px}
.service-number{font-size:8px;letter-spacing:1.2px;color:#0d6efd}
.more-treatments h3{font:25px/1.3 var(--serif);margin:12px 0}
.more-treatments p{font-size:11px;color:var(--muted)}
.more-treatments a{display:inline-flex;align-items:center;gap:25px;font-size:10px;margin-top:18px;padding:8px 0}
.more-treatments a:hover{text-decoration:underline;text-underline-offset:5px}
.more-treatments a span[aria-hidden]{font-size:16px}
.treatment-note{margin-top:40px;font-size:10px;color:#586477}
.anchor-alias{position:absolute;top:0}

/* Care experience */
.experience{background:var(--dark);color:var(--white);position:relative}
.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center}
.experience-visual{height:590px;position:relative;overflow:hidden}
.experience-visual>img{width:100%;height:100%;object-fit:cover;object-position:48% center;filter:brightness(.7)}
.visual-caption{position:absolute;bottom:0;inset-inline:0;display:flex;align-items:center;gap:20px;padding:35px;background:linear-gradient(transparent,#071d49d9);font:29px/1.2 var(--serif);color:#ffffff}
.visual-caption .tiny-star{font-size:56px;color:#4c93ff}
.experience-copy h2{margin-top:20px;font-size:clamp(40px,4vw,56px)}
.experience-copy h2 em{color:#4c93ff}
.experience-copy>p:not(.eyebrow){margin-top:22px;font-size:12px;color:#cad9f5}
.experience-point{display:flex;gap:24px;border-top:1px solid #ffffff25;padding-top:23px;margin-top:23px}
.experience-point>span{font-size:10px;color:#8cbbff;padding-top:4px}
.experience-point h3{font:23px/1.2 var(--serif)}
.experience-point p{font-size:11px;color:#cad9f5;margin-top:8px}
.experience-copy>.text-link{margin-top:30px}

/* Native, keyboard accessible FAQ */
.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:100px}
.faq h2{margin-top:20px}
.faq>div>p:not(.eyebrow){color:var(--muted);font-size:12px;margin-top:25px}
.faq .text-link{margin-top:20px}
.faq-list{padding-top:15px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none;cursor:pointer;padding:24px 0;font-size:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary>span{font-size:24px;font-weight:400;color:#0d6efd;transition:transform .2s}
.faq details[open] summary>span{transform:rotate(45deg)}
.faq details p{padding:0 30px 25px 0;color:var(--muted);font-size:12px}
.faq details a{text-decoration:underline;text-underline-offset:3px}

/* Local contact and footer */
.contact{background:#0d6efd;color:var(--white)}
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px}
.contact h2{margin-top:22px}
.contact h2 em{color:#ffffff}
.contact-title>p:not(.eyebrow){margin-top:24px;color:#ffffff;font-size:12px}
.contact .button{margin-top:32px}
.contact-details{padding:6px 0 0 50px;border-left:1px solid #ffffff25}
.contact-details .eyebrow{display:block;font-size:8px}
.contact address{font-style:normal;font-size:15px;line-height:1.9;margin-top:16px}
.contact .text-link{margin-top:13px;font-size:11px}
.contact-channels{display:grid;gap:22px;margin-top:32px}
.contact-phone{font:29px/1.5 var(--serif)}
.email{display:block;font-size:12px;margin-top:8px;overflow-wrap:anywhere}
.contact-note{font-size:10px;line-height:1.9;color:#ffffff;margin-top:24px}
.site-footer{background:#ffffff;color:var(--ink);padding-block:47px 24px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px}
.footer-top>p{font:19px/1.4 var(--serif);color:#586477}
.social-links{display:flex;gap:23px;font-size:10px}
.social-links a:hover{color:var(--brand)}
.footer-bottom{border-top:1px solid var(--line);margin-top:34px;padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#586477}
.fine-print{font-size:8px;color:#586477;margin-top:22px;max-width:1000px}
.floating-contact{position:fixed;bottom:23px;right:25px;z-index:40;display:flex;align-items:center;gap:10px;background:var(--brand);color:#ffffff;border:1px solid #0d6efd;box-shadow:0 4px 20px #0002;border-radius:50px;padding:14px 19px;font-size:11px;transition:transform .2s}
.floating-contact:hover{transform:translateY(-3px)}

@media(min-width:1600px){.hero-content{padding-top:100px}}
@media(max-width:1150px){
  .shell{width:calc(100% - 72px)}.main-nav{gap:23px}
  .intro,.experience-grid,.faq,.contact-grid{gap:55px}
  .hero{min-height:710px}.hero-content{padding-top:65px}h1{font-size:92px}.hero-actions{gap:16px}.hero-side{right:10px}
  .experience-visual{height:580px}.card-heading h3{font-size:25px}.more-treatments{gap:23px}
  .contact-details{padding-left:30px}.footer-top>p{font-size:16px}.footer-top{gap:20px}.social-links{gap:13px}
}
@media(max-width:900px){
  .shell{width:calc(100% - 48px)}.header-inner{height:80px;gap:20px}
  .brand img{width:180px;height:auto}
  .main-nav{gap:18px;font-size:10px}.main-nav .button{padding:10px 12px;gap:14px;font-size:10px}
  .hero{height:auto;min-height:720px}.hero-image img{object-position:59% center}
  .hero-shade{background:linear-gradient(90deg,#071d49f2,#071d49b8 35%,#071d4920 85%),linear-gradient(0deg,#071d49b0,transparent 25%)}
  .hero-content{padding-top:70px}h1{font-size:88px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.hero-description{font-size:12px}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:8px}.hero-foot{font-size:7px;letter-spacing:1.4px}
  .care-inner{font-size:9px;gap:15px}.care-inner>span{gap:8px}.section-space{padding-block:80px}
  .intro{gap:40px}.intro-copy .lead{font-size:23px}.intro-copy>p{font-size:12px}
  .section-top{gap:30px}.section-top>p{max-width:240px;font-size:11px}.featured-treatments{gap:20px}.card-heading h3{font-size:23px}.treatment-card>p{font-size:11px}
  .image-tag{left:12px;bottom:12px;font-size:7px;letter-spacing:1px}.more-treatments{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px}
  .experience-grid{gap:40px}.experience-visual{height:610px}.experience-copy h2{font-size:42px}.experience-point{gap:14px}.experience-point h3{font-size:22px}.experience-point p{font-size:10px}
  .visual-caption{padding:25px;font-size:24px}.faq{gap:40px;grid-template-columns:1fr 1.25fr}.faq summary{font-size:11px;padding-block:22px}
  .contact-grid{gap:40px}.contact-details{padding-left:25px}.contact h2{font-size:43px}.contact address{font-size:13px}.email{font-size:10px}
  .footer-top{flex-wrap:wrap}.footer-top>p{font-size:17px}.social-links{width:100%;padding-left:0}.floating-contact{padding:12px 16px;right:17px;bottom:17px}.site-footer{padding-bottom:90px}
}
@media(max-width:700px){
  html{scroll-padding-top:24px}.header-inner{height:auto;min-height:82px;flex-wrap:wrap;gap:0;padding-block:17px}
  .main-nav{width:100%;flex-wrap:wrap;padding-top:22px;gap:16px 23px}.main-nav .button{margin-left:auto}
  .js .menu-toggle{display:flex;align-items:center;gap:10px;margin-left:auto;background:transparent;border:1px solid #0d6efd55;padding:10px 12px;color:var(--brand);font-size:10px;cursor:pointer;min-height:44px}
  .menu-lines{width:15px;height:10px;border-top:1px solid var(--brand);border-bottom:1px solid var(--brand);position:relative}.menu-lines:after{content:'';position:absolute;top:4px;left:0;right:0;border-top:1px solid var(--brand)}
  .js .main-nav{display:none}.js .main-nav.is-open{display:flex}.js .main-nav>a:not(.button){width:100%;border-bottom:1px solid var(--line);padding:10px 0}.js .main-nav .button{margin:5px 0 3px;width:100%;justify-content:space-between}
  .hero{min-height:800px;max-height:none}.hero-image{inset:0 0 auto;height:480px}.hero-image img{object-fit:cover;object-position:68% top}
  .hero-shade{background:linear-gradient(0deg,#071d49 36%,#071d49eb 43%,#071d4900 80%),linear-gradient(90deg,#071d4970,transparent 55%)}
  .hero-content{padding-top:315px;padding-bottom:115px}.hero .eyebrow{font-size:7px;letter-spacing:1.2px;gap:8px}.hero .tiny-star{font-size:23px}
  h1{font-size:clamp(56px,17vw,74px);line-height:1.02;letter-spacing:-2px;margin-top:20px}h1 em{white-space:nowrap}
  .hero-description{font-size:12px;line-height:1.9;margin-top:23px}.hero-actions{flex-direction:row;align-items:center;gap:23px;flex-wrap:wrap;margin-top:24px}
  .hero .button{padding:14px 19px;gap:22px;font-size:11px}.hero-link{font-size:10px;gap:12px}
  .hero-foot{bottom:24px;padding-top:16px;letter-spacing:1px;font-size:7px}.hero-foot>a{font-size:0;gap:0}.hero-foot>a span{font-size:20px}.hero-side{display:none}
  .care-inner{padding-block:22px;display:grid;grid-template-columns:1fr;font-size:10px;gap:14px}.care-inner>span{gap:12px}.care-inner>span>span{font-size:23px}
  .section-space{padding-block:66px}.intro{grid-template-columns:1fr;gap:28px}.intro h2{margin-top:18px}h2{font-size:44px;letter-spacing:-1.2px}
  .intro-copy{max-width:none}.intro-copy .lead{font-size:24px}.intro-copy>p{font-size:12px}
  .section-top{display:block;margin-bottom:32px}.section-top h2{margin-top:18px}.section-top>p{max-width:none;margin-top:24px;font-size:12px}
  .featured-treatments{grid-template-columns:1fr;gap:42px}.treatment-image{aspect-ratio:1.5}.card-heading{padding-top:18px}.card-heading h3{font-size:30px}
  .image-tag{bottom:19px;left:20px;font-size:8px;letter-spacing:1.4px}.treatment-card>p{font-size:12px;margin-top:12px;max-width:480px}.treatment-card .text-link{margin-top:12px;font-size:11px}
  .more-treatments-heading{margin-top:46px;display:block;padding-top:24px}.more-treatments-heading>span{display:block}.more-treatments-heading>span:last-child{margin-top:8px}
  .more-treatments{gap:30px 25px;margin-top:30px}.more-treatments h3{font-size:24px}.more-treatments p{font-size:11px}.service-number{font-size:7px}.treatment-note{font-size:9px;line-height:1.9;margin-top:30px}
  .experience-grid{grid-template-columns:1fr;gap:38px}.experience-visual{height:350px}.experience-visual>img{object-position:center 45%}.experience-copy h2{font-size:44px}
  .experience-copy>p:not(.eyebrow){font-size:12px}.experience-point{padding-top:22px;margin-top:22px;gap:22px}.experience-point h3{font-size:25px}.experience-point p{font-size:12px}.visual-caption{padding:25px;font-size:27px}
  .faq{grid-template-columns:1fr;gap:25px}.faq summary{font-size:12px;padding-block:21px}.faq details p{font-size:12px;padding-right:10px}
  .contact-grid{grid-template-columns:1fr;gap:42px}.contact h2{font-size:44px}.contact-details{padding:30px 0 0;border-left:0;border-top:1px solid #ffffff30}
  .contact address{font-size:15px}.contact-details .eyebrow{font-size:9px}.contact-channels{grid-template-columns:1fr;gap:22px}.email{font-size:12px}.contact-note{font-size:10px}
  .footer-top{display:block}.footer-top>p{margin-top:24px;font-size:20px}.social-links{width:auto;padding:0;margin-top:23px;gap:25px;font-size:11px}
  .footer-bottom{margin-top:30px;align-items:flex-start;font-size:8px}.footer-bottom p{max-width:220px}.footer-bottom a{white-space:nowrap}.fine-print{font-size:8px;line-height:1.9}
  .floating-contact{padding:13px;border-radius:50%;right:15px;bottom:15px}.floating-contact>span{display:none}.site-footer{padding-top:40px;padding-bottom:85px}
}
@media(max-width:370px){
  .shell{width:calc(100% - 36px)}.brand img{width:168px;height:auto}.hero .eyebrow{font-size:6.4px;letter-spacing:1px}h1{font-size:56px}
  .hero-actions{gap:8px}.more-treatments{grid-template-columns:1fr}.hero-description{font-size:11px}.desktop-break{display:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
