/* Shared typography scale: loaded last on every DE/EN route. */
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
:root{--font-body:Manrope,Arial,sans-serif;--text-body:18px;--text-small:14px;--text-ui:15px;--muted:#514958}
body{font-family:var(--font-body);font-size:var(--text-body);line-height:1.65}
/* Keep established display hierarchy while unifying reading and UI text. */
h1,h2,h3{font-family:Arial,Helvetica,sans-serif}
p,li,address,dd,dt,label,button,input,select,textarea,nav,footer{font-family:var(--font-body)}
main p:not(.lead):not(.p4m-subline):not(.p4m-tagline):not(.rh-story-kicker),dialog p,dialog li,.legal-main address,.privacy-text ul,.privacy-text ol{font-size:var(--text-body)!important;line-height:1.65!important}
main p.caption,main p.concept-caption,main p.p4m-availability,main p.p4m-audience,main p.construction-reach,main p.footer-note,.contact .needs-check p.caption{font-size:var(--text-small)!important;line-height:1.65!important}
.eyebrow,.hero-copy .eyebrow,.editorial-hero .eyebrow,.rh-story-reading>.eyebrow{font-size:12px!important;letter-spacing:.1em;line-height:1.6}
.button,.button.small,.hero .button,.editorial-hero .button,.text-link,.editorial-hero .text-link,.service a,.check-back,.module-tabs button{font-family:var(--font-body);font-size:var(--text-ui)!important;line-height:1.5;min-height:44px}
.text-link{display:inline-block}
.hero-foot,.editorial-hero .hero-foot,.cities,.proofs div,.practice-links span,.industry-focus,.footer-note,.jobs-foot,.insight-bottom,.trust-strip,.founder-photo span,.module-state,.status,.rh-feature-top .status,.rh-page-hero .rh-feature-top .status,figcaption,.concept-caption,.p4m-visual figcaption,.rh-story-media .concept-caption{font-size:var(--text-small)!important;line-height:1.65}
figcaption span,.construction-visual figcaption span,.construction-team-visual figcaption span{font-size:13px!important;line-height:1.5}
.insight-meta,.branch-label,.tag,.practice-status span,.practice-card li b,.rh-field-grid article>span,.rh-story-steps li>span,.rh-story-labels{font-size:12px!important;line-height:1.5}
label,.needs-check label,.needs-check dt,footer,.footer-links button,nav.breadcrumb,.privacy-toc ol{font-size:14px!important;line-height:1.6}
input,select,textarea{font-size:16px!important;line-height:1.5}
summary,.practice-card summary{font-size:17px;line-height:1.5}
.editorial-deck>p{color:var(--muted);max-width:52ch}
header{gap:24px;padding-inline:max(32px,calc((100% - 1760px)/2))}
header #navigation{font-size:15px;font-weight:600;gap:clamp(18px,1.4vw,28px);flex:0 0 auto;white-space:nowrap}
header #navigation>a,header .nav-branch,header .language-switch,header>.button{flex-shrink:0}
header .branch-toggle{white-space:nowrap}
header .branch-panel{white-space:normal}
header #navigation>a,header .branch-toggle{min-height:44px;display:flex;align-items:center}
header .branch-panel{font-size:15px;width:330px}
header .language-switch{font-size:14px;gap:5px}
header .language-switch a{min-height:44px;min-width:30px}
header .menu-toggle{font-size:15px;min-height:44px}
header>.button.small{font-size:15px;padding:12px 16px}
/* Collapse before labels collide; retain the existing accessible menu control. */
@media(max-width:1500px){
 header{padding-inline:var(--gutter)}
 header .menu-toggle{display:flex;align-items:center;margin-left:auto;gap:8px;border:0;background:none;color:var(--ink)}
 header>.button{display:none}
 header #navigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px var(--gutter);border-bottom:1px solid var(--line);margin:0;max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
 header #navigation.open{display:flex;flex-direction:column;gap:10px}
 header .nav-branch{display:block}
 header .branch-toggle{width:100%;justify-content:space-between}
 header .branch-panel{position:static;width:100%;box-shadow:none;border:0;border-left:2px solid var(--purple);margin:10px 0;padding:6px 8px}
}
@media(max-width:850px){:root{--text-body:17px;--text-small:14px} .hero.editorial-hero .hero-copy>p.hero-explainer{font-size:17px!important}.hero-foot{flex-wrap:wrap} .rh-story-panel .rh-story-steps{grid-template-columns:1fr} }
@media(max-width:400px){header{gap:7px}header .brand{flex-basis:100px}header .brand img{width:100px}header .language-switch{gap:2px}header .language-switch a{min-width:27px}.button{gap:12px!important;padding:14px 16px!important} .eyebrow{overflow-wrap:anywhere}}

/* Allow long German words to wrap within narrow grid/flex columns. */
.approach>div,.steps article>div{min-width:0;overflow-wrap:anywhere}
