/* Semantic text roles and fluid sizing shared by all routes. */
:root{--text-primary:#3a2f2a;--text-secondary:#645850;--text-accent:#8c8a73;--text-on-contact:#faf7f3;--surface-contact:#454538;--ink:var(--text-primary);--muted:var(--text-secondary);--gutter:clamp(16px,5vw,56px)}
body{color:var(--text-primary)}
.contact{background:var(--surface-contact);color:var(--text-on-contact)}
.contact-note,.pending-document p,.brand span span{color:var(--text-secondary)}
.number{color:var(--text-accent)}
.container{width:min(1240px,calc(100% - 2 * var(--gutter)))}
.reading{width:min(800px,calc(100% - 2 * var(--gutter)))}
.header-inner{width:min(1320px,calc(100% - 2 * clamp(16px,3vw,40px)))}
.hero>* , .about-grid>*,.contact-layout>*,.footer-grid>*,.contact-row>*,.actions>*{min-width:0}
h1{font-size:clamp(2.1rem,1.7rem + 1.8vw,3.325rem)}
h2{font-size:clamp(1.925rem,1.7rem + .85vw,2.4rem)}
h3{font-size:clamp(1.1rem,1rem + .3vw,1.25rem)}
.subpage .sub-intro h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.75rem)}
.subpage .short-heading{font-size:clamp(1.45rem,1.3rem + .5vw,1.65rem)}
.subpage .contact-layout .contact-name{font-size:clamp(1.1rem,1rem + .3vw,1.25rem)}
.subpage .contact-layout .price-block h2{font-size:clamp(1.4rem,1.25rem + .5vw,1.65rem)}
.button{max-width:100%;white-space:normal;overflow-wrap:break-word;text-align:center}
img{max-width:100%}
.portrait,.subpage .natural-portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.hero,.subpage .about-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr)}
.therapy-stages,.footer-grid{min-width:0}
.contact-value[href^="mailto:"]{font-size:clamp(.875rem,.72rem + .75vw,1.125rem);white-space:nowrap;overflow-wrap:normal;word-break:normal}
.contact-page .sub-intro>.reading{width:min(1000px,calc(100% - 2 * var(--gutter)))}
.subpage.contact-page .contact-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,4vw,56px)}
.contact-page .contact-rows{margin:28px 0 0}
.contact-page .contact-row{grid-template-columns:1fr;gap:12px;padding:20px 0}
.contact-page .contact-rows .contact-row:first-child{border-top:0}
.contact-page .contact-rows .contact-row:last-child{padding-bottom:0}
.subpage.contact-page .contact-layout .price-block{margin:0;padding:0 0 0 clamp(28px,4vw,48px);border:0;border-left:1px solid var(--line)}
.contact-page .emergency-row{margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.subpage .account-number{font-size:clamp(1.05rem,.85rem + 1vw,1.5rem)}
@media(max-width:900px){
 .subpage.contact-page .contact-layout{grid-template-columns:1fr;gap:36px}
 .subpage.contact-page .contact-layout .price-block{border-left:0;border-top:1px solid var(--line);padding:32px 0 0}
}
@media(max-width:700px){
 .hero,.subpage .about-grid{grid-template-columns:minmax(0,1fr)}
 .footer-grid{grid-template-columns:minmax(0,1fr)}
 .brand{flex:1;min-width:0;gap:clamp(6px,2vw,10px)}
 .brand>span{min-width:0}.brand img{flex-shrink:0;width:clamp(32px,10vw,42px)}
 .brand strong{font-size:clamp(.875rem,3.8vw,1rem)}
 .brand span span{font-size:clamp(.75rem,3.2vw,.875rem);max-width:none;line-height:1.5}
 .menu-toggle{flex-shrink:0;margin-left:8px;width:44px;height:44px}
 .step{padding:clamp(24px,6vw,36px) clamp(20px,5vw,28px)}
 .contact-row{grid-template-columns:minmax(0,1fr)}
 .actions{max-width:100%}
}

.contact .contact-note{color:var(--text-on-contact)}

.contact a:focus-visible{outline-color:var(--paper)}

/* Compact document paragraphs, while retaining spacing between numbered sections. */
.subpage .som-document p,.subpage .som-document li{margin-top:0;margin-bottom:1pt}
.subpage .som-document ul,.subpage .som-document ol{margin-top:0;margin-bottom:1pt}
.subpage .som-document .som-meta{text-align:center}
.subpage .som-document .som-subheading{margin-top:24px;margin-bottom:1pt;font-weight:600}
.subpage .som-document .som-subheading:first-child{margin-top:0}
