/* =====================================================================
   Kompetenzwerkstatt – Komponenten-Layer
   Twenty-Twenty-Five Child-Theme · style.css (oder ueber wp_enqueue_style)
   ---------------------------------------------------------------------
   Aufbau:
     A) Token-Layer  – portables :root-Set, kompatibel zum WP-Preset-Schema
     B) Basis        – Typo-Skala, Fokus, reduced-motion
     C) Gutenberg    – Styles ueber Core-Block-Selektoren
     D) BEM/Utilities – wiederkehrende Muster; im Editor als "Zusaetzliche
                        CSS-Klasse(n)" (className) an Bloecke haengen.
   Konvention: eine Bereichsfarbe pro Seite. Bereich am <body> oder am
   aeussersten Gruppen-Block per Modifier setzen (z.B. .kw-area--tools).
   Kein !important; Spezifitaet bewusst niedrig gehalten.
   ===================================================================== */

/* ============ A) TOKEN-LAYER =========================================
   Spiegelt theme.json. Falls theme.json geladen ist, existieren die
   --wp--preset--* Variablen bereits; dieser Block dient als portabler
   Fallback und definiert zusaetzliche Radius-/Shadow-/Spacing-Tokens. */
:root {
  /* Basis-Blau */
  --wp--preset--color--kw-navy:  #0E5486;
  --wp--preset--color--kw-mid:   #5E96C4;
  --wp--preset--color--kw-light: #D3E4F1;
  --wp--preset--color--kw-deep:  #0A3A5C;

  /* Bereichsfarben (fill / tint / text) */
  --wp--preset--color--kw-module:        #0E5486;
  --wp--preset--color--kw-module-tint:   #E1EBF3;
  --wp--preset--color--kw-tools:         #E86B43;
  --wp--preset--color--kw-tools-tint:    #FFF4CC;
  --wp--preset--color--kw-tools-text:    #7A6200;
  --wp--preset--color--kw-berufe:        #08918B;
  --wp--preset--color--kw-berufe-tint:   #DBF0EE;
  --wp--preset--color--kw-berufe-text:   #076E6A;
  --wp--preset--color--kw-mediathek:     #B13855;
  --wp--preset--color--kw-mediathek-tint:#F5E0E5;
  --wp--preset--color--kw-mediathek-text:#8E2A43;

  /* Neutrale */
  --wp--preset--color--kw-text:      #1A2A38;
  --wp--preset--color--kw-text-soft: #566573;
  --wp--preset--color--kw-border:    #E2E8EE;
  --wp--preset--color--kw-surface:   #F5F8FB;
  --wp--preset--color--kw-white:     #FFFFFF;

  /* Fonts */
  --wp--preset--font-family--kw-serif: "Source Serif 4", Georgia, serif;
  --wp--preset--font-family--kw-sans:  "Source Sans 3", system-ui, sans-serif;

  /* Nicht-WP-Tokens */
  --kw-radius-control: 8px;
  --kw-radius-card:    12px;
  --kw-shadow-1: 0 1px 2px rgba(14,84,134,0.06);
  --kw-shadow-2: 0 4px 16px rgba(14,84,134,0.08);
  --kw-shadow-3: 0 12px 32px rgba(14,84,134,0.10);
  --kw-band-pad: clamp(48px, 6vw, 80px);

  /* Aktive Bereichsfarbe – Default: Module/Blau. Per .kw-area--* umschalten. */
  --kw-area:      var(--wp--preset--color--kw-module);
  --kw-area-tint: var(--wp--preset--color--kw-module-tint);
  --kw-area-text: var(--wp--preset--color--kw-navy);
}

/* Bereichs-Umschalter: an <body> oder aeussersten .wp-block-group haengen */
.kw-area--module    { --kw-area: var(--wp--preset--color--kw-module);    --kw-area-tint: var(--wp--preset--color--kw-module-tint);    --kw-area-text: var(--wp--preset--color--kw-navy); }
.kw-area--tools     { --kw-area: var(--wp--preset--color--kw-tools);     --kw-area-tint: var(--wp--preset--color--kw-tools-tint);     --kw-area-text: var(--wp--preset--color--kw-tools-text); }
.kw-area--berufe    { --kw-area: var(--wp--preset--color--kw-berufe);    --kw-area-tint: var(--wp--preset--color--kw-berufe-tint);    --kw-area-text: var(--wp--preset--color--kw-berufe-text); }
.kw-area--mediathek { --kw-area: var(--wp--preset--color--kw-mediathek); --kw-area-tint: var(--wp--preset--color--kw-mediathek-tint); --kw-area-text: var(--wp--preset--color--kw-mediathek-text); }

/* ============ B) BASIS =============================================== */
body {
  font-family: var(--wp--preset--font-family--kw-sans);
  color: var(--wp--preset--color--kw-text);
  font-size: 18px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--wp--preset--font-family--kw-serif); font-weight: 600; }
h1 { font-size: 44px; line-height: 1.15; }
h2 { font-size: 32px; line-height: 1.2; }
h3 { font-size: 24px; line-height: 1.3; }
h4 { font-size: 20px; line-height: 1.4; }
p  { max-width: 70ch; }  /* ~65-75 Zeichen Zeilenlaenge im Fliesstext */

/* Sichtbarer Fokus – Kreis-/Bogen-Motiv als Fokus-Ring */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 3px solid var(--wp--preset--color--kw-light);
  outline-offset: 2px;
  border-radius: var(--kw-radius-control);
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ============ C) GUTENBERG-BLOCK-SELEKTOREN ==========================
   Diese Regeln greifen auf Core-Block-Markup – kein eigenes className noetig. */

/* Section-Rhythmus: Group mit Hintergrund = Band. Grosszuegiges Padding. */
.wp-block-group.has-background { padding-block: var(--kw-band-pad); }

/* Post-Titel */
.wp-block-post-title { font-family: var(--wp--preset--font-family--kw-serif); font-weight: 600; }

/* Buttons */
.wp-block-button__link {
  font-weight: 600;
  border-radius: var(--kw-radius-control);
  padding: 13px 24px;
  transition: background-color .15s ease, color .15s ease;
}
/* Primaer (Fill-Style von Core) */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background-color: var(--wp--preset--color--kw-navy);
  color: var(--wp--preset--color--kw-white);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background-color: var(--wp--preset--color--kw-deep); }
/* Sekundaer (Outline-Style von Core) */
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 1.5px solid var(--wp--preset--color--kw-navy);
  color: var(--wp--preset--color--kw-navy);
  background: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--wp--preset--color--kw-module-tint);
}

/* Formularfelder (Core-Fields / Kontaktformular-Plugins mit Standard-Inputs) */
input[type="text"], input[type="email"], input[type="search"], select, textarea,
.wp-block-search__input {
  font-family: inherit;
  font-size: 16px;
  padding: 12px 14px;
  border: 1.5px solid var(--wp--preset--color--kw-border);
  border-radius: var(--kw-radius-control);
  background: var(--wp--preset--color--kw-white);
  color: var(--wp--preset--color--kw-text);
}

/* Navigation */
.wp-block-navigation { font-size: 15px; }
.wp-block-navigation a { color: var(--wp--preset--color--kw-text-soft); }
.wp-block-navigation .current-menu-item a,
.wp-block-navigation a:hover { color: var(--wp--preset--color--kw-navy); }
/* Untermenue (Module ▾) – helles Dropdown mit weicher Elevation */
.wp-block-navigation .wp-block-navigation__submenu-container {
  background: var(--wp--preset--color--kw-white);
  border: 1px solid var(--wp--preset--color--kw-border);
  border-radius: var(--kw-radius-card);
  box-shadow: var(--kw-shadow-3);
  padding: 8px;
  min-width: 260px;
}
.wp-block-navigation .wp-block-navigation__submenu-container a { border-radius: var(--kw-radius-control); }
.wp-block-navigation .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--kw-module-tint); }
/* Wortmarke im Header nicht unterstreichen */
.kw-brand, .kw-brand:hover { text-decoration: none; }

/* Cover – flach halten, keine harten Schatten; Teal fuer Berufe-Kacheln
   ueber .kw-area--berufe bzw. eigenen Cover-Overlay-Farben setzen. */
.wp-block-cover { border-radius: var(--kw-radius-card); overflow: hidden; }

/* ============ D) BEM / UTILITY-KLASSEN ===============================
   >>> Im Block-Editor als "Zusaetzliche CSS-Klasse(n)" (className) an den
       jeweiligen Block haengen. Kommentare nennen das Ziel-Markup. <<< */

/* Farbige/Tint-Baender  – an .wp-block-group */
.kw-band--tint  { background: var(--kw-area-tint); }
.kw-band--fill  { background: var(--kw-area); color: var(--wp--preset--color--kw-white); }
.kw-band--fill :where(h1,h2,h3,h4) { color: var(--wp--preset--color--kw-white); }

/* Section-Marker (kleiner Kreis + Kicker) – an .wp-block-group / Heading davor.
   Nutzt ::before als gefuellten Kreis in Bereichsfarbe. */
.kw-kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--wp--preset--color--kw-text-soft);
}
.kw-kicker::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--kw-area); }

/* Card – Basis  (an .wp-block-group / .wp-block-column) */
.kw-card {
  background: var(--wp--preset--color--kw-white);
  border: 1px solid var(--wp--preset--color--kw-border);
  border-radius: var(--kw-radius-card);
  box-shadow: var(--kw-shadow-1);
  overflow: hidden;
}
/* Card-Varianten */
.kw-card--tool      { border-top: 3px solid var(--wp--preset--color--kw-tools); }
.kw-card--mediathek { border-top: 3px solid var(--wp--preset--color--kw-mediathek); }
.kw-card--dark {
  background: var(--wp--preset--color--kw-navy);
  color: var(--wp--preset--color--kw-light);
  border-color: transparent;
  box-shadow: var(--kw-shadow-2);
}
.kw-card--dark :where(h1,h2,h3,h4) { color: var(--wp--preset--color--kw-white); }
/* Ghost-Card: transluzente Kachel fuer dunkle Baender (kw-band--fill) */
.kw-card--ghost { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-radius: var(--kw-radius-card); padding: 24px; color: var(--wp--preset--color--kw-light); }
.kw-card--ghost :where(h1,h2,h3,h4) { color: var(--wp--preset--color--kw-white); }

/* Monogramm-/Code-Card: grosses Kuerzel-Feld (an .wp-block-cover oder Group) */
.kw-monogram {
  display: flex; align-items: center; justify-content: center;
  min-height: 84px; background: var(--kw-area-tint);
  font-family: var(--wp--preset--font-family--kw-serif);
  font-weight: 600; font-size: 36px; color: var(--kw-area-text);
}

/* Badge / Label (an Inline-Span oder .wp-block-group) */
.kw-badge {
  display: inline-block; font-size: 13px; font-weight: 600;
  padding: 5px 12px; border-radius: 999px;
  background: var(--kw-area-tint); color: var(--kw-area-text);
}
.kw-badge--module    { background: var(--wp--preset--color--kw-module-tint);    color: var(--wp--preset--color--kw-navy); }
.kw-badge--tools     { background: var(--wp--preset--color--kw-tools-tint);     color: var(--wp--preset--color--kw-tools-text); }
.kw-badge--berufe    { background: var(--wp--preset--color--kw-berufe-tint);    color: var(--wp--preset--color--kw-berufe-text); }
.kw-badge--mediathek { background: var(--wp--preset--color--kw-mediathek-tint); color: var(--wp--preset--color--kw-mediathek-text); }

/* Breadcrumb (an .wp-block-group mit Inline-Links) */
.kw-breadcrumb { font-size: 14px; color: var(--wp--preset--color--kw-text-soft); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.kw-breadcrumb a { color: var(--wp--preset--color--kw-text-soft); }
.kw-breadcrumb [aria-current="page"] { color: var(--wp--preset--color--kw-text); }

/* In-Page-Tab-/Anchor-Navigation (an .wp-block-navigation / eigene Group) */
.kw-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--wp--preset--color--kw-border); overflow-x: auto; }
.kw-tabs a { padding: 16px; font-size: 14px; font-weight: 600; color: var(--wp--preset--color--kw-text-soft); border-bottom: 3px solid transparent; white-space: nowrap; }
.kw-tabs a[aria-current="true"], .kw-tabs a.is-active { color: var(--kw-area); border-bottom-color: var(--kw-area); }

/* Download-Band (an .wp-block-group, Flex-Row: Thumb + Text + Button) */
.kw-download { display: flex; align-items: center; gap: 18px; background: var(--wp--preset--color--kw-white); border: 1px solid var(--wp--preset--color--kw-border); border-radius: var(--kw-radius-card); padding: 18px 22px; }

/* Team-Avatar (kreisfoermige Portraits, an Image-Block) */
.kw-avatar img { border-radius: 50%; border: 3px solid var(--wp--preset--color--kw-white); box-shadow: 0 0 0 1px var(--wp--preset--color--kw-border); }
/* Avatar-Platzhalter mit Initialen, bis echte Portraits vorliegen */
.kw-avatar-ph { width: 80px; height: 80px; border-radius: 50%; background: var(--wp--preset--color--kw-light); border: 3px solid var(--wp--preset--color--kw-white); box-shadow: 0 0 0 1px var(--wp--preset--color--kw-border); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 20px; color: var(--wp--preset--color--kw-navy); }

/* Partner-Logo-Strip (an .wp-block-group, ausgegraut/monochrom) */
.kw-partners { display: flex; align-items: center; gap: 40px; flex-wrap: wrap; }
.kw-partners img { max-height: 40px; width: auto; filter: grayscale(1); opacity: .7; }
/* Logo-Platzhalter-Chip, bis echte Logos vorliegen */
.kw-logo-ph { height: 40px; padding: 0 28px; display: inline-flex; align-items: center; background: var(--wp--preset--color--kw-surface); border-radius: var(--kw-radius-control); color: #8A98A6; font-size: 14px; }

/* Fokus-Ring als Kreis-Motiv fuer runde Avatare/Icons */
.kw-focusring:focus-visible { outline: 3px solid var(--kw-area); outline-offset: 3px; border-radius: 50%; }

/* Footer (Navy) – an .wp-block-group des Footer-Templates */
.kw-footer { background: var(--wp--preset--color--kw-deep); color: var(--wp--preset--color--kw-light); }
.kw-footer a { color: #C3D7E8; }

/* ============ D2) SIGNATUR-MOTIVE & WIEDERKEHRENDE MUSTER ============
   Bilden die Kern-Bausteine der KW-Seiten 1:1 als Klassen ab, damit im
   Editor kein Inline-Style noetig ist. Ziel-Markup je Regel im Kommentar. */

/* Kreis-/Bogen-Signet: konzentrischer Ring mit gefuelltem Kern.
   Als leerer <span class="kw-ringmark"> (Custom-HTML) ODER an eine Group.
   Groesse via --kw-ring (Default 44px). Faerbt in aktiver Bereichsfarbe. */
.kw-ringmark {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--kw-ring, 44px); height: var(--kw-ring, 44px);
  border-radius: 50%; border: 2px solid var(--kw-area); flex-shrink: 0;
}
.kw-ringmark::before {
  content: ""; width: 42%; height: 42%; border-radius: 50%; background: var(--kw-area);
}
.kw-ringmark--sm { --kw-ring: 32px; }
.kw-ringmark--lg { --kw-ring: 56px; }
/* auf dunklem Grund (kw-band--fill / kw-card--dark) weiss zeichnen */
.kw-band--fill .kw-ringmark, .kw-card--dark .kw-ringmark { border-color: #fff; }
.kw-band--fill .kw-ringmark::before, .kw-card--dark .kw-ringmark::before { background: #fff; }

/* Wort-/Bildmarke im Header: Doppelring + Wortmarke (an .wp-block-group) */
.kw-brand { display: inline-flex; align-items: center; gap: 12px; }
.kw-brand__mark { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--wp--preset--color--kw-navy); }
.kw-brand__mark::before { content: ""; width: 15px; height: 15px; border-radius: 50%; border: 2px solid var(--wp--preset--color--kw-navy); }
.kw-brand__name { font-family: var(--wp--preset--font-family--kw-serif); font-weight: 600; letter-spacing: 0.04em; font-size: 16px; color: var(--wp--preset--color--kw-navy); margin: 0; }
.kw-footer .kw-brand__mark, .kw-footer .kw-brand__mark::before { border-color: #fff; }
.kw-footer .kw-brand__name { color: #fff; }

/* Abschnitts-Kopf: kleiner Punkt + Serifen-Ueberschrift (an Heading-Group).
   Der Punkt liegt in Bereichsfarbe; nutzt ::before am Heading. */
.kw-sechead { display: flex; align-items: baseline; gap: 14px; }
.kw-sechead::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kw-area); transform: translateY(-4px); flex-shrink: 0; }

/* Leit-Frage: Serifen-Zitat mit linker Akzentkante (an .wp-block-group) */
.kw-lead-question { border-left: 3px solid var(--kw-area); padding: 6px 0 6px 20px; }
.kw-lead-question :where(p, h2, h3) { font-family: var(--wp--preset--font-family--kw-serif); font-size: 21px; line-height: 1.35; margin: 0; color: var(--wp--preset--color--kw-text); }

/* "Auf einen Blick"-Faktenliste: Punkt-Bullets (an <ul class="kw-facts">) */
.kw-facts { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.kw-facts > li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; }
.kw-facts > li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--kw-area); margin-top: 8px; flex-shrink: 0; }

/* Nummerierte Schritt-Card: Kreis-Ziffer + Titel (an .wp-block-column/-group).
   Ziffer als erstes Kind <span class="kw-stepnum">1</span>. */
.kw-step { background: var(--wp--preset--color--kw-white); border: 1px solid var(--wp--preset--color--kw-border); border-radius: var(--kw-radius-card); padding: 24px; }
.kw-stepnum {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  border: 2px solid var(--kw-area); color: var(--kw-area);
  font-family: var(--wp--preset--font-family--kw-serif); font-weight: 600; margin-bottom: 14px;
}
.kw-stepnum--fill { background: var(--kw-area); color: #fff; border-color: var(--kw-area); }

/* Lernpfad-Reihe: Karten mit Pfeil-Konnektoren (an .wp-block-group, Flex).
   Zwischen die Karten <span class="kw-path__arrow">→</span> setzen. */
.kw-path { display: flex; align-items: center; gap: 0; flex-wrap: wrap; }
.kw-path__arrow { color: var(--wp--preset--color--kw-mid); font-size: 22px; padding: 0 10px; }

/* Desktop-Filterleiste: Suche + Selects + Button in einer Zeile (an .wp-block-group).
   Sticky unter dem Header; auf Mobil stapelt sie (siehe E). */
.kw-filterbar { display: grid; grid-template-columns: 1fr 200px 200px auto; gap: 12px; align-items: end; }
.kw-filterbar label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--wp--preset--color--kw-text-soft); }

/* Berufe-/Bereichs-Kachel: farbige Flaeche, Titel unten, Overlay + Eck-Ring
   (an <a class="kw-tile"> oder .wp-block-cover). Farbe per Inline-Background
   oder .has-*-background-color; Titel als letztes Kind. */
.kw-tile { position: relative; display: block; border-radius: var(--kw-radius-card); overflow: hidden; height: 190px; background: var(--kw-area); text-decoration: none; }
.kw-tile > :last-child { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px; background: linear-gradient(transparent, rgba(0,0,0,0.42)); color: #fff; font-family: var(--wp--preset--font-family--kw-serif); font-weight: 600; font-size: 17px; line-height: 1.25; }
.kw-tile::after { content: ""; position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.6); }

/* Bild-/Foto-Platzhalter (Schraffur) bis echte Medien vorliegen (an Group/Cover) */
.kw-media-ph { background: repeating-linear-gradient(135deg, var(--wp--preset--color--kw-surface) 0 10px, #EEF3F8 10px 20px); display: flex; align-items: center; justify-content: center; color: #8A98A6; font-size: 12px; min-height: 150px; }

/* Sticky-Header (an das Header-Template-Part / aeusserste Group) */
/* .kw-header--sticky { position: sticky; top: 0; z-index: 99999; background: rgba(255,255,255,0.94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--wp--preset--color--kw-border); } */

/* Dunkle Akzent-Box im hellen Abschnitt (Praxisbeispiel) – an .wp-block-group.
   Identisch nutzbar via .kw-band--fill, hier als abgerundete Insel. */
.kw-callout { background: var(--wp--preset--color--kw-navy); color: #fff; border-radius: var(--kw-radius-card); padding: clamp(28px, 4vw, 44px); }
.kw-callout :where(h1,h2,h3,h4) { color: #fff; }
.kw-callout p { color: var(--wp--preset--color--kw-light); }

/* ============ F) PATTERN-UTILITIES (klassenbasiert, editor-sicher) ==
   Damit Patterns OHNE handgeschriebene Inline-Style-Objekte auskommen
   (die im Block-Editor "Block-Wiederherstellung" ausloesen koennen).
   Patterns setzen nur className + Farb-/Layout-Presets. */

/* Abschnitts-Rhythmus */
.kw-sec    { padding: clamp(48px, 6vw, 72px) 32px; }
.kw-sec--lg { padding-block: clamp(64px, 8vw, 96px); }
.kw-sec--sm { padding-block: clamp(40px, 5vw, 56px); }

/* Typo-Helfer (Basis-Skala kommt aus Abschnitt B) */
.kw-display  { font-size: clamp(34px, 5vw, 52px); line-height: 1.12; }
.kw-lead     { font-size: 20px; line-height: 1.6; }
.kw-lead--xl { font-size: 21px; line-height: 1.6; }
.kw-meta     { font-size: 14px; }
.kw-eyebrow  { font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; }

/* Ring-Signet als reines CSS-Icon einer Karte – KEIN Extra-Element noetig.
   An die Karte selbst haengen: className "kw-card kw-card--ring". */
.kw-card--ring::before {
  content: ""; display: block; box-sizing: border-box;
  width: 44px; height: 44px; margin-bottom: 18px;
  border: 2px solid var(--kw-area); border-radius: 50%;
  background: radial-gradient(circle at center, var(--kw-area) 0 20%, transparent 21%);
}

.kw-card--ring-1::before {
  content: ""; display: block; box-sizing: border-box;
  width: 44px; height: 44px; margin-bottom: 18px;
  border: 2px solid var(--wp--preset--color--kw-tools); border-radius: 50%;
  background: radial-gradient(circle at center, var(--wp--preset--color--kw-tools) 0 20%, transparent 21%);
}

.kw-card--ring-2::before {
  content: ""; display: block; box-sizing: border-box;
  width: 44px; height: 44px; margin-bottom: 18px;
  border: 2px solid var(--wp--preset--color--kw-berufe); border-radius: 50%;
  background: radial-gradient(circle at center, var(--wp--preset--color--kw-berufe) 0 20%, transparent 21%);
}

.kw-card--ring-3::before {
  content: ""; display: block; box-sizing: border-box;
  width: 44px; height: 44px; margin-bottom: 18px;
  border: 2px solid var(--wp--preset--color--kw-mediathek); border-radius: 50%;
  background: radial-gradient(circle at center, var(--wp--preset--color--kw-mediathek) 0 20%, transparent 21%);
}

.kw-band--fill .kw-card--ring::before,
.kw-card--ghost.kw-card--ring::before {
  border-color: #fff;
  background: radial-gradient(circle at center, #fff 0 20%, transparent 21%);
}

.kw-band--fill-1 .kw-card--ring-1::before,
.kw-card--ghost-1.kw-card--ring-1::before {
  border-color: #b13855;
  background: radial-gradient(circle at center, #b13855 0 20%, transparent 21%);
}

.kw-band--fill-2 .kw-card--ring-2::before,
.kw-card--ghost-2.kw-card--ring-2::before {
  border-color: #E86B43;
  background: radial-gradient(circle at center, #E86B43 0 20%, transparent 21%);
}

.kw-band--fill-3 .kw-card--ring-3::before,
.kw-card--ghost-3.kw-card--ring-3::before {
  border-color: #08918b;
  background: radial-gradient(circle at center, #08918b 0 20%, transparent 21%);
}

/* Feinschliff der zu nativen Bloecken konvertierten Deko-Elemente */
.kw-stepnum  { margin-top: 0; }
.kw-monogram { margin: 0; }
.kw-badge    { margin: 0; }
.kw-avatar-ph { margin: 0 auto; }

/* Karten-Innenabstand (statt Inline-Padding im Pattern) */
.kw-cardbody     { padding: 24px; }
.kw-cardbody--sm { padding: 18px 20px; }

/* Datei-Thumbnail + Flex-Wachstum fuer das Download-Band */
.kw-filethumb { width: 52px; height: 64px; border-radius: 6px; flex: none; background: repeating-linear-gradient(135deg, var(--wp--preset--color--kw-surface) 0 8px, #EEF3F8 8px 16px); }
.kw-grow { flex: 1; }

/* ============ E) MOBILE / RESPONSIV =================================
   Twenty Twenty-Five bringt vieles ab Werk mit – hier nur die Ergaenzungen,
   die das KW-Verhalten sauber abbilden. Breakpoint ~782px (WP mobile).

   >>> NAVIGATION (Burger-Menue) <<<
   Der Core-Navigation-Block hat KEIN eigenes CSS noetig: im Editor am
   Navigation-Block "Overlay-Menue: Immer" (attribute overlayMenu="always")
   ODER "Mobil" setzen -> WP rendert Hamburger + Vollbild-Drawer selbst.
   Untermenue "Module ▾": als verschachtelte Navigation-Submenu-Elemente
   anlegen; auf Mobil klappt WP sie im Overlay als Accordion auf.
   Nur Feinschliff der Overlay-Farben: */
.wp-block-navigation__responsive-container.is-menu-open {
  background: var(--wp--preset--color--kw-white);
  color: var(--wp--preset--color--kw-text);
}
.wp-block-navigation__responsive-container.is-menu-open a { color: var(--wp--preset--color--kw-text); }
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item a { color: var(--wp--preset--color--kw-navy); }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  min-width: 44px; min-height: 44px;   /* Tap-Target */
}

@media (max-width: 781px) {
  /* Type-Skala auf Mobil leicht reduzieren */
  h1 { font-size: 30px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }
  body { font-size: 17px; }

  /* Baender: kompakteres vertikales Padding */
  .wp-block-group.has-background,
  .kw-band--tint, .kw-band--fill { padding-block: clamp(32px, 9vw, 44px); }

  /* Columns stapeln (Core stapelt bereits; hier volle Breite je Card sichern) */
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }

  /* Berufe-Kachel-Grid: 2 Spalten auf Mobil (statt 4).
     Als Grid-Group mit className .kw-tiles umsetzen. */
  .kw-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .kw-tile { height: 150px; }

  /* Desktop-Filterleiste stapelt zu einer Spalte */
  .kw-filterbar { grid-template-columns: 1fr; }

  /* Lernpfad vertikal: Pfeile nach unten drehen */
  .kw-path { flex-direction: column; align-items: stretch; }
  .kw-path__arrow { transform: rotate(90deg); padding: 6px 0; align-self: center; }

  /* Buttons volle Breite, komfortable Hoehe */
  .wp-block-button { width: 100%; }
  .wp-block-button__link { display: block; text-align: center; padding-block: 14px; }

  /* Mediathek-Filterleiste einklappbar: als <details class="kw-filter"> im
     Block-Editor (Custom-HTML-Block) oder via Interactivity API. Fallback-Styles: */
  .kw-filter > summary {
    list-style: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 16px; border-radius: var(--kw-radius-control);
    background: var(--kw-area-tint); color: var(--kw-area-text);
    font-weight: 600; min-height: 44px;
  }
  .kw-filter > summary::-webkit-details-marker { display: none; }
  .kw-filter[open] > summary { margin-bottom: 14px; }

  /* Sticky In-Page-Tabs horizontal scrollbar */
  .kw-tabs { -webkit-overflow-scrolling: touch; }

  /* Alle interaktiven Elemente: Mindest-Tap-Target 44px */
  .wp-block-button__link, .kw-tabs a, input, select, textarea, .wp-block-search__button { min-height: 44px; }
}

/* ============ G) FORMULARE (Contact Form 7) ==========================
   Einbindung: [contact-form-7 id="…" html_class="kw-form"]
   Voraussetzung: define('WPCF7_AUTOP', false); in der wp-config.php */

/* Kernkorrektur: Padding + Border zaehlen in die Feldbreite hinein. */
.kw-form, .kw-form *, .kw-form *::before, .kw-form *::after { box-sizing: border-box; }

.kw-form { display: flex; flex-direction: column; gap: 20px; max-width: 640px; }
/* p-Regel aus Abschnitt B (max-width:70ch) im Formular neutralisieren */
.kw-form p { max-width: none; margin: 0; }

/* CF7 kapselt jedes Feld in ein INLINE-<span>. Ohne diese Regel bezieht
   sich width:100% am Input auf eine shrink-to-fit-Box. */
.kw-form .wpcf7-form-control-wrap { display: block; width: 100%; }

.kw-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.kw-form__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kw-form__label { font-size: 14px; font-weight: 600; color: var(--wp--preset--color--kw-text); }
.kw-form__label abbr { color: var(--wp--preset--color--kw-mediathek); text-decoration: none; border: 0; }
.kw-form__hint { font-size: 13px; color: var(--wp--preset--color--kw-text-soft); }

.kw-form input[type="text"],
.kw-form input[type="email"],
.kw-form textarea { width: 100%; max-width: 100%; }
.kw-form textarea { min-height: 150px; resize: vertical; line-height: 1.6; }
.kw-form input:focus, .kw-form textarea:focus { border-color: var(--kw-area); }

/* Feldbezogene Fehlerhinweise */
.kw-form input.wpcf7-not-valid,
.kw-form textarea.wpcf7-not-valid { border-color: var(--wp--preset--color--kw-mediathek); }
.kw-form .wpcf7-not-valid-tip { display: block; margin-top: 5px; font-size: 13px; color: var(--wp--preset--color--kw-mediathek-text); }

/* Einwilligung – CF7 rendert span.wpcf7-list-item > label > input + span */
.kw-form__consent { display: flex; flex-direction: column; gap: 8px; }
.kw-form .wpcf7-list-item { margin: 0; }
.kw-form .wpcf7-list-item label { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.5; cursor: pointer; }
.kw-form input[type="checkbox"] { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--kw-area); }

/* Absende-Zeile inkl. CF7-Spinner */
.kw-form__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.kw-form input[type="submit"] {
  background-color: var(--wp--preset--color--kw-navy);
  color: var(--wp--preset--color--kw-white);
  border: none; border-radius: var(--kw-radius-control);
  padding: 13px 24px; font-family: inherit; font-size: 16px; font-weight: 600;
  cursor: pointer; transition: background-color .15s ease;
}
.kw-form input[type="submit"]:hover { background-color: var(--wp--preset--color--kw-deep); }
.kw-form .wpcf7-spinner { margin: 0; }

/* CF7-Statusmeldung im KW-Stil. Spezifitaet bewusst hoch genug, um die
   Plugin-Defaults zu schlagen – unabhaengig von der Enqueue-Reihenfolge. */
.wpcf7 form.kw-form .wpcf7-response-output {
  margin: 0; padding: 18px 22px; font-size: 16px;
  border: 0; border-left: 3px solid transparent;
  border-radius: var(--kw-radius-card);
}
.wpcf7 form.kw-form.sent .wpcf7-response-output {
  background: var(--wp--preset--color--kw-berufe-tint);
  color: var(--wp--preset--color--kw-berufe-text);
  border-left-color: var(--wp--preset--color--kw-berufe);
}
.wpcf7 form.kw-form.invalid .wpcf7-response-output,
.wpcf7 form.kw-form.unaccepted .wpcf7-response-output,
.wpcf7 form.kw-form.failed .wpcf7-response-output,
.wpcf7 form.kw-form.aborted .wpcf7-response-output {
  background: var(--wp--preset--color--kw-mediathek-tint);
  color: var(--wp--preset--color--kw-mediathek-text);
  border-left-color: var(--wp--preset--color--kw-mediathek);
}

@media (max-width: 781px) {
  .kw-form__row { grid-template-columns: 1fr; }
  .kw-form input[type="submit"] { width: 100%; }
}
