/* Spacious supporting sections. Open answers remain in normal document flow. */
#reviews{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,4.5vw,68px);align-items:start}
#reviews .review-intro .eyebrow{margin-bottom:12px}
#reviews .review-intro>p:not(.eyebrow){margin-top:24px;max-width:440px;font-size:17px;line-height:1.6}
#reviews .review-intro .text-link{margin-top:24px;max-width:100%;min-height:48px}
#reviews .reviews-surface{padding:32px 36px;margin-top:0}
#reviews .service-wordmark{font-size:20px;padding-bottom:16px;margin-bottom:24px}
#reviews .review-consent-title{font-size:clamp(32px,3vw,44px);line-height:1.12;margin-bottom:20px}
#reviews #review-consent>.caption{font-size:12px;line-height:1.5;max-width:450px}
#reviews #load-reviews{margin-top:22px;min-height:48px;padding:12px 24px;font-size:15px}
#reviews #reviews-status:not(:empty){margin-top:12px}
#reviews .reviews-language{margin-top:24px;padding-top:18px;font-size:13px;line-height:1.5}

#locations .location-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1.25fr);gap:clamp(28px,3vw,52px);margin-top:26px;align-items:start}
#locations .location-sidebar,#locations .map-shell{min-width:0}
#locations .location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0}
#locations .location-choice{gap:8px;padding:14px 12px;border:1px solid var(--line);border-radius:3px;min-height:140px;align-items:start}
#locations .location-choice>span:first-child{font-size:11px;padding-top:3px}
#locations .location-choice>span:nth-child(2){min-width:0}
#locations .location-choice strong{font-size:18px;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}
#locations .location-choice small{font-size:13px;line-height:1.35;margin-top:6px}
#locations .location-choice .clinic-address{display:block;margin-top:10px;font-size:14px;line-height:1.4;color:var(--text);overflow-wrap:anywhere}
#locations .location-choice>span:last-child{font-size:19px;padding-top:0;line-height:1.2}
#locations .location-detail{margin-top:20px;padding-left:0}
#locations .location-detail>p{font-size:16px;line-height:1.45;margin-top:0}
#locations .location-actions{gap:12px;margin:16px 0 12px;flex-wrap:wrap;justify-content:center}
#locations .location-actions .button{font-size:15px;min-height:48px;padding:12px 20px;gap:20px}
#locations .location-actions .text-link{min-height:48px;padding:12px 18px;font-size:15px}
#locations .location-detail p.caption{font-size:12px;line-height:1.45;margin:0;max-width:none}
#locations .map-container{height:clamp(310px,41svh,390px);margin-top:0;border-bottom-right-radius:30px}
#locations .map-container{scroll-margin-top:calc(var(--header) + 12px)}
#locations .map-tools{gap:12px;padding-top:8px;font-size:12px;line-height:1.4;align-items:start;justify-content:center}
#locations .map-tools>span{max-width:340px}
#locations .map-tools>button{font-size:12px;min-height:44px;padding:8px 0;white-space:normal}
#locations #map-status:not(:empty){margin-top:8px;font-size:12px}
#locations .source-note{font-size:12px;line-height:1.4;margin-top:12px}

#questions{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(28px,4.5vw,68px);align-items:start}
#questions .section-aside .eyebrow{margin-bottom:12px}
#questions .faq-list details{border-top:1px dashed var(--line);border-bottom:0}
#questions .faq-list details:last-child{border-bottom:1px dashed var(--line)}
#questions .faq-list summary{font-size:19px;line-height:1.45;padding:23px 0;min-height:74px;gap:24px}
#questions .faq-list summary:after{flex-shrink:0;font-size:23px;line-height:1}
#questions .faq-list details p{font-size:16px;line-height:1.65;margin-bottom:24px;max-width:none}

#contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,78px);align-items:start}
#contact .eyebrow{margin-bottom:12px}
#contact h2{font-size:clamp(36px,3.4vw,52px);line-height:1.1}
#contact .contact-lead{font-size:17px;line-height:1.6;margin:24px 0;max-width:520px}
#contact>div>.button{font-size:15px;min-height:48px;padding:12px 24px;margin-right:12px}
#contact .contact-reviews{margin-top:18px;min-height:48px;max-width:100%;font-size:15px}
#contact .contact-form{padding-top:0;margin-top:0;min-width:0}
#contact .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
#contact .contact-form label{font-size:16px;line-height:1.4;min-width:0}
#contact .contact-form label>span{margin-bottom:8px}
#contact .contact-form input{min-height:48px;padding:10px 0;font-size:16px}
#contact .contact-form textarea{height:96px;min-height:96px;padding:10px 0;font-size:16px;line-height:1.5}
#contact .contact-form>label{margin-top:22px}
#contact .contact-form .caption{margin-top:8px;font-size:12px;line-height:1.45}
#contact .contact-form>button{min-height:48px;margin-top:22px;padding:12px 24px;font-size:15px}
#contact .form-status{margin-top:10px;font-size:12px;line-height:1.5;max-width:none}

body>.footer{padding-top:36px;padding-bottom:28px}
body>.footer .footer-name{font-size:clamp(26px,2.5vw,36px);line-height:1.2}
body>.footer>p{margin-top:8px;font-size:12px}
body>.footer>div{margin-top:18px;padding-top:12px;font-size:12px;align-items:center;justify-content:flex-end}
body>.footer>div>a{min-height:44px;display:inline-flex;align-items:center;flex-shrink:0}

.back-to-top{
 position:fixed;right:clamp(18px,3vw,42px);bottom:clamp(18px,3vw,34px);z-index:30;
 display:grid;place-items:center;width:52px;height:52px;padding:0;
 border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--surface) 92%,transparent);
 color:var(--text);box-shadow:0 10px 30px #0002;backdrop-filter:blur(8px);
 opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);
 transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s,border-color .2s,color .2s;
}
.back-to-top svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.back-to-top:hover{border-color:var(--accent);color:var(--accent)}
.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

@media(min-width:761px) and (max-width:1000px){
 #locations .location-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:22px}
 #locations .location-choice{gap:7px;padding:9px 8px}
 #locations .location-choice strong{font-size:15px}
 #locations .location-choice small{font-size:11px}
 #locations .location-choice>span:last-child{display:none}
 #locations .map-tools{flex-wrap:wrap;gap:4px}
 #reviews,#questions,#contact{gap:28px}
 #reviews .reviews-surface{padding:18px}
}

/* Small screens keep a readable single column rather than squeezing a whole
   section into an arbitrary viewport height. All text stays visible. */
@media(max-width:760px){
 .back-to-top{right:16px;bottom:16px;width:46px;height:46px}
 #reviews,#questions,#contact{display:block}
 #reviews .review-intro .eyebrow,#questions .section-aside .eyebrow{margin-bottom:12px}
 #reviews .review-intro>p:not(.eyebrow){margin-top:16px;max-width:none}
 #reviews .review-intro .text-link{margin-top:14px}
 #reviews .reviews-surface{margin-top:24px;padding:20px}
 #reviews .review-consent-title{font-size:30px}
 #locations .location-layout{display:flex;flex-direction:column;gap:24px;margin-top:20px}
 #locations .location-list{gap:10px;grid-template-columns:1fr}
 #locations .location-choice{padding:16px;gap:12px;min-height:120px}
 #locations .location-choice strong{font-size:18px}
 #locations .location-choice small{font-size:12px}
 #locations .location-choice>span:last-child{display:block}
 #locations .location-detail{margin-top:16px}
 #locations .location-actions{gap:10px;margin-top:12px}
 #locations .map-container{height:280px;border-bottom-right-radius:26px}
 #locations .map-city-word{font-size:78px}
 #locations .map-tools{flex-wrap:wrap;gap:4px;font-size:12px}
 #locations .map-tools>span{max-width:none}
 #locations .source-note{text-align:left;margin-top:16px}
 #questions h2{margin-bottom:22px}
 #questions .faq-list summary{font-size:16px;padding:16px 0}
 #contact h2{font-size:clamp(30px,8.5vw,42px)}
 #contact .contact-lead{margin:16px 0}
 #contact .contact-form{margin-top:28px}
 #contact .form-row{gap:16px}
 #contact .contact-form textarea{height:88px;min-height:88px}
 body>.footer{padding-top:26px;padding-bottom:20px}
 body>.footer .footer-name{font-size:28px}
 body>.footer>div{font-size:11px;gap:16px;align-items:start}
}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}
@media(max-width:360px){
 #locations .location-list{grid-template-columns:1fr}
 #locations .location-choice{min-height:64px}
 #locations .location-choice>span:last-child{display:block}
 #contact .form-row{grid-template-columns:1fr;gap:12px}
 #reviews .reviews-surface{padding:18px}
}
