/* ==========================================================================
   Kumulus e.V. – einheitliche Typografie für alle Seiten (Schrift: Stabil Grotesk)
   Maßstab: Startseite (index.html). Werte 1:1 aus deren kz-*-Regeln übernommen.
   Diese Datei wird auf allen Seiten als letztes Stylesheet im <head> geladen.
   Die Schriftart gilt für ALLE Seiten inkl. Startseite.
   Die Größenregeln gelten nur für Unterseiten (body:not(.home)) zwischen Kopf- und Fußzeile;
   die Startseite behält ihre eigenen Größen.
   ========================================================================== */

/* ---------- Hausschrift: Stabil Grotesk (ersetzt Manrope auf allen Seiten) ---------- */
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-40Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-45LightItalic.woff2") format("woff2");font-weight:300;font-style:italic;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-50Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-55RegularItalic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-60Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-65MediumItalic.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-70Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-75BoldItalic.woff2") format("woff2");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-80Black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Stabil Grotesk";src:url("../fonts/stabil-grotesk/StabilGrotesk-85BlackItalic.woff2") format("woff2");font-weight:900;font-style:italic;font-display:swap;}

:root{
  --kz-font:"Stabil Grotesk", "Helvetica Neue", Arial, sans-serif;
  --wp--preset--font-family--manrope:var(--kz-font);
}
html body,
html body *:not(code):not(pre):not(kbd):not(samp){font-family:var(--kz-font) !important;}
/* Laufweite: Manrope war eng gesetzt (-0.02em); Stabil Grotesk braucht normale Laufweite */
html body :is(h1,h2,h3,h4,h5,h6),
html body .kz-text h2,
html body .wp-block-cover h1{letter-spacing:0 !important;}

:root{
  --kz-fs-hero:   clamp(2rem, 4.2vw, 3.5rem);      /* Titel im Titelbild, z. B. „7 Millionen Stimmen …“ (56 px, vorher 70 px) */
  --kz-fs-h1:     clamp(1.6rem, 3.6vw, 3.2rem);    /* Startseite: Projekttitel „Juniorwahl“ (51 px, mobil 26 px) */
  --kz-fs-h2:     clamp(1.35rem, 2vw, 1.75rem);    /* Startseite: Kernsatz „Wählen lernen …“ (28 px)    */
  --kz-fs-h3:     clamp(1.15rem, 1.6vw, 1.35rem);  /* Zwischenüberschriften (22 px)                     */
  --kz-fs-intro:  clamp(1.1rem, 1.9vw, 1.55rem);   /* Startseite: Unterzeile im Hero (25 px)            */
  --kz-fs-text:   1.05rem;                         /* Startseite: Fließtext der Projekte (17 px)        */
  --kz-fs-small:  .9rem;                           /* Datum, Bildunterschriften (14 px)                 */
  --kz-fs-footer: .85rem;                          /* Fußzeile (14 px)                                  */
  --kz-lh-text:   1.55;
}

/* ---------- Menü (wie Startseite: „menu-kleiner“) ---------- */
html body header .wp-block-navigation.wp-block-navigation{font-size:1rem !important;font-weight:500 !important;}  /* 16 px, Medium (vorher 19 px, Bold) */
html body header .wp-block-navigation .wp-block-navigation-item__content{font-weight:500 !important;}
html body header .wp-block-navigation.wp-block-navigation .wp-block-navigation__submenu-container{font-size:.875rem !important;}  /* 14 px (vorher 15 px) */
html body header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-weight:400 !important;}

/* ---------- Hero / Titelbild mit Überschrift (wie Startseite: „kz-hero“) ---------- */
.wp-block-cover h1{font-size:var(--kz-fs-hero) !important;line-height:1.08 !important;letter-spacing:-.02em;}
.wp-block-cover h1 + h2,
.wp-block-cover h1 + p{font-size:var(--kz-fs-intro) !important;line-height:1.45 !important;font-weight:400 !important;margin-top:1.1rem !important;}

/* ---------- Überschriften im Inhalt ---------- */
body:not(.home) .wp-site-blocks > :not(header):not(footer) h1:not(.kz-x){font-size:var(--kz-fs-h1) !important;font-weight:700 !important;line-height:1.1 !important;letter-spacing:-.02em;}
body:not(.home) .wp-site-blocks .wp-block-cover h1:not(.kz-x){font-size:var(--kz-fs-hero) !important;line-height:1.08 !important;font-weight:400 !important;}
body:not(.home) .wp-site-blocks .wp-block-cover :is(h1 + h2, h1 + p):not(.kz-x){font-size:var(--kz-fs-intro) !important;line-height:1.45 !important;font-weight:400 !important;}

body:not(.home) .wp-site-blocks > :not(header):not(footer) h2:not(.kz-x){font-size:var(--kz-fs-h2) !important;font-weight:600 !important;line-height:1.25 !important;}
body:not(.home) .wp-site-blocks > :not(header):not(footer) h3:not(.kz-x){font-size:var(--kz-fs-h3) !important;font-weight:600 !important;line-height:1.3 !important;}
body:not(.home) .wp-site-blocks > :not(header):not(footer) :is(h4,h5,h6):not(.kz-x){font-size:var(--kz-fs-text) !important;font-weight:600 !important;line-height:1.35 !important;}

/* ---------- Schriftart vereinheitlichen (einige Texte waren auf Helvetica/Arial gestellt) ---------- */
body:not(.home) .wp-site-blocks > :not(header):not(footer) :is(p,li,h1,h2,h3,h4,h5,h6,blockquote,td,th,span,strong,em,a){font-family:var(--kz-font) !important;}

/* ---------- Fließtext, Listen, Zitate ---------- */
body:not(.home) .wp-site-blocks > :not(header):not(footer) :is(p,li,blockquote,td,th,dd,dt):not(.kz-x){font-size:var(--kz-fs-text) !important;line-height:var(--kz-lh-text) !important;}
body:not(.home) .wp-site-blocks > :not(header):not(footer) :is(p,li) :is(strong,b,em,a,span){font-size:inherit !important;}
body:not(.home) .wp-site-blocks > :not(header):not(footer) figcaption:not(.kz-x),
body:not(.home) .wp-site-blocks > :not(header):not(footer) .wp-element-caption:not(.kz-x){font-size:var(--kz-fs-small) !important;line-height:1.4 !important;}

/* ---------- Beitragslisten (Aktuelles) – wie Startseite: „kz-final“ ---------- */
.wp-block-query .wp-block-post-title:not(.kz-x),
.wp-block-query .wp-block-post-title a,
body:not(.home) .wp-site-blocks .wp-block-query :is(h1,h2,h3).wp-block-post-title:not(.kz-x),
body:not(.home) .wp-site-blocks .wp-block-query .wp-block-post-title a:not(.kz-x){font-size:var(--kz-fs-text) !important;line-height:1.35 !important;font-weight:500 !important;letter-spacing:0;}
.wp-block-post-date:not(.kz-x){font-size:var(--kz-fs-small) !important;}

/* ---------- Buttons ---------- */
body:not(.home) .wp-site-blocks > :not(header):not(footer) .wp-block-button__link:not(.kz-x){font-size:1rem !important;}

/* ---------- Fußzeile (wie Startseite: „kz-footer“) ---------- */
footer .wp-block-navigation,
footer .wp-block-navigation a,
footer p{font-size:var(--kz-fs-footer) !important;letter-spacing:.02em;}

/* ---------- Mobiles Menü (wie Startseite: „kz-burger-style“) ---------- */
@media (max-width:1023px){
  header .is-menu-open .wp-block-navigation-item__content{font-size:1.3rem !important;font-weight:500 !important;}
  header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:1rem !important;font-weight:400 !important;}
}


/* ==========================================================================
   Einheitliche linke Kante auf allen Seiten
   Maß: Menüpunkt „Start“ = max(Seitenrand, (Fensterbreite − 1340 px) / 2)
   Seitenrand (WordPress): 30 px mobil … 50 px Desktop
   ========================================================================== */
body{--kz-kante:max(var(--wp--style--root--padding-left, 50px), calc((100vw - 1340px) / 2));}

/* Titelbilder mit Überschrift (Unterseiten hatten hier ~22 px Standardabstand) */
html body .wp-block-cover:has(h1){padding-left:0 !important;padding-right:0 !important;}
html body .wp-block-cover:has(h1) .wp-block-cover__inner-container{
  max-width:none !important;width:100%;margin-left:0 !important;margin-right:0 !important;
  padding-left:var(--kz-kante) !important;padding-right:var(--kz-kante) !important;box-sizing:border-box;}
html body .wp-block-cover:has(h1) .wp-block-cover__inner-container > *{max-width:none !important;margin-left:0 !important;}

/* Startseite, Projekt-Zickzack: Text auf der linken Seite an die Kante (statt 64 px eingerückt) */
html body .kz-rev .kz-text{padding-left:calc(var(--kz-kante) - max(0px, (100vw - 1340px) / 2)) !important;}
@media (max-width:782px){
  html body .kz-row .kz-text,
  html body .kz-rev .kz-text{padding-left:var(--wp--style--root--padding-left, 30px) !important;padding-right:var(--wp--style--root--padding-right, 30px) !important;}
}

/* ---------- Klappmenü (☰) bis 1023 px auf allen Seiten, wie Startseite („kz-hero“) ---------- */
@media (max-width:1023px){
 header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex!important}
 header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none!important}
 header .wp-block-navigation__responsive-container.is-menu-open{display:flex!important;position:fixed;inset:0;z-index:100000;background:#641521!important;color:#fff!important;padding:clamp(1rem,4vw,2rem);overflow:auto}
 header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{flex-direction:column!important;align-items:flex-start!important;gap:1.2rem!important;font-size:1.4rem}
 header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{position:static!important;opacity:1!important;visibility:visible!important;width:auto!important;height:auto!important;background:transparent!important;border:0!important;padding:.4rem 0 0 1rem!important;font-size:1.05rem!important}
 header .wp-block-navigation__responsive-container.is-menu-open a{color:#fff!important}
 header .wp-block-navigation__responsive-container-close{display:flex!important}
}

/* ==========================================================================
   Graue Balken (wie Startseite: „kz-leisten“, „kz-leiste-hoehe“) und Footer (wie Startseite: „kz-footer“)
   ========================================================================== */
.wp-block-button__link.has-accent-6-background-color{padding:.5rem 1.25rem !important;font-size:1rem !important;}
.kz-leiste{background-color:#474747 !important;height:max(48px,calc(100vw * 37 / 1007)) !important;min-height:0 !important;display:flex !important;align-items:center;box-sizing:border-box;overflow:hidden;}
.kz-leiste>*{width:100%;margin-top:0 !important;margin-bottom:0 !important;}
.kz-leiste .wp-block-columns,.kz-leiste .is-layout-flex{flex-wrap:nowrap !important;align-items:center !important;margin:0 !important;gap:1rem !important;}
.kz-leiste .wp-block-column{flex-basis:auto !important;flex-grow:1;}
.kz-leiste .wp-block-column:last-child{flex-grow:0;}
.kz-leiste h2,.kz-leiste h3{padding-top:0 !important;padding-bottom:0 !important;margin:0 !important;line-height:1.1 !important;}
html body .wp-site-blocks .kz-leiste h2.wp-block-heading{font-size:clamp(0.984rem, 0.984rem + ((1vw - 0.2rem) * 0.809), 1.5rem) !important;font-weight:400 !important;color:#fff !important;}
.kz-leiste .wp-block-buttons{justify-content:flex-end;}
.kz-leiste .wp-block-column:first-child .wp-block-buttons{justify-content:flex-start !important;}
.kz-leiste .wp-block-button__link{padding:.35rem 1rem !important;font-size:.9rem !important;white-space:nowrap;}
@media (max-width:600px){.kz-leiste .wp-block-button__link{font-size:.8rem !important;padding:.3rem .8rem !important}html body .wp-site-blocks .kz-leiste h2.wp-block-heading{font-size:1.05rem !important}}

footer .wp-block-group.has-background{background-color:#474747 !important;padding-top:1.4rem !important;padding-bottom:1.4rem !important;}
footer .kz-footer-logo{display:block;width:max-content;margin:0 auto .7rem !important;}
footer .kz-footer-logo img{display:block;height:auto;width:clamp(150px,14vw,200px);}
