/* ===== WEB RULES v1 (see 02_DESIGN/WEB_RULES.md). Loaded last: it wins. ===== */
:root{
  --maxw:none; --pad:clamp(28px,6vw,96px);
  --sec-y:clamp(88px,10vw,164px); --sec-y-s:clamp(64px,7vw,112px);
  --fs-display:clamp(52px,7.4vw,150px);   /* hero only */
  --fs-h1:clamp(44px,6vw,112px);          /* subpage hero title */
  --fs-h2:clamp(34px,5vw,94px);           /* every section headline */
  --fs-h3:clamp(24px,2.4vw,44px);         /* row headlines, large list items */
  --fs-lead:clamp(18px,1.35vw,24px);
}
.ppm-wrap{max-width:none;margin:0;padding-left:var(--pad);padding-right:var(--pad)}
/* one headline scale */
.ppm-call__h2,.ppm-prog__h2,.ppm-sp__h2,.ppm-cta__h2,.ppm-cta__h2.is-small,.ag h2,.lg-close h2,.mv h2{font-size:var(--fs-h2);line-height:.94;letter-spacing:-.045em;text-wrap:balance}
.lg-h1{font-size:var(--fs-h1);text-wrap:balance}
.ppm-hc__h1{font-size:var(--fs-display)}
.tp__day,.pg-dayhead b{font-size:clamp(40px,4.6vw,88px)}
.ppm-q__row h3,.ppm-call__item h3{font-size:var(--fs-h3);line-height:1;text-wrap:balance}
.ppm-call__h2 .ln{white-space:normal}
@media (min-width:1100px){.ppm-call__h2 .ln{white-space:nowrap}}
.ppm-call__lead,.ppm-cta__row p,.lg-lead,.ag p,.ppm-q__foot{font-size:var(--fs-lead);line-height:1.5}
/* one section rhythm */
.ppm-call,.ppm-q,.ppm-prog,.ppm-sp,.ppm-cta,.ag{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
/* layout patterns: never the same pattern twice in a row */
.lay-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,112px);align-items:start}
.lay-split__aside{position:sticky;top:calc(var(--hdr-h,80px) + 32px)}
.lay-center{text-align:center}
.lay-center .ppm-cta__kick,.lay-center .ppm-btns{justify-content:center}
.lay-center .ppm-cta__row{flex-direction:column;align-items:center;text-align:center}
.lay-center .ppm-cta__row p{margin:0 auto}
.lay-center h2{margin-left:auto;margin-right:auto;max-width:14em}
.lay-mirror{text-align:right}
@media (max-width:900px){.lay-split{grid-template-columns:1fr}.lay-split__aside{position:static}.lay-mirror{text-align:left}}

/* Mobile readability and unobtrusive consent, November 2026. */
body:has(.cmplz-cookiebanner:not(.cmplz-dismissed)) #LeadboosterContainer{visibility:hidden!important;pointer-events:none!important}
.ab-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:640px){
 .ppm-hc__h1{font-size:clamp(58px,16vw,76px)}
 .ppm-hc__bl{font-size:17px;line-height:1.45;color:#fff;text-shadow:0 1px 8px #0a1f44}
 .ppm-call__h2,.ppm-prog__h2,.ppm-sp__h2,.ppm-cta__h2{font-size:38px;line-height:1.02}
 .ppm-q__row h3,.ppm-call__item h3{font-size:28px;line-height:1.08}
 .cmplz-cookiebanner.cmplz-cookiebanner{width:calc(100% - 24px)!important;max-width:none!important;left:12px!important;right:12px!important;bottom:12px!important;padding:16px!important;gap:10px!important;max-height:calc(100dvh - 32px);overflow-y:auto}
 .cmplz-cookiebanner .cmplz-title{font-size:16px!important}
 .cmplz-cookiebanner .cmplz-message{font-size:13px!important;line-height:1.45!important}
 .cmplz-cookiebanner .cmplz-buttons{flex-direction:row!important;gap:8px!important}
 .cmplz-cookiebanner .cmplz-buttons .cmplz-btn{flex:1 1 0!important;min-width:0!important;width:auto!important;min-height:44px!important;padding:8px 4px!important;font-size:13px!important;line-height:1.15!important;white-space:normal!important}
 .cmplz-cookiebanner .cmplz-links{font-size:12px!important}
 .cmplz-cookiebanner .cmplz-links .cmplz-link{font-size:12px!important}
 .cmplz-cookiebanner .cmplz-divider{margin:0!important}
}
