:root{--fixed-header:106px}
html{scroll-padding-bottom:90px}.contact-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
html{scroll-padding-top:calc(var(--fixed-header) + 22px)}
body{padding-top:var(--fixed-header)}
.header{position:fixed;inset:0 0 auto;height:var(--fixed-header);z-index:30;background:#fffdfaf2;backdrop-filter:blur(18px);border-bottom:1px solid #dcd0cb55;transition:box-shadow .4s,background .4s}
.header.is-scrolled{background:#fffdfaf7;box-shadow:0 8px 30px #783f4d0d}
.treatment-group>summary,.faq-list summary{transition:color .3s,background .3s,padding .4s}
.treatment-group>summary:hover,.faq-list summary:hover{color:var(--rose)}
.treatment-group[data-expanded=true]>summary,.faq-list details[data-expanded=true]>summary{color:var(--rose)}
.treatment-group[data-expanded=false]>summary .plus:after,.faq-list details[data-expanded=false]>summary .plus:after{transform:rotate(90deg)}
.treatment-group[data-expanded=true]>summary .plus:after,.faq-list details[data-expanded=true]>summary .plus:after{transform:rotate(0)}
.plus:before,.plus:after{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.insurance-links a{position:relative;isolation:isolate;overflow:hidden;min-height:76px;transition:color .35s,padding .5s cubic-bezier(.2,.8,.2,1),border-color .35s}
.insurance-links a:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--blush);transform:translateX(-101%);transition:transform .55s cubic-bezier(.22,.7,.2,1)}
.insurance-links a>span{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;flex-shrink:0;border:1px solid transparent;border-radius:50%;transition:transform .5s cubic-bezier(.2,.8,.2,1),background .35s,color .35s,border-color .35s}
.insurance-links a:hover,.insurance-links a:focus-visible{color:var(--rose);padding-left:18px;padding-right:14px;border-color:#bc939d}
.insurance-links a:hover:before,.insurance-links a:focus-visible:before{transform:translateX(0)}
.insurance-links a:hover>span,.insurance-links a:focus-visible>span{transform:rotate(45deg);background:var(--rose);color:var(--paper);border-color:var(--rose)}
/* Let the actual clinic photograph span the viewport without cropping its edges. */
.access{padding-left:0;padding-right:0;padding-bottom:90px}
.access>.section-top,.access>.display-title{margin-left:var(--gutter);margin-right:var(--gutter)}
.access .access-grid{display:flex;flex-direction:column;gap:0}
.access .access-photo{order:-1;width:100%;margin:0}
.access .access-photo>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:1280/853;object-fit:contain}
.access .access-photo figcaption{padding:21px var(--gutter);font-size:12px;border-bottom:1px solid var(--line)}
.access .access-info{margin:65px var(--gutter) 0;display:grid;grid-template-columns:.8fr 1.7fr;column-gap:8%;align-items:start}
.access .access-info>.small-en{grid-column:1;grid-row:1;margin-top:2px}
.access .access-info>h3{grid-column:1;grid-row:2;margin:0}
.access .access-info>dl{grid-column:2;grid-row:1/4;display:grid;grid-template-columns:1.25fr 1.2fr 1fr;gap:25px}
.access .access-info dl>div{display:block;padding-top:18px}
.access .access-info dt{margin-bottom:13px}
.access .access-info>.text-link{grid-column:1;grid-row:3;margin-top:25px;min-width:0;width:100%;font-size:13px;gap:18px}
.access .access-info .phone{font-size:clamp(18px,1.7vw,27px);white-space:nowrap}
.access .access-info .phone>span{padding-left:6px}
.access .access-info .hours{font-size:clamp(21px,2vw,30px);white-space:nowrap}
@media(max-width:1050px){:root{--fixed-header:90px}.access .access-info{grid-template-columns:1fr;gap:0}.access .access-info>.small-en,.access .access-info>h3,.access .access-info>dl,.access .access-info>.text-link{grid-column:auto;grid-row:auto}.access .access-info>dl{margin-top:30px}.access .access-info>.text-link{max-width:320px}}
@media(max-width:640px){:root{--fixed-header:84px}.access{padding-left:0;padding-right:0;padding-bottom:70px}.access .access-photo figcaption{padding:17px 24px;font-size:10px}.access .access-info{margin:36px 24px 0;display:block}.access .access-info>.small-en{margin-bottom:13px}.access .access-info>h3{margin-bottom:25px}.access .access-info>dl{display:block;margin-top:0}.access .access-info dl>div{display:grid;grid-template-columns:65px 1fr;padding:18px 0}.access .access-info dt{margin:0;padding-top:3px}.access .access-info .phone{font-size:25px}.access .access-info .hours{font-size:27px}.access .access-info>.text-link{margin-top:20px;font-size:14px;max-width:100%}.insurance-links a:hover,.insurance-links a:focus-visible{padding-left:10px;padding-right:6px}.insurance-links a>span{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){.insurance-links a,.insurance-links a:before,.insurance-links a>span,.header,.plus:before,.plus:after{transition:none}.insurance-links a:hover>span,.insurance-links a:focus-visible>span{transform:none}}
/* QA: keep mobile copy separate from the portrait, and balance long headings. */
@media(max-width:640px){
  .hero--surgery .hero-copy{min-height:790px;padding-top:22px}
  .hero--surgery .hero-photo picture{position:absolute;top:460px;left:0;width:100%;height:500px}
  .hero--surgery .hero-photo img{object-position:82% center}
  .hero--surgery .hero-photo:after{background:linear-gradient(180deg,#fff8f0 0px,#fff8f0 410px,#fff8f06b 485px,transparent 560px,transparent 790px,#fffaf4 970px)}
  .hero--surgery .hero-photo figcaption{top:650px}
  .hero-area-phrase{display:inline-block;white-space:nowrap}
  .hero--surgery .hero-sub{font-size:13px;line-height:2}
  .hero--surgery .hero-atmosphere-word{top:710px}
  .group-title{flex:1;min-width:0}.group-title>span{display:block;text-wrap:balance;font-size:clamp(17px,4.7vw,21px)}
  .group-count{flex-shrink:0}.group-number{flex-shrink:0}
  .access .access-info .phone{font-size:clamp(19px,6vw,25px)}
  .access .access-info dd{min-width:0}
  .insurance-links a{overflow:visible}.insurance-links a:before{clip-path:inset(0);transform:scaleX(0);transform-origin:left}.insurance-links a:hover:before,.insurance-links a:focus-visible:before{transform:scaleX(1)}
}
