/* Shared typography roles. Approved 2026-10-21; applies to every page. */
:root{
 --font-heading:Ubuntu,Arial,sans-serif;
 --font-copy:Quicksand,Arial,sans-serif;
 --text-copy:18px;
 --text-navigation-action:18px;
 --text-label:16px;
 --text-card-title:23px;
 --text-trust-title:22px;
 --text-support:15px;
 --color-copy:#35434c;
 --color-heading:#293239;
 --color-copy-inverse:#e0e9ee;
}
body{font-family:var(--font-copy)}
/* Section labels share one weight and spacing; menu group labels are larger. */
.eyebrow,.herotext .eyebrow,.page-intro .eyebrow{
 font-family:var(--font-heading);font-size:var(--text-label);font-weight:700;
 letter-spacing:.6px;line-height:1.5;color:var(--color-heading);
}
.herotext .eyebrow,.process .eyebrow,.page-intro .eyebrow{color:#c1dfec}
.megagrid .eyebrow{font-size:19px;letter-spacing:.3px;color:var(--color-heading)}
/* Copy on light and dark backgrounds. Main headline sizes stay unchanged. */
p,.sectionhead>p,.career p,.service p,.steps p,.herotext>p:not(.eyebrow),.page-intro p:not(.eyebrow){
 font-family:var(--font-copy);font-size:var(--text-copy);font-weight:500;
 line-height:1.8;color:var(--color-copy);
}
.herotext>p:not(.eyebrow),.process .steps p,.service.featured p,.page-intro p:not(.eyebrow){color:var(--color-copy-inverse)}
.service h3,.branches h3,.steps h3{font-family:var(--font-heading);font-size:var(--text-card-title);font-weight:500;line-height:1.3}
.service h3{font-weight:600}
.servicecontent{padding:25px}
.service small{font-family:var(--font-heading);font-size:13px;line-height:1.5;font-weight:500;color:#465d6b;letter-spacing:.4px}
.service.featured small{color:#bfdfec}
.servicegrid{align-items:stretch}
.service{height:auto;min-height:0}
.service .more,.textlink,.allservices summary,#extra-services button{font-size:16px;font-weight:600;line-height:1.5}
/* Contact actions share the navigation size at every breakpoint. */
.button,.herotext .button,.hero-stage .herotext .button,.contactsection form .button,.sticky-contact .button{font-size:var(--text-navigation-action);font-weight:700;line-height:1.5}
@media(min-width:761px) and (max-width:1200px){:root{--text-navigation-action:16px}}
.trust{padding-top:34px;padding-bottom:34px;gap:30px}
.trust>div{gap:20px;min-width:0}
.trust>div+div{padding-left:26px}
.trust strong{font-family:var(--font-heading);font-size:var(--text-trust-title);font-weight:500;line-height:1.3;color:var(--color-heading);display:block}
.trust small{font-family:var(--font-copy);font-size:var(--text-support);font-weight:500;line-height:1.6;color:var(--color-copy);margin-top:7px}
.trusticon{width:62px;height:62px;font-size:30px}
.trusticon svg{width:34px;height:34px;display:block}
.trust-logo{width:100px;height:66px;object-fit:contain;flex-shrink:0}
.herodetail{font-size:14px;font-weight:500;color:#cfdee6;line-height:1.6}
.hours{font-size:16px;line-height:1.8}
label{font-size:16px;font-weight:600}
input,textarea{font-size:17px;line-height:1.5;color:var(--color-copy)}
.formnote,#formstatus{font-size:14px;line-height:1.7;color:#465661}
.dialoglist{font-size:18px;line-height:1.8;color:var(--color-copy)}
.footgrid p{font-size:15px;color:#d3dfe6}
.footgrid a,.footgrid>div>span{font-size:15px;line-height:1.7}
.footnote{font-size:13px;line-height:1.7;color:#c1d0d9}
@media(max-width:1100px){
 .trust{grid-template-columns:1fr;gap:0;padding-top:12px;padding-bottom:12px}
 .trust>div{padding:20px 0}
 .trust>div+div{border-left:0;border-top:1px solid #e3ecf1;padding-left:0}
}
@media(max-width:760px){
 .servicegrid{grid-template-columns:1fr}
 .servicephoto{aspect-ratio:1.65}
 .servicecontent{padding:24px}
 .trust>div{gap:18px}
 .trusticon{width:56px;height:56px}
 .branches button{padding:22px 18px;align-items:center}
 .steps{grid-template-columns:1fr}
 .steps h3{margin-top:16px}
 .herotext .eyebrow{font-size:14px}
 .herodetail{font-size:13px}
}

/* German compound words must fit narrow cards and mobile viewports. */
h1,h2,h3,.eyebrow,.object-card>span,.breadcrumbs,.related-grid>a{overflow-wrap:anywhere;hyphens:auto}
.detail-copy,.detail-columns>*,.relief-section>*,.object-detail>*,.inquiry-grid>*,.servicecontent,.career-copy{min-width:0}

html:has(dialog[open]){overflow:hidden}

/* Homepage service cards start directly with their title. */
#leistungen .servicecontent>h3:first-child{margin-top:0}
#leistungen .servicecontent>p{font-size:16px}
