/* Der Seitengrund gehört der Vorlage. Elementor legt die Farbe seiner
   Website-Einstellungen als `.elementor-kit-<id>` an den Body; dieser
   Klassenselektor ist spezifischer als das `body {}` der theme.css und färbte
   den Grund sonst durchgehend in der Markenfarbe. Sichtbar wird das überall
   dort, wo eine Section bewusst keinen eigenen Hintergrund mitbringt —
   Seitenkopf, Zwischenräume des Akkordeons, Nahtbereiche.
   `body.ks-wordpress` (0,1,1), nicht `.ks-wordpress` (0,1,0): Die Kit-Regel
   steht im Inline-Block `elementor-frontend-inline-css` NACH dieser Datei und
   gewann bei gleicher Spezifität durch die Reihenfolge. Bis zum 09.09.2026,
   16:31 Uhr verdeckte das eine zweite, späte Einbindung der wordpress.css;
   mit deren Entfernung wurde der Grund wieder violett (gemessen 10.09.2026). */
body.ks-wordpress {background:var(--surface-page)}

/* Zeus-Base setzt als Preflight-Parität `:where(.zeus-section) :where(img, svg, video, canvas)
   {display:block}`. Die Vorlage kennt das nicht: Ihre Symbole sind Inline-SVGs im Textfluss
   (Pfeil hinter „Mehr erfahren“, Symbole in Pillen und Knöpfen). Gemessen 10.09.2026: Das
   Symbol brach in eine eigene Zeile, jede Kartenzeile wurde 14 px höher. `:where()` hält die
   Spezifität bei 0-1-0, damit jede Klassenregel der Vorlage (z. B. `.ks-iconbtn svg`) weiter gewinnt. */
.ks-wordpress :where(.zeus-section) :where(svg) {display:inline}

/* Zeus-Core setzt in zeus-base.css `:where(.zeus-section){line-height:1.5}` als
   Preflight-Parität. Die Vorlage vererbt an dieser Stelle 1.6 (--body-lh) vom
   Body — ohne Rückstellung rendern ALLE geerbten Zeilenhöhen mit 93,75 % der
   Vorlage (gemessen 09.09.2026: Kopfzeile 19,5 statt 20,8 px, Fließtext 24
   statt 25,6 px; 106 Befunde auf 19 Seiten im Soll-Ist-Abgleich). `:where()`
   hat Spezifität 0, eine einfache Klassenregel genügt. */
.ks-wordpress .zeus-section {line-height:var(--body-lh)}

/* Die BOKU-Abstände gehören den Sections, nicht dem Wirt-Theme. */
.ks-wordpress .site-header,.ks-wordpress .page-header {display:none}
.ks-wordpress .page-content,.ks-wordpress #content {max-width:none;padding:0;margin:0}
.ks-wordpress .elementor {--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.ks-wordpress .e-con {--container-max-width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
.ks-wordpress .e-con-inner {max-width:none}
/* Zeus-Core setzt über `data-zeus-container` seine Standardbreite (1568 px) auf
   `.zeus-section-inner` — spezifischer als `.ks-container` (1250 px) der Vorlage, die den
   Inhaltscontainer bemisst. Bei 1440 px Viewport lief der Container dadurch randlos
   (gemessen 10.09.2026: Glossar, Presse, Impressum, Datenschutz, Blog, Archiv, RSS).
   Die Vorlage behält die Bildhoheit; redaktionelle Breiten laufen über die
   `ks-width-*`-Klassen weiter unten, die diese Regel durch die spätere Reihenfolge
   bewusst überstimmen. Die Kopfzeile bleibt randlos (theme.css: `.ks-header .ks-container`). */
[data-zeus-container] > .ks-container.zeus-section-inner {max-width:var(--container-max)}
.ks-header[data-zeus-container] > .ks-container.zeus-section-inner {max-width:none}
.ks-widget-section {position:relative;width:100%;margin:0!important;isolation:auto}
.ks-widget-section > .zeus-section {width:100%}
.ks-radius-none > .zeus-section {border-radius:0!important}
.ks-radius-top > .zeus-section {border-radius:var(--radius-xl) var(--radius-xl) 0 0!important}
.ks-radius-bottom > .zeus-section {border-radius:0 0 var(--radius-xl) var(--radius-xl)!important}
.ks-radius-both > .zeus-section {border-radius:var(--radius-xl)!important}
.ks-overlap-none > .zeus-section {margin-block:0!important}
.ks-overlap-top {margin-top:calc(-1 * var(--radius-xl))!important}
.ks-overlap-bottom {margin-bottom:calc(-1 * var(--radius-xl))!important}
.ks-overlap-top.ks-front-self,.ks-overlap-bottom.ks-front-self {z-index:2}
.ks-overlap-top.ks-front-neighbor,.ks-overlap-bottom.ks-front-neighbor {z-index:0}
.ks-width-boxed-1500 :is(.zeus-section > .ks-container,.ks-acc__trigger,.ks-acc__inner) {max-width:1500px}
.ks-width-boxed-1200 :is(.zeus-section > .ks-container,.ks-acc__trigger,.ks-acc__inner) {max-width:1200px}
.ks-width-narrow-960 :is(.zeus-section > .ks-container,.ks-acc__trigger,.ks-acc__inner) {max-width:960px}
.ks-width-full :is(.zeus-section > .ks-container,.ks-acc__trigger,.ks-acc__inner) {max-width:none}
.ks-seam-to-white .zeus-section {--seam-to:#fff}
.ks-seam-to-gray .zeus-section {--seam-to:var(--ks-grey-surface)}
.ks-seam-to-violet .zeus-section {--seam-to:var(--ks-violet)}
.ks-seam-to-black .zeus-section {--seam-to:#000}
.ks-radius-none .zeus-section,.ks-radius-top .zeus-section {box-shadow:none}
:is(.ks-radius-none,.ks-radius-top,.ks-radius-bottom,.ks-radius-both) .ks-accordion > .ks-acc {border-radius:0;box-shadow:none}
:is(.ks-radius-top,.ks-radius-both) .ks-accordion > .ks-acc:first-child {border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}
:is(.ks-radius-bottom,.ks-radius-both) .ks-accordion > .ks-acc:last-child {border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);box-shadow:0 var(--radius-xl) 0 var(--seam-to,transparent)}
.ks-seam-to-white .ks-acc:last-child {--seam-to:#fff}
.ks-seam-to-gray .ks-acc:last-child {--seam-to:var(--ks-grey-surface)}
.ks-seam-to-violet .ks-acc:last-child {--seam-to:var(--ks-violet)}
.ks-seam-to-black .ks-acc:last-child {--seam-to:#000}

/* Explizite redaktionelle Breiten schlagen die anders bemessenen Core-Presets. */
.ks-widget-section.ks-width-boxed-1500 .zeus-section-inner {max-width:1500px}
.ks-widget-section.ks-width-boxed-1200 .zeus-section-inner {max-width:1200px}
.ks-widget-section.ks-width-narrow-960 .zeus-section-inner {max-width:960px}
.ks-widget-section.ks-width-full .zeus-section-inner {max-width:none}
.ks-widget-section[data-zeus-bg="gradient"] > .zeus-section {
    background-image:var(--zeus-section-bg-image);
    background-color:transparent;
}
.ks-menu-branch {position:relative}
.ks-menu-children {display:none;position:absolute;z-index:5;min-width:240px;background:white;padding:12px;border-radius:16px;box-shadow:0 8px 24px #0002}
.ks-menu-branch:hover>.ks-menu-children,.ks-menu-branch:focus-within>.ks-menu-children {display:grid}
.ks-mobilenav .ks-menu-children {display:grid;position:static;box-shadow:none;padding-left:24px}

/* WPForms übernimmt das bestehende Kontaktlayout und behält seine Validierung. */
.ks-contact-panel { padding:var(--space-6); gap:var(--space-3); }
.ks-contact-panel > .ks-field__hint { color:rgba(255,255,255,.82); margin:0; }
.ks-contact-panel .wpforms-container { margin:0; width:100%; }
.ks-contact-panel .wpforms-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-3) var(--space-6); }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-container { display:contents; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field { padding:0; margin:0; min-width:0; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-select { grid-column:1; grid-row:1; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-name { grid-column:1; grid-row:2; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-email { grid-column:1; grid-row:3 / 5; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-textarea { grid-column:2; grid-row:1 / 4; display:flex; flex-direction:column; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-checkbox { grid-column:2; grid-row:4; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-submit-container { grid-column:2; grid-row:5; padding:0; margin:0; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-name legend,
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-email legend,
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-checkbox legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-row { max-width:none; margin:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-2); }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-email .wpforms-field-row { grid-template-columns:1fr; gap:var(--space-3); }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-row-block { width:100%; margin:0; float:none; display:flex; flex-direction:column; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-label,
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-sublabel { color:#fff; font:var(--fw-medium) 14px var(--font-sans); margin:0 0 var(--space-1); }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-sublabel { order:-1; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-sublabel::after { content:' *'; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-required-label { color:#fff; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form input[type=text],
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form input[type=email],
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form select,
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form textarea { font:16px/1.6 var(--font-sans); color:var(--text-strong); background:#fff; border:var(--border-width) solid transparent; border-radius:var(--radius-md); padding:13px 16px; width:100%; max-width:none; height:auto; box-sizing:border-box; box-shadow:none; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form textarea { flex:1; min-height:160px; resize:vertical; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form :is(input,select,textarea):focus { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.45); outline:none; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-checkbox li { display:flex; gap:var(--space-1); align-items:flex-start; margin:0; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-checkbox input { width:24px; height:24px; flex:none; accent-color:#fff; margin:2px 0 0; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-label-inline { color:#fff; font:16px/var(--body-lh) var(--font-sans); }
/* Langer Einwilligungstext bleibt neben dem Kästchen statt darunter (der Zeilenumbruch des flex-wrap-Elternteils zog die ganze Beschriftung in die nächste Zeile). */
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-checkbox li > .wpforms-field-label-inline { flex:1 1 0; min-width:0; }
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-checkbox a { color:#fff; text-decoration:underline; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form button.wpforms-submit { font:var(--fw-semibold) 16px/1 var(--font-sans); border-radius:var(--radius-pill); border:var(--border-width-strong) solid transparent; padding:14px 26px; background:#fff; color:var(--ks-violet); height:auto; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form button.wpforms-submit:hover { background:rgba(255,255,255,.88); }
/* Statusmeldungen im CD (Chris, 11.09.2026): Meldungen weiß auf Violett mit Signalpunkt in Carnation. Ein fehlerhaftes
   Feld behält seinen dunklen Text und bekommt einen Rahmen in Carnation — die frühere Regel färbte auch das Feld selbst
   weiß (weiß auf weiß). Die Meldung zur Einwilligung steht unter deren Text, die Sammelmeldung als Karte unter dem Formular. */
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form :is(em,label).wpforms-error { display:flex; align-items:flex-start; gap:8px; width:100%; margin:var(--space-1) 0 0; padding:0; color:#fff; font:var(--fw-semibold) 13px/1.4 var(--font-sans); }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form :is(em,label).wpforms-error::before { content:""; flex:none; width:8px; height:8px; margin-top:5px; border-radius:50%; background:var(--ks-carnation); box-shadow:0 0 0 2px #fff; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form :is(input,select,textarea).wpforms-error { color:var(--text-strong); border-color:var(--ks-carnation); box-shadow:0 0 0 1px var(--ks-carnation); }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form input[type=checkbox].wpforms-error { box-shadow:none; outline:2px solid var(--ks-carnation); outline-offset:2px; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-checkbox li { flex-wrap:wrap; }
.ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form .wpforms-field-checkbox :is(em,label).wpforms-error { flex-basis:100%; padding-left:calc(24px + var(--space-1)); }
.ks-contact-panel div.wpforms-container.wpforms-container-full :is(.wpforms-error-container,.wpforms-error-noscript) { grid-column:1 / -1; margin:0; padding:var(--space-2) var(--space-3); background:#fff; color:var(--text-strong); border:0; border-left:4px solid var(--ks-carnation); border-radius:var(--radius-md); font:var(--fw-medium) 15px/1.5 var(--font-sans); }
.ks-contact-panel div.wpforms-container.wpforms-container-full :is(.wpforms-error-container,.wpforms-error-noscript) p { margin:0; color:inherit; }
.ks-contact-panel .wpforms-confirmation-container-full { background:#fff; color:var(--text-strong); border:0; border-left:4px solid var(--ks-success); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); font:var(--fw-medium) 16px/1.5 var(--font-sans); }
.ks-contact-panel .wpforms-confirmation-container-full p { margin:0; }
/* RSS-Seite (Chris, 11.09.2026 — Abweichung von der Vorlage): Adressleiste in voller Breite unter Text und Zeichen. */
@media (min-width:981px) { .ks-rss-grid { grid-template-areas:"text glyphe" "feld feld"; } }
@media(max-width:980px) {
 .ks-contact-panel { padding:var(--space-4); }
 .ks-contact-panel .wpforms-form { display:flex; flex-direction:column; gap:var(--space-3); }
 .ks-contact-panel div.wpforms-container.wpforms-container-full form.wpforms-form textarea { min-height:200px; }
}
@media(max-width:760px) {
 .ks-contact-panel { padding:var(--space-3); }
 .ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-row { grid-template-columns:1fr; gap:var(--space-3); }
}

.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-row::before,
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field-row::after { content:none; display:none; }
.ks-search-facets {display:flex;flex-direction:column;gap:var(--space-2);}
.ks-search-facets .ks-searchaside__label {margin-top:var(--space-3);}
.ks-contact-panel .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block { width:100%; margin:0; padding:0; }

/* Registrierungsformular (E241, Chris 23.09.2026 „sieht scheiße aus“): Der Zweispalter des Kontaktformulars pinnt Felder nach
   Typ auf feste Zeilen — bei 19 Feldern stapelten sich drei Auswahlfelder und drei Einwilligungen übereinander. Hier fließen die
   Felder in Formularreihenfolge durch zwei Spalten; Vollbreite nur für Nutzertyp (1), E-Mail (15), Einwilligungen und Absenden.
   So bilden sich in allen drei Zuständen Paare ohne Lücke: ohne Wahl Institut|Abteilung, Straße|PLZ, Ort|Land, Telefon|Fax;
   Institutsmitarbeiter Verband|Institut, Filiale|Abteilung; Nicht-Institutsmitarbeiter Institut|Branche, Abteilung|Straße, PLZ|Ort, Land|Telefon, Fax allein (volle Breite). Feldnummern aus Registration::felder(). */
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form { gap:var(--space-3) var(--space-4); } /* kein align-items:start — unter 980 px ist das Formular eine Flex-Spalte, dort ließ es die Felder auf Inhaltsbreite schrumpfen */
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form .wpforms-field { grid-column:auto; grid-row:auto; }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form :is([data-field-id="1"],[data-field-id="15"],.wpforms-field-checkbox) { grid-column:1 / -1; }
/* Nicht-Institutsmitarbeiter: Branche (7) ist sichtbar, Verband (4) und Filiale (6) fehlen — dann bliebe Fax (14) allein; volle Breite. */
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form:has([data-field-id="7"]:not(.wpforms-conditional-hide)) [data-field-id="14"] { grid-column:1 / -1; }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form .wpforms-submit-container { grid-column:1 / -1; grid-row:auto; justify-self:start; margin-top:var(--space-1); }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form .wpforms-field-email .wpforms-field-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-3) var(--space-4); }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form .wpforms-field-checkbox { max-width:76ch; }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form [data-field-id="16"] { margin-top:var(--space-2); }
.ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form [data-field-id="1"] select { font-weight:var(--fw-medium); }
@media(max-width:980px) {
 .ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form { gap:var(--space-3); }
}
@media(max-width:760px) {
 .ks-contact-panel .wpforms-container.ks-wpforms-register .wpforms-form .wpforms-field-email .wpforms-field-row { grid-template-columns:1fr; gap:var(--space-3); }
}

/* Rückmeldung der statischen WPForms-Anbindung im vorhandenen Kontaktpanel. */
.ks-contact-panel .ssp-form-response .ssp-form-message { background: #fff !important; color: var(--ks-violet) !important; padding: 20px 24px !important; border-radius: 12px !important; line-height: 1.5; }
.ks-contact-panel .ssp-form-response .ssp-error { border: 2px solid #b42318; color: #8f1d16 !important; }

/* Elementor setzt in seinem Frontend-CSS `.elementor .elementor-widget:not(…):not(…) figure {margin:0}`
   mit (0,4,1) — mehr als die Flow-Regel der Vorlage für Bilder im Akkordeon (0,2,0). Auf den
   Elementor-Seiten stand deshalb jede Grafik ohne Abstand an der Liste darüber (Feedback Chris,
   16.09.2026, /basiswissen/ Clearing; gemessen 17.09.: 0 px statt 24 px, lokal ohne Elementor 24 px).
   (0,5,1) stellt den Flow-Abstand wieder her, ohne !important. */
.ks-wordpress .elementor .elementor-widget .ks-acc__inner.zeus-section-inner > * + figure {margin-top:var(--flow-block)}

/* Chris 23.09.: Bilder der drei Querkarten auf /blog/ an allen vier Ecken rund — theme.css setzt
   für .ks-article--quer .ks-article__media border-radius:0 (Z. 2160), gleiche Spezifität (0,2,0),
   diese Regel gewinnt durch die Ladereihenfolge nach theme.css. Schnellfassung; saubere Übernahme
   nach relaunch/4-componentsystem/src/components/artikel-karte/artikel-karte.css:51 steht im Todo. */
.ks-article--quer .ks-article__media { border-radius: var(--radius-md); }
