/* csu-shared.css — CSU Neuburg Design-Tokens + Subpage-Layout */
/* Farben: CSU Basislinie 2022 — Blau #0089CF, Grün #00AB4E */
:root {
  --csu-blue:   #0089CF;   /* CSU-Blau, Basislinie 2022 */
  --csu-blue-2: #0070ad;
  --csu-orange: #00AB4E;   /* CSU-Grün, Basislinie 2022 (var-Name aus Kompatibilität) */
  --csu-green:  #00AB4E;   /* CSU-Grün, Basislinie 2022 */
  --bg: #ffffff; --bg-elev: #f4f4f2; --surface: #ffffff;
  --ink: #000000; --ink-2: #333333; --ink-3: #6b6b6b;
  --line: rgba(0,0,0,.10); --line-2: rgba(0,0,0,.18);
  --accent: #00AB4E;
  --font-sans: Arial, Helvetica, sans-serif;
  --font-mono: Arial, Helvetica, sans-serif;
  --container: 1280px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-sans);font-weight:600;letter-spacing:-.015em;margin:0;color:inherit}
p{margin:0}a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
img{display:block;max-width:100%;height:auto}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500}

/* ── Header ── */
.csu-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line)}
.csu-inner{display:flex;align-items:center;gap:36px;height:72px}
.csu-brand{display:flex;align-items:center;gap:12px;flex-shrink:0;text-decoration:none}
.csu-mark{width:38px;height:38px;border-radius:4px;background:var(--csu-blue);color:#fff;display:grid;place-items:center;font-family:var(--font-sans);font-size:14px;font-weight:700;letter-spacing:0;flex-shrink:0}
.csu-brand-img{height:40px;width:auto;display:block;flex-shrink:0}
.csu-label1{font-family:var(--font-sans);font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.15;white-space:nowrap;color:#000}
.csu-label2{font-size:10.5px;opacity:.7;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-mono);margin-top:2px;white-space:nowrap}
.csu-nav{display:flex;gap:28px;margin-left:auto;font-size:14.5px;font-weight:500}
.csu-nav a{color:var(--ink-2);padding:6px 0;border-bottom:2px solid transparent;transition:border-color .15s,color .15s;text-decoration:none}
.csu-nav a:hover,.csu-nav a.active{border-bottom-color:var(--csu-orange);color:#000}
.csu-cta{background:var(--csu-orange);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 8px rgba(0,171,78,.35);flex-shrink:0;text-decoration:none;white-space:nowrap}
.csu-cta:hover{background:#008f41;color:#fff}

/* ── Page hero ── */
.page-hero{background:var(--csu-blue);color:#fff;padding:72px 0 88px;border-bottom:4px solid var(--csu-orange)}
.page-hero h1{font-size:clamp(44px,5.5vw,84px);line-height:1;letter-spacing:-.02em;font-weight:600;max-width:20ch;text-wrap:balance;margin-top:18px}
.page-hero h1 em{font-style:normal;color:var(--csu-orange);font-weight:600}
.page-hero .lede{max-width:55ch;color:rgba(255,255,255,.85);font-size:18px;line-height:1.5;margin-top:24px}
.page-hero .breadcrumb{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);display:inline-flex;gap:10px;align-items:center;background:transparent !important;border:0 !important;box-shadow:none !important;border-radius:0 !important;padding:0 !important;margin:0 !important;width:auto !important;min-height:0 !important}
.page-hero .breadcrumb a{opacity:.9;text-decoration:none}
.page-hero .breadcrumb .sep{opacity:.4}
/* Bug-1-Fix: IMMER weiß im Hero — überschreibt OnePress-Selektoren mit hoher Spezifität */
.page-hero,.page-hero h1,.page-hero .lede,.page-hero p{color:#ffffff !important}
.page-hero h1 em{color:var(--csu-orange) !important;font-style:normal}
.page-hero .breadcrumb{color:rgba(255,255,255,.75)}
.page-hero .breadcrumb a{color:#fff;border-bottom:1px solid rgba(255,255,255,.4);opacity:1}
.page-hero .breadcrumb a:hover{border-bottom-color:var(--csu-orange)}
.page-hero .breadcrumb .sep{color:rgba(255,255,255,.4);margin:0 10px;opacity:1}
.page-hero .breadcrumb::before,.page-hero .breadcrumb::after,.page-hero .breadcrumb *::before,.page-hero .breadcrumb *::after{box-shadow:none !important}
.page-hero .breadcrumb span[aria-current="page"],.page-hero .breadcrumb>span:last-child{color:rgba(255,255,255,.9);font-weight:500}

section.pad{padding:100px 0}

/* ── Footer ── */
.csu-footer{background:linear-gradient(180deg,#0089CF 0%,#007ab9 100%);color:rgba(255,255,255,.85);padding:78px 0 32px;font-size:14px;position:relative;overflow:hidden}
.csu-footer:before{content:"";position:absolute;inset:auto -8% -120px auto;width:360px;height:360px;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 68%);pointer-events:none}
.csu-footer .ft-grid{position:relative;display:grid;grid-template-columns:1.55fr 1fr 1fr 1fr;gap:54px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
.csu-footer .brand-lg{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.csu-footer .brand-lg .ft-mark{width:44px;height:44px;border-radius:8px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);color:#fff;display:grid;place-items:center;font-family:var(--font-sans);font-size:15px;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.csu-footer .brand-lg .ft-title{color:#fff;font-family:var(--font-sans);font-size:22px;font-weight:600;letter-spacing:-.015em}
.csu-footer h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.48);margin-bottom:18px;font-weight:500}
.csu-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
.csu-footer ul a{color:rgba(255,255,255,.84);text-decoration:none;transition:color .18s ease,transform .18s ease}
.csu-footer ul a:hover{color:#fff}
.csu-footer .ft-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;padding-top:28px;flex-wrap:wrap;gap:20px;font-size:13px;color:rgba(255,255,255,.52)}
.csu-footer .ft-bottom .ft-links{display:flex;gap:24px}
.csu-footer .ft-bottom a{color:rgba(255,255,255,.5);text-decoration:none}
.csu-footer .ft-bottom a:hover{color:#fff}
.csu-footer .ft-social{display:flex;gap:10px;margin-top:14px}
.csu-footer .ft-social a{width:40px;height:40px;border-radius:99px;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:#fff;text-decoration:none;background:rgba(255,255,255,.035);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.csu-footer .ft-social a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.42);box-shadow:0 10px 18px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.08);transform:translateY(-1px)}
.csu-footer .ft-social svg{width:16px;height:16px;fill:currentColor;opacity:.95}

/* ── Shared widgets ── */
.widget h4{font-family:var(--font-sans);font-size:15px;font-weight:700;letter-spacing:0;padding-bottom:10px;border-bottom:2px solid var(--csu-blue);margin-bottom:14px}
.widget.cta-box h4{border-bottom-color:var(--csu-orange)}
.widget .w-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.widget .w-list li{border-bottom:1px solid var(--line)}
.widget .w-list li a{display:flex;justify-content:space-between;padding:10px 0;font-size:14px;color:var(--ink-2);line-height:1.4;gap:12px;text-decoration:none}
.widget .w-list li a:hover{color:var(--csu-blue)}
.widget .w-list li a span.ct{color:var(--ink-3);font-family:var(--font-mono);font-size:12px;flex-shrink:0}
.widget.cta-box{background:var(--csu-blue);padding:24px;border-radius:4px;color:#fff}
.widget.cta-box h4{border:0;padding:0;margin-top:8px;font-family:var(--font-sans);font-size:18px;font-weight:600;letter-spacing:-.01em}
.widget.cta-box .eyebrow{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75);font-family:var(--font-mono)}
.widget.cta-box p{color:rgba(255,255,255,.85);font-size:14px;margin-top:10px;line-height:1.5}
.widget.cta-box .btn-cta{display:inline-block;margin-top:16px;background:var(--csu-orange);color:#fff;padding:10px 16px;border-radius:4px;font-size:14px;font-weight:600;text-decoration:none}

.btn-primary{background:var(--csu-orange);color:#fff;padding:12px 22px;border-radius:4px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:10px;text-decoration:none;border:0;cursor:pointer}

/* CF7 Acceptance: Checkbox + Text nebeneinander, normale Schreibweise */
.wpcf7 .wpcf7-acceptance label{flex-direction:row;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink-2);font-family:var(--font-sans);font-weight:400;line-height:1.5}
.wpcf7 .wpcf7-acceptance input[type="checkbox"]{flex-shrink:0;margin-top:3px;width:16px;height:16px;cursor:pointer}
.wpcf7 .wpcf7-acceptance a{color:var(--csu-blue);text-decoration:underline}
.btn-primary:hover{background:#008f41;color:#fff}

/* ── Mobile hamburger ── */
.csu-menu-toggle{display:none;flex-direction:column;gap:5px;padding:8px;margin-left:auto;cursor:pointer;background:none;border:0}
.csu-menu-toggle span{display:block;width:22px;height:2px;background:var(--ink);transition:.2s}

@media(max-width:1024px){
  .csu-nav{gap:18px;font-size:13.5px}
  .csu-cta{padding:9px 14px;font-size:13px}
}
@media(max-width:768px){
  .csu-menu-toggle{display:flex}
  .csu-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;border-bottom:2px solid var(--csu-orange);padding:16px 28px;gap:0;box-shadow:0 4px 16px rgba(0,0,0,.08)}
  .csu-nav.open{display:flex}
  .csu-nav a{padding:14px 0;border-bottom:1px solid var(--line);border-left:0;font-size:16px;width:100%}
  .csu-cta{display:none}
  .csu-header{position:relative}
  .ft-grid{grid-template-columns:1fr 1fr!important}
  .csu-footer .ft-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .csu-footer .ft-grid{grid-template-columns:1fr}
}

/* ====================================================================
   WCAG-AA Kontrast-Override — 2026-06-06 (marken-wahrend)
   Helles CSU-Blau #0089CF bleibt fuer grosse Flaechen + Ueberschriften.
   Nur Texte, Buttons und Hero-/Footer-Flaechen bekommen kontraststarke
   Varianten:  Text-Blau #005A8C (7.4:1) · Gruen #00792F (5.6:1)
               dunkle Flaeche #003B80 (weiss 10.8:1)
   ==================================================================== */

/* 1) Blau als TEXT/Link -> dunkleres Blau */
.prose-content a,.prose-content a:hover,
.al-alt a,.wpcf7 .wpcf7-acceptance a,
.termine-home-date,
.widget .w-list li a:hover{color:#005A8C !important}

/* 2) Gruen als TEXT -> dunkleres Gruen */
.team-role,.al-badge{color:#00792F !important}

/* 3) Gefuellte Buttons/Kacheln mit kleinem weissem Text -> dunkle Flaeche */
.termine-home-link,.m-btn,.m-card.featured,.widget.cta-box{background:#005A8C !important}
a.ed-cta{background:#00792F !important}            /* schlaegt front-page !important per Spezifitaet */
.m-card.featured p{color:rgba(255,255,255,.92) !important}

/* 4) Page-Hero dunkelblau -> kleine weisse Texte (lede, breadcrumb) werden AA */
.page-hero{background:#003B80 !important}
.page-hero .lede{color:rgba(255,255,255,.95) !important}
.page-hero .breadcrumb{color:rgba(255,255,255,.88) !important}
.page-hero .breadcrumb a{color:#ffffff !important}
.page-hero .breadcrumb .sep{color:rgba(255,255,255,.55) !important}

/* 5) Footer (Unterseiten .csu-footer UND Startseite .ed-footer) -> dunkelblau + deckendere Texte */
.csu-footer,.ed-footer{background:#003B80 !important}
.csu-footer h4,.footer-col-title{color:rgba(255,255,255,.85) !important}
.csu-footer ul a,.footer-col a{color:rgba(255,255,255,.92) !important}
.csu-footer .ft-bottom,.footer-bottom,.footer-status{color:rgba(255,255,255,.80) !important}
.csu-footer .ft-bottom a,.footer-legal a{color:rgba(255,255,255,.85) !important}

/* 6) Graue Mikro-Texte (knapp unter AA) dunkler — featured-Kicker bleibt weiss (hoehere Spezifitaet) */
.al-alt h4,.m-kicker{color:#595959 !important}
.m-card.featured .m-kicker{color:rgba(255,255,255,.92) !important}

/* AA-Reste 2026-06-06 */
.prose-content h2{color:#005A8C !important}
.wpcf7 input[type="checkbox"],.wpcf7 input[type="radio"]{min-width:24px;min-height:24px}

/* AA-Reste 2 (2026-06-06): gruene Buttons + .doc-Links */
.btn-primary,.csu-cta,.widget.cta-box .btn-cta{background:#00792F !important}
.doc,.doc a{color:#005A8C !important}

/* Footer-Spaltentitel sind jetzt h2 (heading-order) — Aussehen wie zuvor */
.csu-footer h2{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:18px;font-weight:500}

/* 08.06.2026: offizielles CSU-Logo im Unterseiten-Footer (analog Startseite) */
.csu-footer .brand-lg{margin-bottom:20px}
.csu-footer .footer-logo-img{height:46px;width:auto;display:block;filter:brightness(0) invert(1)}
