/* ─── GGA Theme Overrides (must come before static rules) ──────── */

/* Hero: slide texts via display, NOT opacity */
.hero__slide-text { display:none; }
.hero__slide-text.is-active { display:block; }
.hero__h1-alt { font-family:'plume',serif; font-size:var(--t-3xl); font-weight:700; letter-spacing:-.04em; line-height:1.08; margin-bottom:var(--space-m); color:#fff; }

/* Kurs-Liste: single column */
.kurse__grid { display:flex !important; flex-direction:column !important; gap:6px !important; }
.kurse__notice { font-size:var(--t-xs); font-weight:600; color:var(--blau); letter-spacing:.02em; padding:4px 2px; }

/* Book button: brand red */
.btn-book { background:var(--rot) !important; }

/* Hero layout */
.hero { position:relative; overflow:hidden; min-height:88vh; display:flex; align-items:center; }
.hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.hero__bg::after { content:''; position:absolute; inset:0; background:linear-gradient(110deg,rgba(5,37,59,.82) 0%,rgba(5,37,59,.5) 55%,rgba(5,37,59,.18) 100%); }
.hero__inner { position:relative; z-index:1; padding-block:var(--space-3xl); width:100%; }
.hero__content { max-width:660px; position:relative; }
.hero__pill { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.12); color:rgba(255,255,255,.85); font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:5px 14px; border-radius:var(--radius-pill); border:1px solid rgba(255,255,255,.2); margin-bottom:var(--space-m); }
.hero__pill-dot { width:6px; height:6px; background:#22c55e; border-radius:50%; display:block; }
.hero h1 { font-size:var(--t-3xl); letter-spacing:-.04em; line-height:1.08; margin-bottom:var(--space-m); color:#fff; font-weight:700; }
.hero__sub { font-size:var(--t-m); color:rgba(255,255,255,.72); max-width:500px; margin-bottom:var(--space-l); line-height:1.55; }
.hero__ctas { display:flex; gap:var(--space-s); flex-wrap:wrap; }

/* Kurse layout */
.kurse-layout { display:grid; grid-template-columns:1fr 320px; gap:var(--space-l); align-items:start; }
.kurse__controls { display:flex; align-items:center; gap:var(--space-s); flex-wrap:wrap; margin-bottom:var(--space-m); }
.kurse__filter { display:flex; gap:6px; flex-wrap:wrap; flex:1; }
.kurse__count-select { padding:6px 10px; border-radius:var(--radius-s); border:1.5px solid var(--line); font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); color:var(--text-2); background:var(--bg); cursor:pointer; }

/* Year divider & toggle */
.year-divider { display:flex; align-items:center; gap:var(--space-m); padding:var(--space-m) 0 var(--space-xs); }
.year-divider::before,.year-divider::after { content:''; flex:1; height:1px; background:var(--line); }
.year-divider__label { font-family:'ibm-plex-sans',sans-serif; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); flex-shrink:0; }
.kurse__year-toggle { text-align:center; padding:var(--space-m) 0; }
.kurse__year-toggle-btn { background:none; border:1.5px solid var(--line); border-radius:var(--radius-pill); padding:8px 22px; font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); font-weight:600; color:var(--text-2); cursor:pointer; transition:border-color .15s,color .15s; }
.kurse__year-toggle-btn:hover { border-color:var(--blau); color:var(--blau); }

/* Schritte background */
.schritte-bg { position:absolute; inset:0; background-size:cover; background-position:center 30%; }
.schritte-bg::after { content:''; position:absolute; inset:0; background:rgba(0,84,142,.84); }

/* Responsive */
@media(max-width:1024px){ .kurse-layout { grid-template-columns:minmax(0,1fr); } .kurse-layout > * { min-width:0; } }
@media(max-width:600px){ .hero { min-height:auto; } .hero__inner { padding-block:var(--space-2xl) var(--space-xl); } .hero__ctas { flex-direction:column; } .hero__ctas .btn { justify-content:center; width:100%; } }
@media(max-width:600px){ .kurse__filter { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; } .kurse__filter::-webkit-scrollbar{display:none;} .kurse__filter-btn{flex-shrink:0;} }

/* ─── GGA Global Styles ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

:root {
  --rot:    #EE1D25;
  --blau:   #00548E;
  --text:   #05253B;
  --text-2: #3a5570;
  --text-3: #6b8099;
  --bg:     #ffffff;
  --bg-2:   #f5f5f7;
  --bg-3:   #e8edf2;
  --line:   rgba(5,37,59,.10);
  --line-2: rgba(5,37,59,.06);

  --t-xs:   clamp(11px, 1.1vw + .3rem, 13.44px);
  --t-s:    clamp(14px, 1.3vw + .4rem, 16.8px);
  --t-base: clamp(16px, 1.6vw + .4rem, 21px);
  --t-m:    clamp(18px, 2.0vw + .6rem, 26.25px);
  --t-l:    clamp(20px, 2.5vw + .8rem, 32.81px);
  --t-xl:   clamp(26px, 3.2vw + 1rem,  41.02px);
  --t-2xl:  clamp(30px, 4.0vw + 1rem,  51.27px);
  --t-3xl:  clamp(34px, 5.0vw + 1.2rem,64.09px);

  --space-xs: 8px;  --space-s: 16px;  --space-m: 24px;
  --space-l:  40px; --space-xl: 64px; --space-2xl: 96px; --space-3xl: 128px;
  --radius-s: 8px;  --radius-m: 14px; --radius-pill: 980px;
  --max-w: 1200px;  --nav-h: 64px;
}

body {
  font-family: 'ibm-plex-sans', sans-serif;
  font-size: var(--t-base);
  color: var(--text-2);
  background: var(--bg);
  line-height: 1.6;
  overflow-x: hidden;
}

/* Typography */
.eyebrow { font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); font-weight:600; letter-spacing:.10em; text-transform:uppercase; color:var(--text-3); }
.eyebrow--blau { color:var(--blau); }
h1,h2,h3,h4 { font-family:'plume',serif; color:var(--text); line-height:1.15; letter-spacing:-.02em; }

/* Layout */
.container { width:min(100%,var(--max-w)); margin-inline:auto; padding-inline:var(--space-l); }
@media(max-width:768px){ .container { padding-inline:var(--space-m); } }
.section { padding-block:var(--space-3xl); }
@media(max-width:768px){ .section { padding-block:var(--space-2xl); } }
@media(max-width:480px){ .section { padding-block:var(--space-xl); } }
.section--compact { padding-block:var(--space-xl); }
@media(max-width:768px){ .section--compact { padding-block:var(--space-l); } }
.section--alt  { background:var(--bg-2); }
.section--dark { background:var(--text); color:rgba(255,255,255,.85); }
.section--blau { background:var(--blau); color:rgba(255,255,255,.9); }
.section--dark h2,.section--dark h3,.section--blau h2,.section--blau h3 { color:#fff; }
.section-header { margin-bottom:var(--space-xl); }
.section-header--center { text-align:center; max-width:640px; margin-inline:auto; margin-bottom:var(--space-xl); }
.section-header .eyebrow,.section-header--center .eyebrow { display:block; margin-bottom:var(--space-s); }
.section-header h2,.section-header--center h2 { font-size:var(--t-xl); margin-bottom:var(--space-s); }
.section-header p { font-size:var(--t-base); color:var(--text-3); max-width:520px; }
.section-header--center p { margin-inline:auto; }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:var(--space-xs); padding:13px 26px; border-radius:var(--radius-pill); font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-s); font-weight:500; text-decoration:none; cursor:pointer; border:none; transition:opacity .2s,transform .15s; white-space:nowrap; min-height:44px; }
.btn:hover { opacity:.85; transform:translateY(-1px); }
.btn--primary  { background:var(--blau); color:#fff; }
.btn--secondary{ background:transparent; color:var(--blau); border:1.5px solid var(--blau); }
.btn--ghost    { background:rgba(255,255,255,.12); color:#fff; border:1.5px solid rgba(255,255,255,.3); }
.btn--ghost-red{ background:rgba(238,29,37,.18); color:#fff; border:1.5px solid rgba(238,29,37,.45); }
.btn--ghost-red:hover { background:rgba(238,29,37,.32); opacity:1; }
.btn--dark     { background:var(--text); color:#fff; }
.btn svg { flex-shrink:0; }

/* NAV */
.nav { position:sticky; top:0; z-index:200; height:var(--nav-h); background:#fff; border-bottom:1px solid var(--line-2); padding-inline:env(safe-area-inset-left) env(safe-area-inset-right); }
.nav__inner { height:100%; display:flex; align-items:center; gap:var(--space-l); }
.nav__logo { text-decoration:none; display:flex; align-items:center; flex-shrink:0; }
.nav__logo img { height:38px; width:auto; }
.nav__links { display:flex; align-items:center; gap:var(--space-m); list-style:none; margin-left:auto; }
.nav__links a { font-size:var(--t-s); color:var(--text-2); text-decoration:none; transition:color .15s; min-height:44px; display:inline-flex; align-items:center; }
.nav__links a:hover { color:var(--text); }
.nav__actions { display:flex; align-items:center; gap:var(--space-s); margin-left:var(--space-m); }
.nav__login { font-size:var(--t-s); color:var(--blau); text-decoration:none; font-weight:500; min-height:44px; display:inline-flex; align-items:center; }
.nav__burger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; margin-left:auto; min-height:44px; min-width:44px; justify-content:center; }
.nav__burger span { display:block; width:22px; height:1.5px; background:var(--text); transition:transform .3s,opacity .3s; }
.nav__mobile { display:none; position:fixed; inset:var(--nav-h) 0 0 0; background:var(--bg); padding:var(--space-l) var(--space-m); flex-direction:column; gap:var(--space-m); z-index:199; overflow-y:auto; }
.nav__mobile a { font-size:var(--t-m); font-family:'plume',serif; color:var(--text); text-decoration:none; padding-block:var(--space-xs); border-bottom:1px solid var(--line-2); }
.nav__mobile.is-open { display:flex; }
@media(max-width:900px){ .nav__links,.nav__actions { display:none; } .nav__burger { display:flex; } }

/* FOOTER */
.footer { background:var(--text); padding-block:var(--space-2xl) var(--space-l); padding-bottom:max(var(--space-l),env(safe-area-inset-bottom)); }
.footer__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:var(--space-xl); padding-bottom:var(--space-xl); border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:var(--space-l); }
@media(max-width:900px){ .footer__grid { grid-template-columns:1fr 1fr; } .footer__brand { grid-column:span 2; } }
@media(max-width:480px){ .footer__grid { grid-template-columns:1fr; } .footer__brand { grid-column:span 1; } }
.footer__brand p { font-size:var(--t-s); color:rgba(255,255,255,.5); margin-top:var(--space-m); max-width:280px; line-height:1.6; }
.footer__col h5 { font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:var(--space-m); }
.footer__col ul { list-style:none; display:flex; flex-direction:column; gap:var(--space-xs); }
.footer__col ul a { font-size:var(--t-s); color:rgba(255,255,255,.6); text-decoration:none; transition:color .15s; }
.footer__col ul a:hover { color:#fff; }
.footer__bottom { display:flex; align-items:center; justify-content:space-between; gap:var(--space-m); flex-wrap:wrap; }
@media(max-width:480px){ .footer__bottom { flex-direction:column; align-items:flex-start; gap:var(--space-s); } }
.footer__bottom p { font-size:var(--t-xs); color:rgba(255,255,255,.28); }
.footer__bottom-links { display:flex; gap:var(--space-m); }
.footer__bottom-links a { font-size:var(--t-xs); color:rgba(255,255,255,.32); text-decoration:none; transition:color .15s; }
.footer__bottom-links a:hover { color:rgba(255,255,255,.7); }

/* Reveal */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion:reduce){ .reveal { opacity:1; transform:none; transition:none; } }

/* Legal pages */
.legal-content { max-width:780px; margin-inline:auto; padding-block:var(--space-3xl); }
.legal-content h1 { font-size:var(--t-2xl); margin-bottom:var(--space-xl); }
.legal-content h2 { font-size:var(--t-l); margin-top:var(--space-xl); margin-bottom:var(--space-m); }
.legal-content h3 { font-size:var(--t-m); margin-top:var(--space-l); margin-bottom:var(--space-s); }
.legal-content p  { margin-bottom:var(--space-m); color:var(--text-2); }
.legal-content ul { margin:0 0 var(--space-m) var(--space-l); display:flex; flex-direction:column; gap:var(--space-xs); }
.legal-content ul li { color:var(--text-2); }
.legal-content strong { color:var(--text); }

/* ── Button overrides: CI-Rot ────────────────────────────────── */
.btn--primary  { background:var(--rot); color:#fff; }
.btn--primary:hover { background:#cc1820; opacity:1; }
.btn--dark     { background:var(--text); color:#fff; }
.btn--dark:hover { background:#083352; opacity:1; }
/* Kurs-card book button */
.btn-book      { background:var(--rot) !important; }
.btn-book:hover{ background:#cc1820 !important; opacity:1; }
/* Kursdetails-CTA (Real-Device-Fix): kompakter, nicht dominant. Sichtbare Fläche kleiner,
   Bedienfläche bleibt ≥ 44 px (Erweiterung per ::after, s. Mobile-Block). */
.kurs-card__actions .btn-book { padding:8px 16px; min-height:38px; font-size:13px; font-weight:600; position:relative; }
/* filter active */
.kurse__filter-btn.is-active,.kurse__filter-btn:hover { background:var(--rot); border-color:var(--rot); color:#fff; }

/* ── Hero Slider ─────────────────────────────────────────────── */
.hero-slider { position:absolute; inset:0; }
.hero-slider__slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease; }
.hero-slider__slide.is-active { opacity:1; }
.hero-slider__slide::after { content:''; position:absolute; inset:0; background:linear-gradient(110deg,rgba(5,37,59,.82) 0%,rgba(5,37,59,.5) 55%,rgba(5,37,59,.18) 100%); }
/* Slider dots */
.hero-slider__dots { position:absolute; bottom:var(--space-l); left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:2; }
.hero-slider__dot  { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; transition:background .2s,transform .2s; padding:0; }
.hero-slider__dot.is-active { background:#fff; transform:scale(1.25); }

/* ── Warum – new layout ──────────────────────────────────────── */
.warum-new { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2xl); align-items:start; }
@media(max-width:900px){ .warum-new { grid-template-columns:1fr; } }
.warum-new__img { border-radius:var(--radius-m); overflow:hidden; aspect-ratio:4/3; background:var(--bg-3); display:flex; align-items:center; justify-content:center; color:var(--text-3); }
.warum-new__img img { width:100%; height:100%; object-fit:cover; display:block; }
.warum-new__list { display:flex; flex-direction:column; gap:var(--space-s); }
.warum-new__item { display:flex; align-items:center; gap:var(--space-m); padding:var(--space-m); border-radius:var(--radius-m); background:var(--bg-2); border:1px solid var(--line-2); transition:border-color .2s; }
.warum-new__item:hover { border-color:var(--blau); }
.warum-new__num { font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-2xl); font-weight:700; color:var(--blau); line-height:1; flex-shrink:0; min-width:2ch; letter-spacing:-.02em; }
.warum-new__item h3 { font-size:var(--t-s); font-weight:600; font-family:'ibm-plex-sans',sans-serif; color:var(--text); margin-bottom:3px; }
.warum-new__item p  { font-size:var(--t-xs); color:var(--text-3); line-height:1.6; }

/* ── Cal legend fix ──────────────────────────────────────────── */
/* Remove the "Kurstag – Klick zum Filtern" legend label change is in HTML */

/* ── Testimonial avatar placeholders ────────────────────────── */
.testi-card__avatar-ph { width:38px; height:38px; border-radius:50%; background:var(--bg-3); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--text-3); font-size:10px; font-weight:600; font-family:'ibm-plex-sans',sans-serif; }

/* ══════════════════════════════════════════════════════════════
   COMPONENT BASE STYLES
   ══════════════════════════════════════════════════════════════ */

/* Signal row */
.signal__icon { width:40px; height:40px; background:var(--bg-3); border-radius:var(--radius-s); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--blau); }
.signal__text strong { display:block; font-size:var(--t-s); font-weight:600; color:var(--text); }
.signal__text span { font-size:var(--t-xs); color:var(--text-3); }

/* Kurs context bar */
.kurse__context { background:rgba(0,84,142,.07); border:1px solid rgba(0,84,142,.14); border-radius:var(--radius-m); padding:10px var(--space-m); margin-bottom:var(--space-m); display:flex; align-items:center; gap:var(--space-s); flex-wrap:wrap; }
.kurse__context-dot { width:8px; height:8px; border-radius:50%; background:var(--blau); flex-shrink:0; transition:background .3s; }
.kurse__context p { font-size:var(--t-xs); color:var(--blau); flex:1; min-width:0; }
.kurse__context a { font-size:var(--t-xs); font-weight:600; color:var(--blau); white-space:nowrap; text-decoration:none; }

/* Filter button base */
.kurse__filter-btn { padding:6px 14px; border-radius:var(--radius-pill); font-size:var(--t-xs); font-weight:600; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; border:1.5px solid var(--line); background:transparent; color:var(--text-2); transition:background .15s,color .15s,border-color .15s; min-height:36px; }

/* Kurs card */
.kurs-card { background:var(--bg); border:1px solid var(--line); border-left:3px solid var(--blau); border-radius:var(--radius-s); display:grid; grid-template-columns:1fr auto; align-items:center; transition:box-shadow .2s; }
.kurs-card:hover { box-shadow:0 4px 16px rgba(5,37,59,.08); }
.kurs-card__body { padding:10px var(--space-m); display:flex; flex-direction:column; gap:3px; }
.kurs-card__title { font-size:var(--t-s); font-family:'plume',serif; color:var(--text); letter-spacing:-.01em; line-height:1.3; margin:2px 0; }
.kurs-card__badges { display:flex; gap:5px; flex-wrap:wrap; }
.badge { font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:var(--radius-pill); }
.badge--type { background:rgba(0,84,142,.09); color:var(--blau); }
.badge--cat { background:var(--bg-3); color:var(--text-3); }
.kurs-card__meta { display:flex; gap:10px; flex-wrap:wrap; margin-top:2px; }
.kurs-card__meta-row { display:inline-flex; align-items:center; gap:4px; font-size:11px; color:var(--text-3); }
.kurs-card__meta-row svg { flex-shrink:0; }
.kurs-card__actions { padding:10px var(--space-m) 10px 0; display:flex; gap:6px; flex-shrink:0; }
.btn-share { background:var(--bg-2); color:var(--text-2); border:1.5px solid var(--line); padding:7px 9px; flex:0 0 auto; border-radius:var(--radius-pill); cursor:pointer; display:flex; align-items:center; transition:background .15s; min-height:34px; }
.btn-share:hover { background:var(--bg-3); }

/* Skeleton loading */
.skeleton { background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-3) 50%,var(--bg-2) 75%); background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:6px; }
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.skeleton-card { background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.skeleton-card__img { width:100%; aspect-ratio:16/5; }
.skeleton-card__body { padding:var(--space-s) var(--space-m); display:flex; flex-direction:column; gap:var(--space-s); }
.skeleton-card__line { height:12px; }
.skeleton-card__line--s { width:55%; }
.skeleton-card__line--t { height:16px; width:88%; }

/* Calendar */
.cal { background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; position:sticky; top:calc(var(--nav-h) + 12px); }
.cal__header { background:var(--text); padding:var(--space-m); display:flex; align-items:center; justify-content:space-between; }
.cal__title { font-family:'plume',serif; font-size:var(--t-s); color:#fff; }
.cal__nav { display:flex; gap:4px; }
.cal__nav-btn { background:rgba(255,255,255,.12); border:none; border-radius:6px; width:28px; height:28px; cursor:pointer; color:#fff; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.cal__nav-btn:hover { background:rgba(255,255,255,.22); }
.cal__today-btn { background:rgba(255,255,255,.12); border:none; border-radius:6px; padding:0 10px; height:28px; cursor:pointer; color:rgba(255,255,255,.8); font-family:'ibm-plex-sans',sans-serif; font-size:11px; font-weight:600; transition:background .15s; }
.cal__today-btn:hover { background:rgba(255,255,255,.22); }
.cal__weekdays { display:grid; grid-template-columns:repeat(7,1fr); padding:var(--space-s) var(--space-s) 0; }
.cal__weekday { font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-3); text-align:center; padding:5px 0; }
.cal__grid { display:grid; grid-template-columns:repeat(7,1fr); padding:0 var(--space-s) var(--space-s); gap:2px; }
.cal__day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:11px; border-radius:6px; color:var(--text-3); font-family:'ibm-plex-sans',sans-serif; position:relative; transition:background .15s; }
.cal__day--empty { opacity:0; pointer-events:none; }
/* Heute: neutraler Ring + fette Zahl (nicht Kurstag-Farbe). Kurstag: CI-Tönung + Punkt. */
.cal__day--today { font-weight:700; color:var(--text); box-shadow:inset 0 0 0 1.5px var(--text-2); }
.cal__day--today.cal__day--has-course { background:rgba(0,84,142,.12); color:var(--blau); box-shadow:inset 0 0 0 2px var(--text); }
.cal__day--has-course { background:rgba(0,84,142,.12); color:var(--blau); font-weight:600; cursor:pointer; }
.cal__day--has-course:hover { background:var(--blau); color:#fff; }
.cal__day--has-course::after { content:''; position:absolute; bottom:2px; left:50%; transform:translateX(-50%); width:3px; height:3px; border-radius:50%; background:var(--blau); }
.cal__day--has-course:hover::after { background:#fff; }
.cal__day--active { background:var(--blau) !important; color:#fff !important; }
.cal__day--active::after { background:#fff !important; }
.cal__filters { padding:var(--space-s); border-top:1px solid var(--line-2); display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.cal__filters select { min-width:0; padding:5px 8px; border-radius:var(--radius-s); border:1.5px solid var(--line); font-family:'ibm-plex-sans',sans-serif; font-size:11px; color:var(--text-2); background:var(--bg); cursor:pointer; }
.cal__reset { grid-column:span 2; padding:6px; border-radius:var(--radius-s); border:1.5px solid var(--line); font-family:'ibm-plex-sans',sans-serif; font-size:11px; color:var(--text-2); background:var(--bg); cursor:pointer; text-align:center; transition:background .15s; }
.cal__reset:hover { background:var(--bg-3); }
.cal__legend { padding:var(--space-xs) var(--space-s) var(--space-s); display:flex; align-items:center; gap:6px; font-size:10px; color:var(--text-3); }
.cal__legend-dot { width:7px; height:7px; border-radius:50%; background:var(--blau); flex-shrink:0; }

/* Share modal – base (responsive bottom-sheet overrides follow below) */
.share-overlay { display:none; position:fixed; inset:0; z-index:500; justify-content:center; background:rgba(5,37,59,.55); backdrop-filter:blur(4px); }
.share-overlay.is-open { display:flex; }
.share-box { background:#fff; overflow:hidden; box-shadow:0 24px 80px rgba(5,37,59,.3); }
.share-preview { padding:var(--space-l); background:linear-gradient(135deg,var(--text) 0%,var(--blau) 100%); position:relative; min-height:200px; display:flex; flex-direction:column; justify-content:flex-end; }
.share-preview__close { position:absolute; top:var(--space-m); right:var(--space-m); background:rgba(255,255,255,.15); border:none; border-radius:50%; width:32px; height:32px; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; }
.share-preview__logo { position:absolute; top:var(--space-m); left:var(--space-m); height:24px; opacity:.5; filter:brightness(0) invert(1); }
.share-preview__type { font-family:'ibm-plex-sans',sans-serif; font-size:10px; font-weight:600; letter-spacing:.10em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:6px; }
.share-preview__title { font-family:'plume',serif; font-size:clamp(17px,2.2vw,24px); color:#fff; line-height:1.2; margin-bottom:10px; }
.share-preview__pills { display:flex; gap:8px; flex-wrap:wrap; }
.share-preview__pill { background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-pill); padding:3px 10px; font-family:'ibm-plex-sans',sans-serif; font-size:11px; color:rgba(255,255,255,.85); }
.share-preview__url { font-family:'ibm-plex-sans',sans-serif; font-size:10px; color:rgba(255,255,255,.45); margin-top:6px; word-break:break-all; }
.share-body { padding:var(--space-m) var(--space-l) var(--space-l); }
.share-body h4 { font-size:var(--t-s); color:var(--text); margin-bottom:var(--space-m); font-family:'plume',serif; }
.share-step { display:none; }
.share-step.is-active { display:block; }
.share-platforms { display:flex; gap:var(--space-m); flex-wrap:wrap; justify-content:center; margin-bottom:var(--space-m); }
.share-platform-btn { display:flex; flex-direction:column; align-items:center; gap:6px; background:none; border:none; cursor:pointer; }
.share-formats { display:flex; flex-direction:column; gap:8px; }
.share-format-btn { display:flex; align-items:center; gap:var(--space-m); padding:var(--space-m); border-radius:var(--radius-s); background:var(--bg-2); border:1.5px solid var(--line); cursor:pointer; transition:border-color .15s,background .15s; text-align:left; font-family:'ibm-plex-sans',sans-serif; width:100%; }
.share-format-btn:hover { border-color:var(--blau); background:var(--bg); }
.share-format-btn__icon { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.share-format-btn strong { display:block; font-size:var(--t-s); color:var(--text); }
.share-format-btn span { font-size:var(--t-xs); color:var(--text-3); }
.share-back { background:none; border:none; cursor:pointer; font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); color:var(--text-3); padding:0; margin-bottom:var(--space-m); display:flex; align-items:center; gap:6px; }
.share-back:hover { color:var(--text); }
.share-actions { display:flex; gap:var(--space-s); margin-top:var(--space-m); }

/* Testimonial cards */
.testi-card { background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-m); padding:var(--space-l); display:flex; flex-direction:column; gap:var(--space-m); box-sizing:border-box; }
.testi-card__stars { color:#c8a84b; font-size:14px; }
.testi-card__quote { font-size:var(--t-base); color:var(--text-2); line-height:1.65; flex:1; font-style:italic; }
.testi-card__author { display:flex; align-items:center; gap:var(--space-s); }
.testi-card__avatar { width:38px; height:38px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--bg-3); }
.testi-card__avatar img { width:100%; height:100%; object-fit:cover; }
.testi-card strong { display:block; font-size:var(--t-s); font-weight:600; color:var(--text); }
.testi-card span { font-size:var(--t-xs); color:var(--text-3); }

/* Über uns / Team */
.intro__inner { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2xl); align-items:start; }
@media(max-width:768px){ .intro__inner { grid-template-columns:1fr; gap:var(--space-l); } }
.intro__visual { border-radius:var(--radius-m); overflow:hidden; aspect-ratio:4/3; }
.intro__visual img { width:100%; height:100%; object-fit:cover; display:block; }
.intro__content h2 { font-size:var(--t-xl); margin-bottom:var(--space-m); }
.intro__content p { margin-bottom:var(--space-m); color:var(--text-2); }
.intro__kmt-badge { display:inline-flex; align-items:center; gap:var(--space-s); background:var(--bg-3); border-radius:var(--radius-s); padding:var(--space-s) var(--space-m); font-size:var(--t-xs); color:var(--text-2); margin-bottom:var(--space-l); border:1px solid var(--line); }
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-m); }
@media(max-width:768px){ .team-grid { grid-template-columns:1fr; } }
.team-card { background:var(--bg-2); border-radius:var(--radius-m); padding:var(--space-m); display:flex; flex-direction:row; align-items:center; gap:var(--space-m); border:1px solid var(--line-2); }
.team-card__avatar { width:60px; height:60px; border-radius:50%; background:var(--bg-3); flex-shrink:0; overflow:hidden; }
.team-card__avatar img { width:100%; height:100%; object-fit:cover; }
.team-card strong { display:block; font-size:var(--t-s); font-weight:600; color:var(--text); }
.team-card__role { font-size:var(--t-xs); color:var(--blau); font-weight:600; display:block; }
.team-card span { font-size:var(--t-xs); color:var(--text-3); }

/* Buchungsschritte */
.schritte-wrap { position:relative; overflow:hidden; }
.schritte-bg { position:absolute; inset:0; background-size:cover; background-position:center 30%; }
.schritte-bg::after { content:''; position:absolute; inset:0; background:rgba(0,84,142,.84); }
.schritte__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-l); position:relative; z-index:1; }
@media(max-width:768px){ .schritte__grid { grid-template-columns:1fr; } }
.schritt { position:relative; }
@media(max-width:768px){ .schritt { display:flex; gap:var(--space-m); align-items:flex-start; } }
.schritt__number { font-family:'plume',serif; font-size:var(--t-3xl); color:rgba(255,255,255,.15); line-height:1; margin-bottom:var(--space-s); display:block; }
@media(max-width:768px){ .schritt__number { font-size:var(--t-2xl); flex-shrink:0; margin-bottom:0; min-width:44px; } }
.schritt__body { flex:1; }
.schritt h3 { font-size:var(--t-m); color:#fff; margin-bottom:var(--space-s); }
.schritt p { font-size:var(--t-s); color:rgba(255,255,255,.72); line-height:1.6; }

/* Login CTA */
.login-cta__grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-m); }
@media(max-width:600px){ .login-cta__grid { grid-template-columns:1fr; } }
.login-tile { border-radius:var(--radius-m); padding:var(--space-l) var(--space-m); text-align:center; }
.login-tile--a { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); }
.login-tile--b { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); }
.login-tile h3 { font-size:var(--t-l); color:#fff; margin-bottom:var(--space-s); }
.login-tile p { font-size:var(--t-s); color:rgba(255,255,255,.62); margin-bottom:var(--space-l); }

/* FAQ */
.faq__list { max-width:680px; margin-inline:auto; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item__trigger { width:100%; background:none; border:none; cursor:pointer; padding:var(--space-m) 0; display:flex; justify-content:space-between; align-items:center; gap:var(--space-m); text-align:left; min-height:44px; }
.faq-item__question { font-family:'plume',serif; font-size:var(--t-m); color:var(--text); }
.faq-item__icon { width:24px; height:24px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--text-3); transition:transform .3s,border-color .3s; }
.faq-item.is-open .faq-item__icon { transform:rotate(45deg); border-color:var(--blau); color:var(--blau); }
.faq-item__body { overflow:hidden; max-height:0; transition:max-height .4s ease; }
.faq-item__body p { padding-bottom:var(--space-m); font-size:var(--t-base); color:var(--text-2); line-height:1.7; }
.faq-item__body ul { padding:0 0 var(--space-m) var(--space-m); display:flex; flex-direction:column; gap:5px; }
.faq-item__body ul li { font-size:var(--t-base); color:var(--text-2); }

/* Newsletter */
.newsletter__inner { display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--space-l); }
.newsletter__text h2 { font-size:var(--t-xl); color:#fff; margin-bottom:var(--space-s); }
.newsletter__text p { font-size:var(--t-base); color:rgba(255,255,255,.7); }
@media(max-width:600px){ .newsletter__inner .btn { width:100%; justify-content:center; } }

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE FIXES – vollständige Mobile-Optimierung
   Geräte: 320px (iPhone SE) → 390px (iPhone 14) → 768px (iPad) → 1024px (iPad Pro)
   ══════════════════════════════════════════════════════════════ */

/* ── 1. iOS-Touch-Highlight entfernen, text nicht selektierbar auf Buttons ── */
button, a { -webkit-tap-highlight-color: transparent; }

/* ── 2. Hero: min-height auf kleinen Phones sinnvoll ───────────────────────── */
@media(max-width:390px){
  .hero { min-height: 100svh; } /* svh = Small Viewport Height, kein Scroll-Bug auf iOS */
  .hero h1 { letter-spacing: -.03em; }
  .hero__inner { padding-block: var(--space-xl); }
}

/* ── 3. Hero CTA: volle Breite auf Mobile ──────────────────────────────────── */
@media(max-width:600px){
  .hero__ctas .btn { width: 100%; justify-content: center; }
}


/* ── 5. Kurse-Layout-Kalender: unter 1024px unter die Liste ────────────────── */
@media(max-width:1024px){
  .cal { position: static; } /* sticky deaktivieren wenn nicht neben Liste */
}

/* ── 6. Kurs-Kacheln: auf iPhone SE (320px) nie unter 100% ─────────────────── */
@media(max-width:360px){
  .kurse__grid { grid-template-columns: 1fr; }
  .kurs-card__actions { flex-direction: column; }
  .kurs-card__actions .btn-book { width: 100%; }
}

/* ── 6b. Mobile Kurskarte (Smartphones bis 640px): vertikale Hierarchie ──────
   Titel zuerst, Metadaten, dann "Jetzt buchen" in voller Breite, danach
   das Teilen-Icon in einer eigenen Zeile. Vorher lag der Buchen-Button in
   einer auto-breiten Spalte neben dem Titel und ragte auf 375px aus der
   Karte heraus (Teilen-Icon dadurch außerhalb des Bildschirms). Nur
   Darstellung - Markup, Links und Datenlogik bleiben unverändert. */
@media(max-width:640px){
  .kurs-card { grid-template-columns: minmax(0,1fr); }
  .kurs-card__body { padding: 12px var(--space-m) 4px; min-width: 0; }
  .kurs-card__title { overflow-wrap: break-word; hyphens: manual; max-width: none; }
  .kurs-card__meta-row { font-size: 12px; }
  .kurs-card__actions { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; padding: 6px var(--space-m) 14px; gap: 8px 10px; min-width: 0; }
  .kurs-card__actions .btn-book { width: auto; min-height: 36px; font-size: 12.5px; padding: 7px 14px; white-space: nowrap; }
  .kurs-card__actions .btn-book::after { content:''; position:absolute; inset:-4px -4px; }
  .kurs-card__actions .btn-share { flex: 0 0 100%; width: 40px; min-width: 40px; min-height: 40px; justify-content: center; align-self: flex-start; }
  /* Filterzone Mobile (Real-Device-Fix): Kategorien umbrechen vollständig (keine horizontale Überlagerung),
     darunter eigene Utility-Zeile mit Auswahl (Anzahl/Jahr) und PDF. Desktop unverändert. */
  .kurse__controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
  .kurse__controls .kurse__filter { grid-column:1 / -1; flex-wrap:wrap !important; overflow:visible !important; flex:none; gap:6px; }
  .kurse__controls .kurse__filter-btn { flex-shrink:0; }
  .kurse__controls .kurse__count-select { grid-column:1; justify-self:start; min-height:36px; }
  .kurse__controls .kurse__print-btn { grid-column:2; justify-self:end; min-height:36px; }
}

/* ── 7. Kalender: auf kleinen Screens volle Breite, kompakter Header ────────── */
@media(max-width:480px){
  .cal__header { padding: var(--space-s) var(--space-m); }
  .cal__today-btn { font-size: 10px; padding: 0 7px; }
  .cal__filters { grid-template-columns: 1fr; }
  .cal__filters select { width: 100%; }
  .cal__reset { grid-column: span 1; }
  .cal__day { font-size: 10px; border-radius: 4px; }
}

/* ── 8. Themen-Grid: 1-spaltig unter 400px ──────────────────────────────────── */
@media(max-width:400px){
  .themen__grid { grid-template-columns: 1fr; }
  .thema-card { padding: var(--space-m); }
}

/* ── 9. Zielgruppen-Grid: 1-spaltig unter 400px ────────────────────────────── */
@media(max-width:400px){
  .zg-grid { grid-template-columns: 1fr; }
}

/* ── 10. Buchungsschritte: Nummern kleiner auf 360px ───────────────────────── */
@media(max-width:360px){
  .schritt__number { font-size: var(--t-xl); min-width: 36px; }
}

/* ── 11. Share-Modal: auf kleinen Screens volle Breite, kein Überlauf ────────── */
@media(max-width:480px){
  .share-box { border-radius: var(--radius-s); }
  .share-preview { padding: var(--space-m); }
  .share-preview__title { font-size: 16px; }
  .share-platforms { gap: var(--space-xs); }
  .share-platforms .share-platform-btn { min-width: 64px; }
  .share-body { padding: var(--space-m); }
  .share-format-btn { padding: var(--space-s); }
  .share-format-btn__icon { width: 28px; height: 28px; font-size: 14px; }
  .share-format-btn strong { font-size: var(--t-xs); }
  .share-format-btn span   { display: none; }
}

/* ── 12. Testimonials: Stack auf Mobile, volle Breite ──────────────────────── */
@media(max-width:600px){
  .testi-grid { grid-template-columns: 1fr; }
  .testi-card { padding: var(--space-m); }
}

/* ── 13. Login-CTA Tiles: padding reduzieren auf Mobile ─────────────────────── */
@media(max-width:480px){
  .login-tile { padding: var(--space-l) var(--space-m); }
  .login-tile h3 { font-size: var(--t-m); }
}

/* ── 14. Footer Bottom: E-Mail-Adresse bricht nicht aus ─────────────────────── */
@media(max-width:480px){
  .footer__bottom p { word-break: break-word; }
  .footer__bottom-links { flex-wrap: wrap; gap: var(--space-s); }
  .footer__grid { gap: var(--space-l); }
}

/* ── 15. Warum-New: auf Mobile Bild kompakter ────────────────────────────────── */
@media(max-width:600px){
  .warum-new__img { aspect-ratio: 3/2; }
}

/* ── 16. Intro-Split: auf iPhone Abstand reduzieren ─────────────────────────── */
@media(max-width:480px){
  .intro__kmt-badge { font-size: 11px; padding: var(--space-xs) var(--space-s); flex-wrap: wrap; }
  .team-card { gap: var(--space-s); }
  .team-card__avatar { width: 40px; height: 40px; }
}

/* ── 17. FAQ-Frage nicht abgeschnitten auf kleinen Screens ──────────────────── */
@media(max-width:480px){
  .faq-item__question { font-size: var(--t-s); }
  .faq-item__trigger  { padding: var(--space-s) 0; }
}

/* ── 18. Navbar-Logo: auf sehr kleinen Screens nicht zu groß ────────────────── */
@media(max-width:360px){
  .nav__logo img { height: 30px; }
}

/* ── 19. Legal-Seiten: Padding auf Mobile reduzieren ───────────────────────── */
@media(max-width:480px){
  .legal-content { padding-block: var(--space-2xl) var(--space-xl); }
  .legal-content h1 { font-size: var(--t-xl); }
  .legal-content ul { margin-left: var(--space-m); }
}

/* ── 20. Fokus-Sichtbarkeit für Keyboard-Navigation ────────────────────────── */
:focus-visible {
  outline: 2px solid var(--blau);
  outline-offset: 3px;
  border-radius: 4px;
}
button:focus-visible, a:focus-visible { outline: 2px solid var(--blau); outline-offset: 3px; }

/* ── 21. Landscape-Phone: Hero-Höhe anpassen ───────────────────────────────── */
@media(max-height:500px) and (orientation:landscape){
  .hero { min-height: auto; }
  .hero__inner { padding-block: var(--space-xl); }
}

/* ── 22. Container: kein seitlicher Überlauf bei langen Wörtern ─────────────── */
.container, .legal-content {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* ── 23. Bilder nie breiter als Container ───────────────────────────────────── */
img { max-width: 100%; height: auto; }

/* ── 24. Slider-Dots auf Mobile besser tappbar ──────────────────────────────── */
@media(max-width:600px){
  .hero-slider__dots { bottom: var(--space-m); gap: 10px; }
  .hero-slider__dot  { width: 10px; height: 10px; padding: 4px; box-sizing: content-box; }
}

/* ══════════════════════════════════════════════════════════════
   NEUE SEKTIONEN: Podcast, Kontakt, Forschung, Partner,
   Cookie-Banner, Back-to-Top
   ══════════════════════════════════════════════════════════════ */

/* ── Podcast ────────────────────────────────────────────────── */
.podcast { background: var(--text); color: rgba(255,255,255,.85); }
.podcast__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2xl); align-items: start; }
@media(max-width:900px){ .podcast__inner { grid-template-columns: 1fr; } }
.podcast__meta { display: flex; flex-direction: column; gap: var(--space-m); }
.podcast__cover { width: 120px; height: 120px; border-radius: var(--radius-m); overflow: hidden; flex-shrink: 0; background: var(--bg-3); }
.podcast__cover img { width:100%; height:100%; object-fit:cover; }
.podcast__title-row { display: flex; gap: var(--space-m); align-items: flex-start; }
.podcast__title-text h2 { color: #fff; font-size: var(--t-xl); margin-bottom: var(--space-xs); }
.podcast__title-text p  { color: rgba(255,255,255,.6); font-size: var(--t-s); }
.podcast__platforms { display: flex; gap: var(--space-s); flex-wrap: wrap; margin-top: var(--space-s); }
.podcast__platform-link { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: var(--radius-pill); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.8); font-family: 'ibm-plex-sans',sans-serif; font-size: var(--t-xs); font-weight: 500; text-decoration: none; transition: background .15s; }
.podcast__platform-link:hover { background: rgba(255,255,255,.15); }
/* Episodes list */
.podcast__episodes { display: flex; flex-direction: column; gap: 4px; }
.podcast__ep { background: rgba(255,255,255,.04); border-radius: var(--radius-s); padding: 12px var(--space-m); display: flex; gap: var(--space-m); align-items: flex-start; border: 1px solid rgba(255,255,255,.07); transition: background .15s; }
.podcast__ep:hover { background: rgba(255,255,255,.08); }
/* Thumbnail with play overlay */
.podcast__ep-thumb { position: relative; width: 72px; height: 72px; border-radius: var(--radius-s); overflow: hidden; flex-shrink: 0; background: rgba(255,255,255,.1); }
.podcast__ep-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.podcast__ep-play { position: absolute; inset: 0; background: rgba(5,37,59,.3); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.podcast__ep-play:hover { background: rgba(5,37,59,.7); }
.podcast__ep--active .podcast__ep-play { background: rgba(238,29,37,.6); }
/* Episode body */
.podcast__ep-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; padding-top: 2px; }
.podcast__ep-title { font-size: var(--t-xs); font-weight: 600; color: rgba(255,255,255,.92); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.podcast__ep-meta { display: flex; gap: 10px; flex-wrap: wrap; }
.podcast__ep-date { font-size: 11px; color: rgba(255,255,255,.4); }
.podcast__ep-dur  { font-size: 11px; color: rgba(255,255,255,.35); }
.podcast__skeleton-ep { height: 96px; border-radius: var(--radius-s); margin-bottom: 4px; }
.podcast__load-more { margin-top: var(--space-m); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.7); padding: 10px 24px; border-radius: var(--radius-pill); font-family: 'ibm-plex-sans',sans-serif; font-size: var(--t-xs); font-weight: 500; cursor: pointer; transition: background .15s; }
.podcast__load-more:hover { background: rgba(255,255,255,.14); }

/* ── Partner-Logos ──────────────────────────────────────────── */
.partner { padding-block: var(--space-xl); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.partner__inner { display: flex; align-items: center; gap: var(--space-xl); flex-wrap: wrap; justify-content: center; }
.partner__label { font-size: var(--t-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); white-space: nowrap; }
.partner__logos { display: flex; align-items: center; gap: var(--space-xl); flex-wrap: wrap; justify-content: center; flex: 1; }
.partner__logo { display: flex; align-items: center; text-decoration: none; opacity: .55; filter: grayscale(40%); transition: opacity .2s, filter .2s; }
.partner__logo:hover { opacity: 1; filter: none; }
.partner__logo img { max-height: 52px; width: auto; max-width: 160px; object-fit: contain; display: block; }

/* ── Share platforms: flex-wrap so 5 buttons never overflow ──── */

/* ── Forschungs-Sektion ─────────────────────────────────────── */
.forschung__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2xl); align-items: center; }
@media(max-width:768px){ .forschung__inner { grid-template-columns: 1fr; gap: var(--space-l); } }
.forschung__content h2 { font-size: var(--t-xl); margin-bottom: var(--space-m); }
.forschung__content p  { color: var(--text-2); margin-bottom: var(--space-m); }
.forschung__pillars { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-s); margin-bottom: var(--space-l); }
@media(max-width:480px){ .forschung__pillars { grid-template-columns: 1fr; } }
.forschung__pillar { background: var(--bg-2); border-radius: var(--radius-s); padding: var(--space-m); border-left: 3px solid var(--blau); }
.forschung__pillar h4 { font-family: 'ibm-plex-sans',sans-serif; font-size: var(--t-s); font-weight: 600; color: var(--text); margin-bottom: 4px; }
.forschung__pillar p  { font-size: var(--t-xs); color: var(--text-3); margin: 0; }
.forschung__visual { background: var(--bg-3); border-radius: var(--radius-m); padding: var(--space-2xl); display: flex; flex-direction: column; gap: var(--space-m); border: 1px solid var(--line); }
.forschung__stat { text-align: center; }
.forschung__stat-val { font-family: 'plume',serif; font-size: var(--t-2xl); color: var(--blau); letter-spacing: -.03em; display: block; }
.forschung__stat-lbl { font-size: var(--t-xs); color: var(--text-3); }
.forschung__divider { width: 100%; height: 1px; background: var(--line); }

/* ── Kontaktformular ────────────────────────────────────────── */
.kontakt__inner { max-width: 560px; margin: 0 auto; }
@media(max-width:768px){ .kontakt__inner { max-width: none; } }
.kontakt__info h2 { font-size: var(--t-xl); margin-bottom: var(--space-m); }
.kontakt__info p  { color: var(--text-2); margin-bottom: var(--space-l); }
.kontakt__details { display: flex; flex-direction: column; gap: var(--space-m); }
.kontakt__detail  { display: flex; gap: var(--space-m); align-items: flex-start; }
.kontakt__detail-icon { width: 40px; height: 40px; background: var(--bg-3); border-radius: var(--radius-s); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--blau); }
.kontakt__detail-text strong { display: block; font-size: var(--t-s); color: var(--text); font-weight: 600; margin-bottom: 2px; }
.kontakt__detail-text span   { font-size: var(--t-s); color: var(--text-2); }
/* Form */
.form-card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius-m); padding: var(--space-xl); }
.form-row   { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-m); }
@media(max-width:600px){ .form-row { grid-template-columns: 1fr; } }
.form-group { display: flex; flex-direction: column; gap: var(--space-xs); margin-bottom: var(--space-m); }
.form-group label { font-size: var(--t-xs); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); }
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%; padding: 11px 16px; border: 1.5px solid var(--line);
  border-radius: var(--radius-s); font-family: 'ibm-plex-sans',sans-serif;
  font-size: var(--t-s); color: var(--text); background: var(--bg);
  transition: border-color .15s, box-shadow .15s; resize: vertical;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none; border-color: var(--blau);
  box-shadow: 0 0 0 3px rgba(0,84,142,.10);
}
.form-group textarea { min-height: 120px; }
.form-group .opt-label { font-size: 10px; color: var(--text-3); font-weight: 400; letter-spacing: 0; text-transform: none; margin-left: 4px; }
/* Honeypot */
.form-hp { display: none !important; }
/* Status message */
.form-status { display: none; padding: var(--space-m); border-radius: var(--radius-s); font-size: var(--t-s); margin-top: var(--space-m); }
.form-status--ok  { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.3); color: #166534; display: block; }
.form-status--err { background: rgba(238,29,37,.08); border: 1px solid rgba(238,29,37,.2); color: var(--rot); display: block; }

/* ── Cookie-Banner ──────────────────────────────────────────── */
.cookie-banner {
  position: fixed; bottom: var(--space-m); left: var(--space-m); right: var(--space-m);
  z-index: 999; background: var(--text); color: rgba(255,255,255,.85);
  border-radius: var(--radius-m); padding: var(--space-m) var(--space-l);
  box-shadow: 0 8px 40px rgba(5,37,59,.4);
  max-width: 820px; margin-inline: auto;
  display: flex; align-items: flex-start; gap: var(--space-m); flex-wrap: wrap;
}
.cookie-banner__icon { width: 40px; height: 40px; border-radius: var(--radius-s); background: rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.65); flex-shrink: 0; margin-top: 2px; }
.cookie-banner__content { flex: 1; min-width: 200px; }
.cookie-banner__title { display: block; font-size: var(--t-xs); font-weight: 700; color: #fff; margin-bottom: 4px; }
.cookie-banner__text { font-size: var(--t-xs); line-height: 1.6; color: rgba(255,255,255,.65); }
.cookie-banner__text strong { color: rgba(255,255,255,.85); font-weight: 600; }
.cookie-banner a { color: rgba(255,255,255,.6); text-decoration: underline; }
.cookie-banner__actions { display: flex; gap: var(--space-s); flex-shrink: 0; align-self: center; }
.cookie-accept { background: var(--rot); color: #fff; border: none; padding: 10px 22px; border-radius: var(--radius-pill); font-family: 'ibm-plex-sans',sans-serif; font-size: var(--t-xs); font-weight: 600; cursor: pointer; transition: background .15s; }
.cookie-accept:hover { background: #cc1820; }
.cookie-decline { background: transparent; color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.2); padding: 10px 18px; border-radius: var(--radius-pill); font-family: 'ibm-plex-sans',sans-serif; font-size: var(--t-xs); cursor: pointer; transition: background .15s; }
.cookie-decline:hover { background: rgba(255,255,255,.08); }
@media(max-width:600px){
  .cookie-banner { padding: var(--space-m); gap: var(--space-s); left: var(--space-s); right: var(--space-s); }
  .cookie-banner__icon { display: none; }
  .cookie-banner__actions { width: 100%; }
  .cookie-accept, .cookie-decline { flex: 1; text-align: center; }
}

/* ── Back-to-Top ────────────────────────────────────────────── */
.back-to-top {
  position: fixed; bottom: var(--space-l); right: var(--space-l); z-index: 100;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--text); color: #fff; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(5,37,59,.25);
  opacity: 0; transform: translateY(12px);
  transition: opacity .3s, transform .3s, background .15s;
  pointer-events: none;
}
.back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.back-to-top:hover { background: var(--blau); }
@media(max-width:600px){ .back-to-top { bottom: var(--space-m); right: var(--space-m); } }

/* ── Nav Social-Icons ───────────────────────────────────────── */
.nav__social { display: flex; gap: 6px; align-items: center; }
.nav__social-btn {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--bg-3); color: var(--text-2);
  display: flex; align-items: center; justify-content: center;
  text-decoration: none; transition: background .15s, color .15s;
  flex-shrink: 0;
}
.nav__social-btn:hover { background: var(--blau); color: #fff; }
@media(max-width:900px){ .nav__social { display: none; } }

/* ── Testimonial Slider ─────────────────────────────────────── */
.testi-slider { overflow: hidden; }
.testi-track  { display: flex; transition: transform .4s ease; will-change: transform; }
.testi-track .testi-card { min-width: 0; }
.testi-controls { display: flex; align-items: center; justify-content: center; gap: var(--space-m); margin-top: var(--space-l); }
.testi-btn { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--bg); color: var(--text-2); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, border-color .15s, color .15s; flex-shrink: 0; }
.testi-btn:hover { background: var(--bg-3); border-color: var(--blau); color: var(--blau); }
.testi-dots { display: flex; gap: 8px; align-items: center; }
.testi-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bg-3); border: 1.5px solid var(--line); cursor: pointer; transition: background .2s, transform .2s, border-color .2s; padding: 0; }
.testi-dot.is-active { background: var(--blau); border-color: var(--blau); transform: scale(1.3); }

/* ── Forschung: single-column override ─────────────────────── */
.forschung__inner { max-width: 760px; margin-inline: auto; display: block; }
.forschung__inner .forschung__content { width: 100%; }

/* ── Kalender DOM-Tooltip ───────────────────────────────────── */
.cal__tooltip-box {
  position: absolute;
  background: var(--text);
  color: #fff;
  padding: 10px 14px;
  border-radius: var(--radius-s);
  font-family: 'ibm-plex-sans', sans-serif;
  font-size: 12px;
  line-height: 1.5;
  max-width: 240px;
  min-width: 160px;
  pointer-events: none;
  z-index: 300;
  box-shadow: 0 4px 20px rgba(5,37,59,.3);
}
.cal__tooltip-box strong { display: block; color: #fff; font-weight: 600; margin-bottom: 2px; }
.cal__tooltip-box span   { color: rgba(255,255,255,.55); font-size: 11px; }

/* ── Podcast CI-Player ──────────────────────────────────────── */
.podcast__ep-progress { margin-top: var(--space-s); }
.podcast__progress-bar { height: 4px; background: rgba(255,255,255,.15); border-radius: 2px; cursor: pointer; position: relative; }
.podcast__progress-fill { height: 100%; background: var(--rot); border-radius: 2px; pointer-events: none; transition: width .1s linear; }
.podcast__time-row { display: flex; justify-content: space-between; margin-top: 4px; }
.podcast__time-current,
.podcast__time-total { font-size: 10px; color: rgba(255,255,255,.4); font-family: 'ibm-plex-sans', sans-serif; }

/* ── Share-Modal: iOS Bottom-Sheet ─────────────────────────── */
.share-overlay { align-items: flex-end; padding: 0; }
@media(min-width:600px){ .share-overlay { align-items: center; padding: var(--space-m); } }

.share-box {
  border-radius: 20px 20px 0 0;
  width: 100%; max-width: 100%;
  max-height: 90vh; overflow-y: auto;
  animation: slideUp .3s ease;
}
@media(min-width:600px){
  .share-box { border-radius: var(--radius-m); max-width: 480px; animation: none; }
}

.share-box::before {
  content: '';
  display: block;
  width: 36px; height: 4px;
  background: var(--line);
  border-radius: 2px;
  margin: 12px auto 0;
}
@media(min-width:600px){ .share-box::before { display: none; } }

@keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }

.share-platform-btn .icon { width: 56px; height: 56px; border-radius: 14px; display:flex; align-items:center; justify-content:center; }
.share-platform-btn span  { font-size: 11px; color: var(--text-3); }

/* ── Series Badge ───────────────────────────────────────────── */
.badge--series { background: rgba(238,29,37,.1); color: var(--rot); border: 1px solid rgba(238,29,37,.2); }

/* ── Course Search Input ────────────────────────────────────── */
.kurse__search-wrap { position: relative; margin-bottom: var(--space-s); }
.kurse__search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--text-3); pointer-events: none; }
.kurse__search { width: 100%; padding: 10px 14px 10px 36px; border-radius: var(--radius-pill); border: 1.5px solid var(--line); background: var(--bg); font-family: 'ibm-plex-sans', sans-serif; font-size: var(--t-xs); color: var(--text); transition: border-color .15s, box-shadow .15s; }
.kurse__search:focus { outline: none; border-color: var(--blau); box-shadow: 0 0 0 3px rgba(0,84,142,.10); }
.kurse__search::placeholder { color: var(--text-3); }
.kurse__search::-webkit-search-cancel-button { cursor: pointer; }

/* ── Buchungsschritte Divider ───────────────────────────────── */
.schritte__divider { width: 100%; height: 1px; background: rgba(255,255,255,.12); margin-top: var(--space-2xl); }

/* ── PDF Print button ──────────────────────────────────────── */
.kurse__print-btn { display:flex; align-items:center; gap:5px; background:none; border:1px solid var(--line); color:var(--text-3); border-radius:var(--radius-s); padding:6px 10px; font-size:var(--t-xs); font-family:'ibm-plex-sans',sans-serif; cursor:pointer; white-space:nowrap; transition:border-color .15s, color .15s; }
.kurse__print-btn:hover { border-color:var(--rot); color:var(--rot); }

/* ── Zielgruppen list (no icons) ───────────────────────────── */
.zg-list { list-style:disc; padding-left:var(--space-l); margin:0; display:flex; flex-direction:column; gap:var(--space-xs); }
.zg-list__item { font-size:var(--t-base); color:var(--text-2); }

/* ── Year divider & toggle ──────────────────────────────────── */
.year-divider { display:flex; align-items:center; gap:var(--space-m); padding:var(--space-m) 0 var(--space-xs); }
.year-divider::before,.year-divider::after { content:''; flex:1; height:1px; background:var(--line); }
.year-divider__label { font-family:'ibm-plex-sans',sans-serif; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); flex-shrink:0; }
.kurse__year-toggle { text-align:center; padding:var(--space-m) 0; }
.kurse__year-toggle-btn { background:none; border:1.5px solid var(--line); border-radius:var(--radius-pill); padding:8px 22px; font-family:'ibm-plex-sans',sans-serif; font-size:var(--t-xs); font-weight:600; color:var(--text-2); cursor:pointer; transition:border-color .15s,color .15s; }
.kurse__year-toggle-btn:hover { border-color:var(--blau); color:var(--blau); }

/* ── PDF Print styles ──────────────────────────────────────── */
.kurse__print-header { display:none; }
.kurse__print-header__logo { height:30pt; width:auto; }
.kurse__print-header__title { font-size:15pt; font-weight:700; display:block; }
.kurse__print-header__subtitle { display:block; }
.kurse__print-header__meta { display:block; }

@media print {
  @page { size: A4 portrait; margin: 15mm 12mm 12mm; }

  nav, .hero, section:not(#kurse), footer, .cookie-banner, .share-overlay, .partner { display:none !important; }
  body { font-family:'ibm-plex-sans',sans-serif; color:#05253B; background:#fff; }

  #kurse { padding-block:0 !important; }
  #kurse .container { padding:0 !important; max-width:none !important; }
  #kurse .section-header, .kurse__search-wrap, .kurse__controls { display:none !important; }

  .kurse__print-header { display:flex !important; flex-direction:column; align-items:center; text-align:center; padding-bottom:12pt; border-bottom:2pt solid #EE1D25; margin-bottom:18pt; gap:2pt; }
  .kurse__print-header__logo { height:38pt !important; width:auto; margin-bottom:6pt; }
  .kurse__print-header__title { font-size:14pt; font-weight:700; color:#05253B; font-family:'ibm-plex-sans',sans-serif; }
  .kurse__print-header__subtitle { font-size:12pt; font-weight:400; color:#05253B; font-family:'ibm-plex-sans',sans-serif; }
  .kurse__print-header__meta { font-size:8pt; color:#3a5570; margin-top:4pt; font-family:'ibm-plex-sans',sans-serif; }

  .kurse-layout { display:block !important; }
  .cal { display:none !important; }

  .kurse__grid { display:flex !important; flex-direction:column !important; gap:6pt !important; }

  .kurs-card { border:1pt solid #e2e8f0 !important; border-left:3pt solid #00548E !important; border-radius:4pt !important; display:grid !important; grid-template-columns:1fr auto !important; align-items:center !important; box-shadow:none !important; break-inside:avoid; page-break-inside:avoid; opacity:1 !important; }
  .reveal { opacity:1 !important; transform:none !important; }
  .kurs-card__body { padding:8pt 12pt !important; }
  .kurs-card__title { font-size:10pt !important; font-weight:700 !important; margin:0 0 3pt !important; line-height:1.3 !important; }
  .kurs-card__meta { font-size:8pt !important; }
  .kurs-card__actions { padding:8pt 12pt 8pt 0 !important; display:flex !important; gap:6px !important; flex-shrink:0 !important; border-top:none !important; }
  .kurs-card__actions .btn { font-size:8pt !important; padding:3pt 8pt !important; background:#EE1D25 !important; color:#fff !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; border-radius:4pt !important; text-decoration:none !important; }
  .btn-share { display:none !important; }
  .skeleton-card { display:none !important; }
  .kurse__year-toggle { display:none !important; }

  body::after { content:"Gottfried Gutmann Akademie · Fährstraße 2a · 59071 Hamm · gga-hamm.de"; display:block; margin-top:20pt; padding-top:8pt; border-top:0.5pt solid #ccc; font-size:8pt; color:#6b8099; text-align:center; }
}

/* ── Interne KMT Schulungen ───────────────────────────────────── */
.intern-notice {
  display: flex; align-items: flex-start; gap: var(--space-m);
  background: rgba(0,84,142,.07); border: 1px solid rgba(0,84,142,.18);
  border-radius: var(--radius-m); padding: var(--space-l);
  margin: var(--space-xl) 0 0;
}
.intern-notice svg { color: var(--blau); flex-shrink: 0; margin-top: 2px; }
.intern-notice strong { display: block; font-size: var(--t-s);
  font-weight: 600; color: var(--text); margin-bottom: 4px; }
.intern-notice p { font-size: var(--t-s); color: var(--text-2); margin: 0; }

.page-hero { padding-block: var(--space-2xl); background: var(--text); }
.page-hero .eyebrow { color: rgba(255,255,255,.45); display: block;
  margin-bottom: var(--space-s); }
.page-hero h1 { color: #fff; font-size: var(--t-2xl); margin-bottom: var(--space-m); }
.page-hero p  { color: rgba(255,255,255,.65); font-size: var(--t-m);
  max-width: 560px; }

/* ── Nav-Dropdown (Kurse-Untermenü) ───────────────────────────── */
.nav__item--has-sub { position: relative; }
.nav__sub {
  /* Hover-Zone (Real-Device-Fix): unsichtbare Brücke schließt den Abstand zwischen Trigger und Menü,
     kurze Schließ-Verzögerung (200 ms) statt sofortigem Verschwinden. Tastatur über :focus-within unverändert. */
  visibility: hidden; opacity: 0; pointer-events: none;
  position: absolute; top: calc(100% + 8px); left: -12px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: var(--space-xs) 0; min-width: 220px; list-style: none;
  box-shadow: 0 8px 32px rgba(5,37,59,.12); z-index: 201;
  transition: opacity .15s ease, visibility 0s linear .2s;
}
.nav__sub::before { content: ''; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.nav__item--has-sub:hover .nav__sub,
.nav__item--has-sub:focus-within .nav__sub {
  visibility: visible; opacity: 1; pointer-events: auto;
  transition: opacity .15s ease, visibility 0s linear 0s;
}
.nav__sub a {
  display: block; padding: var(--space-s) var(--space-m);
  font-size: var(--t-s); color: var(--text-2); text-decoration: none;
  transition: background .15s, color .15s; white-space: nowrap;
}
.nav__sub a:hover { background: var(--bg-2); color: var(--text); }
.nav__sub a[aria-current="page"] { color: var(--blau); font-weight: 600; }

/* ── GGA-Magazin ───────────────────────────────────────────────── */
.badge--kursbericht  { background: rgba(0,84,142,.1);  color: var(--blau); }
.badge--fallbeispiel { background: rgba(238,29,37,.08); color: var(--rot); }
.badge--fachbeitrag  { background: rgba(5,37,59,.08);   color: var(--text); }

/* Feature-Kachel (erster Beitrag, volle Breite) */
.magazin-feature { margin-bottom: var(--space-2xl); border: 1px solid var(--line); border-radius: var(--radius-m); overflow: hidden; }
.magazin-feature__link { display: block; text-decoration: none; color: inherit; }
.magazin-feature__img { aspect-ratio: 21/9; overflow: hidden; background: var(--bg-2); }
.magazin-feature__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.magazin-feature__link:hover .magazin-feature__img img { transform: scale(1.02); }
.magazin-feature__body { padding: var(--space-l) var(--space-l) var(--space-xl); }
.magazin-feature__title { font-size: var(--t-xl); margin: var(--space-s) 0 var(--space-s); }
.magazin-feature__excerpt { color: var(--text-2); font-size: var(--t-base); max-width: 640px; margin-bottom: var(--space-m); }

/* Kachel-Grid */
.magazin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-l); }
.magazin-card { border: 1px solid var(--line); border-radius: var(--radius-m); overflow: hidden; transition: box-shadow .2s; display: flex; flex-direction: column; }
.magazin-card:hover { box-shadow: 0 4px 16px rgba(5,37,59,.08); }
.magazin-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.magazin-card__img { aspect-ratio: 3/2; overflow: hidden; background: var(--bg-2); }
.magazin-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.magazin-card__body { padding: var(--space-m); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.magazin-card__title { font-size: var(--t-s); line-height: 1.35; margin: 4px 0 2px; }
.magazin-card__excerpt { font-size: var(--t-xs); color: var(--text-2); line-height: 1.6; }
.magazin-card__meta { display: flex; gap: var(--space-s); font-size: 11px; color: var(--text-3); margin-top: 2px; }
.magazin-card__more { font-size: var(--t-xs); font-weight: 600; color: var(--blau); margin-top: auto; padding-top: var(--space-xs); }

.magazin-pagination { display: flex; justify-content: center; gap: 6px; margin-top: var(--space-2xl); }
.magazin-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 12px; border-radius: var(--radius-pill); border: 1.5px solid var(--line); font-size: var(--t-xs); font-weight: 600; color: var(--text-2); text-decoration: none; }
.magazin-pagination .page-numbers.current { background: var(--rot); border-color: var(--rot); color: #fff; }
.magazin-pagination .page-numbers:hover:not(.current) { border-color: var(--blau); color: var(--blau); }

/* Einzelartikel */
.magazin-article__head { max-width: 860px; margin-inline: auto; padding-block: var(--space-2xl) var(--space-m); }
.magazin-article__meta { display: flex; align-items: center; gap: var(--space-xs); font-size: var(--t-xs); color: var(--text-3); margin-bottom: var(--space-m); }
.magazin-article__meta-sep { opacity: .5; }
.magazin-article__title { font-size: var(--t-2xl); margin-bottom: var(--space-m); }
.magazin-article__excerpt { font-family: 'plume', serif; font-style: italic; font-size: var(--t-m); color: var(--text-2); line-height: 1.5; }
.magazin-article__hero { overflow: hidden; border-radius: var(--radius-m); background: var(--bg-2); }
.magazin-article__hero img { width: 100%; height: auto; display: block; }
.magazin-article__body { max-width: 740px; margin-inline: auto; font-size: var(--t-base); color: var(--text-2); line-height: 1.8; }
.magazin-article__body p { margin-bottom: var(--space-m); }
.magazin-article__body h2 { font-size: var(--t-l); margin: var(--space-xl) 0 var(--space-s); }
.magazin-article__body h3 { font-size: var(--t-m); margin: var(--space-l) 0 var(--space-s); }
.magazin-article__body img { max-width: 100%; height: auto; border-radius: var(--radius-s); }

/* Dynamic Course Discovery (Magazin V0.1 / Editorial Design Refinement V0.1.1):
   ruhige Kurs-Empfehlung am Artikelende - erscheint nur, wenn kein manuell
   kuratierter Kurslink gesetzt ist (single-kursbericht.php, $course_url). Der
   zufällig ausgewählte Kurs sitzt in einer eigenständigen, dezenten Karte
   (.magazin-course-box__card), klar vom übrigen Fließtext abgegrenzt. */
.magazin-course-box { max-width: 740px; margin: 3.2rem auto 0; padding: 1.6rem 1.7rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.magazin-course-box__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blau); margin-bottom: .5rem; }
.magazin-course-box__title { font-family: 'plume', serif; font-size: 1.3rem; line-height: 1.3; margin-bottom: 22px; color: var(--text); }
.magazin-course-box__card { width: 100%; background: #F3F7FA; border: 1px solid rgba(0,84,142,.16); border-radius: 14px; padding: 24px; box-sizing: border-box; }
.magazin-course-box__card-label { font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--blau); margin-bottom: 10px; }
.magazin-course-box__course-title { font-size: 21px; font-weight: 600; line-height: 1.35; color: var(--text); margin-bottom: 8px; }
.magazin-course-box__course-date { font-size: 15px; color: var(--text-3); margin-bottom: 19px; }
.magazin-course-box__course-link.btn { font-size: 14.5px; padding: 10px 18px; }
.magazin-course-box__all-link.btn { font-size: 14.5px; padding: 11px 20px; margin-top: 22px; }
@media (max-width: 600px) {
  .magazin-course-box__card { padding: 19px; }
  .magazin-course-box__course-title { font-size: 19px; }
}

.magazin-share { max-width: 740px; margin: var(--space-xl) auto 0; padding-top: var(--space-l); border-top: 1px solid var(--line); display: flex; align-items: center; gap: var(--space-s); }
.magazin-share__label { font-size: var(--t-xs); font-weight: 600; color: var(--text-3); margin-right: var(--space-xs); }
.magazin-share__btn { background: var(--bg-2); color: var(--text-2); border: 1.5px solid var(--line); width: 36px; height: 36px; border-radius: var(--radius-pill); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; transition: background .15s, color .15s; }
.magazin-share__btn:hover { background: var(--blau); color: #fff; }

/* Interne Schulungen (User-Test Release Fix 2): eigene CI-Gewichtung.
   Blau (#00548E / #05253B) dominiert, Rot bleibt zurueckhaltend (nur Hover-Akzent).
   Nur innerhalb von .kurse--intern, keine Auswirkung auf die oeffentliche Liste. */
.kurse--intern .kurs-card__title { color: #05253B; }
.kurse--intern .btn-book { background: #00548E; border-color: #00548E; color: #fff; }
.kurse--intern .btn-book:hover { background: #05253B; border-color: #05253B; }

/* QR-Code pro Kurs (Release Fix 2): auf dem Bildschirm verborgen, im Druck
   25–30 mm quadratisch mit 4 Modulen Quiet Zone (in der SVG-Ausgabe enthalten). */
.kurs-card__qr { display:none; }
@media print {
  .kurs-card__qr { display:block !important; width:28mm; height:28mm; flex-shrink:0; }
  .kurs-card__qr svg { display:block; width:100%; height:100%; }
  .kurs-card__actions { align-items:center !important; }
}

/* Kursberater nie im Website-/Kurslisten-PDF (Final Visual Mobile PDF): Launcher, Panel
   und alle Unterelemente, unabhängig davon ob geöffnet, minimiert oder mit Untermenü. */
@media print {
  .gga-advisor-root, .gga-advisor-root *, .gga-advisor-launcher, .gga-advisor-panel { display: none !important; }
}

.kurs-card__part { display:block; }

/* Magazin-Artikel im Druck (Browser-Print/PDF): A4-Lesetext, ohne Navigation, Kursberater, Share, Verwandtes */
@media print {
  .magazin-share, .magazin-course-box, .magazin-bridge, .magazin-related, #main-content > section.section--alt, .gga-advisor-root { display:none !important; }
  .magazin-article__hero { aspect-ratio:auto; max-height:90mm; margin-bottom:8pt; }
  .magazin-article__hero img { height:auto; max-height:90mm; object-fit:contain; }
  .magazin-article__body { max-width:none; font-size:10.5pt; line-height:1.5; color:#05253B; }
  .magazin-article__title { font-size:18pt; }
  .magazin-article__body h2 { font-size:13pt; break-after:avoid; }
  .magazin-article__body h3 { break-after:avoid; }
  .magazin-article__body blockquote { break-inside:avoid; }
  .magazin-article__body img { max-height:90mm; object-fit:contain; break-inside:avoid; }
}

/* Magazin-Artikel: Lead-Absatz und Pull Quote (Block-Varianten, nur Darstellung) */
.magazin-article__body .gga-lead { font-size: var(--t-m); font-weight: 600; color: var(--text); line-height: 1.6; margin-bottom: var(--space-l); }
.magazin-article__body .wp-block-pullquote { border: none; margin: var(--space-xl) 0; padding: 0; }
.magazin-article__body .wp-block-pullquote p { margin: 0; }

/* ===== Editorial Redesign Magazinartikel (Lesbarkeit zuerst, zurückhaltend) ===== */
.magazin-article__meta { flex-wrap: wrap; letter-spacing: .02em; }
.magazin-article__byline { color: var(--text-2); font-weight: 600; }
.magazin-article__title { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3rem); line-height: 1.12; letter-spacing: -.01em; max-width: 24ch; }
/* V0.2: einheitliches Layoutsystem (Kopf 860 / Text 740 / Bild 960), kein erzwungener zweiter Bildausschnitt */
.magazin-article__hero { max-width: 960px; margin: var(--space-l) auto var(--space-xl); border-radius: 6px; }
.magazin-article__hero img { max-height: 560px; object-fit: cover; object-position: center 35%; }
.magazin-article__body { max-width: 740px; font-size: 17.5px; line-height: 1.78; color: var(--text); }
.magazin-article__body p { margin-bottom: 1.1em; }
.magazin-article__body .gga-lead,
.magazin-article__body p.gga-lead { font-size: 1.2rem; line-height: 1.6; font-weight: 500; color: var(--text); border-left: 2px solid var(--blau); padding-left: 1.1rem; margin-bottom: 2.2rem; }
.magazin-article__body h2 { font-size: 1.45rem; line-height: 1.25; margin: 3.2rem 0 .9rem; color: var(--text); letter-spacing: -.005em; }
.magazin-article__body h2::before { content: ''; display: block; width: 28px; height: 2px; background: var(--blau); margin-bottom: .9rem; }
.magazin-article__body h3 { font-size: 1.1rem; margin: 2.2rem 0 .6rem; }
.magazin-article__body a { color: var(--blau); text-decoration: underline; text-underline-offset: 3px; }
.magazin-article__body a:hover { color: var(--rot); }
.magazin-article__body blockquote { margin: 2.6rem 0; padding: .2rem 0 .2rem 1.4rem; border-left: 3px solid var(--blau); font-family: 'plume', serif; font-style: italic; font-size: 1.45rem; line-height: 1.4; color: var(--text); }
.magazin-bridge { max-width: 740px; margin: 3.2rem auto 0; padding: 1.6rem 1.7rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.magazin-bridge__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blau); margin-bottom: .5rem; }
.magazin-bridge__title { font-family: 'plume', serif; font-size: 1.3rem; line-height: 1.3; margin-bottom: .4rem; color: var(--text); }
.magazin-bridge__text { font-size: .95rem; color: var(--text-3); margin-bottom: .9rem; }
.magazin-bridge__link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; font-size: .95rem; color: var(--blau); text-decoration: none; min-height: 44px; }
.magazin-bridge__link:hover { color: var(--rot); }
.magazin-bridge__link:focus-visible { outline: 2px solid var(--blau); outline-offset: 3px; }
.magazin-share { margin-bottom: 4.5rem; padding-bottom: 1rem; }
@media(max-width:600px){
  .magazin-article__hero { margin: var(--space-m) auto var(--space-l); }
  .magazin-article__hero img { max-height: 320px; }
  .magazin-article__body { font-size: 16.5px; line-height: 1.7; }
  .magazin-article__body .gga-lead { font-size: 1.08rem; }
  .magazin-article__body blockquote { font-size: 1.2rem; }
  .magazin-share { margin-bottom: 3.5rem; }
}

/* ===== Magazin-Übersicht: Editorial statt Blog-Raster (nur Darstellung) ===== */
.magazin-index { padding-top: var(--space-xl); }
/* Filterleiste (Rückmeldung): unter dem aktuellen Beitrag statt davor (schiebt ihn
   sonst zu weit nach unten), als umrandete Kacheln statt Textlinks mit Unterstrich,
   mit vorangestelltem Label "Filter". */
.magazin-rubriken { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: var(--space-xl); }
.magazin-rubriken__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); margin-right: 2px; }
.magazin-rubriken__link { font-size: 13.5px; font-weight: 500; color: var(--text-2); text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; padding: 0 18px; border: 1.5px solid var(--line); border-radius: var(--radius-pill); }
.magazin-rubriken__link:hover { border-color: var(--blau); color: var(--blau); }
.magazin-rubriken__link[aria-current="page"] { background: var(--blau); border-color: var(--blau); color: #fff; font-weight: 600; }
.magazin-rubriken__link:focus-visible { outline: 2px solid var(--blau); outline-offset: 2px; }

/* Rückmeldung: aktueller Beitrag soll umrandet sein (wie die Archivkarte),
   aber ohne deren blaue Hintergrundfarbe - plus Label "Aktueller Beitrag". */
.magazin-feature { margin-bottom: var(--space-3xl); border: 1px solid #DCEAF3; border-radius: 15px; overflow: visible; padding: 24px; }
.magazin-feature__current-label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-3); margin-bottom: 14px; }
.magazin-feature__link { display: grid; grid-template-columns: 1.25fr 1fr; gap: var(--space-2xl); align-items: center; }
.magazin-feature__img { aspect-ratio: 4/3; border-radius: 6px; overflow: hidden; background: var(--bg-2); }
.magazin-feature__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; transition: transform .4s; }
.magazin-feature__link:hover .magazin-feature__img img { transform: scale(1.015); }
.magazin-feature__body { padding: 0; }
.magazin-feature__eyebrow, .magazin-card__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blau); margin-bottom: 10px; }
.magazin-feature__title { font-size: clamp(1.6rem, 1.1rem + 2vw, 2.5rem); line-height: 1.14; margin: 0 0 var(--space-m); color: var(--text); letter-spacing: -.01em; }
.magazin-feature__excerpt { font-family: 'plume', serif; font-style: italic; font-size: 1.12rem; line-height: 1.55; color: var(--text-2); margin-bottom: var(--space-m); max-width: 46ch; }
.magazin-feature__more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; color: var(--blau); margin-top: var(--space-m); min-height: 44px; }
.magazin-feature__link:hover .magazin-feature__more { color: var(--rot); }
.magazin-feature__link:focus-visible { outline: 2px solid var(--blau); outline-offset: 4px; }

/* Experimentelle Archivkarte: Wrapper um Feature + Karte. --solo (Standardfall,
   Experiment deaktiviert oder kein geeigneter Beitrag) macht den Wrapper per
   display:contents unsichtbar - .magazin-feature verhält sich dann exakt so,
   als gäbe es den Wrapper nicht (keine Layoutänderung).
   Layoutfehler-Korrektur: die Karte bekommt eine FESTE Breite (260px) statt
   eines proportionalen Grid-Anteils (1fr) - dadurch behält der Hauptbeitrag
   immer den weit überwiegenden, variablen Rest der Breite, unabhängig vom
   Viewport. Vorher nahm die Karte bei breiten Viewports ca. 29% der Zeile
   ein, quetschte die Titelspalte so stark, dass die bestehende globale
   Absicherung .container{overflow-wrap:break-word} einzelne Wörter mitten
   durchbrach. align-items:flex-start statt stretch, damit die Karte quadratisch
   bleibt statt auf die (viel größere) Feature-Höhe gestreckt zu werden. */
.magazin-hero-row--solo { display: contents; }
.magazin-hero-row:not(.magazin-hero-row--solo) {
  display: flex;
  align-items: flex-start;
  gap: var(--space-l);
  margin-bottom: var(--space-3xl);
}
.magazin-hero-row:not(.magazin-hero-row--solo) .magazin-feature { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
/* Titel-Höchstgröße in der aktiven Zeile leicht reduziert (2.5rem -> 2.2rem):
   die Karte nimmt der Titelspalte real Platz weg, auch wenn sie fest-schmal
   ist. Ohne diese kleine Korrektur bricht ein einzelnes sehr langes
   zusammengesetztes Wort bei 1280/1440px knapp mitten im Wort um (greift die
   bestehende globale Absicherung .container{overflow-wrap:break-word}). */
.magazin-hero-row:not(.magazin-hero-row--solo) .magazin-feature__title { font-size: clamp(1.6rem, 1rem + 1.5vw, 2.05rem); }
@media (max-width: 1024px) {
  /* dieselbe Schwelle wie das bestehende Beitragsraster (.magazin-grid, s. o.),
     keine zweite, abweichende Breakpoint-Zahl. Unterhalb dieser Breite steht
     dem Hauptbeitrag ohnehin nicht mehr genug Raum für eine zweite Spalte zur
     Verfügung - die Karte wechselt vollständig darunter. */
  .magazin-hero-row:not(.magazin-hero-row--solo) { flex-direction: column; }
  /* Zeile gestapelt -> Feature hat wieder volle Breite, Titel-Verkleinerung von oben zurücksetzen. */
  .magazin-hero-row:not(.magazin-hero-row--solo) .magazin-feature__title { font-size: clamp(1.6rem, 1.1rem + 2vw, 2.5rem); }
}

/* Quadratische Empfehlungskachel (ca. 260x260px). Breite bleibt fix (260px);
   Höhe ist min-height statt fester height, damit ein ungewöhnlich langer
   Artikeltitel die Kachel nötigenfalls nach unten wachsen lässt statt
   Text abzuschneiden/zu ellipsieren (keine Ellipsis, keine abgeschnittenen
   Inhalte - konsistent mit der dynamischen Kurskomponente). */
.magazin-archive-card { width: 260px; min-height: 260px; flex: 0 0 auto; box-sizing: border-box; background: #EDF5FA; border: 1px solid #DCEAF3; border-radius: 15px; padding: 24px; display: flex; flex-direction: column; justify-content: center; }
.magazin-archive-card__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #00548E; margin-bottom: .6rem; }
.magazin-archive-card__title { font-family: 'plume', serif; font-size: 1.05rem; line-height: 1.32; color: #05253B; margin-bottom: .6rem; }
.magazin-archive-card__intro { font-size: .85rem; line-height: 1.5; color: #05253B; opacity: .72; margin-bottom: 1rem; }
.magazin-archive-card__date { display: block; font-size: .78rem; color: #05253B; opacity: .6; margin-bottom: .8rem; }
.magazin-archive-card__link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: #00548E; text-decoration: none; min-height: 44px; }
.magazin-archive-card__link:hover { color: var(--rot); }
.magazin-archive-card__link:focus-visible { outline: 2px solid #00548E; outline-offset: 3px; }
@media (max-width: 768px) {
  .magazin-hero-row:not(.magazin-hero-row--solo) .magazin-archive-card { margin-top: var(--space-l); }
}

.magazin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2xl) var(--space-xl); }
.magazin-card { border: none; border-radius: 0; overflow: visible; box-shadow: none; background: none; }
.magazin-card:hover { box-shadow: none; }
.magazin-card__link { height: auto; text-decoration: none; color: inherit; }
.magazin-card__img { aspect-ratio: 3/2; border-radius: 6px; overflow: hidden; background: var(--bg-2); margin-bottom: var(--space-m); }
.magazin-card__body { padding: 0; gap: 6px; }
.magazin-card__title { font-family: 'plume', serif; font-size: 1.28rem; line-height: 1.25; margin: 0 0 6px; color: var(--text); }
.magazin-card__excerpt { font-size: 15px; line-height: 1.6; color: var(--text-2); margin-bottom: 6px; }
.magazin-card__meta { font-size: 12.5px; color: var(--text-3); margin-top: 2px; }
.magazin-card__more { font-size: 14px; font-weight: 600; color: var(--blau); margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.magazin-card__link:hover .magazin-card__more { color: var(--rot); }
.magazin-card__link:hover .magazin-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.magazin-card__link:focus-visible { outline: 2px solid var(--blau); outline-offset: 4px; }
.magazin-card .badge { display: none; }

@media(max-width:1024px){ .magazin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:768px){
  .magazin-feature__link { grid-template-columns: minmax(0,1fr); gap: var(--space-l); }
  .magazin-feature__img { aspect-ratio: 16/10; }
}
@media(max-width:600px){ .magazin-grid { grid-template-columns: minmax(0,1fr); gap: var(--space-xl); } .magazin-feature { margin-bottom: var(--space-2xl); padding: 18px; } }

/* ===== Editorial-Bausteine im Artikel (Block Patterns, s. inc/magazin-patterns.php) ===== */
.magazin-article__body .gga-infobox { background: rgba(0,84,142,.05); border-left: 3px solid var(--blau); padding: 1rem 1.25rem; border-radius: 4px; font-size: .95rem; margin: 1.6rem 0; }
.magazin-article__body .gga-takeaways { background: #f5f8fb; border: 1px solid var(--line); border-radius: 6px; padding: 1.25rem 1.4rem; margin: 1.6rem 0; }
.magazin-article__body .gga-takeaways__title { font-weight: 700; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--blau); margin-bottom: 10px; }
.magazin-article__body .gga-takeaways ul { margin: 0; padding-left: 1.2em; }
.magazin-article__body .gga-takeaways li { margin-bottom: 4px; }
.magazin-article__body .gga-q { font-weight: 700; color: var(--blau); margin-bottom: 2px; }
.magazin-article__body .gga-a { margin-bottom: 1.4rem; }
.magazin-article__body .gga-steckbrief { border: 1px solid var(--line); border-radius: 6px; padding: 1.1rem 1.3rem; margin-bottom: 1rem; }
.magazin-article__body .gga-steckbrief__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blau); margin-bottom: 4px; }

