/* ============================================================
   NEUES CD · Mockup Startseite (Stand 16.10.2026)
   Beige als Hauptfarbe, im Wechsel mit warmem Schwarz (wie der
   Hell-Dunkel-Rhythmus der Live-Seite). Schrift Newsreader.
   Ganz oben ein Verlauf von Schwarz zu Beige.
   Akzentfarben aus Niklas' Vorlagen:
     Rot  #aa483a
     Gelb #d9a82e (gedämpftes Gold, Niklas' Vorgabe vom 17.10.2026)
     Beige-Verlauf #e4dccc (Rand) bis #f8f5ee (Lichtmitte)

   Niklas hat sich für Beige + Rot entschieden (Gelb im Logo-Band, im gelben
   Button auf Schwarz und im Scheinwerfer der Menüpunkte) und für Variante C:
     body.cd.cd--v3: schwarze Kopfzeile mit weißen Menüpunkten und gelber
     Scheinwerfer-Animation, Hero nur Beige mit Titan-Handy, "Über mich" mit
     Lichtkegel von oben (Rot nach Schwarz, Körnung) und gelbem Button,
     Zahlen-Leiste dunkelrot mit waagerechtem Verlauf, Zeile
     "Kooperationspartner" schwarz, Logo-Band gelb und schräg.
   Variante D (body.cd.cd--v3.cd--v4) ist C mit getauschten Rollen: der
   Rot-Schwarz-Lichtkegel liegt oben im Hero hinter dem Handy, "Über mich" ist
   wieder hell, die drei Leisten bleiben wie in C.
   Gewählt (17.10.2026): D mit transparenter Kopfzeile, also
   body.cd.cd--v3.cd--v4.cd--h3. Die Kopfzeile liegt oben ohne eigene Leiste über
   dem Lichtkegel und rastet beim Scrollen als dunkle Leiste oben ein (sie blendet
   nicht mehr aus). Die Varianten C, D, D1 (beige) und D2 (weinrot) sind gelöscht.
   Die Grundregeln für .hero (Verlauf Schwarz nach Beige) stammen aus der
   verworfenen Variante A und werden von den .cd--v3-Regeln überschrieben.

   Hell/Dunkel: Helle Abschnitte = .theme-paper (wie bisher), alle
   anderen Abschnitte sind dunkel. Die Bausteine lesen ihre Farben
   aus Kontext-Tokens (--c-…), die pro Abschnitt umgeschaltet werden.

   Wird NACH css/style.css geladen und überschreibt nur, was für
   das neue CD nötig ist. Alles hängt an body.cd, damit Seiten ohne
   diese Klasse unverändert bleiben.
   ============================================================ */

/* Newsreader, lokal (SIL Open Font License, siehe fonts/Newsreader-OFL-LICENSE.txt).
   Variable Font: Strichstärke 200 bis 800, optische Größe 6 bis 72 (passt sich
   über font-optical-sizing automatisch an die Schriftgröße an). */
@font-face{font-family:"Newsreader";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/newsreader-var.woff2") format("woff2");}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:200 800;font-display:swap;src:url("../fonts/newsreader-var-italic.woff2") format("woff2");}

/* ---------- Palette und Varianten ---------- */
body.cd {
  /* Grundfarben */
  --beige-rand: #e4dccc;
  --beige-kante: #e9e2d5;        /* Rand der hellen Abschnitte, Ziel des Hero-Verlaufs */
  --beige: #efeadf;
  --beige-hell: #f4f0e8;
  --beige-licht: #f8f5ee;
  --karte: #fbf9f4;
  --nacht: #171310;              /* warmes Schwarz der dunklen Abschnitte */
  --nacht-tief: #110e0c;         /* Footer */
  --nacht-karte: #221c18;        /* Karten auf Dunkel */
  --rot: #aa483a;
  --rot-tief: #923b2f;
  --rot-hell: #c95a48;           /* dasselbe Rot, aufgehellt für Schrift auf Schwarz */
  --gelb: #d9a82e;
  --gelb-tief: #c39729;          /* Rand und Hover der gelben Buttons */
  --gelb-deko: #e2b52c;          /* nur für kleine Zierelemente auf Beige */
  --tinte: #241d18;
  --tinte-2: #4d4239;
  --tinte-3: #7a6d61;
  /* alte Tinten aus style.css (Lila-Schwarz) auf warmes Schwarz umgelegt */
  --ink: var(--nacht-tief);
  --ink-2: var(--nacht-karte);
  --ink-3: #2a221d;
  --linie: rgba(36, 29, 24, .13);
  --linie-stark: rgba(36, 29, 24, .28);
  --schatten: rgba(72, 50, 28, .22);
  --korn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .14 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Rollen. "-dunkel" = Wert auf schwarzem Grund */
  --akzent: var(--rot);            --akzent-dunkel: var(--rot-hell);
  --deko: var(--rot);              --deko-dunkel: var(--rot-hell);
  --mk-farbe: var(--rot);          --mk-dunkel: var(--rot-hell);
  --marker: transparent;           --marker-dunkel: transparent;
  --rand-hover: var(--rot);        --rand-hover-dunkel: var(--rot-hell);
  --pille-bg: rgba(170, 72, 58, .10); --pille-fg: var(--rot);
  --pille-dunkel-bg: var(--gelb);  --pille-dunkel-fg: var(--tinte);
  --flaeche: var(--rot);
  --flaeche-hover: var(--rot-tief);
  --auf-flaeche: var(--beige-licht);
  --glow: rgba(170, 72, 58, .32);
  --initial-bg: transparent;
  --tick-bg: rgba(170, 72, 58, .12);
  --tick-fg: var(--rot);
  --band-bg: var(--gelb);
  --cta-bg: var(--rot);
  --cta-fg: var(--beige-licht);
  --cta-btn-bg: var(--beige-licht);
  --cta-btn-fg: var(--rot);
  --fortschritt: var(--rot-hell);
  --puls: var(--rot);              /* Farbe des pulsierenden Rings (cdPulse) */
  --auswahl: rgba(170, 72, 58, .25);
}



/* ---------- Kontext-Tokens: hell (Standard) ---------- */
body.cd,
body.cd .theme-paper,
body.cd.cd--v3 .hero,
body.cd.cd--v3 .stats,
body.cd.cd--v3.cd--v4 #person {
  --c-text: var(--tinte);
  --c-text-2: var(--tinte-2);
  --c-text-3: var(--tinte-3);
  --c-linie: var(--linie);
  --c-linie-stark: var(--linie-stark);
  --c-hover-bg: rgba(36, 29, 24, .05);
  --c-karte: var(--karte);
  --c-karte-schatten: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 20px 40px -32px var(--schatten);
  --c-geraet-schatten: 0 40px 70px -34px rgba(52, 34, 18, .55);
  --c-akzent: var(--akzent);
  --c-deko: var(--deko);
  --c-mk: var(--mk-farbe);
  --c-marker: var(--marker);
  --c-rand-hover: var(--rand-hover);
  --c-pille-bg: var(--pille-bg);
  --c-pille-fg: var(--pille-fg);

  /* Tokens aus style.css */
  --bg: transparent;
  --fg: var(--c-text);
  --fg-dim: var(--c-text-2);
  --text: var(--c-text);
  --text-dim: var(--c-text-2);
  --line: var(--c-linie);
  --rule: var(--c-linie);
  --paper: var(--beige);
  --paper-2: var(--karte);
  --ink-on-paper: var(--tinte);
  --dim-on-paper: var(--tinte-2);
  --line-on-paper: var(--linie);
  --card-bg: var(--c-karte);
  --card-border: var(--c-linie);
  --eyebrow: var(--c-akzent);
  --link-accent: var(--c-akzent);
  --violet: var(--c-akzent);
  --violet-2: var(--c-akzent);
  --violet-soft: var(--c-akzent);
  --gold: var(--flaeche);
  --gold-deep: var(--flaeche-hover);
  --radius: 14px;
  --radius-lg: 18px;

  /* Schriften */
  --font-display: "Newsreader", Georgia, "Times New Roman", serif;
  --font-body: "Newsreader", Georgia, "Times New Roman", serif;
  --font-label: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono: var(--font-label);
}

/* ---------- Kontext-Tokens: dunkel ---------- */
body.cd .hero,
body.cd .section:not(.theme-paper),
body.cd .stats,
body.cd .marquee-band,
body.cd .site-footer,
body.cd .site-header,
body.cd .mobile-nav,
body.cd .page-hero,
body.cd.cd--v3 #person,
body.cd.cd--v3.cd--v4 .hero,
body.cd #person .stats--unter-portraet + div {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);   /* Fließtext auf Dunkel deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(244, 240, 232, .52);
  --c-linie: rgba(244, 240, 232, .12);
  --c-linie-stark: rgba(244, 240, 232, .30);
  --c-hover-bg: rgba(244, 240, 232, .07);
  --c-karte: var(--nacht-karte);
  --c-karte-schatten: 0 1px 0 rgba(244, 240, 232, .05) inset, 0 22px 44px -26px rgba(0, 0, 0, .7);
  --c-geraet-schatten: 0 40px 80px -30px rgba(0, 0, 0, .75);
  --c-akzent: var(--akzent-dunkel);
  --c-deko: var(--deko-dunkel);
  --c-mk: var(--mk-dunkel);
  --c-marker: var(--marker-dunkel);
  --c-rand-hover: var(--rand-hover-dunkel);
  --c-pille-bg: var(--pille-dunkel-bg);
  --c-pille-fg: var(--pille-dunkel-fg);
  --puls: var(--gelb);
  --fg: var(--c-text);
  --fg-dim: var(--c-text-2);
  --text: var(--c-text);
  --text-dim: var(--c-text-2);
  --line: var(--c-linie);
  --rule: var(--c-linie);
  --card-bg: var(--c-karte);
  --card-border: var(--c-linie);
  --eyebrow: var(--c-akzent);
  --link-accent: var(--c-akzent);
  --violet: var(--c-akzent);
  --violet-2: var(--c-akzent);
  --violet-soft: var(--c-akzent);
}

/* ---------- Grundfläche ---------- */
body.cd {
  background: var(--nacht);
  color: var(--c-text);
  font-family: var(--font-body);
  font-size: 1.15rem;
  line-height: 1.6;
  font-optical-sizing: auto;
}
body.cd::-webkit-scrollbar-track { background: var(--nacht); }
body.cd::-webkit-scrollbar-thumb { background: #3a322b; border-color: var(--nacht); }
body.cd::-webkit-scrollbar-thumb:hover { background: var(--flaeche); }

body.cd ::selection { background: var(--auswahl); color: var(--tinte); }
/* Auf dunklen Flächen war markierter Text unsichtbar (dunkle Schrift auf dunklem Rot): dort helle Schrift
   auf kräftigerem Rot. Selektoren wie bei den Kontext-Tokens „dunkel“ (Niklas, 19.10.2026) */
body.cd .hero ::selection,
body.cd .section:not(.theme-paper) ::selection,
body.cd .stats ::selection,
body.cd .marquee-band ::selection,
body.cd .site-footer ::selection,
body.cd .site-header ::selection,
body.cd .mobile-nav ::selection,
body.cd .page-hero ::selection,
body.cd #person .stats--unter-portraet + div ::selection { background: rgba(201, 90, 72, .55); color: var(--beige-hell); }
body.cd :focus-visible { outline-color: var(--c-akzent); }
body.cd .skip-link { background: var(--flaeche); color: var(--auf-flaeche); }

/* helle Abschnitte: leichtes Beige mit Lichtmitte, dazu ein Hauch Papierkorn */
body.cd .theme-paper {
  background:
    var(--korn),
    radial-gradient(95% 72% at 50% 46%, rgba(248, 245, 238, .96), rgba(248, 245, 238, 0) 72%),
    var(--beige-kante);
  color: var(--c-text);
}
/* dunkle Abschnitte: warmes Schwarz mit leichtem Schein von oben */
body.cd .section:not(.theme-paper),
body.cd .stats,
body.cd .marquee-band {
  background:
    radial-gradient(70% 55% at 50% 0%, rgba(236, 230, 218, .05), transparent 70%),
    var(--nacht);
  color: var(--c-text);
}

/* ---------- Typografie ---------- */
body.cd h1, body.cd h2, body.cd h3, body.cd h4 {
  font-family: var(--font-display);
  color: var(--c-text);
  letter-spacing: -.018em;
  line-height: 1.04;
}
body.cd .display-xl, body.cd .display-lg { font-weight: 700; letter-spacing: -.022em; }
body.cd .display-md { font-weight: 650; letter-spacing: -.012em; line-height: 1.1; }
body.cd .display-sm { font-weight: 650; }
body.cd strong, body.cd b { font-weight: 650; }
body.cd .lead { color: var(--c-text-2); font-size: clamp(1.15rem, 1.7vw, 1.36rem); line-height: 1.55; }

/* Schlüsselwörter: kursiv in der Akzentfarbe, je nach Variante mit Textmarker-Band */
body.cd .mk,
body.cd .mk.mk--solid,
body.cd .theme-paper .mk,
body.cd .theme-paper .mk.mk--solid {
  font-style: italic;
  color: var(--c-mk);
  text-shadow: none;
  background-image: linear-gradient(var(--c-marker), var(--c-marker));
  background-repeat: no-repeat;
  background-position: left 86%;
  background-size: 0% .4em;
  padding: 0 .1em 0 .04em;
}
body.cd .is-in .mk,
body.cd .mk.is-in,
body.cd .is-in .mk.mk--solid,
body.cd .mk.mk--solid.is-in { background-size: 100% .4em; }

/* ---------- Buttons ---------- */
body.cd .btn {
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 1.08rem;
  letter-spacing: 0;
  background: var(--flaeche);
  border-color: var(--flaeche);
  color: var(--auf-flaeche);
}
/* beim Überfahren kein Schatten (Niklas, 22.10.2026); "none" auch gegen den Gold-Schein aus style.css */
body.cd .btn:hover {
  background: var(--flaeche-hover);
  border-color: var(--flaeche-hover);
  box-shadow: none;
}
body.cd .btn--sm { font-size: 1rem; }

/* zweiter Button: ruhige Kontur in Schriftfarbe */
body.cd .btn--white,
body.cd .btn--ghost,
body.cd .theme-paper .btn--ghost {
  background: transparent;
  border: 1.5px solid var(--c-linie-stark);
  color: var(--c-text);
}
body.cd .btn--white:hover,
body.cd .btn--ghost:hover,
body.cd .theme-paper .btn--ghost:hover {
  background: var(--c-hover-bg);
  border-color: var(--c-text);
  box-shadow: none;
}

/* Puls-Animation leiser und in der Flächenfarbe */
body.cd .btn--pulse { animation: cdPulse 3s infinite cubic-bezier(.25, .8, .25, 1); }
body.cd .btn--pulse:hover, body.cd .btn--pulse:focus-visible { animation: none; }
/* Puls wie auf der alten Website (kurz 4 % größer, zwei Ringe laufen nach außen und verblassen),
   nur in den CD-Farben: --puls ist auf Beige Rot, auf dunklen Flächen Gelb */
@keyframes cdPulse {
  0%   { transform: scale(1);    box-shadow: 0 0 0 0 color-mix(in srgb, var(--puls) 60%, transparent), 0 0 0 0 color-mix(in srgb, var(--puls) 30%, transparent); }
  50%  { transform: scale(1.04); box-shadow: 0 0 0 10px color-mix(in srgb, var(--puls) 0%, transparent), 0 0 0 20px color-mix(in srgb, var(--puls) 0%, transparent); }
  100% { transform: scale(1);    box-shadow: 0 0 0 0 color-mix(in srgb, var(--puls) 0%, transparent), 0 0 0 0 color-mix(in srgb, var(--puls) 0%, transparent); }
}
@media (prefers-reduced-motion: reduce) { body.cd .btn--pulse { animation: none; } }

/* ---------- Scroll-Fortschritt ---------- */
body.cd .scroll-progress { background: var(--fortschritt); }

/* ---------- Header (liegt auf Schwarz: oben auf dem Hero, beim Scrollen eigene dunkle Leiste) ---------- */
body.cd .site-header.is-scrolled {
  background: rgba(23, 19, 16, .84);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  border-bottom-color: var(--c-linie);
}
body.cd .brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.36rem;
  letter-spacing: -.015em;
  color: var(--c-text);
}
body.cd .brand .dot { color: var(--c-deko); }
body.cd .main-nav a,
body.cd .nav-drop-btn {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--c-text-2);
}
body.cd .main-nav a:hover,
body.cd .main-nav a[aria-current="page"],
body.cd .nav-drop-btn:hover,
body.cd .nav-drop.is-open .nav-drop-btn,
body.cd .nav-drop:focus-within .nav-drop-btn { color: var(--c-text); }
body.cd .main-nav a::after,
body.cd .nav-drop-btn::after { background: var(--flaeche); height: 2px; }
body.cd .nav-drop-menu {
  background: var(--nacht-karte);
  border: 1px solid var(--c-linie);
  box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .7);
}
body.cd .main-nav .nav-drop-menu a:hover { background: var(--c-hover-bg); color: var(--c-text); }
body.cd .main-nav .nav-drop-menu a[aria-current="page"] { background: var(--c-hover-bg); }
body.cd .main-nav .nav-drop-menu a::after { display: none; }
body.cd .main-nav .nav-drop-menu a { white-space: nowrap; }   /* Menüpunkte im Dropdown einzeilig */
body.cd .lang-switch {
  font-family: var(--font-label);
  color: var(--c-text-2);
  border-color: var(--c-linie-stark);
}
body.cd .lang-switch:hover,
body.cd .lang-switch:focus-visible {
  color: var(--auf-flaeche);
  background: var(--flaeche);
  border-color: var(--flaeche);
  box-shadow: none;
}
body.cd .nav-toggle { border-color: var(--c-linie-stark); }
body.cd .nav-toggle span { background: var(--c-text); }

/* Mobile Navigation */
body.cd .mobile-nav {
  background:
    radial-gradient(90% 55% at 50% 100%, rgba(236, 230, 218, .10), transparent 70%),
    var(--nacht);
}
body.cd .mobile-nav a.mnav-link,
body.cd .mnav-drop-btn { font-family: var(--font-display); font-weight: 700; color: var(--c-text); }
body.cd .mnav-drop-menu a { font-family: var(--font-display); color: var(--c-text-2); }
body.cd .mobile-nav a.mnav-link:hover,
body.cd .mobile-nav a.mnav-link[aria-current="page"],
body.cd .mnav-drop-btn:hover,
body.cd .mnav-drop.is-active .mnav-drop-btn,
body.cd .mnav-drop-menu a:hover,
body.cd .mnav-drop-menu a[aria-current="page"] { color: var(--c-akzent); }

/* ---------- Hero: Verlauf von Schwarz (oben) zu Beige (unten) ---------- */
body.cd .hero {
  --hero-pad: clamp(70px, 6.25vw, 90px);
  --hero-fade: calc(var(--hero-pad) + 190px);   /* Verlauf setzt weit oben an, auf Höhe der Buttons */
  padding-bottom: var(--hero-pad);
  min-height: 0;                                 /* Hero so hoch wie sein Inhalt: Abstand nach unten ist überall gleich */
  color: var(--c-text);
  background:
    var(--korn),
    radial-gradient(48% 42% at 26% 36%, rgba(236, 230, 218, .075), transparent 72%),
    radial-gradient(34% 40% at 80% 40%, rgba(236, 230, 218, .05), transparent 72%),
    linear-gradient(to top,
      var(--beige-kante) 0,
      #e0d8c9 calc(var(--hero-fade) * .10),
      #cbbfad calc(var(--hero-fade) * .24),
      #a69a88 calc(var(--hero-fade) * .38),
      #776c5f calc(var(--hero-fade) * .52),
      #4a4139 calc(var(--hero-fade) * .67),
      #2a231e calc(var(--hero-fade) * .82),
      var(--nacht) var(--hero-fade));
}
body.cd .hero-bg::before,
body.cd .hero-bg::after { display: none; }
body.cd .hero .lead,
body.cd .hero-lead { color: var(--c-text-2); }
body.cd .hero-title { letter-spacing: -.025em; line-height: 1.02; }
body.cd .hero-title .mk { font-style: normal; }   /* "KI-Kompetenz" rot, aber gerade */
@media (max-width: 1060px) {
  body.cd .hero { --hero-pad: 70px; --hero-fade: 140px; }
}

/* ---------- Schwarze Kopfzeile (Variante C) ---------- */
body.cd.cd--v3 .site-header,
body.cd.cd--v3 .site-header.is-scrolled {
  background: var(--nacht);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom-color: var(--nacht);
}

/* Chat-Demo im Handy: App-Optik bleibt serifenlos, Farben im neuen CD */
body.cd .phone {
  box-shadow: var(--c-geraet-schatten), 0 0 0 1px rgba(255, 255, 255, .05) inset;
  font-family: var(--font-label);
}
body.cd .phone-screen { background: #fffdf9; }
body.cd .chat-msg { color: #2a221c; }
body.cd .chat-msg--bot { background: #f1ece3; }
body.cd .chat-msg--user { background: var(--flaeche); color: var(--auf-flaeche); }
body.cd .chat-msg a { color: var(--akzent); }
body.cd .chat-typing i { background: #b3a596; }
body.cd .chat-chips { border-top-color: #ece5da; }
body.cd .chat-chips .chat-chip,
body.cd .chat-chip {
  background: var(--flaeche);
  color: var(--auf-flaeche);
  border-color: transparent;
  box-shadow: 0 6px 14px -10px var(--glow);
}
body.cd .chat-chips .chat-chip:hover,
body.cd .chat-chip:hover {
  background: var(--flaeche-hover);
  border-color: transparent;
  box-shadow: 0 8px 18px -10px var(--glow);
}
body.cd .phone-note {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  color: var(--c-akzent);
}
body.cd .phone-note-arrow { stroke: var(--c-akzent); }

/* ---------- Über mich (hell) ---------- */
body.cd #person { padding-top: clamp(16px, 2vw, 28px); }
body.cd .about-lead { color: var(--c-text); font-weight: 400; font-size: 1.24rem; }
body.cd .about-lead::first-letter {
  font-family: var(--font-display);
  font-weight: 700;
  font-style: normal;
  color: var(--c-akzent);
  background: var(--initial-bg);
  font-size: 3.5em;
  line-height: .8;
  padding: .06em .1em 0 0;
}
body.cd .about-focus li { color: var(--c-text-2); }
body.cd .about-focus strong { color: var(--c-text); }
body.cd .about-focus .focus-star { color: var(--c-deko); }
body.cd .about-photo { filter: drop-shadow(0 26px 30px rgba(72, 50, 28, .2)); }

/* ---------- Zahlen (dunkel) ---------- */
body.cd .stats { border-top-color: var(--c-linie); border-bottom-color: var(--c-linie); }
body.cd .stat { border-color: var(--c-linie); }
body.cd .stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  letter-spacing: -.02em;
  color: var(--c-text);
}
body.cd .stat-num .suffix { color: var(--c-akzent); font-weight: 600; }
body.cd .stat-label {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .1em;
  color: var(--c-text-2);
}
body.cd .stat-sub { font-family: var(--font-body); font-style: italic; color: var(--c-text-3); opacity: 1; font-size: .9rem; }

/* ---------- Logo-Band (dunkel) ---------- */
body.cd .marquee-label {
  font-family: var(--font-label);
  font-weight: 700;
  color: #fff;   /* "Bekannt aus / vergangene Kooperations- und Arbeitspartner" in Weiß (Niklas, 17.10.2026) */
  letter-spacing: .14em;
}
body.cd .marquee {
  background: var(--band-bg);
  color: var(--tinte);
  transform: none;
  box-shadow: none;
}
body.cd .marquee-band { padding-bottom: 0; padding-top: 0; }   /* Band schließt bündig mit dem hellen Abschnitt darunter ab */
body.cd .marquee-label { padding-top: 11px; }   /* Abstand über der Beschriftung halbiert (27 auf 13 px) */

/* ---------- Schwerpunkte (hell) ---------- */
body.cd .checklist li { color: var(--c-text); font-size: 1.14rem; }
@media (min-width: 1061px) {
  body.cd .expertise-grid { align-items: start; }
  /* Bild genau so hoch wie die Liste: Ober- und Unterkante bündig mit den Bullet Points.
     contain: size nimmt das Bild aus der Höhenberechnung der Zeile, die Breite folgt dem Seitenverhältnis. */
  body.cd .expertise-grid .keynote-stage {
    align-self: stretch;
    justify-self: end;
    width: auto;
    max-width: none;
    aspect-ratio: 617 / 833;
    contain: size;
  }
  body.cd .expertise-grid .keynote-stage img { width: 100%; height: 100%; object-fit: cover; }
}
body.cd .expertise-list { gap: clamp(16px, 2.2vw, 26px); max-width: 66ch; }
body.cd .expertise-list li { font-size: 1.254rem; line-height: 1.5; }
body.cd .expertise-list .tick { width: 22px; height: 22px; margin-top: 5px; }
body.cd .expertise-list .tick svg { width: 12px; height: 12px; }
body.cd .tick,
body.cd .tick--green,
body.cd .theme-paper .tick,
body.cd .theme-paper .tick--green { background: var(--tick-bg); color: var(--tick-fg); }
body.cd .keynote-stage {
  border: 0;
  border-radius: var(--radius-lg);
  box-shadow: 0 34px 60px -34px rgba(52, 34, 18, .55);
}

/* ---------- Experten-Auftritte (dunkel) ---------- */
body.cd .media-text p,
body.cd .media-text li { color: var(--c-text-2); font-size: 1.08rem; line-height: 1.6; }
body.cd .media-text strong { color: var(--c-text); }
body.cd .media-points li::before {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 700;
  color: var(--c-akzent);
}
body.cd .media-facts li::before { background: var(--c-deko); }
body.cd .media-next { color: var(--c-text); font-family: var(--font-body); font-size: 1.12rem; }
body.cd .media-next:hover,
body.cd .media-next:focus-visible { color: var(--c-akzent); }
body.cd .media-count { font-family: var(--font-label); color: var(--c-text-3); }
body.cd .media-progress { background: var(--c-linie); }
body.cd .media-progress-fill { background: var(--gelb); }
body.cd .podcast-phone,
body.cd .media-phone { font-family: var(--font-label); box-shadow: var(--c-geraet-schatten); }
/* Spotify-/YouTube-Buttons im CD statt in Plattformfarben */
body.cd .podcast-cta,
body.cd .podcast-cta--yt {
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 1.08rem;
  background: var(--flaeche);
  color: var(--auf-flaeche);
  box-shadow: none;
}
body.cd .podcast-cta:hover,
body.cd .podcast-cta:focus-visible,
body.cd .podcast-cta--yt:hover,
body.cd .podcast-cta--yt:focus-visible {
  background: var(--flaeche-hover);
  box-shadow: none;
}

/* ---------- Karten (Angebote hell, Lernmaterialien dunkel) ---------- */
body.cd #angebot .grid-3 .card,
body.cd .box-glow,
body.cd .card {
  background: var(--c-karte);
  color: var(--c-text-2);
  border: 1px solid var(--c-linie);
  border-radius: var(--radius-lg);
  box-shadow: var(--c-karte-schatten);
}
body.cd #angebot .grid-3 .card h3 { color: var(--c-text); }
body.cd #angebot .grid-3 .card p { color: var(--c-text-2); font-size: 1.06rem; line-height: 1.55; }
body.cd #angebot .grid-3 .card:hover,
body.cd #angebot .grid-3 .card:focus-visible,
body.cd #angebot .grid-3 .card:active,
body.cd .box-glow:hover,
body.cd .box-glow:focus-visible,
body.cd .box-glow:active {
  background: var(--c-karte);
  border-color: var(--c-rand-hover);
  box-shadow: 0 28px 50px -30px var(--glow), 0 0 0 1px var(--c-rand-hover);
  transform: translateY(-4px);
}
/* Alle drei Angebots-Karten exakt gleich groß: gleiche Höhe (style.css richtet sie
   sonst oben aus) und gleiche Titelgröße. Der Pfeil-Button sitzt unten rechts in einer
   eigenen schmalen Spalte neben dem Text, so bleibt unter dem Text kaum Leerraum. */
@media (min-width: 881px) {
  body.cd #angebot .grid-3 { align-items: stretch; }
}
body.cd #angebot .grid-3 .card--slim {
  padding-right: clamp(20px, 2.4vw, 28px);
  padding-bottom: clamp(20px, 2.4vw, 26px);
}
body.cd #angebot .grid-3 .card--slim p { padding-right: 58px; }
body.cd #angebot .grid-3 .card h3,
body.cd #angebot .grid-3 .card .card-title--sens {
  font-size: clamp(1.45rem, 2.3vw, 2.05rem);
  white-space: nowrap;
}
body.cd #angebot .grid-3 .spot::after,
body.cd .spot::after,
body.cd .theme-paper .spot::after {
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), var(--glow), transparent 65%);
  opacity: 0;
}
body.cd #angebot .grid-3 .spot:hover::after { opacity: 0; }
/* Angebots-Karten beim Überfahren ohne rote Einfärbung (Rand, Schein, Glow bleiben neutral) */
body.cd #angebot .grid-3 .card:hover,
body.cd #angebot .grid-3 .card:focus-visible,
body.cd #angebot .grid-3 .card:active {
  background: var(--c-karte);
  border-color: var(--c-linie-stark);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten);
  transform: translateY(-4px);
}

body.cd .resource-arrow,
body.cd #angebot .grid-3 .card .resource-arrow,
body.cd #angebot .card--slim .resource-arrow,
body.cd .resource-list--on-dark .resource-arrow {
  border: 1.5px solid var(--c-linie-stark);
  color: var(--c-text);
  font-family: var(--font-label);
}
body.cd #angebot .grid-3 .card:hover .resource-arrow,
body.cd #angebot .grid-3 .card:focus-visible .resource-arrow,
body.cd #angebot .card--slim:hover .resource-arrow,
body.cd .resource-row:hover .resource-arrow {
  background: var(--flaeche);
  border-color: var(--flaeche);
  color: var(--auf-flaeche);
}

/* "Kostenloses Erstgespräch buchen" unter den Angebots-Karten in Gelb */
body.cd #angebot .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd #angebot .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }
/* weitere Buttons in derselben Reihe (englische Startseite hat drei) als ruhige Kontur */
body.cd #angebot .btn + .btn {
  background: transparent;
  border: 1.5px solid var(--c-linie-stark);
  color: var(--c-text);
  animation: none;
}
body.cd #angebot .btn + .btn:hover { background: var(--c-hover-bg); border-color: var(--c-text); box-shadow: none; }

/* Handschrift-Notiz wird zur kursiven Newsreader */
body.cd .work-note,
body.cd .theme-paper .work-note {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.6rem, 2.7vw, 2.15rem);
  color: var(--c-akzent);
  transform: none;
}
body.cd .work-note-arrow,
body.cd .theme-paper .work-note-arrow { stroke: var(--c-akzent); stroke-width: 2; }

/* Lernmaterialien-Zeilen */
body.cd .resource-list--boxed .resource-row,
body.cd .resource-list--on-dark .resource-row {
  background: var(--c-karte);
  border: 1px solid var(--c-linie);
  box-shadow: var(--c-karte-schatten);
}
body.cd .resource-list--boxed .resource-row:hover,
body.cd .resource-list--boxed .resource-row:focus-visible,
body.cd .resource-list--boxed .resource-row:active,
body.cd .resource-list--on-dark .resource-row:hover {
  background: var(--c-karte);
  border-color: var(--c-rand-hover);
  box-shadow: 0 26px 46px -28px var(--glow), 0 0 0 1px var(--c-rand-hover);
}
/* Lernmaterialien als Liquid Glass. Hinter der Liste ein weicher Rot-Gold-Schein, damit das
   Glas etwas zeigen kann. Beim Überfahren wird das Glas heller, ohne farbigen Rand. */
body.cd #lernmaterialien {
  background:
    radial-gradient(38% 46% at 16% 62%, rgba(170, 72, 58, .32), rgba(170, 72, 58, 0) 72%),
    radial-gradient(34% 42% at 88% 74%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0) 72%),
    var(--nacht);
}
body.cd #lernmaterialien .resource-list--boxed .resource-row {
  position: relative;
  isolation: isolate;
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    inset 0 12px 24px -16px rgba(255, 255, 255, .22),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd #lernmaterialien .resource-list--boxed .resource-row::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .6), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 65%, rgba(255, 255, 255, .35));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd #lernmaterialien .resource-list--boxed .resource-row:hover,
body.cd #lernmaterialien .resource-list--boxed .resource-row:focus-visible,
body.cd #lernmaterialien .resource-list--boxed .resource-row:active {
  background: rgba(255, 255, 255, .09);
  border-color: transparent;
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .65),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .3),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 12px 24px -16px rgba(255, 255, 255, .3),
    0 22px 40px -20px rgba(0, 0, 0, .75);
}
/* ohne Pfeil-Kreis rechts (Niklas, 22.10.2026): Raster ohne die letzte Spalte, auf dem Handy ist die Pille ohnehin aus */
body.cd #lernmaterialien .resource-list--boxed .resource-row { grid-template-columns: 54px minmax(0, 1fr) auto; }
@media (max-width: 640px) {
  body.cd #lernmaterialien .resource-list--boxed .resource-row { grid-template-columns: 30px minmax(0, 1fr); }
}

body.cd .resource-num,
body.cd .resource-list--on-dark .resource-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  font-size: 1.5rem;
  color: var(--c-akzent);
}
body.cd .resource-title { font-family: var(--font-display); font-weight: 700; color: var(--c-text); }
body.cd .resource-row:hover .resource-title,
body.cd .resource-list--on-dark .resource-row:hover .resource-title { color: var(--c-akzent); }
body.cd .resource-desc { color: var(--c-text-2); }
body.cd .resource-meta,
body.cd .resource-list--on-dark .resource-meta {
  font-family: var(--font-label);
  font-weight: 700;
  background: var(--c-pille-bg);
  border-color: transparent;
  color: var(--c-pille-fg);
}

/* ---------- Abschluss: direkt auf Schwarz, ohne Box ---------- */
body.cd #lernmaterialien + .cta-final { padding-top: clamp(4px, 1vw, 14px); }
body.cd .cta-final h2 { color: var(--c-text); }
body.cd .cta-final .lead { color: var(--c-text-2); max-width: 62ch; }
/* vier Buttons in einer Zeile; erst auf schmaleren Bildschirmen umbrechen */
body.cd .cta-final .btn-row { flex-wrap: nowrap; }
@media (max-width: 1060px) { body.cd .cta-final .btn-row { flex-wrap: wrap; } }
@media (min-width: 1061px) and (max-width: 1180px) {
  body.cd .cta-final .btn { padding: 13px 20px; font-size: 1rem; }
}
body.cd .cta-final .btn { white-space: nowrap; }
/* Abschluss-Buttons als Liquid Glass. Hinter der Button-Reihe liegt ein weicher Schein in
   Rot und Gold (ohne Kanten), damit das Glas etwas zeigen kann. "Keynotes" (.cta-haupt,
   steht in der Mitte) ist goldenes Glas mit dunkler Schrift, die anderen sind klares Glas
   mit weißer Schrift. */
body.cd .cta-final {
  background:
    radial-gradient(34% 44% at 33% 80%, rgba(170, 72, 58, .45), rgba(170, 72, 58, 0) 72%),
    radial-gradient(30% 40% at 70% 84%, rgba(217, 168, 46, .28), rgba(217, 168, 46, 0) 72%),
    var(--nacht);
}
body.cd .cta-final .btn {
  position: relative;
  isolation: isolate;
  border: 0;
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
/* Lichtkante am Glasrand, oben links und unten rechts am hellsten */
body.cd .cta-final .btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd .cta-final .btn.cta-haupt {
  background: linear-gradient(135deg, rgba(217, 168, 46, .95), rgba(217, 168, 46, .62));
  color: var(--tinte);
}
body.cd .cta-final .btn.cta-haupt:hover { background: linear-gradient(135deg, rgba(225, 180, 64, 1), rgba(217, 168, 46, .78)); }
body.cd .cta-final .btn:not(.cta-haupt) {
  background: rgba(255, 255, 255, .08);
  color: #fff;
}
body.cd .cta-final .btn:not(.cta-haupt):hover { background: rgba(255, 255, 255, .15); }
body.cd .cta-final .btn:hover {
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .8),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .4),
    inset 0 0 0 1px rgba(255, 255, 255, .18),
    inset 0 10px 18px -12px rgba(255, 255, 255, .45),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
@media (max-width: 640px) {
  body.cd .cta-final .btn { font-size: 1rem; padding: 12px 20px; white-space: normal; }
}

/* ---------- Footer (dunkel) ---------- */
body.cd .site-footer {
  background: var(--nacht-tief);
  border-top: 1px solid var(--c-linie);
  color: var(--c-text-2);
  padding-top: calc(clamp(56px, 7vw, 84px) / 3);   /* zwei Drittel weniger Freiraum zur oberen Kante */
}
body.cd .footer-brand p,
body.cd .footer-col a,
body.cd .footer-bottom,
body.cd .footer-legal a,
body.cd .footer-legal .cookie-prefs-link { color: var(--c-text-2); }
body.cd .footer-col a:hover,
body.cd .footer-legal a:hover,
body.cd .footer-legal a:focus-visible,
body.cd .footer-legal .cookie-prefs-link:hover { color: var(--c-akzent); }
body.cd .footer-col h2,
body.cd .footer-col h4 {
  font-family: var(--font-label);
  font-weight: 700;
  color: var(--c-akzent);
}
body.cd .footer-bottom { border-top-color: var(--c-linie); }
body.cd .socials a { border-color: var(--c-linie-stark); color: var(--c-text-2); }
body.cd .socials a:hover { background: var(--flaeche); border-color: var(--flaeche); color: var(--auf-flaeche); }

/* ---------- Nach oben ---------- */
body.cd .to-top {
  background: var(--flaeche);
  color: var(--auf-flaeche);
  box-shadow: 0 14px 30px -12px var(--glow);
}
body.cd .to-top:hover { background: var(--flaeche-hover); }

/* ---------- Variante C ---------- */
/* Hero ohne Verlauf, nur Beige wie die hellen Abschnitte */
body.cd.cd--v3 .hero {
  --hero-pad: clamp(48px, 5vw, 72px);
  background:
    var(--korn),
    radial-gradient(95% 72% at 50% 46%, rgba(248, 245, 238, .96), rgba(248, 245, 238, 0) 72%),
    var(--beige-kante);
}
@media (max-width: 1060px) {
  body.cd.cd--v3 .hero { --hero-pad: 48px; }
}
/* "Soziologe und Experte für": Lichtkegel von oben (Niklas' Vorgabe "Variante 10").
   Dunkler Rot-Schwarz-Verlauf, der Kegel fällt bei 30 % von links auf die Foto-Seite
   und läuft nach rechts und unten ins fast Schwarze aus. Darüber eine leichte Körnung
   (Pseudo-Element), der Inhalt liegt darüber. Normaler Abstand zur harten Kante oben. */
body.cd.cd--v3 #person {
  padding-top: clamp(38px, 5.5vw, 65px);
  background: radial-gradient(ellipse 40% 90% at 30% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  overflow: hidden;
  color: var(--c-text);
}
body.cd.cd--v3 #person::before {
  content: "";
  position: absolute;
  inset: -10%;
  pointer-events: none;
  opacity: .25;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
body.cd.cd--v3 #person > .container { position: relative; z-index: 1; }
@media (max-width: 1060px) {
  /* gestapelt: der Kegel sitzt mittig über dem Foto */
  body.cd.cd--v3 #person {
    background: radial-gradient(ellipse 80% 70% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}
body.cd.cd--v3 #person .about-photo { filter: none; }
@media (min-width: 1061px) {
  /* Porträt endet genau an der Kante, ragt nicht in den beigen Zahlen-Streifen */
  body.cd.cd--v3 #person .about-photo { margin-bottom: calc(-1 * clamp(38px, 5.5vw, 65px)); }
}
/* Logo-Band wieder schräg wie auf der Live-Seite, mit gelbem Schein */
body.cd.cd--v3 .marquee-band { padding-bottom: 9px; }
body.cd.cd--v3 .marquee {
  transform: rotate(-1.4deg) scale(1.04);
  box-shadow: 0 18px 50px -18px rgba(217, 168, 46, .35);
}
@media (prefers-reduced-motion: reduce) {
  body.cd.cd--v3 .marquee { transform: rotate(-1.4deg) scale(1.04); }
}

/* "Keynotes für Ihre Veranstaltung" auf Schwarz in Gelb */
body.cd.cd--v3 #person .btn {
  --glow: rgba(217, 168, 46, .42);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd--v3 #person .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }

/* Zahlen-Leiste wie auf der Live-Seite aufgebaut, nur in Rot: dunkles Rot mit
   waagerechtem Verlauf (links rötlicher Schein, rechts fast schwarz mit einem
   Hauch Gelb). Darunter die schwarze Zeile "Kooperationspartner" und das schräge
   gelbe Logo-Band. */
body.cd.cd--v3 .stats {
  --c-text: var(--beige-licht);
  --c-text-2: var(--beige-licht);   /* deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(248, 245, 238, .72);
  --c-linie: rgba(248, 245, 238, .22);
  --c-akzent: var(--gelb);
  --c-linie: rgba(248, 245, 238, .14);
  background:
    linear-gradient(90deg, rgba(170, 72, 58, .62) 0%, rgba(170, 72, 58, .22) 36%, rgba(170, 72, 58, 0) 64%, rgba(217, 168, 46, .06) 100%),
    #2a120e;
  color: var(--c-text);
  /* keine (auch keine unsichtbaren) Ränder: sonst wiederholt sich der Verlauf im
     1-px-Rand und zeigt unten eine feine rote Linie */
  border-top: 0;
  border-bottom: 0;
}

/* Menüpunkte in Weiß. Beim Überfahren statt Unterstrich ein gelber Bühnenscheinwerfer:
   ein Lichtkegel fällt von der Oberkante der Leiste auf das Wort, das Wort bekommt
   einen gelben Glow. */
body.cd.cd--v3 .main-nav > a,
body.cd.cd--v3 .nav-drop-btn {
  color: #fff;
  transition: color .3s ease, text-shadow .45s ease;
}
body.cd.cd--v3 .main-nav > a::before,
body.cd.cd--v3 .nav-drop-btn::before {
  content: "";
  position: absolute;
  left: -10px;
  right: -10px;
  top: calc((var(--header-h) - 100%) / -2);   /* bis an die Oberkante der Leiste */
  bottom: 0;
  pointer-events: none;
  clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
  background: linear-gradient(to bottom, rgba(217, 168, 46, 0), rgba(217, 168, 46, .14) 40%, rgba(217, 168, 46, .30));
  -webkit-mask-image: linear-gradient(to bottom, #000 50%, transparent 100%);   /* Kegel läuft unten weich aus */
  mask-image: linear-gradient(to bottom, #000 50%, transparent 100%);
  opacity: 0;
  transform: scaleY(.4);
  transform-origin: 50% 0;
  transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}
body.cd.cd--v3 .main-nav > a::after,
body.cd.cd--v3 .nav-drop-btn::after {
  /* Lichtfleck unter dem Wort statt Unterstrich */
  left: -6px;
  right: -6px;
  bottom: 2px;
  height: 16px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(217, 168, 46, .5), rgba(217, 168, 46, 0));
  transform: scaleX(.3);
  transform-origin: 50% 50%;
  opacity: 0;
  transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}
body.cd.cd--v3 .main-nav > a:hover,
body.cd.cd--v3 .main-nav > a:focus-visible,
body.cd.cd--v3 .nav-drop-btn:hover,
body.cd.cd--v3 .nav-drop.is-open .nav-drop-btn {
  color: #fff;
  text-shadow: 0 0 12px rgba(217, 168, 46, .85), 0 0 26px rgba(217, 168, 46, .45);
}
body.cd.cd--v3 .main-nav > a:hover::before,
body.cd.cd--v3 .main-nav > a:focus-visible::before,
body.cd.cd--v3 .nav-drop-btn:hover::before,
body.cd.cd--v3 .nav-drop.is-open .nav-drop-btn::before { opacity: 1; transform: scaleY(1); }
body.cd.cd--v3 .main-nav > a:hover::after,
body.cd.cd--v3 .main-nav > a:focus-visible::after,
body.cd.cd--v3 .nav-drop-btn:hover::after,
body.cd.cd--v3 .nav-drop.is-open .nav-drop-btn::after { opacity: 1; transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  body.cd.cd--v3 .main-nav > a::before,
  body.cd.cd--v3 .main-nav > a::after,
  body.cd.cd--v3 .nav-drop-btn::before,
  body.cd.cd--v3 .nav-drop-btn::after { transition: opacity .2s ease; transform: none; }
}

/* ---------- Menüpunkte: Code-Regen statt Scheinwerfer (Niklas, 19.10.2026, Variante 4 der Hover-Mockups) ----------
   main.js („MENÜ: CODE-REGEN“) legt jedes Wort in span.nav-wort (für die Lage des Regens), malt den
   Zeichenregen in canvas.nav-regen hinter die Menüpunkte und setzt .is-code auf den Menüpunkt, solange er
   „an“ ist. Das Wort wird dann nur weich gelb, in der Schrift der Website. (Erst grün und in Programmierschrift,
   dann gelb mit Zufallszeichen beim Umschreiben; auf Niklas' Wunsch bleibt nur der Regen.) Erst wenn das Skript gelaufen ist (.has-code-regen am
   Header), ist der Scheinwerfer abgeschaltet; ohne JS bleibt er als Rückfall. */
body.cd .site-header.has-code-regen {
  --code-farbe: var(--gelb);
  --code-glow: rgba(217, 168, 46, .6);
}
body.cd .site-header.has-code-regen .header-inner { position: relative; z-index: 1; }
body.cd .site-header .nav-regen { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
body.cd.cd--v3 .has-code-regen .main-nav > a::before,
body.cd.cd--v3 .has-code-regen .main-nav > a::after,
body.cd.cd--v3 .has-code-regen .nav-drop-btn::before,
body.cd.cd--v3 .has-code-regen .nav-drop-btn::after { content: none; }
body.cd.cd--v3 .has-code-regen .main-nav > a:hover,
body.cd.cd--v3 .has-code-regen .main-nav > a:focus-visible,
body.cd.cd--v3 .has-code-regen .nav-drop-btn:hover,
body.cd.cd--v3 .has-code-regen .nav-drop.is-open .nav-drop-btn { text-shadow: none; }
body.cd .has-code-regen .nav-wort { display: inline-block; }
body.cd.cd--v3 .site-header.has-code-regen .main-nav > a,
body.cd.cd--v3 .site-header.has-code-regen .nav-drop-btn { transition: color .28s ease, text-shadow .28s ease; }
body.cd.cd--v3 .site-header.has-code-regen .main-nav > a.is-code,
body.cd.cd--v3 .site-header.has-code-regen .nav-drop-btn.is-code {
  color: var(--code-farbe);
  text-shadow: 0 0 10px rgba(217, 168, 46, .45);
}
body.cd .has-code-regen .nav-drop-btn .nav-drop-chev { transition: transform .25s ease, color .28s ease; }
body.cd .has-code-regen .nav-drop-btn.is-code .nav-drop-chev { color: var(--code-farbe); }

/* ---------- Variante D ----------
   Wie C, aber der Rot-Schwarz-Lichtkegel fällt oben im Hero von der Oberkante
   auf das Handy (77 % von links). Körnung über die vorhandene .hero-bg-Ebene.
   "Soziologe und Experte für" ist wieder hell, die drei Leisten bleiben wie in C. */
body.cd.cd--v3.cd--v4 .hero {
  background: radial-gradient(ellipse 40% 90% at 77% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
}
body.cd.cd--v3.cd--v4 .hero-bg {
  inset: -10%;
  opacity: .25;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
@media (max-width: 1060px) {
  body.cd.cd--v3.cd--v4 .hero {
    background: radial-gradient(ellipse 80% 70% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}
body.cd.cd--v3.cd--v4 #person {
  background:
    var(--korn),
    radial-gradient(95% 72% at 50% 46%, rgba(248, 245, 238, .96), rgba(248, 245, 238, 0) 72%),
    var(--beige-kante);
}
body.cd.cd--v3.cd--v4 #person::before { display: none; }
body.cd.cd--v3.cd--v4 #person .about-photo { filter: drop-shadow(0 26px 30px rgba(72, 50, 28, .2)); }

/* ---------- Transparente Kopfzeile (gewählte Variante) ---------- */
/* Oben keine eigene Leiste, der Lichtkegel läuft bis ganz nach oben. Ab 12 px
   Scrollweg (main.js setzt .is-scrolled) rastet oben eine dunkle Leiste ein und wird
   dabei etwas flacher. Sie bleibt stehen: .is-hidden (Ausblenden beim
   Runterscrollen) ist hier abgeschaltet. Kontakt-Button gelb. */
body.cd.cd--v3.cd--h3 .site-header {
  background: transparent;
  border-bottom-color: transparent;
  transition:
    transform .35s cubic-bezier(.2, .7, .2, 1),
    height .35s cubic-bezier(.2, .7, .2, 1),
    background .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
}
body.cd.cd--v3.cd--h3 .site-header.is-scrolled {
  --header-h: 66px;
  background: rgba(17, 14, 12, .95);
  backdrop-filter: blur(16px) saturate(1.3);
  -webkit-backdrop-filter: blur(16px) saturate(1.3);
  border-bottom-color: rgba(244, 240, 232, .08);
  box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .7);
}
body.cd.cd--v3.cd--h3 .site-header.is-hidden { transform: none; }
body.cd.cd--v3.cd--h3 .brand .dot { color: var(--gelb); }

/* Hero-Button "Zu meinen Angeboten" gelb (der zweite Button bleibt Kontur) */
body.cd.cd--v3.cd--h3 .hero .btn:not(.btn--white) {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd--v3.cd--h3 .hero .btn:not(.btn--white):hover {
  background: var(--gelb-tief);
  border-color: var(--gelb-tief);
}

/* "Zu meiner Person" im Hero als klares Liquid Glass, wie die Abschluss-Buttons */
body.cd.cd--v3.cd--h3 .hero .btn--white,
body.cd.cd--v3.cd--h3 .hero .btn--white:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd--v3.cd--h3 .hero .btn--white:hover { background: rgba(255, 255, 255, .15); }
body.cd.cd--v3.cd--h3 .hero .btn--white::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}

/* gelber Kontakt-Button */
body.cd.cd--v3.cd--h3 .header-cta {
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd--v3.cd--h3 .header-cta:hover {
  background: var(--gelb-tief);
  border-color: var(--gelb-tief);
  box-shadow: 0 12px 26px -12px rgba(217, 168, 46, .55);
}

/* ============================================================
   Unterseiten (ab 17.10.2026, erste Seite: Sensibilisierungen)
   Allgemein gehalten, damit weitere Seiten mit denselben Bausteinen passen.
   ============================================================ */
/* Seiten-Hero: dunkel mit dem Lichtkegel von oben wie auf der Startseite, dazu Körnung */
body.cd .page-hero {
  isolation: isolate;
  border-bottom: 0;
  color: var(--c-text);
  background: radial-gradient(ellipse 40% 90% at 77% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
}
body.cd .page-hero::before {
  inset: -10%;
  opacity: .25;
  mix-blend-mode: overlay;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
@media (max-width: 1060px) {
  body.cd .page-hero { background: radial-gradient(ellipse 80% 70% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%); }
}

/* Buttons auf dunklem Grund: Hauptbutton gelb, zweiter Button klares Liquid Glass */
body.cd .page-hero .btn:not(.btn--white),
body.cd #workshopleiter .btn:not(.btn--white),
body.cd #angebote .btn,
body.cd #anfrage-formular button.btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd .page-hero .btn:not(.btn--white):hover,
body.cd #workshopleiter .btn:not(.btn--white):hover,
body.cd #angebote .btn:hover,
body.cd #anfrage-formular button.btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }
body.cd .page-hero .btn--white,
body.cd .page-hero .btn--white:hover,
body.cd #workshopleiter .btn--white,
body.cd #workshopleiter .btn--white:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd .page-hero .btn--white:hover,
body.cd #workshopleiter .btn--white:hover { background: rgba(255, 255, 255, .15); }

/* Karten mit Bild (vortrag-card) auf hellem Grund: hell wie die Angebots-Karten */
body.cd .theme-paper .vortrag-card {
  background: var(--c-karte);
  color: var(--c-text-2);
  border: 1px solid var(--c-linie);
  box-shadow: var(--c-karte-schatten);
}
body.cd .theme-paper .vortrag-card h3 { color: var(--c-text); }
body.cd .theme-paper .vortrag-card-body p { color: var(--c-text-2); font-size: 1.04rem; }
body.cd .theme-paper .vortrag-card:hover,
body.cd .theme-paper .vortrag-card:focus-visible,
body.cd .theme-paper .vortrag-card:active {
  background: var(--c-karte);
  border-color: var(--c-linie-stark);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten);
  transform: translateY(-4px);
}

/* Formularfelder */
body.cd .field input,
body.cd .field textarea,
body.cd .field select,
body.cd #anfrage-formular .field input,
body.cd #anfrage-formular .field textarea,
body.cd #anfrage-formular .field select {
  background-color: var(--karte);
  color: var(--tinte);
  border-color: var(--linie-stark);
}
body.cd #anfrage-formular .field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23241d18' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
body.cd .field input:focus,
body.cd .field textarea:focus,
body.cd .field select:focus,
body.cd #anfrage-formular .field input:focus,
body.cd #anfrage-formular .field textarea:focus,
body.cd #anfrage-formular .field select:focus {
  border-color: var(--rot);
  box-shadow: 0 0 0 4px rgba(170, 72, 58, .15);
}
/* Formular auf dunklem Grund (Sensibilisierung): Felder als dunkles Glas, Fokus gelb */
body.cd #anfrage-formular:not(.theme-paper) .field input,
body.cd #anfrage-formular:not(.theme-paper) .field textarea,
body.cd #anfrage-formular:not(.theme-paper) .field select {
  background-color: rgba(255, 255, 255, .05);
  color: var(--c-text);
  border-color: rgba(244, 240, 232, .2);
}
body.cd #anfrage-formular:not(.theme-paper) .field ::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd #anfrage-formular:not(.theme-paper) .field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4f0e8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
body.cd #anfrage-formular:not(.theme-paper) .field select option { background: var(--nacht-karte); color: var(--beige-hell); }
body.cd #anfrage-formular:not(.theme-paper) .field input:focus,
body.cd #anfrage-formular:not(.theme-paper) .field textarea:focus,
body.cd #anfrage-formular:not(.theme-paper) .field select:focus {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px rgba(217, 168, 46, .16);
}
body.cd #anfrage-formular:not(.theme-paper) .btn--ghost,
body.cd #anfrage-formular:not(.theme-paper) .btn--ghost:hover {
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd #anfrage-formular:not(.theme-paper) .btn--ghost:hover { background: rgba(255, 255, 255, .15); }

/* Referenten-Abschnitt: Porträt oben bündig mit dem Text, Text etwas kleiner (spart Höhe) */
@media (min-width: 821px) {
  body.cd .leiter-grid { align-items: start; }
}
body.cd #workshopleiter .leiter-text .lead { font-size: clamp(1.02rem, 1.3vw, 1.14rem); line-height: 1.6; color: var(--c-text); }   /* Einleitung weiß wie die Liste (Niklas, 17.10.2026) */
body.cd #workshopleiter .usp-checklist { gap: 10px; }
body.cd #workshopleiter .usp-checklist li { font-size: 1rem; line-height: 1.5; }
/* Desktop: Buttons nebeneinander ("Gratis Call buchen" rechts neben dem gelben, Niklas, 22.10.2026; vorher untereinander).
   Der englische Text ist kürzer, deshalb dort Einleitung und Liste etwas größer, damit unter dem Text keine Lücke zum Porträt bleibt */
@media (min-width: 821px) {
  html[lang="en"] body.cd #workshopleiter .leiter-text .lead { font-size: clamp(1.08rem, 1.7vw, 1.32rem); }
  html[lang="en"] body.cd #workshopleiter .usp-checklist { gap: 13px; }
  html[lang="en"] body.cd #workshopleiter .usp-checklist li { font-size: 1.14rem; }
}
/* Porträt endet unter dem Pullover: nur ein kurzer weicher Auslauf statt 20 % */
body.cd #workshopleiter .leiter-photo img {
  -webkit-mask-image: linear-gradient(to bottom, #000 93%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 93%, transparent 100%);
}
/* Desktop: Porträt so hoch wie die Textspalte, oben und unten bündig mit dem Text (Niklas, 22.10.2026).
   Das Bild zählt nicht mehr zur Zeilenhöhe und passt sich in die Spalte ein, dadurch wird es kleiner */
@media (min-width: 821px) {
  body.cd #workshopleiter .leiter-photo { align-self: stretch; position: relative; }
  body.cd #workshopleiter .leiter-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center top;
  }
}

/* "Für wen": Überschrift 25 % größer, Liste ohne Bild über die volle Breite, Schrift wie der Fließtext */
body.cd .ws-fuerwen-h2 { font-size: clamp(1.8rem, 5vw, 3.5625rem); }   /* Handy bleibt bei 1.8rem */

/* "Für wen" als Glas-Raster mit Eckdaten-Leiste (Variante 1, gewählt am 17.10.2026) */
body.cd section.section.fw1 {
  background:
    radial-gradient(ellipse 62% 46% at 50% 44%, rgba(170, 72, 58, .5), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 30% 30% at 82% 62%, rgba(217, 168, 46, .18), rgba(217, 168, 46, 0) 70%),
    var(--nacht);
}
body.cd .fw-titel { margin: 0 0 clamp(28px, 3.6vw, 48px); max-width: none; }
body.cd .fw-num { font-family: var(--font-display); font-style: italic; font-weight: 600; line-height: 1; color: var(--gelb); }
body.cd .fw1-raster { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); }
/* Glas: Hintergrund auf der Karte selbst, Reveal-Animation läuft weiter über .reveal */
body.cd .fw1-karte {
  display: flex; flex-direction: column; gap: 18px;
  padding: clamp(22px, 2.4vw, 32px); border-radius: 20px;
  background-color: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
/* Hover: leicht anheben. Läuft über "translate", damit die Reveal-Animation (transform) unberührt bleibt */
body.cd .fw1-karte {
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
body.cd .fw1-karte:hover,
body.cd .fw1-karte:active {
  translate: 0 -5px;
  background-color: rgba(255, 255, 255, .085);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 26px 44px -22px rgba(0, 0, 0, .8);
}
body.cd .fw1-karte .fw-num { font-size: 2.3rem; }
body.cd .fw1-karte p { margin: 0; font-size: 1.22rem; line-height: 1.45; color: var(--c-text); }
body.cd .fw-fakten {
  display: grid; grid-template-columns: repeat(4, 1fr);
  margin-top: clamp(34px, 4.4vw, 56px);
  border-top: 1px solid rgba(217, 168, 46, .55); border-bottom: 1px solid var(--c-linie);
}
body.cd .fw-fakt { padding: 22px 22px 24px 0; display: flex; flex-direction: column; gap: 6px; }
body.cd .fw-fakt + .fw-fakt { padding-left: 22px; border-left: 1px solid var(--c-linie); }
body.cd .fw-fakt b { font-family: var(--font-display); font-style: italic; font-weight: 600; font-size: clamp(1.6rem, 2.3vw, 2.1rem); line-height: 1.1; color: var(--gelb); }
body.cd .fw-fakt span { font-size: 1.02rem; line-height: 1.45; color: var(--c-text-2); }
@media (max-width: 1000px) {
  body.cd .fw1-raster { grid-template-columns: repeat(2, 1fr); }
  body.cd .fw-fakten { grid-template-columns: repeat(2, 1fr); }
  body.cd .fw-fakt:nth-child(3) { padding-left: 0; border-left: 0; }
  body.cd .fw-fakt:nth-child(n+3) { border-top: 1px solid var(--c-linie); }
}
@media (max-width: 640px) {
  body.cd .fw1-raster { grid-template-columns: 1fr; }
  body.cd .fw1-karte { flex-direction: row; align-items: baseline; gap: 16px; padding: 18px 20px; }
  body.cd .fw1-karte .fw-num { font-size: 1.7rem; flex: none; }
  body.cd .fw1-karte p { font-size: 1.08rem; }
  body.cd .fw-fakten { grid-template-columns: 1fr; }
  body.cd .fw-fakt, body.cd .fw-fakt + .fw-fakt { padding: 16px 0; border-left: 0; }
  body.cd .fw-fakt + .fw-fakt { border-top: 1px solid var(--c-linie); }
}
/* Desktop: "Worum es geht" 10 % größer und einzeilig, Text bei "Für wen" größer (Handy unverändert) */
@media (min-width: 821px) {
  body.cd .ws-worum-h2 { font-size: clamp(2.4rem, 5.06vw, 3.74rem); white-space: nowrap; }
  /* Absatz bei "Worum es geht" eine Größe größer */
  body.cd.cd-sens #angebote .prose-block p { font-size: 1.2rem; line-height: 1.6; }
  /* "Häufige Fragen zur Sensibilisierung" einzeilig: Kopf nicht auf 760px begrenzen */
  body.cd #faq .section-head { max-width: none; }
}
/* "Worum es geht": ohne Zwischenüberschrift braucht die Zeitleiste eigenen Abstand zum Absatz */
body.cd.cd-sens #angebote .tok-tl-wrap { margin-top: clamp(40px, 5vw, 64px); }
/* Einleitungsabsatz so groß wie der Text in den Baustein-Karten (.tip-body p) */
body.cd.cd-sens #angebote > .container > .prose-block p { font-size: 1.15rem; line-height: 1.65; }

/* Zwei dunkle Abschnitte direkt hintereinander: der zweite ohne eigenen Schein von oben, sonst entsteht eine Kante */
body.cd.cd-sens .section:not(.theme-paper) + .section:not(.theme-paper) { background: var(--nacht); }
/* "Für wen" mit denselben Abständen wie die übrigen Abschnitte der Seite (style.css setzt sie per ID) */
body.cd #fuer-wen { padding-top: clamp(38px, 5.5vw, 65px); padding-bottom: clamp(38px, 5.5vw, 65px); }

/* Rückmeldung unter Formularen nach dem Absenden: Gelb bei Erfolg, Rot bei Fehler (statt altem Gold) */
body.cd .form-note { background: rgba(217, 168, 46, .12); border-color: rgba(217, 168, 46, .5); color: var(--c-text); }
body.cd .form-note--error { background: rgba(170, 72, 58, .14); border-color: rgba(201, 90, 72, .55); color: var(--c-text); }
body.cd .form-note a { color: inherit; text-decoration-color: var(--c-akzent); }
/* Spam-Hinweis unter „Fast geschafft!“ nach der Newsletter-Anmeldung (kommt aus main.js).
   Bewusst auffällig in Gelb, weil die Bestätigungsmails oft im Spam landen (Niklas, 19.10.2026). */
body.cd .nl-spam {
  display: flex; align-items: flex-start; gap: 12px;
  margin-top: 20px; padding: 14px 16px;
  border: 1.5px solid rgba(217, 168, 46, .7); border-radius: 14px;
  background: rgba(217, 168, 46, .15);
  color: var(--c-text); line-height: 1.5; text-align: left;
}
body.cd .nl-spam svg {
  flex: 0 0 auto; width: 22px; height: 22px; margin-top: 2px;
  fill: none; stroke: var(--gelb); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
body.cd .nl-spam strong { color: var(--gelb); font-weight: 700; }
/* Einwilligungshinweis unter Formularen: Link zur Datenschutzerklärung sichtbar unterstrichen */
body.cd form p a[href$="datenschutz.html"],
body.cd form p a[href$="privacy.html"] { color: inherit; text-decoration: underline; text-decoration-color: var(--c-akzent); text-underline-offset: 3px; }
body.cd form p a[href$="datenschutz.html"]:hover,
body.cd form p a[href$="privacy.html"]:hover { color: var(--c-akzent); }
/* Folgt auf den dunklen Seitenkopf direkt ein dunkler Abschnitt: weicher Übergang statt Kante */
body.cd .page-hero + .section:not(.theme-paper) { background: linear-gradient(180deg, #0a0706 0, var(--nacht) clamp(180px, 24vw, 340px)); }

/* Häkchen auf dunklem Grund in Gelb (auf Hell bleiben sie rot) */
body.cd .section:not(.theme-paper) .tick,
body.cd .section:not(.theme-paper) .tick--green { background: rgba(217, 168, 46, .16); color: var(--gelb); }

/* Inline-Links im Fließtext */
body.cd .a-inline,
body.cd .prose-block a { color: var(--c-akzent); text-decoration-color: currentColor; }
body.cd .a-inline:hover,
body.cd .prose-block a:hover { color: var(--c-text); text-decoration-color: var(--c-akzent); }

/* Bilder mit Rahmen (ws-figure) */
body.cd .ws-figure img,
body.cd .theme-paper .ws-figure img { border: 0; box-shadow: 0 34px 60px -30px rgba(52, 34, 18, .5); }

/* Bausteine als Zeitleiste (tip-card, tok-tl) */
body.cd .tip-card {
  background: var(--c-karte);
  border: 1px solid var(--c-linie);
  box-shadow: var(--c-karte-schatten);
}
body.cd .tip-card::before { background: linear-gradient(90deg, var(--rot), var(--gelb)); }
body.cd .tip-card:hover { border-color: var(--c-linie-stark); box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten); }
body.cd .tip-num { background: none; -webkit-text-fill-color: currentColor; color: var(--c-akzent); font-style: italic; font-weight: 600; }
body.cd .tip-title { color: var(--c-text); }
body.cd .tip-body p,
body.cd .theme-paper .tip-body p { color: var(--c-text-2); }
body.cd .tok-tl-wrap--js .tok-tl-line { background: rgba(170, 72, 58, .18); }
body.cd .tok-tl-line-fill { background: linear-gradient(180deg, var(--rot), var(--gelb)); box-shadow: 0 0 12px rgba(217, 168, 46, .45); }
/* main.js setzt den Schein des Punkts beim Scrollen als Inline-Stil, deshalb !important */
body.cd .tok-tl-dot { border-color: rgba(248, 230, 190, .9); background: radial-gradient(circle at 50% 36%, #f3d48a, var(--gelb) 55%, var(--gelb-tief)) !important; box-shadow: 0 0 0 4px var(--nacht), 0 0 18px 2px rgba(217, 168, 46, .55) !important; }
body.cd .theme-paper .tok-tl-dot { box-shadow: 0 0 0 4px var(--beige-kante), 0 0 20px 2px rgba(217, 168, 46, .55) !important; }

/* Häufige Fragen (Akkordeon) */
body.cd .acc-item { background: var(--c-karte); border-color: var(--c-linie); box-shadow: var(--c-karte-schatten); }
body.cd .acc-item.is-open { border-color: var(--c-linie-stark); }
body.cd .acc-head { font-family: var(--font-display); color: var(--c-text); }
body.cd .acc-icon { border-color: var(--c-linie-stark); color: var(--c-text); }
body.cd .acc-item.is-open .acc-icon { background: var(--gelb); border-color: var(--gelb); color: var(--tinte); }
body.cd .acc-item p { color: var(--c-text-2); }

/* "Was Ihr Team mitnimmt" (takeaway) auf Dunkel als Liquid Glass */
body.cd .takeaway-box {
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd .takeaway-box:hover { border-color: transparent; box-shadow: inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .6), inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .28), inset 0 0 0 1px rgba(255, 255, 255, .14), 0 22px 40px -20px rgba(0, 0, 0, .75); }
body.cd .takeaway-num { font-family: var(--font-display); font-style: italic; color: var(--c-akzent); }
/* auf Beige (Sensibilisierung seit 17.10.2026): helle Karte statt Glas */
body.cd .theme-paper .takeaway-box {
  background: var(--c-karte);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border: 1px solid var(--c-linie);
  box-shadow: var(--c-karte-schatten);
}
body.cd .theme-paper .takeaway-box:hover { border-color: var(--c-linie-stark); box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten); }

/* ---------- Hero-Handy im Stil "Titan Natur" (Variante C) ----------
   In Originalgröße gebaut (Rahmen 420 x 876 px) und über zoom auf der inneren
   Ebene .tphone verkleinert. #llmPhone selbst bleibt unverkleinert, damit die
   Einflug-Animation aus main.js (transform in px) stimmt. Die Chat-Logik hängt
   nur an #llmPhone, [data-chat-log] und [data-chat-chips]. */
body.cd .tphone-wrap { position: relative; }
body.cd .tphone {
  --t-accent: var(--rot);
  --t-ink: #2a211b;
  --t-muted: #7a6f63;
  --t-screen: #fbf8f2;
  --t-sheet: #f4eee5;
  --t-bubble: #efe7dc;
  position: relative;
  zoom: .69;
  width: 420px;
  height: 876px;
  padding: 4px;
  border-radius: 70px;
  background: linear-gradient(145deg, #a9a296 0%, #d8d2c7 20%, #bdb6aa 48%, #e2ddd3 76%, #9d968a 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .55),
    inset 0 0 0 2.5px rgba(0, 0, 0, .10),
    0 70px 90px -55px rgba(60, 40, 20, .6),
    0 30px 40px -30px rgba(60, 40, 20, .35);
  font-family: "Instrument Sans", system-ui, sans-serif;
  color: var(--t-ink);
}
@media (max-width: 360px) { body.cd .tphone { zoom: .62; } }
body.cd .tphone-floor {
  position: absolute; left: 50%; bottom: -58px; transform: translateX(-50%);
  width: 340px; height: 44px; border-radius: 50%;
  background: rgba(60, 40, 20, .32); filter: blur(24px);
  pointer-events: none;
}
body.cd .tphone-btn { position: absolute; width: 4px; background: linear-gradient(90deg, #8f887c, #cfc9be); }
body.cd .tphone-btn--l { left: -3px; border-radius: 3px 0 0 3px; }
body.cd .tphone-btn--r { right: -3px; border-radius: 0 3px 3px 0; background: linear-gradient(270deg, #8f887c, #cfc9be); }
body.cd .tphone-action { top: 168px; height: 34px; }
body.cd .tphone-volup { top: 232px; height: 62px; }
body.cd .tphone-voldown { top: 306px; height: 62px; }
body.cd .tphone-power { top: 262px; height: 100px; }
body.cd .tphone-bezel {
  width: 412px; height: 868px; padding: 11px; border-radius: 66px;
  background: #050506; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07);
}
body.cd .tphone-screen {
  position: relative; width: 390px; height: 846px; border-radius: 55px;
  overflow: hidden; background: var(--t-screen);
  display: flex; flex-direction: column;
}
body.cd .tphone-island {
  position: absolute; top: 11px; left: 50%; transform: translateX(-50%); z-index: 6;
  width: 124px; height: 36px; border-radius: 20px; background: #000;
  display: flex; align-items: center; justify-content: flex-end; padding-right: 13px;
}
body.cd .tphone-lens {
  width: 11px; height: 11px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #34405e 0%, #0d1220 55%, #000 100%);
  box-shadow: 0 0 0 1.5px #121212;
}
body.cd .tphone-glare {
  position: absolute; inset: 0; z-index: 7; pointer-events: none; border-radius: 55px;
  background: linear-gradient(118deg, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, 0) 30%);
}
body.cd .tphone-home {
  position: absolute; bottom: 9px; left: 50%; transform: translateX(-50%); z-index: 8;
  width: 136px; height: 5px; border-radius: 3px; background: rgba(42, 33, 27, .8);
}
/* Kopf der Chat-App */
body.cd .tphone-head {
  flex-shrink: 0; display: flex; align-items: center; gap: 12px;
  padding: 60px 18px 14px; border-bottom: 1px solid rgba(42, 33, 27, .08);
  background: rgba(251, 248, 242, .9);
}
body.cd .tphone-avatar {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--t-accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25);
}
body.cd .tphone-title { flex: 1; min-width: 0; }
body.cd .tphone-name { font-size: 16px; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
body.cd .tphone-sub { font-size: 13px; color: var(--t-muted); margin-top: 1px; line-height: 1.3; }
body.cd .tphone-reset {
  width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 1px solid rgba(42, 33, 27, .1); background: #fff; color: var(--t-ink);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
body.cd .tphone-reset svg { transition: transform .5s cubic-bezier(.3, .7, .3, 1); }
body.cd .tphone-reset:active svg { transform: rotate(-180deg); transition-duration: .2s; }
/* Chatverlauf (die Nachrichten erzeugt main.js) */
body.cd .tphone .chat-log {
  flex: 1; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; gap: 10px;
  padding: 18px 16px 16px 50px;
  scrollbar-width: none;
}
body.cd .tphone .chat-log::-webkit-scrollbar { display: none; }
body.cd .tphone-day { align-self: center; margin-left: -34px; font-size: 12px; font-weight: 500; color: var(--t-muted); }
body.cd .tphone .chat-msg {
  position: relative; max-width: 278px; padding: 13px 16px;
  font-size: 17px; line-height: 1.42; color: var(--t-ink);
}
body.cd .tphone .chat-msg--bot { align-self: flex-start; background: var(--t-bubble); border-radius: 22px 22px 22px 6px; }
body.cd .tphone .chat-msg--bot::before {
  content: ""; position: absolute; left: -36px; bottom: 0;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--t-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 3c.5 4.5 2.5 6.5 9 9-6.5 2.5-8.5 4.5-9 9-.5-4.5-2.5-6.5-9-9 6.5-2.5 8.5-4.5 9-9Z'/%3E%3C/svg%3E") center / 13px no-repeat;
}
body.cd .tphone .chat-msg--user { align-self: flex-end; background: var(--t-accent); color: #fff; border-radius: 22px 22px 6px 22px; }
body.cd .tphone .chat-msg a { display: inline-block; margin-top: 6px; font-weight: 700; color: var(--t-accent); }
body.cd .tphone .chat-typing { display: inline-flex; gap: 5px; align-items: center; padding: 18px 18px; }
body.cd .tphone .chat-typing i { width: 8px; height: 8px; background: #b3a596; }
/* Vorschläge als Liquid-Glass-Chips, ohne Fläche dahinter. Glas braucht etwas, das es
   zeigen kann: unten im Chat liegt deshalb ein weicher Farbschein in Rot und Gold (ohne
   Kanten), und längere Antworten scrollen hinter dem Glas durch. Die Chips selbst sind fast
   klar, mit Lichtkanten am Rand und Weichzeichner für das, was dahinter liegt.
   (Ein SVG-Brechungsfilter per backdrop-filter: url() hat in Chromium den Weichzeichner
   ganz abgeschaltet und ist deshalb wieder raus.) Das Polster unten im Verlauf hält die
   letzte Zeile über den Chips. */
body.cd .tphone-screen { background: var(--t-screen); isolation: isolate; }
/* Verlauf "Abendrot" (Niklas' Wahl, 17.10.2026) als eigene Ebene hinter dem Chat. Er fährt
   von unten nach oben ein, sobald main.js die Chips einsetzt (:has), gleichzeitig mit den
   Chips, die von unten nach oben erscheinen (unterster zuerst). */
body.cd .tphone-screen::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(to top, rgba(170, 72, 58, .95) 0%, rgba(212, 110, 72, .88) 13%, rgba(230, 160, 82, .72) 27%, rgba(240, 206, 140, .36) 40%, rgba(251, 248, 242, 0) 52%);
  opacity: 0;
  transform: translateY(70%);
}
/* Dauer und Kurve so gewählt, dass der Verlauf mit dem obersten Chip (Start nach .42 s,
   Dauer .55 s) oben ankommt */
body.cd .tphone-screen:has(.chat-chip)::before { animation: tVerlaufHoch 1.1s cubic-bezier(.4, .1, .25, 1) forwards; }
@keyframes tVerlaufHoch {
  0%   { opacity: 0; transform: translateY(70%); }
  25%  { opacity: 1; }
  100% { opacity: 1; transform: none; }
}
body.cd .tphone .chat-chips .chat-chip { animation: tChipHoch .55s cubic-bezier(.2, .8, .2, 1) backwards; }
body.cd .tphone .chat-chips .chat-chip:nth-child(4) { animation-delay: 0s; }
body.cd .tphone .chat-chips .chat-chip:nth-child(3) { animation-delay: .14s; }
body.cd .tphone .chat-chips .chat-chip:nth-child(2) { animation-delay: .28s; }
body.cd .tphone .chat-chips .chat-chip:nth-child(1) { animation-delay: .42s; }
@keyframes tChipHoch {
  from { opacity: 0; transform: translateY(22px) scale(.97); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.cd .tphone-screen:has(.chat-chip)::before { animation: none; opacity: 1; transform: none; }
  body.cd .tphone .chat-chips .chat-chip { animation: none; }
}
body.cd .tphone .chat-log { padding-bottom: 330px; }
body.cd .tphone .chat-chips {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
  display: flex; flex-direction: column; gap: 10px;
  padding: 16px 16px 30px;
  background: none; border-top: 0;
}
body.cd .tphone .chat-chips:empty { display: none; }
body.cd .tphone .chat-chips .chat-chip,
body.cd .tphone .chat-chips .chat-chip:hover {
  position: relative; isolation: isolate;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; text-align: left; padding: 14px 12px 14px 18px;
  border: 0; border-radius: 24px; color: #141110;
  font: 650 16px/1.3 "Instrument Sans", system-ui, sans-serif;
  background: rgba(255, 255, 255, .22);
  -webkit-backdrop-filter: blur(14px) saturate(1.8) brightness(1.06);
  backdrop-filter: blur(14px) saturate(1.8) brightness(1.06);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .95),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .6),
    inset 0 0 0 1px rgba(255, 255, 255, .25),
    inset 0 10px 18px -12px rgba(255, 255, 255, .7),
    inset 0 -10px 18px -14px rgba(60, 25, 10, .25),
    0 12px 26px -14px rgba(50, 20, 8, .5),
    0 2px 5px rgba(50, 20, 8, .12);
  transition: transform .2s ease, background .2s ease, opacity .2s ease;
}
/* Lichtkante: heller Rand, oben links und unten rechts am stärksten */
body.cd .tphone .chat-chips .chat-chip::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .15) 35%, rgba(255, 255, 255, .08) 65%, rgba(255, 255, 255, .75));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd .tphone .chat-chips .chat-chip::after {
  content: ""; position: relative; flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 255, 255, .35) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141110' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5'/%3E%3Cpath d='m5 12 7-7 7 7'/%3E%3C/svg%3E") center / 14px no-repeat;
  box-shadow: inset 1px 1px 1px -.5px rgba(255, 255, 255, .95), inset -1px -1px 1px -.5px rgba(255, 255, 255, .5), 0 2px 6px rgba(50, 20, 8, .15);
}
body.cd .tphone .chat-chips .chat-chip:hover { transform: translateY(-1px); background: rgba(255, 255, 255, .32); }
body.cd .tphone .chat-chips .chat-chip:active { transform: translateY(1px) scale(.99); }
body.cd .tphone .chat-chips .chat-chip[disabled] { opacity: .6; cursor: default; transform: none; }

/* ---------- Cookie-Banner im neuen CD (hell) ---------- */
body.cd #cc-main {
  --cc-font-family: var(--font-body);
  --cc-bg: #fbf9f4;
  --cc-primary-color: #241d18;
  --cc-secondary-color: #4d4239;
  --cc-btn-primary-bg: var(--flaeche);
  --cc-btn-primary-color: var(--auf-flaeche);
  --cc-btn-primary-border-color: var(--flaeche);
  --cc-btn-primary-hover-bg: var(--flaeche-hover);
  --cc-btn-primary-hover-color: var(--auf-flaeche);
  --cc-btn-primary-hover-border-color: var(--flaeche-hover);
  --cc-btn-secondary-bg: transparent;
  --cc-btn-secondary-color: #241d18;
  --cc-btn-secondary-border-color: rgba(36, 29, 24, .28);
  --cc-btn-secondary-hover-bg: rgba(36, 29, 24, .05);
  --cc-btn-secondary-hover-color: #241d18;
  --cc-btn-secondary-hover-border-color: #241d18;
  --cc-separator-border-color: rgba(36, 29, 24, .12);
  --cc-toggle-on-bg: var(--akzent);
  --cc-toggle-off-bg: #b9ad9f;
  --cc-toggle-readonly-bg: #d6ccbe;
  --cc-toggle-readonly-knob-icon-color: #4d4239;
  --cc-cookie-category-block-bg: rgba(36, 29, 24, .03);
  --cc-cookie-category-block-border: rgba(36, 29, 24, .10);
  --cc-cookie-category-block-hover-bg: rgba(36, 29, 24, .05);
  --cc-cookie-category-block-hover-border: var(--rand-hover);
  --cc-cookie-category-expanded-block-bg: rgba(36, 29, 24, .02);
  --cc-cookie-category-expanded-block-hover-bg: rgba(36, 29, 24, .05);
  --cc-overlay-bg: rgba(17, 14, 12, .55);
  --cc-link-color: var(--akzent);
}
body.cd #cc-main .cm__title,
body.cd #cc-main .pm__title { font-family: var(--font-display); font-weight: 700; }
body.cd #cc-main a,
body.cd #cc-main .cm__footer a,
body.cd #cc-main .pm__body a { color: var(--akzent); }
body.cd #cc-main .cm__footer a:hover { color: var(--tinte); }
body.cd #cc-main .pm__badge,
body.cd #cc-main .section__toggle:checked + .toggle__icon { background: var(--akzent); }

/* ---------- Footer: Lichtleiste (gewählt am 17.10.2026, Klasse .cd--f4) ---------- */
/* F4: Lichtleiste. Die Goldkante leuchtet, ein weicher goldener Schein fällt in den Footer */
body.cd.cd--f4 .site-footer {
  --c-akzent: var(--gelb);
  --c-deko: var(--gelb);
  border-top: 1px solid rgba(217, 168, 46, .9);
  background:
    radial-gradient(60% 140px at 50% 0%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0) 100%),
    linear-gradient(180deg, rgba(217, 168, 46, .07), rgba(217, 168, 46, 0) 180px),
    #1b1612;
  box-shadow: 0 -8px 26px -14px rgba(217, 168, 46, .38);
}
body.cd.cd--f4 .site-footer .socials a:hover {
  background: var(--gelb);
  border-color: var(--gelb);
  color: var(--tinte);
}

/* ============================================================
   SEITENBEZOGENE REGELN (Umbau aller Seiten ins neue CD, 17.10.2026)
   Jede Regel beginnt mit body.cd.cd-seite-<seite>; die Klasse steht im <body> der Seite.
   Englische Seiten tragen zusätzlich die Klasse ihres deutschen Gegenstücks.
   ============================================================ */

/* ---------- Seite: artikel ---------- */
/* Neues CD: Anpassungen für alle Artikel (gemeinsame Artikel-Vorlage). Jede Regel beginnt mit body.cd.cd-seite-artikel.
   Gilt für alle acht Seiten unter artikel/. Was nur einen Artikel betrifft, steht in artikel-<name>.css. */

/* ---------- Grundmaße der Vorlage ----------
   --artikel-spalte: Lesebreite des Fließtexts. 724px entsprechen dem Inhalt der schon vorhandenen
   820px-Container (820 minus 2 x 48px Rand), damit alle Artikel dieselbe Spalte haben.
   --artikel-text: Schriftgröße des Fließtexts (rund 75 bis 80 Zeichen pro Zeile in der Spalte). */
body.cd.cd-seite-artikel {
  --artikel-spalte: none;   /* volle Inhaltsbreite wie auf der Live-Seite (Niklas, 17.10.2026); vorher 724px */
  --artikel-text: clamp(1.12rem, 1.5vw, 1.28rem);
  --artikel-zeile: 1.7;
  --artikel-luft: clamp(38px, 5.5vw, 65px);
}
/* Schatten für Karten beim Überfahren, je nach hellem oder dunklem Abschnitt */
body.cd.cd-seite-artikel .theme-paper {
  --artikel-karte-hover: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten);
  --artikel-bild-schatten: 0 34px 60px -30px rgba(52, 34, 18, .5);
}
body.cd.cd-seite-artikel .section:not(.theme-paper),
body.cd.cd-seite-artikel .page-hero {
  --artikel-karte-hover: 0 1px 0 rgba(244, 240, 232, .06) inset, 0 30px 50px -26px rgba(0, 0, 0, .8);
  --artikel-bild-schatten: 0 34px 60px -28px rgba(0, 0, 0, .75);
}

/* ---------- Seitenkopf: Brotkrumen und dunkler Kopf aus einem Guss ----------
   Die Brotkrumen liegen im HTML vor dem .page-hero. Sie werden über den Kopf gelegt, damit der
   rote Lichtkegel wie auf der Startseite ganz oben unter der transparenten Kopfzeile beginnt und
   keine eigene schwarze Leiste mehr über dem Kopf steht. Die Zeile bleibt immer einzeilig (der
   Seitentitel kürzt sich notfalls mit "…"), deshalb ist ihre Höhe fest und der Kopf kann sie
   in seinem oberen Abstand exakt freihalten. */
body.cd.cd-seite-artikel #main { position: relative; }
body.cd.cd-seite-artikel .crumb-wrap {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);   /* Fließtext auf Dunkel deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(244, 240, 232, .45);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  padding-top: calc(var(--header-h) + clamp(10px, 1.8vw, 16px));
}
body.cd.cd-seite-artikel .crumbs {
  flex-wrap: nowrap;
  white-space: nowrap;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--c-text-3);
}
body.cd.cd-seite-artikel .crumbs > * { flex: none; }
body.cd.cd-seite-artikel .crumbs [aria-current="page"] {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--c-text);
}
body.cd.cd-seite-artikel .crumbs a { color: var(--c-text-2); }
body.cd.cd-seite-artikel .crumbs a:hover,
body.cd.cd-seite-artikel .crumbs a:focus-visible { color: var(--gelb); }
body.cd.cd-seite-artikel .crumbs .crumbs-sep { opacity: 1; color: var(--c-text-3); }
/* oberer Abstand des Kopfs = Kopfzeile + Abstand + eine Brotkrumen-Zeile (.9rem x 1.5) + bisheriger Abstand zum Titel */
body.cd.cd-seite-artikel .crumb-wrap + .page-hero {
  padding-top: calc(var(--header-h) + clamp(10px, 1.8vw, 16px) + 1.35rem + clamp(18px, 2.8vw, 32px));
}

/* Autor und Datum unter dem Vorspann */
body.cd.cd-seite-artikel .artikel-byline {
  font-family: var(--font-label);
  color: var(--c-text-2);
  opacity: 1;
}
body.cd.cd-seite-artikel .artikel-byline-sep { opacity: 1; color: var(--c-text-3); }

/* ---------- Abschnitte ---------- */
body.cd.cd-seite-artikel main > .section { padding-block: var(--artikel-luft); }
/* zwei dunkle Abschnitte direkt hintereinander: der zweite ohne eigenen Schein von oben (sonst Kante) */
body.cd.cd-seite-artikel .section:not(.theme-paper) + .section:not(.theme-paper) { background: var(--nacht); }

/* ---------- Lesespalte und Fließtext ---------- */
body.cd.cd-seite-artikel main > .section > .container > .section-head,
body.cd.cd-seite-artikel main > .section > .container > .prose-block,
body.cd.cd-seite-artikel main > .section > .container > .art-intro {
  max-width: var(--artikel-spalte);
  margin-inline: auto;
}
body.cd.cd-seite-artikel .art-intro-first { max-width: none; }
body.cd.cd-seite-artikel main > .section .section-head .lead,
body.cd.cd-seite-artikel main > .section .art-intro .lead,
body.cd.cd-seite-artikel main > .section .prose-block p {
  max-width: none;
  font-size: var(--artikel-text);
  line-height: var(--artikel-zeile);
  color: var(--c-text-2);
}
body.cd.cd-seite-artikel main > .section .prose-block p strong,
body.cd.cd-seite-artikel main > .section .lead strong { color: var(--c-text); }
/* Karten im Text (Fallbeispiele) behalten ihre kompaktere Schrift */
body.cd.cd-seite-artikel main > .section .card .prose-block p {
  font-size: 1.08rem;
  line-height: 1.65;
}

/* Zwischenüberschriften: Abstand zum Text nicht übertrieben groß */
body.cd.cd-seite-artikel main > .section .section-head > h2 + .lead,
body.cd.cd-seite-artikel main > .section .section-head > h2 + p { margin-top: clamp(14px, 1.6vw, 20px); }
body.cd.cd-seite-artikel main > .section .section-head { margin-bottom: clamp(28px, 3.6vw, 44px); }

/* Links im Fließtext in der Akzentfarbe, Unterstrich in derselben Farbe */
body.cd.cd-seite-artikel .a-inline,
body.cd.cd-seite-artikel .tlink,
body.cd.cd-seite-artikel .prose-block a,
body.cd.cd-seite-artikel .lead a,
body.cd.cd-seite-artikel .tip-body a {
  color: var(--c-akzent);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  text-decoration-color: currentColor;
}
body.cd.cd-seite-artikel .a-inline:hover,
body.cd.cd-seite-artikel .tlink:hover,
body.cd.cd-seite-artikel .prose-block a:hover,
body.cd.cd-seite-artikel .lead a:hover,
body.cd.cd-seite-artikel .tip-body a:hover {
  color: var(--c-text);
  text-decoration-color: var(--c-akzent);
}

/* Textmarker (.mk-pen) im Rot des neuen CD */
body.cd.cd-seite-artikel .mk-pen {
  background-image: linear-gradient(transparent 16%, rgba(170, 72, 58, .2) 16%, rgba(170, 72, 58, .2) 90%, transparent 90%);
}
body.cd.cd-seite-artikel .section:not(.theme-paper) .mk-pen {
  background-image: linear-gradient(transparent 16%, rgba(201, 90, 72, .32) 16%, rgba(201, 90, 72, .32) 90%, transparent 90%);
}

/* ---------- Titelbild und Bilder im Text ---------- */
body.cd.cd-seite-artikel .artikel-hero-figure {
  border: 0;
  background: var(--nacht);
  box-shadow: var(--artikel-bild-schatten);
}
/* Bildunterschriften */
body.cd.cd-seite-artikel .art-cap,
body.cd.cd-seite-artikel .art-cap--dark {
  color: var(--c-text-3);
  opacity: 1;
}

/* ---------- Info- und Merkboxen (.art-note) ---------- */
body.cd.cd-seite-artikel .art-note,
body.cd.cd-seite-artikel .art-note--dark {
  border: 1px solid var(--c-linie);
  border-left: 3px solid var(--c-akzent);
  background: var(--c-karte);
  box-shadow: var(--c-karte-schatten);
}
body.cd.cd-seite-artikel .art-note p,
body.cd.cd-seite-artikel .art-note--dark p { color: var(--c-text-2); }
body.cd.cd-seite-artikel .art-note p strong,
body.cd.cd-seite-artikel .art-note--dark p strong { color: var(--c-akzent); }

/* ---------- Karten (Fallbeispiele, Raster-Karten): ruhiger Rand, beim Überfahren nur Anheben ---------- */
body.cd.cd-seite-artikel .card:hover,
body.cd.cd-seite-artikel .case-card:hover,
body.cd.cd-seite-artikel .case-card.is-gold,
body.cd.cd-seite-artikel .case-card.is-gold:hover {
  border-color: var(--c-linie-stark);
  box-shadow: var(--artikel-karte-hover);
}

/* ---------- Zeitleiste mit nummerierten Karten (tip-card, tok-tl) ---------- */
body.cd.cd-seite-artikel .section:not(.theme-paper) .tip-card:hover { box-shadow: var(--artikel-karte-hover); }
body.cd.cd-seite-artikel .tip-body .num { color: var(--c-akzent); font-family: var(--font-label); }
body.cd.cd-seite-artikel .tok-tl-dot { border-color: rgba(243, 212, 138, .9); }

/* ---------- Buttons ----------
   Auf Beige bleibt der Hauptbutton rot (neues-cd.css). Auf Dunkel wird er gelb wie auf den Referenzseiten. */
body.cd.cd-seite-artikel main > .section:not(.theme-paper) .btn:not(.btn--white):not(.btn--ghost) {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-artikel main > .section:not(.theme-paper) .btn:not(.btn--white):not(.btn--ghost):hover {
  background: var(--gelb-tief);
  border-color: var(--gelb-tief);
}

/* ---------- Autorenbox am Artikelende (.artikel-bio-cta) ----------
   Immer dunkel, auf Beige wie auf Dunkel (CLAUDE.md: das freigestellte Porträt läuft unten
   weich in den dunklen Grund aus). Die Box trägt deshalb selbst die dunklen Kontext-Tokens.
   Button gelb. Beim Überfahren hebt sich die Box an, Rand und Schein werden dezent gelb,
   der Hintergrund bleibt dunkel. Handy (< 560px): gestapelt, Porträt oben (style.css). */
body.cd.cd-seite-artikel .artikel-bio-cta {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);   /* Fließtext auf Dunkel deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(244, 240, 232, .52);
  --c-linie: rgba(244, 240, 232, .12);
  --c-linie-stark: rgba(244, 240, 232, .30);
  --c-karte: var(--nacht-karte);
  --glow: rgba(217, 168, 46, .45);
  max-width: var(--artikel-spalte);
  background: var(--nacht-karte);
  color: var(--c-text);
  border: 1px solid var(--c-linie);
  box-shadow:
    inset 0 1px 0 rgba(244, 240, 232, .07),
    0 30px 50px -28px rgba(23, 19, 16, .7);
}
body.cd.cd-seite-artikel .artikel-bio-cta:hover,
body.cd.cd-seite-artikel .artikel-bio-cta:focus-visible,
body.cd.cd-seite-artikel .artikel-bio-cta:focus-within,
body.cd.cd-seite-artikel .artikel-bio-cta:active {
  background: var(--nacht-karte);
  border-color: rgba(217, 168, 46, .55);
  box-shadow:
    inset 0 1px 0 rgba(244, 240, 232, .07),
    0 30px 50px -28px rgba(23, 19, 16, .7);
  transform: translateY(-4px);
}
body.cd.cd-seite-artikel .artikel-bio-cta-text { color: var(--c-text); }
body.cd.cd-seite-artikel .artikel-bio-cta .btn,
body.cd.cd-seite-artikel main > .section:not(.theme-paper) .artikel-bio-cta .btn {
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-artikel .artikel-bio-cta:hover .btn,
body.cd.cd-seite-artikel .artikel-bio-cta:focus-visible .btn,
body.cd.cd-seite-artikel main > .section:not(.theme-paper) .artikel-bio-cta:hover .btn,
body.cd.cd-seite-artikel main > .section:not(.theme-paper) .artikel-bio-cta:focus-visible .btn {
  background: var(--gelb-tief);
  border-color: var(--gelb-tief);
  box-shadow: none;
}
body.cd.cd-seite-artikel .artikel-bio-cta .btn:active {
  transform: scale(.97);
  box-shadow: 0 0 30px -4px var(--glow);
}
@media (max-width: 560px) {
  body.cd.cd-seite-artikel .artikel-bio-cta-body {
    background: linear-gradient(to bottom, transparent 0, var(--nacht-karte) 44px);
  }
}

/* ---------- Seite: artikel-chatgpt-als-therapeut ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-chatgpt-als-therapeut. Jede Regel beginnt mit body.cd-seite-artikel-chatgpt-als-therapeut. */

/* Zwischenüberschrift direkt vor Fließtext: gleicher Abstand wie Überschrift zu Vorspann (rund 28px).
   Ersetzt den früheren Inline-Abstand an "Chatbots sind Speichellecker" und gilt jetzt auch für
   "Einzelfälle oder System?", das sonst 44px Luft zum Text hatte. */
body.cd.cd-seite-artikel-chatgpt-als-therapeut main > .section .section-head:has(+ .prose-block) {
  margin-bottom: clamp(17px, 2.5vw, 28px);
}
/* Abstand von der Einleitung zur ersten Zwischenüberschrift (vorher Inline-Stil) */
body.cd.cd-seite-artikel-chatgpt-als-therapeut .art-intro + .section-head {
  margin-top: clamp(30px, 4.5vw, 52px);
}

/* Letzter Absatz am Ende des ersten Abschnitts: Unterlänge des Zeilenabstands ausgleichen,
   damit vom Text bis zur Abschnittskante wie überall 65px bleiben */
body.cd.cd-seite-artikel-chatgpt-als-therapeut main > .section > .container > .prose-block:last-child {
  margin-bottom: calc(var(--artikel-text) * -.4);
}

/* Fallbeispiel-Karten auf Dunkel: so breit wie die Lesespalte (wie die Karten im Referenzartikel) */
body.cd.cd-seite-artikel-chatgpt-als-therapeut .case-card {
  max-width: var(--artikel-spalte);
  margin-inline: auto;
}
/* Beim Überfahren nur Anheben (ohne 3D-Swivel, card--tilt ist entfernt). Läuft über "translate",
   weil .reveal.is-in den transform von .card:hover überschreibt; Rand und Schatten blenden weich über. */
body.cd.cd-seite-artikel-chatgpt-als-therapeut .case-card {
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), border-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
body.cd.cd-seite-artikel-chatgpt-als-therapeut .case-card:hover { translate: 0 -4px; }
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-artikel-chatgpt-als-therapeut .case-card:hover { translate: none; }
}

/* ---------- Seite: artikel-der-kluge-hans-effekt ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-der-kluge-hans-effekt. Jede Regel beginnt mit body.cd.cd-seite-artikel-der-kluge-hans-effekt.
   Gemeinsame Artikel-Regeln stehen in artikel.css, hier nur, was ausschließlich diesen Artikel betrifft. */

/* Der helle Abschnitt endet mit Fließtext (Zeilenhöhe 1.7): der halbe Zeilenabstand unter der
   letzten Zeile vergrößert die Lücke zur Unterkante um rund 8px, deshalb unten entsprechend weniger */
body.cd.cd-seite-artikel-der-kluge-hans-effekt main > .section.theme-paper {
  padding-bottom: calc(var(--artikel-luft) - 8px);
}

/* Zwischenüberschriften ohne eigenen Vorspann: Abstand zum folgenden Fließtext wie in der
   Referenz (h2 + .lead in artikel.css) statt der vollen Kopf-Luft */
body.cd.cd-seite-artikel-der-kluge-hans-effekt main > .section .section-head {
  margin-bottom: clamp(14px, 1.6vw, 20px);
}

/* Porträt von Wilhelm von Osten im Text: derselbe weiche Schatten wie das Titelbild */
body.cd.cd-seite-artikel-der-kluge-hans-effekt .art-figure:not(.maze-figure) img {
  box-shadow: var(--artikel-bild-schatten);
}

/* ---------- Seite: artikel-funktionsweise-sprachmodelle ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-funktionsweise-sprachmodelle. Jede Regel beginnt mit body.cd-seite-artikel-funktionsweise-sprachmodelle.
   Gemeinsames (Kopf, Lesespalte, Zeitleiste, Buttons, Abstände) kommt aus artikel.css. */

/* ---------- Erster Abschnitt direkt unter dem dunklen Seitenkopf ----------
   Kein eigener Schein von oben: der Grund läuft vom dunklen Ende des Lichtkegels (#0a0706)
   weich in das warme Schwarz, damit zwischen Kopf und Abschnitt keine Kante entsteht. */
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .page-hero + .section:not(.theme-paper) {
  background: linear-gradient(180deg, #0a0706 0, var(--nacht) clamp(240px, 30vw, 440px));
}

/* ---------- Grafik Input → Sprachmodell → Output ----------
   Rahmen als Liquid Glass (Rezept wie .takeaway-box), Input gelb, Output rot,
   das Modell selbst als dunkle Box mit leichtem rotem Schein. Positionen setzt main.js. */
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-anim {
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-box {
  background: linear-gradient(160deg, #2a221d, var(--nacht-tief));
  border-color: rgba(244, 240, 232, .18);
  box-shadow: 0 0 40px -10px rgba(170, 72, 58, .55), inset 0 0 30px -16px rgba(201, 90, 72, .45);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-box-label { color: var(--beige-hell); }
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-chip--move {
  border-color: var(--gelb-tief);
  background: linear-gradient(135deg, var(--gelb), var(--gelb-tief));
  box-shadow: 0 0 26px -4px rgba(217, 168, 46, .6);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-chip--move.is-output {
  border-color: var(--rot-hell);
  background: linear-gradient(135deg, var(--rot-hell), var(--rot));
  box-shadow: 0 0 26px -4px rgba(201, 90, 72, .65);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-lbl--in { color: var(--tinte); }
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-lbl--out { color: var(--beige-licht); }
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-line--in {
  background: linear-gradient(90deg, rgba(217, 168, 46, .15), var(--gelb));
  box-shadow: 0 0 10px -1px rgba(217, 168, 46, .8);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-line--out {
  background: linear-gradient(90deg, var(--rot-hell), rgba(201, 90, 72, .15));
  box-shadow: 0 0 10px -1px rgba(201, 90, 72, .8);
}
/* statischer Ersatz ohne JS oder bei reduzierter Bewegung */
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-pill--in {
  color: var(--beige-hell);
  background: rgba(217, 168, 46, .16);
  border-color: var(--gelb);
  box-shadow: 0 0 22px -6px rgba(217, 168, 46, .5);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-pill--out {
  color: var(--beige-hell);
  background: rgba(201, 90, 72, .2);
  border-color: var(--rot-hell);
  box-shadow: 0 0 22px -6px rgba(201, 90, 72, .5);
}
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .io-pill--box {
  color: var(--beige-hell);
  background: var(--nacht-tief);
  border-color: rgba(244, 240, 232, .18);
  box-shadow: 0 0 22px -8px rgba(170, 72, 58, .55);
}

/* ---------- Zeitleiste mit den drei Aspekten ----------
   Wie im Referenzartikel: Karten exakt so breit wie die Lesespalte, Linie und Kugel
   hängen links daneben im Rand (der Container ist hier schon 820px schmal). */

/* ---------- Schlussabsatz und Autorenbox in der Lesespalte ---------- */
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .artikel-schluss {
  max-width: var(--artikel-spalte);
  margin-inline: auto;
}

/* ---------- Seite: artikel-ki-desinformationen ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-ki-desinformationen. Jede Regel beginnt mit body.cd.cd-seite-artikel-ki-desinformationen.
   Gemeinsame Artikel-Vorlage: artikel.css. Hier steht nur, was ausschließlich diesen Artikel betrifft. */

/* Seitenkopf: unterer Abstand wie im Referenz-Artikel (limitierungen-sprachmodelle).
   style.css halbiert ihn auf dieser Seite über .page-desinfo .page-hero--tight. */
body.cd.cd-seite-artikel-ki-desinformationen .page-hero--tight { padding-bottom: clamp(20px, 3vw, 36px); }

/* Titelbild links im Umfluss: dieselbe Größe wie das Titelbild im Referenz-Artikel
   (artikel.css regelt das nur für .art-intro .art-hero-aside, hier heißt der Baustein .art-fig-float) */

/* Fallbeispiele (Biden, Arup): Karten so breit wie die Lesespalte statt über den ganzen Container,
   damit sie bündig unter der Überschrift stehen. Die erste Karte ohne zusätzlichen Abstand nach oben,
   sonst addiert er sich zum Abstand unter der Überschrift. */
body.cd.cd-seite-artikel-ki-desinformationen .case-card {
  max-width: var(--artikel-spalte);
  margin-inline: auto;
}
body.cd.cd-seite-artikel-ki-desinformationen .section-head + .case-card { margin-top: 0; }

/* Handy: Fallbeispiel-Karten wieder kompakt wie in style.css (ERGÄNZUNGEN 255) vorgesehen.
   artikel.css setzt den Kartentext auf 1.08rem und hebt die Handy-Verkleinerung sonst auf. */
@media (max-width: 600px) {
  body.cd.cd-seite-artikel-ki-desinformationen main > .section .case-card .prose-block p {
    font-size: .95rem;
    line-height: 1.45;
  }
}

/* ---------- Seite: artikel-ki-muendigkeit ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-ki-muendigkeit. Jede Regel beginnt mit body.cd-seite-artikel-ki-muendigkeit. */

/* Titelbild (Querformat) in der Lesespalte wie Fließtext und Zeitleiste, mit dem Bildschatten der Vorlage */
body.cd.cd-seite-artikel-ki-muendigkeit .km-titelbild {
  max-width: var(--artikel-spalte);
  margin: 0 auto clamp(28px, 4vw, 48px);
}
body.cd.cd-seite-artikel-ki-muendigkeit .km-titelbild img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--artikel-bild-schatten);
}

/* Autorenbox steht allein in ihrem Abschnitt: ohne eigenen Abstand nach oben, sonst wird die 65px-Luft doppelt so groß */
body.cd.cd-seite-artikel-ki-muendigkeit main > .section > .container > .artikel-bio-cta:first-child { margin-top: 0; }

/* Zwischenüberschriften ausgeglichen umbrechen ("Wo das im Alltag / gefährlich wird" statt eines einzelnen Worts in Zeile zwei) */
body.cd.cd-seite-artikel-ki-muendigkeit main > .section .section-head > h2 { text-wrap: balance; }

/* Abschnitte, die mit Fließtext enden: die untere Hälfte des Zeilenabstands (Zeilenhöhe 1.7) ausgleichen,
   damit die Luft bis zur Unterkante wie überall 65px beträgt und nicht rund 73px */
body.cd.cd-seite-artikel-ki-muendigkeit main > .section > .container > .prose-block:last-child > p:last-child { margin-bottom: -.39em; }

/* ---------- Seite: artikel-tokens-sparen-mit-claude ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-tokens-sparen-mit-claude. Jede Regel beginnt mit body.cd.cd-seite-artikel-tokens-sparen-mit-claude.
   Alles Gemeinsame (Kopf, Lesespalte, Zeitleiste, Autorenbox) kommt aus artikel.css. */

/* Einleitung, Balken und Tipps liegen in einem dunklen Abschnitt direkt unter dem dunklen Kopf
   (früher zwei dunkle Abschnitte, die zusammen 130px Luft zwischen Balken und Tipps erzeugt hätten).
   Kein eigener Schein von oben: der Grund läuft vom dunklen Ende des Lichtkegels (#0a0706) weich
   in das warme Schwarz, damit an der Unterkante des Kopfs keine Kante entsteht (wie Impressum) */
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .page-hero + .section {
  background: linear-gradient(180deg, #0a0706 0, var(--nacht) clamp(180px, 24vw, 340px));
}

/* Zeitleiste mit den zehn Tipps: Abstand zum Kontextfenster-Balken darüber */
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tok-tl-wrap { margin-top: clamp(40px, 5vw, 64px); }

/* Kontextfenster-Balken: Füllung von Rot nach Gelb (statt Lila nach Gold), Teilstriche in warmem Schwarz */
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tok-bar {
  background: rgba(244, 240, 232, .05);
  border-color: var(--c-linie);
}
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tok-bar-fill {
  background:
    repeating-linear-gradient(90deg, rgba(23, 19, 16, .3) 0 1px, transparent 1px 13px),
    linear-gradient(90deg, var(--rot) 0%, var(--rot-hell) 58%, var(--gelb) 100%);
  box-shadow: inset 0 0 40px -6px rgba(90, 26, 18, .55);
}
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tok-bar-cap { color: var(--beige-hell); }

/* Kasten "Warum das wichtig ist" in Tipp 1: wie die Info-Boxen der Vorlage, ohne lila Grund */
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tip-why {
  background: rgba(244, 240, 232, .035);
  border: 1px solid var(--c-linie);
  border-left: 3px solid var(--c-akzent);
}
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tip-why h4 { color: var(--c-text); }

/* ---------- Seite: artikel-vibecoding-dezentrale-software ---------- */
/* Neues CD: Anpassungen für body.cd-seite-artikel-vibecoding-dezentrale-software. Jede Regel beginnt mit body.cd-seite-artikel-vibecoding-dezentrale-software. */

/* Schlussteil (Kehrseite und Autorenbox): in der Lesespalte der Vorlage statt im alten 820px-Container */
body.cd.cd-seite-artikel-vibecoding-dezentrale-software .art-ende {
  max-width: var(--artikel-spalte);
  margin-inline: auto;
}

/* Vier Karten auf Dunkel: Text in den Kontext-Tokens statt reinem Weiß (style.css: .cards-dark .card p) */
body.cd.cd-seite-artikel-vibecoding-dezentrale-software .cards-dark .card h3 { color: var(--c-text); }
body.cd.cd-seite-artikel-vibecoding-dezentrale-software .cards-dark .card p { color: var(--c-text-2); }

/* Beim Überfahren leicht anheben (wie .fw1-karte über "translate", weil .reveal.is-in das transform
   von .card:hover überschreibt). Ersetzt den alten 3D-Swivel (.card--tilt ist entfernt). */
body.cd.cd-seite-artikel-vibecoding-dezentrale-software .cards-dark .card {
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), border-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
@media (prefers-reduced-motion: no-preference) {
  body.cd.cd-seite-artikel-vibecoding-dezentrale-software .cards-dark .card:hover { translate: 0 -4px; }
}

/* ---------- Seite: 404 ---------- */
/* Neues CD: Anpassungen für body.cd-seite-404. Jede Regel beginnt mit body.cd-seite-404. */

/* ---------- Seitenkopf: Lichtkegel mittig über der zentrierten Seite ---------- */
body.cd.cd-seite-404 .page-hero {
  padding-top: calc(var(--header-h) + clamp(40px, 6.5vw, 84px));
  padding-bottom: clamp(50px, 5.5vw, 76px);
  background: radial-gradient(ellipse 46% 78% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
}
@media (max-width: 1060px) {
  body.cd.cd-seite-404 .page-hero { background: radial-gradient(ellipse 80% 55% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%); }
}

/* ---------- Große 404 als Gestaltungselement in Newsreader ---------- */
body.cd.cd-seite-404 .err-code {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(7.2rem, 17vw, 13.5rem);
  font-variant-numeric: lining-nums;
  line-height: .82;
  letter-spacing: -.035em;
  margin: 0 0 clamp(16px, 2.2vw, 28px);
  color: var(--beige-hell);
  background: linear-gradient(180deg, var(--beige-licht) 18%, rgba(244, 240, 232, .34) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 22px 44px rgba(170, 72, 58, .38));
}
/* die mittlere Null kursiv in Rot, wie die hervorgehobenen Wörter */
body.cd.cd-seite-404 .err-code span {
  font-style: italic;
  font-weight: 500;
  padding: 0 .09em 0 .02em;
  color: var(--rot-hell);
  -webkit-text-fill-color: var(--rot-hell);
}

/* ---------- Buttons: Hauptbutton gelb (kommt aus neues-cd.css), zweiter Button Liquid Glass ---------- */
body.cd.cd-seite-404 .page-hero .btn--ghost,
body.cd.cd-seite-404 .page-hero .btn--ghost:hover {
  position: relative;
  isolation: isolate;
  border-color: transparent;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-404 .page-hero .btn--ghost:hover { background: rgba(255, 255, 255, .15); }

/* ---------- Drei Weiter-Karten als Liquid Glass über weichem Rot-Gold-Schein ---------- */
body.cd.cd-seite-404 .err-links {
  position: relative;
  margin-top: clamp(40px, 5vw, 64px);
}
body.cd.cd-seite-404 .err-links::before {
  content: "";
  position: absolute;
  inset: -18% -8%;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 58% 52% at 50% 54%, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 26% 40% at 84% 62%, rgba(217, 168, 46, .1), rgba(217, 168, 46, 0) 70%);
}
@media (min-width: 881px) {
  body.cd.cd-seite-404 .err-links { align-items: stretch; }
}
body.cd.cd-seite-404 .err-links .card {
  border: 0;
  border-radius: 20px;
  color: var(--c-text-2);
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  /* Hover hebt über "translate" an, damit die Reveal-Animation (transform, opacity) weiterläuft */
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
body.cd.cd-seite-404 .err-links .card:hover,
body.cd.cd-seite-404 .err-links .card:focus-visible,
body.cd.cd-seite-404 .err-links .card:active {
  transform: none;
  translate: 0 -5px;
  background: rgba(255, 255, 255, .085);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 26px 44px -22px rgba(0, 0, 0, .8);
}
/* kein roter Cursor-Schein auf dem Glas */
body.cd.cd-seite-404 .err-links .spot::after,
body.cd.cd-seite-404 .err-links .spot:hover::after { opacity: 0; }

/* Pfeil unten rechts: Überschrift darf die volle Breite nutzen, nur der Text weicht dem Pfeil aus */
body.cd.cd-seite-404 .err-links .card--slim { padding-right: clamp(22px, 2.6vw, 32px); }
body.cd.cd-seite-404 .err-links .card h2 {
  font-size: clamp(1.55rem, 2.3vw, 2.05rem);
  color: var(--c-text);
  margin-bottom: .45em;
}
body.cd.cd-seite-404 .err-links .card p {
  margin: 0;
  padding-right: 54px;
  font-size: 1.06rem;
  line-height: 1.55;
  color: var(--c-text-2);
}
body.cd.cd-seite-404 .err-links .card--slim .resource-arrow {
  border-color: rgba(255, 255, 255, .3);
  color: var(--c-text);
}
body.cd.cd-seite-404 .err-links .card--slim:hover .resource-arrow,
body.cd.cd-seite-404 .err-links .card--slim:focus-visible .resource-arrow,
body.cd.cd-seite-404 .err-links .card--slim:active .resource-arrow {
  background: var(--rot);
  border-color: var(--rot);
  color: var(--beige-licht);
}

/* ---------- Kontakt-Link darunter ---------- */
body.cd.cd-seite-404 .page-hero .link-arrow { font-weight: 650; }

/* ---------- Handy ---------- */
@media (max-width: 640px) {
  body.cd.cd-seite-404 .err-code { margin-bottom: 14px; }
  body.cd.cd-seite-404 .page-hero .btn-row .btn { width: 100%; }
  body.cd.cd-seite-404 .err-links .card p { padding-right: 46px; }
  /* Pfeil bleibt beim Umbruch direkt hinter dem Text statt am rechten Rand */
  body.cd.cd-seite-404 .page-hero p:has(> .link-arrow) { text-wrap: balance; }
  body.cd.cd-seite-404 .page-hero .link-arrow { display: inline; }
  body.cd.cd-seite-404 .page-hero .link-arrow .arr { margin-left: 6px; }
}

/* ---------- Seite: aktuelles ---------- */
/* Neues CD: Anpassungen für body.cd-seite-aktuelles. Jede Regel beginnt mit body.cd-seite-aktuelles. */

/* ---------- Abschnitt mit den Artikelkarten (dunkel) ----------
   Folgt direkt auf den dunklen Seitenkopf: kein eigener Schein von oben, stattdessen
   läuft oben der dunkle Grundton des Seitenkopfs (#0a0706) weich in das warme Schwarz
   aus, so entsteht keine Kante. Dahinter liegen weiche Scheine in Rot und Gold (ohne
   Kanten), damit die Glas-Karten etwas zeigen können. Abstände 65 px wie überall. */
body.cd.cd-seite-aktuelles main > .section {
  padding-block: clamp(38px, 5.5vw, 65px);
  background:
    radial-gradient(ellipse 52% 17% at 14% 24%, rgba(170, 72, 58, .30), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 44% 15% at 88% 44%, rgba(217, 168, 46, .17), rgba(217, 168, 46, 0) 72%),
    radial-gradient(ellipse 52% 17% at 16% 66%, rgba(170, 72, 58, .28), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 44% 15% at 86% 88%, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 72%),
    linear-gradient(to bottom, #0a0706, rgba(23, 19, 16, 0) 220px),
    var(--nacht);
}

/* ---------- Artikelkarten als Liquid Glass (Rezept wie .fw1-karte) ---------- */
body.cd.cd-seite-aktuelles .cards-artikel .card {
  border: 0;
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  /* Hover hebt per "translate" an, damit die Reveal-Animation (transform) unberührt bleibt */
  transition:
    opacity .8s cubic-bezier(.2, .7, .2, 1),
    transform .8s cubic-bezier(.2, .7, .2, 1),
    translate .35s cubic-bezier(.2, .7, .2, 1),
    background-color .35s ease,
    box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
/* Lichtkante am Glasrand, liegt über dem Vorschaubild, oben links und unten rechts am hellsten */
body.cd.cd-seite-aktuelles .cards-artikel .card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .5), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 65%, rgba(255, 255, 255, .3));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  transition: opacity .35s ease;
  opacity: .85;
}
body.cd.cd-seite-aktuelles .cards-artikel .card:hover,
body.cd.cd-seite-aktuelles .cards-artikel .card:focus-visible,
body.cd.cd-seite-aktuelles .cards-artikel .card:active {
  translate: 0 -5px;
  border-color: transparent;
  background: rgba(255, 255, 255, .085);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 26px 44px -22px rgba(0, 0, 0, .8);
}
body.cd.cd-seite-aktuelles .cards-artikel .card:hover::before,
body.cd.cd-seite-aktuelles .cards-artikel .card:focus-visible::before { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-aktuelles .cards-artikel .card:hover,
  body.cd.cd-seite-aktuelles .cards-artikel .card:focus-visible,
  body.cd.cd-seite-aktuelles .cards-artikel .card:active { translate: none; }
}

/* Vorschaubild: Grundfläche im warmen Dunkel statt altem Lila-Schwarz */
body.cd.cd-seite-aktuelles .cards-artikel .card-media {
  background: var(--nacht-karte);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

/* Titel und Text auf dem Glas */
body.cd.cd-seite-aktuelles .cards-artikel .card h3 { color: var(--c-text); }
body.cd.cd-seite-aktuelles .cards-artikel .card p { color: var(--c-text-2); }

/* Pfeil unten rechts in Gelb (kleine Akzente auf Schwarz sind gelb) */
body.cd.cd-seite-aktuelles .cards-artikel .card-arrow { color: var(--gelb); }

/* ---------- Seite: danke-anfrage ---------- */
/* Neues CD: Anpassungen für body.cd-seite-danke-anfrage. Jede Regel beginnt mit body.cd-seite-danke-anfrage. */

/* ---------- Seite füllt immer mindestens den Bildschirm ----------
   Bei wenig Inhalt (große Monitore) wächst der dunkle Seitenkopf mit, damit der Footer
   unten sitzt und darunter kein leerer Streifen bleibt. Alle anderen Kinder von body
   (Kopfzeile, Handy-Menü, Fortschritt, Nach-oben-Knopf) sind fixed und bleiben unberührt. */
body.cd.cd-seite-danke-anfrage {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body.cd.cd-seite-danke-anfrage main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}
body.cd.cd-seite-danke-anfrage .page-hero--thanks {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* etwas mehr Luft unter der Kopfzeile, unten 65px wie überall */
  padding-top: calc(var(--header-h) + clamp(18px, 3vw, 44px));
  padding-bottom: clamp(38px, 5.5vw, 65px);
}

/* ---------- Haken-Abzeichen: Liquid Glass mit gelbem Haken ---------- */
body.cd.cd-seite-danke-anfrage .thanks-badge {
  position: relative;
  isolation: isolate;
  border: 0;
  background: rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(14px) saturate(1.6);
  backdrop-filter: blur(14px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .62),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .28),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 0 44px -10px rgba(217, 168, 46, .5),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-danke-anfrage .thanks-badge svg { stroke: var(--gelb); }

/* ---------- Calendly ---------- */
/* weicher Rot-Gold-Schein hinter der Glaskarte, damit das Glas etwas zeigen kann */
body.cd.cd-seite-danke-anfrage .calendly-wrap {
  position: relative;
  isolation: isolate;
}
body.cd.cd-seite-danke-anfrage .calendly-wrap::before {
  content: "";
  position: absolute;
  inset: -48px -90px;   /* Schein ragt etwas über die Karte hinaus, endet aber vor der Unterkante */
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(closest-side, rgba(170, 72, 58, .30), rgba(170, 72, 58, .12) 62%, rgba(170, 72, 58, 0)),
    radial-gradient(ellipse 30% 34% at 76% 64%, rgba(217, 168, 46, .12), rgba(217, 168, 46, 0) 70%);
}

/* Platzhalter vor der Zustimmung: Liquid-Glass-Karte statt blauschwarzer Fläche */
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] {
  border: 0;
  border-radius: 20px;
  background-color: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  color: var(--c-text);
  font-family: var(--font-body);
  transition: height .45s cubic-bezier(.2, .7, .2, 1);
}
/* Solange der Kalender nicht geladen ist, nur so hoch wie nötig (sonst wirkt die Karte leer).
   Beim Laden (iframemanager setzt .c-h-n bzw. .c-h-b) wächst sie auf die volle Kalenderhöhe. */
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service]:not(.c-h-n):not(.c-h-b) {
  height: 320px;
  min-height: 0;
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-t-cn { padding: 0 clamp(20px, 4vw, 48px); }
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-t,
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cc-text {
  max-width: 34em;
  font-family: var(--font-body);
  font-size: 1.04rem;
  line-height: 1.55;
  color: var(--c-text-2);
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-t a {
  color: var(--c-akzent);
  border-bottom: 1px solid currentColor;
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-t a:hover { color: var(--c-text); }
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-a {
  margin-top: clamp(20px, 2.2vw, 26px);
  flex-wrap: wrap;
  gap: 12px 14px;
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-a button + button { margin-left: 0; }

/* Buttons: Hauptbutton gelb, zweiter Button klares Liquid Glass */
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-l-b,
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b {
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 1rem;
  line-height: 1.2;
  padding: 13px 24px;
  border-radius: 99px;
  transition: background-color .2s ease, box-shadow .25s ease, transform .25s cubic-bezier(.2, .7, .2, 1);
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-l-b {
  background: var(--gelb);
  color: var(--tinte);
  border: 1.5px solid var(--gelb-tief);
  box-shadow: none;
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-l-b:hover {
  background: var(--gelb-tief);
  box-shadow: none;
  transform: translateY(-2px);
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b:hover {
  background: rgba(255, 255, 255, .15);
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] { transition: none; }
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-l-b:hover,
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b:hover { transform: none; }
}

/* Handy: Buttons untereinander statt gequetscht nebeneinander */
@media (max-width: 640px) {
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-a {
    flex-direction: column;
    align-items: stretch;
    max-width: 320px;
    margin-inline: auto;
  }
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service]:not(.c-h-n):not(.c-h-b) { height: 300px; }
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-t-cn { padding: 0 16px; }
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-l-b,
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cll .c-la-b { justify-content: center; text-align: center; padding-inline: 16px; }
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .c-n-t,
  body.cd.cd-seite-danke-anfrage .calendly-frame[data-service] .cc-text { font-size: 1rem; }
}

/* ---------- Seite: danke-newsletter ---------- */
/* Neues CD: Anpassungen für body.cd-seite-danke-newsletter. Jede Regel beginnt mit body.cd-seite-danke-newsletter. */

/* Seitenkopf füllt den ersten Bildschirm: Inhalt mittig unter der Kopfzeile, Footer erst nach dem Scrollen.
   So bleibt bei wenig Inhalt weder unten eine leere Fläche noch ein halb angeschnittener Footer. */
body.cd.cd-seite-danke-newsletter .page-hero {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: calc(var(--header-h) + clamp(48px, 7vw, 90px));
  padding-bottom: clamp(48px, 7vw, 90px);
}
body.cd.cd-seite-danke-newsletter .page-hero > .container { width: 100%; }

/* Lichtkegel am Desktop mittig über dem zentrierten Inhalt (mobil ist er ohnehin mittig) */
@media (min-width: 1061px) {
  body.cd.cd-seite-danke-newsletter .page-hero {
    background: radial-gradient(ellipse 44% 88% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}

/* Haken-Badge: klares Liquid Glass mit gelbem Haken statt Lila-Gold */
body.cd.cd-seite-danke-newsletter .thanks-badge {
  position: relative;
  isolation: isolate;
  border: 0;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7),
    0 0 48px -12px rgba(217, 168, 46, .38);
}
body.cd.cd-seite-danke-newsletter .thanks-badge svg { stroke: var(--gelb); }

/* Text und Buttons: etwas weniger Abstand zwischen Einleitung und Buttons */
body.cd.cd-seite-danke-newsletter .page-hero .lead { margin-bottom: 1.9rem; }

/* Handy: "Vielen Dank!" ist kurz und darf größer sein als die allgemeine Regel für lange Hero-Titel */
@media (max-width: 600px) {
  body.cd.cd-seite-danke-newsletter .page-hero--center h1.display-xl { font-size: clamp(2.2rem, 10.5vw, 2.7rem); line-height: 1.05; }
}

/* ---------- Seite: danke ---------- */
/* Neues CD: Anpassungen für body.cd-seite-danke. Jede Regel beginnt mit body.cd-seite-danke. */

/* Seitenkopf füllt den ersten Bildschirm (Inhalt mittig), damit die kurze Seite nicht
   abgeschnitten wirkt. Der Lichtkegel steht mittig über dem Haken, weil alles zentriert ist
   (gleiche Farben wie auf den anderen Unterseiten). */
body.cd.cd-seite-danke .page-hero {
  min-height: min(100svh, 1000px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: calc(var(--header-h) + clamp(40px, 5vw, 64px));
  padding-bottom: clamp(56px, 6vw, 80px);
  background: radial-gradient(ellipse 50% 88% at 50% 0%, #9a3322 0%, #3a120d 36%, #0a0706 80%);
}
@media (max-width: 1060px) {
  body.cd.cd-seite-danke .page-hero { background: radial-gradient(ellipse 85% 72% at 50% 0%, #9a3322 0%, #3a120d 36%, #0a0706 80%); }
}

/* Haken-Badge als klares Liquid Glass mit gelbem Haken und weichem goldenem Schein */
body.cd.cd-seite-danke .thanks-badge {
  border: 0;
  background: rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .6),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .28),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    inset 0 10px 18px -12px rgba(255, 255, 255, .3),
    0 0 48px -10px rgba(217, 168, 46, .5),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-danke .thanks-badge svg { stroke: var(--gelb); }

/* Überschrift zu Text etwas enger, Text zu Buttons wie auf den Referenzseiten */
body.cd.cd-seite-danke .page-hero h1 { margin-bottom: clamp(14px, 1.6vw, 22px); }
body.cd.cd-seite-danke .page-hero .lead { margin-bottom: clamp(26px, 2.6vw, 34px); }
body.cd.cd-seite-danke .page-hero .btn-row { gap: 14px 16px; }

/* Handy: kurzer Titel darf etwas größer sein, damit der Bildschirm nicht leer wirkt */
@media (max-width: 600px) {
  body.cd.cd-seite-danke .page-hero--center h1.display-xl { font-size: clamp(2rem, 9.4vw, 2.5rem); }
}

/* ---------- Seite: datenschutz ---------- */
/* Neues CD: Anpassungen für body.cd-seite-datenschutz. Jede Regel beginnt mit body.cd.cd-seite-datenschutz.
   Gilt auch für en/privacy.html (gleiche Seitenklasse). Die Regeln hängen deshalb nur an der Struktur
   (.legal, h2, h3, ul, ul.index), nie an deutschen Texten. */

/* ---------- Seitenkopf: Titel steht bündig über der Lesespalte ---------- */
body.cd.cd-seite-datenschutz .page-hero .container { max-width: 780px; }
/* Kopf und Text gehen ohne Kante ineinander über: unter dem Titel nur wenig Polster, sonst wirkt die Lücke zur ersten Rubrik zu groß */
body.cd.cd-seite-datenschutz .page-hero { padding-bottom: clamp(24px, 3vw, 40px); }

/* ---------- Rechtstext-Abschnitt (dunkel) ----------
   65px Luft oben und unten statt der alten 130px. Der Abschnitt folgt direkt auf den dunklen
   Seitenkopf: kein eigener Schein von oben, stattdessen läuft der Grund vom dunklen Ende des
   Lichtkegels (#0a0706) weich in das warme Schwarz, damit keine Kante entsteht. */
body.cd.cd-seite-datenschutz .page-hero + .section {
  padding-block: clamp(38px, 5.5vw, 65px);
  background: linear-gradient(180deg, #0a0706 0, var(--nacht) clamp(240px, 30vw, 440px));
}

/* Lesespalte */
body.cd.cd-seite-datenschutz .legal { max-width: 780px; }
body.cd.cd-seite-datenschutz .legal > :first-child { margin-top: 0; }
body.cd.cd-seite-datenschutz .legal > :last-child { margin-bottom: 0; }

/* Fließtext und Listen: etwas größer als bisher, ruhiger Zeilenabstand */
body.cd.cd-seite-datenschutz .legal p,
body.cd.cd-seite-datenschutz .legal li {
  font-size: 1.12rem;
  line-height: 1.66;
  color: var(--c-text-2);
}
body.cd.cd-seite-datenschutz .legal p { margin: 0 0 1em; }
body.cd.cd-seite-datenschutz .legal strong { color: var(--c-text); font-weight: 650; }

/* Zwischenüberschriften: jede Rubrik beginnt mit einer feinen Linie */
body.cd.cd-seite-datenschutz .legal h2 {
  font-size: clamp(1.5rem, 2.1vw, 1.8rem);
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -.012em;
  margin: 2.1em 0 .65em;
  padding-top: 1.05em;
  border-top: 1px solid var(--c-linie);
  hyphens: manual;
}
body.cd.cd-seite-datenschutz .legal > h2:first-child { padding-top: 0; border-top: 0; }
body.cd.cd-seite-datenschutz .legal h3 {
  font-size: clamp(1.2rem, 1.45vw, 1.3rem);
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -.008em;
  margin: 1.6em 0 .55em;
  hyphens: manual;
}
body.cd.cd-seite-datenschutz .legal h2 + h3 { margin-top: .9em; }

/* Listen: Punkte in der Akzentfarbe, etwas Luft zwischen den (oft langen) Einträgen */
body.cd.cd-seite-datenschutz .legal ul {
  list-style: disc;
  padding-left: 1.3em;
  display: grid;
  gap: .6em;
  margin: 0 0 1.25em;
}
body.cd.cd-seite-datenschutz .legal li { padding-left: .15em; }
body.cd.cd-seite-datenschutz .legal li::marker { color: var(--c-akzent); }
body.cd.cd-seite-datenschutz .legal li > p { font-size: inherit; margin-bottom: .7em; }
body.cd.cd-seite-datenschutz .legal li > p:last-child { margin-bottom: 0; }
/* kurze Aufzählungen direkt unter einer h3 (Datenarten, Personen, Zwecke): am Desktop zweispaltig */
@media (min-width: 641px) {
  body.cd.cd-seite-datenschutz .legal h3 + ul { display: block; columns: 2; column-gap: clamp(24px, 3vw, 40px); }
  body.cd.cd-seite-datenschutz .legal h3 + ul > li { break-inside: avoid; margin-bottom: .4em; }
}

/* Links im Text: Akzentfarbe mit zarter Unterstreichung, lange Adressen dürfen umbrechen */
body.cd.cd-seite-datenschutz .legal a {
  color: var(--c-akzent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(201, 90, 72, .5);
  overflow-wrap: anywhere;
  transition: color .2s ease, text-decoration-color .2s ease;
}
body.cd.cd-seite-datenschutz .legal a:hover,
body.cd.cd-seite-datenschutz .legal a:focus-visible {
  color: var(--c-text);
  text-decoration-color: var(--c-akzent);
}

/* ---------- Inhaltsübersicht (ul.index, wie im Export des Datenschutz-Generators) ----------
   Liquid-Glass-Karte wie .takeaway-box, zweispaltig, gelbe Punkte, Links in Schriftfarbe */
body.cd.cd-seite-datenschutz .legal ul.index {
  display: block;
  columns: 2;
  column-gap: clamp(24px, 3vw, 40px);
  list-style: none;
  margin: 0 0 1.25em;
  padding: clamp(20px, 2.4vw, 28px) clamp(22px, 2.8vw, 34px);
  border-radius: 20px;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-datenschutz .legal ul.index li {
  position: relative;
  break-inside: avoid;
  padding: .26em 0 .26em 1.05em;
  font-size: 1.02rem;
  line-height: 1.4;
}
body.cd.cd-seite-datenschutz .legal ul.index li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(.26em + .7em - 2.5px);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gelb);
}
body.cd.cd-seite-datenschutz .legal ul.index a {
  color: var(--c-text);
  text-decoration-color: transparent;
}
body.cd.cd-seite-datenschutz .legal ul.index a:hover,
body.cd.cd-seite-datenschutz .legal ul.index a:focus-visible {
  color: var(--gelb);
  text-decoration-color: currentColor;
}

/* ---------- Handy ---------- */
@media (max-width: 640px) {
  body.cd.cd-seite-datenschutz .legal p,
  body.cd.cd-seite-datenschutz .legal li { font-size: 1.04rem; line-height: 1.62; }
  body.cd.cd-seite-datenschutz .legal h2 { font-size: 1.36rem; margin-top: 1.9em; padding-top: .95em; }
  body.cd.cd-seite-datenschutz .legal h3 { font-size: 1.14rem; }
  body.cd.cd-seite-datenschutz .legal ul { padding-left: 1.15em; }
  body.cd.cd-seite-datenschutz .legal ul.index { columns: 1; padding: 18px 20px; border-radius: 16px; }
  body.cd.cd-seite-datenschutz .legal ul.index li { font-size: 1rem; }
}

/* ---------- Seite: discovery-call ---------- */
/* Neues CD: Anpassungen für body.cd-seite-discovery-call. Jede Regel beginnt mit body.cd.cd-seite-discovery-call.
   Gilt auch für en/discovery-call.html (gleiche Seitenklasse), deshalb nur Klassen und IDs, keine Texte. */

/* ---------- Seitenkopf ----------
   Zentrierter Kopf ohne Bild: der Lichtkegel fällt mittig auf die Überschrift statt rechts ins Leere
   (auf dem Handy ist er in neues-cd.css ohnehin mittig). */
@media (min-width: 1061px) {
  body.cd.cd-seite-discovery-call .page-hero {
    background: radial-gradient(ellipse 46% 90% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}
/* Kopf und Kalender-Abschnitt gehen ohne Kante ineinander über. Mit den vollen 90px unten im Kopf
   plus 65px oben im Abschnitt entstünde eine große leere Fläche über dem Kalender, deshalb unten weniger. */
body.cd.cd-seite-discovery-call .page-hero { padding-bottom: clamp(40px, 4vw, 56px); }
/* Pulsierender Punkt vor "Kostenlos und unverbindlich": gelb wie die Akzente auf Dunkel, Puls über cdPulse aus neues-cd.css */
body.cd.cd-seite-discovery-call .hero-proof .pulse {
  --glow: rgba(217, 168, 46, .5);
  background: var(--gelb);
  box-shadow: 0 0 0 0 var(--glow);
  animation: cdPulse 2.4s infinite cubic-bezier(.25, .8, .25, 1);
}
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-discovery-call .hero-proof .pulse { animation: none; }
}

/* ---------- Buchungskalender (dunkel, folgt direkt auf den dunklen Seitenkopf) ----------
   Kein eigener Schein von oben: der Abschnitt setzt mit dem Schwarz an, in dem der Kopf endet (#0a0706),
   und läuft weich ins warme Schwarz aus, so entsteht keine Kante. Hinter dem Kalender ein weicher
   Rot-Gold-Schein, damit das Glas des Platzhalters etwas zeigen kann. Abstände nach der 65px-Regel. */
body.cd.cd-seite-discovery-call #discovery-call {
  padding-top: clamp(38px, 5.5vw, 65px);
  padding-bottom: clamp(38px, 5.5vw, 65px);
  background:
    radial-gradient(ellipse 30% 38% at 32% 52%, rgba(170, 72, 58, .4), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 28% 34% at 70% 62%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0) 72%),
    linear-gradient(180deg, #0a0706 0, var(--nacht) 320px);
}
body.cd.cd-seite-discovery-call #discovery-call .container > p:last-child { margin-bottom: 0; }

/* Platzhalter vor der Einwilligung als Liquid Glass (Rezept wie .fw1-karte). Nur Gestaltung:
   data-service, data-id und die Lade-Logik von iframemanager bleiben unberührt. Nach dem Laden
   liegt das Calendly-iframe darüber und füllt die Fläche. */
body.cd.cd-seite-discovery-call .calendly-frame[data-service] {
  font-family: var(--font-body);
  color: var(--c-text);
  border: 0;
  border-radius: 20px;
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 24px 48px -24px rgba(0, 0, 0, .75);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll,
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .c-nt { color: var(--c-text); }
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t,
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t .cc-text {
  font-family: var(--font-body);
  font-size: 1.06rem;
  line-height: 1.55;
  color: var(--c-text-2);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t { max-width: 30em; }
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t a {
  color: var(--c-akzent);
  border-bottom: 1px solid currentColor;
  transition: color .2s ease;
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t a:hover { color: var(--c-text); }
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-a { margin-top: 1.5em; gap: 12px; }
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-a button + button { margin-left: 0; }

/* Lade-Buttons wie auf Dunkel üblich: Hauptbutton gelb, zweiter Button klares Liquid Glass */
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-l-b,
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-la-b {
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 1rem;
  line-height: 1.25;
  padding: 13px 22px;
  border: 0;
  border-radius: 99px;
  transition: background .2s ease, box-shadow .25s ease, transform .25s cubic-bezier(.2, .7, .2, 1);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-l-b {
  background: var(--gelb);
  color: var(--tinte);
  outline-color: var(--gelb);
  box-shadow: none;
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-l-b:hover {
  background: var(--gelb-tief);
  box-shadow: none;
  transform: translateY(-2px);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-la-b {
  isolation: isolate;
  color: #fff;
  outline-color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-la-b:hover {
  background: rgba(255, 255, 255, .15);
  transform: translateY(-2px);
}
/* Lichtkante am Glasrand, oben links und unten rechts am hellsten */
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-la-b::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-ld::after { border-color: var(--gelb); border-top-color: transparent; }
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-l-b:hover,
  body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-la-b:hover { transform: none; }
}

/* Handy: Lade-Buttons untereinander statt gequetscht nebeneinander */
@media (max-width: 640px) {
  body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-a { flex-direction: column; align-items: stretch; gap: 10px; }
  body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t,
  body.cd.cd-seite-discovery-call .calendly-frame[data-service] .cll .c-n-t .cc-text { font-size: 1rem; }
}

/* ---------- Seite: guide ---------- */
/* Neues CD: Anpassungen für body.cd-seite-guide. Jede Regel beginnt mit body.cd-seite-guide.
   Farbfolge: Hero dunkel, "Das erfährst du im Guide" hell, "Für wen" dunkel, Anmeldung dunkel, Footer. */

/* ---------- Hero ---------- */
/* Punkt vor "100 % kostenlos" auf Dunkel gelb, Puls ebenfalls gelb statt altem Gold */
body.cd.cd-seite-guide .page-hero .hero-proof .pulse {
  background: var(--gelb);
  animation: cdGuidePuls 2.4s infinite;
}
@keyframes cdGuidePuls {
  0%   { box-shadow: 0 0 0 0 rgba(217, 168, 46, .55); }
  70%  { box-shadow: 0 0 0 12px rgba(217, 168, 46, 0); }
  100% { box-shadow: 0 0 0 0 rgba(217, 168, 46, 0); }
}
@keyframes cdGuidePulsRot {
  0%   { box-shadow: 0 0 0 0 rgba(170, 72, 58, .5); }
  70%  { box-shadow: 0 0 0 10px rgba(170, 72, 58, 0); }
  100% { box-shadow: 0 0 0 0 rgba(170, 72, 58, 0); }
}

/* ---------- Abstände: 65px von der Kante bis zum ersten/letzten Objekt ---------- */
body.cd.cd-seite-guide #inhalt,
body.cd.cd-seite-guide #inhalt + .section,
body.cd.cd-seite-guide #anmeldung { padding-block: clamp(38px, 5.5vw, 65px); }
body.cd.cd-seite-guide #anmeldung .nl-form { margin-bottom: 0; }

/* ---------- "Das erfährst du im Guide" (hell) ---------- */
/* Token-Widget: helle Karte statt dunkler Lila-Karte, feine Rot-Gelb-Kante statt Lila-Gold */
body.cd.cd-seite-guide .theme-paper .token-widget {
  background: var(--c-karte);
  border: 1px solid var(--c-linie);
  box-shadow: var(--c-karte-schatten), 0 30px 60px -40px var(--schatten);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.cd.cd-seite-guide .token-widget::before {
  background: linear-gradient(135deg, rgba(170, 72, 58, .5), transparent 38%, transparent 64%, rgba(217, 168, 46, .55));
}
body.cd.cd-seite-guide .tw-dot {
  background: var(--rot);
  animation: cdGuidePulsRot 2.4s infinite;
}
body.cd.cd-seite-guide .tw-head { color: var(--c-text-3); }
body.cd.cd-seite-guide .token-widget .tw-sentence { color: var(--c-text); }
body.cd.cd-seite-guide .token-widget.is-done .tw-sentence,
body.cd.cd-seite-guide .tw-temp-label output { color: var(--c-akzent); }
body.cd.cd-seite-guide .tw-caret { background: var(--c-akzent); }
body.cd.cd-seite-guide .tw-option { background: rgba(36, 29, 24, .04); }
body.cd.cd-seite-guide .tw-option.is-picked {
  border-color: var(--rot);
  background: rgba(170, 72, 58, .08);
}
body.cd.cd-seite-guide .tw-bar { background: rgba(36, 29, 24, .08); }
body.cd.cd-seite-guide .tw-fill { background: var(--rot); opacity: .55; }
body.cd.cd-seite-guide .tw-option.is-picked .tw-fill {
  background: linear-gradient(90deg, var(--rot), var(--gelb));
  opacity: 1;
}
/* Temperatur-Regler: Spur Rot nach Gelb, Knopf in Tinte mit heller Fassung */
body.cd.cd-seite-guide .tw-temp input[type="range"] { background: linear-gradient(90deg, var(--rot), var(--gelb)); }
body.cd.cd-seite-guide .tw-temp input[type="range"]::-webkit-slider-thumb {
  background: var(--tinte);
  border-color: var(--karte);
  box-shadow: 0 0 0 1.5px var(--rot), 0 3px 8px -2px rgba(72, 50, 28, .35);
}
body.cd.cd-seite-guide .tw-temp input[type="range"]::-moz-range-thumb {
  background: var(--tinte);
  border-color: var(--karte);
  box-shadow: 0 0 0 1.5px var(--rot), 0 3px 8px -2px rgba(72, 50, 28, .35);
}
body.cd.cd-seite-guide .tw-temp input[type="range"]:focus-visible { outline-color: var(--rot); }
/* Handschrift-Hinweis wird zur kursiven Newsreader (wie die Notizen auf der Startseite) */
body.cd.cd-seite-guide .tw-note {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.08rem;
  line-height: 1.25;
  color: var(--c-akzent);
  transform: none;
}
body.cd.cd-seite-guide .tw-note-arrow { stroke: var(--c-akzent); stroke-width: 2; }
body.cd.cd-seite-guide .tw-caption { color: var(--c-text-2); font-size: .92rem; }

/* ---------- "Für wen ist dieser Guide?" (dunkel) ---------- */
/* Glas-Karten über einem weichen Rot-Gold-Schein, wie "Für wen" auf der Sensibilisierungs-Seite.
   Der Schein läuft vor der Unterkante aus, damit zur Anmeldung darunter keine Kante entsteht. */
body.cd.cd-seite-guide #inhalt + .section {
  background:
    radial-gradient(ellipse 62% 44% at 50% 60%, rgba(170, 72, 58, .45), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 30% 30% at 82% 68%, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 70%),
    var(--nacht);
}
body.cd.cd-seite-guide .cards-dark .card {
  border: 0;
  border-radius: 20px;
  color: var(--c-text);
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  /* Hover hebt per "translate" an, damit die Reveal-Animation (transform, gestaffelt über --d) unberührt bleibt */
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
body.cd.cd-seite-guide .cards-dark .card:hover,
body.cd.cd-seite-guide .cards-dark .card:active {
  translate: 0 -5px;
  background: rgba(255, 255, 255, .085);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 26px 44px -22px rgba(0, 0, 0, .8);
}
body.cd.cd-seite-guide .cards-dark .spot::after { display: none; }
body.cd.cd-seite-guide .cards-dark .card h3 { color: var(--c-text); }
body.cd.cd-seite-guide .cards-dark .card p { color: var(--c-text-2); font-size: 1.06rem; line-height: 1.55; margin: 0; }

/* ---------- Anmeldung (dunkel, folgt direkt auf "Für wen") ---------- */
/* zweiter dunkler Abschnitt in Folge: kein eigener Schein von oben */
body.cd.cd-seite-guide #anmeldung { background: var(--nacht); }
/* E-Mail-Feld als dunkles Glas, Fokus gelb (wie das Formular der Sensibilisierungs-Seite) */
body.cd.cd-seite-guide #anmeldung .field input {
  background-color: rgba(255, 255, 255, .05);
  color: var(--c-text);
  border-color: rgba(244, 240, 232, .2);
}
body.cd.cd-seite-guide #anmeldung .field ::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-guide #anmeldung .field input:focus {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px rgba(217, 168, 46, .16);
}
body.cd.cd-seite-guide #anmeldung .field label { color: var(--c-text); }
body.cd.cd-seite-guide #anmeldung .nl-spec { color: var(--c-text); }   /* weiß auf Dunkel (Niklas, 17.10.2026) */
body.cd.cd-seite-guide #anmeldung .nl-spec a { color: var(--c-akzent); }
body.cd.cd-seite-guide #anmeldung .nl-spec a:hover { color: var(--c-text); }
/* Hauptbutton auf Dunkel gelb */
body.cd.cd-seite-guide #anmeldung .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-guide #anmeldung .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }
/* Erfolgsmeldung nach dem Absenden (ersetzt das Formular, kommt aus main.js) als Glas */
body.cd.cd-seite-guide .nl-done {
  border: 0;
  color: var(--c-text-2);
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-guide .nl-done h3 { color: var(--c-text); }

/* Token-Widget als Ganzes kleiner, damit es unten bündig mit der Textspalte abschließt (Niklas, 17.10.2026).
   Skaliert wird von oben rechts aus; der negative Außenabstand gleicht die eingesparte Höhe aus. */
@media (min-width: 1100px) {
  body.cd.cd-seite-guide #tokenWidget.is-in,
  body.cd.cd-seite-guide #tokenWidget {
    transform: scale(.86);
    transform-origin: top right;
    margin-bottom: -104px;
  }
}

/* ---------- Seite: impressum ---------- */
/* Neues CD: Anpassungen für body.cd-seite-impressum. Jede Regel beginnt mit body.cd-seite-impressum. */
/* Gilt auch für en/legal-notice.html (gleiche Seitenklasse). Deshalb nur Strukturselektoren, keine Texte. */

/* Rechtstext-Abschnitt: dunkel wie die Seite, oben nahtlos aus dem Seitenkopf
   (dessen Unterkante ist #0a0706, der Lichtkegel endet dort), dann warmes Schwarz.
   Abstände nach der 65px-Regel statt der alten 130px aus .section */
body.cd.cd-seite-impressum .page-hero + .section:not(.theme-paper) {
  background: linear-gradient(180deg, #0a0706 0, var(--nacht) clamp(180px, 24vw, 340px));
  padding-block: clamp(38px, 5.5vw, 65px);
}

/* Lesespalte: Einleitung über die volle Breite, danach je Angabe eine Zeile
   mit Überschrift links und Text rechts, getrennt durch feine Linien */
body.cd.cd-seite-impressum .legal {
  max-width: var(--container);   /* .legal sitzt auf dem .container: dessen Breite, linke Kante wie der Seitentitel */
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.15fr);
  column-gap: 0;
  align-items: start;
}
body.cd.cd-seite-impressum .legal > * { margin: 0; }

/* Einleitung (alle Absätze vor der ersten Überschrift) */
body.cd.cd-seite-impressum .legal > p:not(h2 ~ p) {
  grid-column: 1 / -1;
  max-width: 62ch;
  font-size: clamp(1.15rem, 1.45vw, 1.26rem);
  line-height: 1.6;
  color: var(--c-text);
}
body.cd.cd-seite-impressum .legal > p:not(h2 ~ p) + p:not(h2 ~ p) { margin-top: .75em; }

/* Zeilen: Überschrift und der direkt folgende Absatz teilen sich die Linie oben */
body.cd.cd-seite-impressum .legal > h2,
body.cd.cd-seite-impressum .legal > h2 + p {
  border-top: 1px solid var(--c-linie);
  padding-block: clamp(20px, 2.3vw, 28px);
}
body.cd.cd-seite-impressum .legal > h2 {
  grid-column: 1;
  padding-right: clamp(24px, 3.4vw, 48px);
  font-size: clamp(1.22rem, 1.55vw, 1.4rem);
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -.01em;
  color: var(--c-text);
}
body.cd.cd-seite-impressum .legal > p { grid-column: 2; }
/* erste Zeile mit goldener Linie (wie die Eckdaten-Leiste der Referenzseiten), Abstand zur Einleitung */
body.cd.cd-seite-impressum .legal > h2:first-of-type,
body.cd.cd-seite-impressum .legal > h2:first-of-type + p {
  margin-top: clamp(28px, 3.4vw, 44px);
  border-top-color: rgba(217, 168, 46, .55);
}
/* Unterkante: kein zusätzlicher Innenabstand nach der letzten Zeile */
body.cd.cd-seite-impressum .legal > h2:last-of-type,
body.cd.cd-seite-impressum .legal > p:last-child { padding-bottom: 0; }

/* Fließtext */
body.cd.cd-seite-impressum .legal p,
body.cd.cd-seite-impressum .legal li {
  font-size: 1.12rem;
  line-height: 1.65;
  color: var(--c-text-2);
}
/* Lesebreite begrenzen, die Linie darüber läuft trotzdem bis zum rechten Rand des Containers */
body.cd.cd-seite-impressum .legal > h2 ~ p { padding-right: max(0px, 100% - 62ch); }
body.cd.cd-seite-impressum .legal strong { color: var(--c-text); }
body.cd.cd-seite-impressum .legal a {
  color: var(--c-akzent);
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
  transition: color .2s ease, text-decoration-color .2s ease;
}
body.cd.cd-seite-impressum .legal a:hover,
body.cd.cd-seite-impressum .legal a:focus-visible {
  color: var(--c-text);
  text-decoration-color: var(--c-akzent);
}

/* Schmale Bildschirme: eine Spalte, Linie über jeder Überschrift */
@media (max-width: 760px) {
  body.cd.cd-seite-impressum .legal { display: block; }
  body.cd.cd-seite-impressum .legal > h2 {
    padding: 20px 0 8px;
    font-size: 1.24rem;
  }
  body.cd.cd-seite-impressum .legal > h2 + p {
    border-top: 0;
    padding: 0 0 20px;
  }
  body.cd.cd-seite-impressum .legal > h2:first-of-type { margin-top: 28px; }
  body.cd.cd-seite-impressum .legal > h2:first-of-type + p { margin-top: 0; }
  body.cd.cd-seite-impressum .legal > h2:last-of-type { padding-bottom: 8px; }
  body.cd.cd-seite-impressum .legal > p:last-child { padding-bottom: 0; }
  body.cd.cd-seite-impressum .legal p,
  body.cd.cd-seite-impressum .legal li { font-size: 1.06rem; }
}

/* ---------- Seite: keynotes ---------- */
/* Neues CD: Anpassungen für body.cd-seite-keynotes. Jede Regel beginnt mit body.cd-seite-keynotes.
   Gilt auch für en/keynotes.html (gleiche Seitenklasse), deshalb nur über Klassen und IDs,
   nie über Texte oder die Sprache. */

/* ---------- Seitenkopf mit Porträt: dunkel mit rot-schwarzem Lichtkegel wie .page-hero ----------
   Der Kegel fällt von oben auf das Porträt (links), auf dem Handy mittig wie bei .page-hero. */
body.cd.cd-seite-keynotes .kn-hero2 {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);   /* Fließtext auf Dunkel deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(244, 240, 232, .52);
  --c-linie: rgba(244, 240, 232, .12);
  --c-linie-stark: rgba(244, 240, 232, .30);
  --c-akzent: var(--akzent-dunkel);
  --c-mk: var(--mk-dunkel);
  --fg: var(--c-text);
  --fg-dim: var(--c-text-2);
  --line: var(--c-linie);
  color: var(--c-text);
  border-bottom: 0;
  /* Kegelmitte folgt der Porträtmitte (breite Bildschirme: 376px links der Seitenmitte) */
  background: radial-gradient(ellipse 40% 90% at max(18%, calc(50% - 376px)) 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
}
body.cd.cd-seite-keynotes .kn-hero2::before {
  content: "";
  position: absolute;
  inset: -10%;
  z-index: -1;
  pointer-events: none;
  opacity: .25;
  mix-blend-mode: overlay;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
@media (max-width: 820px) {
  body.cd.cd-seite-keynotes .kn-hero2 {
    background: radial-gradient(ellipse 80% 70% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}
body.cd.cd-seite-keynotes .kn-hero2-name { font-weight: 700; letter-spacing: -.022em; color: var(--c-text); }
body.cd.cd-seite-keynotes .kn-hero2-sub { color: var(--c-text); }

/* ---------- Buttons auf Dunkel: Hauptbutton gelb (Hero, "Wieso"-Block) ---------- */
body.cd.cd-seite-keynotes .kn-hero2 .btn:not(.btn--white):not(.btn--ghost),
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn:not(.btn--white):not(.btn--ghost) {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-keynotes .kn-hero2 .btn:not(.btn--white):not(.btn--ghost):hover,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn:not(.btn--white):not(.btn--ghost):hover {
  background: var(--gelb-tief);
  border-color: var(--gelb-tief);
}
/* zweiter Button auf Dunkel (Formular): klares Liquid Glass */
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--white,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--white:hover,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--ghost,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--ghost:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--white:hover,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--ghost:hover { background: rgba(255, 255, 255, .15); }
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--white::before,
body.cd.cd-seite-keynotes .section:not(.theme-paper) .btn--ghost::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}

/* ---------- Intro (hell): Textmarker in Rot statt Lila ---------- */
body.cd.cd-seite-keynotes .mk-pen,
body.cd.cd-seite-keynotes .mk-pen.mk-pen--violet {
  background-image: linear-gradient(transparent 16%, rgba(170, 72, 58, .16) 16%, rgba(170, 72, 58, .16) 90%, transparent 90%);
}

/* ---------- CTA-Box "Fragen Sie jetzt ..." (auf Beige): rote Fläche wie der Hauptbutton ---------- */
body.cd.cd-seite-keynotes .kn-cta-box {
  --glow: rgba(170, 72, 58, .32);
  background: var(--flaeche);
  border-color: var(--flaeche);
  color: var(--auf-flaeche);
  font-weight: 700;
  box-shadow: 0 18px 34px -22px var(--schatten);
}
body.cd.cd-seite-keynotes .kn-cta-box:hover,
body.cd.cd-seite-keynotes .kn-cta-box:focus-visible {
  background: var(--flaeche-hover);
  border-color: var(--flaeche-hover);
  box-shadow: none;
}
/* Puls wie die übrigen Buttons im neuen CD (leiser Ring in der Flächenfarbe) */
body.cd.cd-seite-keynotes .kn-cta-box.is-in { animation-name: cdPulse; animation-duration: 3s; }
body.cd.cd-seite-keynotes .kn-cta-box.is-in:hover,
body.cd.cd-seite-keynotes .kn-cta-box.is-in:focus-visible { animation: none; }
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-keynotes .kn-cta-box.is-in { animation: none; }
}

/* ---------- Vortragskarten (hell): Mini-Buttons wie Haupt- und Konturbutton auf Beige ---------- */
body.cd.cd-seite-keynotes .vortrag-mini { font-weight: 650; font-size: .96rem; }
body.cd.cd-seite-keynotes .vortrag-mini--gold {
  background: var(--flaeche);
  border-color: var(--flaeche);
  color: var(--auf-flaeche);
  box-shadow: none;
}
body.cd.cd-seite-keynotes .vortrag-mini--gold:hover,
body.cd.cd-seite-keynotes .vortrag-mini--gold:focus-visible {
  background: var(--flaeche-hover);
  border-color: var(--flaeche-hover);
  box-shadow: none;
}
body.cd.cd-seite-keynotes .vortrag-mini--white {
  background: transparent;
  border: 1.5px solid var(--c-linie-stark);
  color: var(--c-text);
  box-shadow: none;
}
body.cd.cd-seite-keynotes .vortrag-mini--white:hover,
body.cd.cd-seite-keynotes .vortrag-mini--white:focus-visible {
  background: var(--c-hover-bg);
  border-color: var(--c-text);
  box-shadow: none;
}
body.cd.cd-seite-keynotes .vortrag-mini--soon {
  background: transparent;
  border-color: var(--c-linie);
  color: var(--c-text-3);
}

/* ---------- Experten-Auftritte bis Profil-Karten (dunkel) ---------- */
/* Profil-Karten als Liquid Glass (mit #perspektive, weil style.css sie per ID lila färbt). Dahinter ein weicher Rot-Gold-Schein, damit das Glas etwas zeigen kann. */
body.cd.cd-seite-keynotes .cards-dark { position: relative; isolation: isolate; }
body.cd.cd-seite-keynotes .cards-dark::before {
  content: "";
  position: absolute;
  inset: -14% 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 38% 46% at 32% 52%, rgba(170, 72, 58, .42), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 30% 40% at 76% 60%, rgba(217, 168, 46, .17), rgba(217, 168, 46, 0) 72%);
}
body.cd.cd-seite-keynotes #perspektive .cards-dark .card {
  border: 0;
  border-radius: 20px;
  color: var(--c-text-2);
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
/* Kein Hover-Effekt (Niklas, 22.10.2026): die Grundregel oben schlägt die Hover-Regeln aus style.css,
   den transform von .card:hover hebt .reveal.is-in auf */
body.cd.cd-seite-keynotes #perspektive .cards-dark .card h3 { color: var(--c-text); }
body.cd.cd-seite-keynotes #perspektive .cards-dark .card p { color: var(--c-text-2); }

/* "Mehr zu Niklas Titgemeyer": Glas-Zeile wie die Lernmaterialien der Startseite */
body.cd.cd-seite-keynotes .about-cta {
  position: relative;
  isolation: isolate;
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    inset 0 12px 24px -16px rgba(255, 255, 255, .22),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-keynotes .about-cta:hover,
body.cd.cd-seite-keynotes .about-cta:focus-visible {
  background: rgba(255, 255, 255, .09);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .65),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .3),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 12px 24px -16px rgba(255, 255, 255, .3),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-keynotes .about-cta-pic {
  border: 1.5px solid var(--c-linie-stark);
  box-shadow: none;
  background: var(--nacht);
}
body.cd.cd-seite-keynotes .about-cta-title { color: var(--c-text); }
body.cd.cd-seite-keynotes .about-cta-arrow { color: var(--gelb); }

/* ---------- Häufige Fragen (hell): helle Karten mit Schatten wie auf Beige vorgesehen ---------- */
body.cd.cd-seite-keynotes .faq-item {
  border: 1px solid var(--c-linie);
  background: var(--c-karte);
  box-shadow: var(--c-karte-schatten);
}
body.cd.cd-seite-keynotes .faq-item[open] { border-color: var(--c-linie-stark); }
body.cd.cd-seite-keynotes .faq-item summary:hover { color: var(--c-akzent); }
body.cd.cd-seite-keynotes .faq-icon { border-color: var(--c-linie-stark); }
body.cd.cd-seite-keynotes .faq-icon::before,
body.cd.cd-seite-keynotes .faq-icon::after { background: var(--c-akzent); }

/* ---------- Anfrageformular ---------- */
/* Datum- und Uhrzeit-Knopf: auf Dunkel hell (statt lila eingefärbt), auf Beige dunkel */
body.cd.cd-seite-keynotes #anfrage-formular .field input[type="date"]::-webkit-calendar-picker-indicator,
body.cd.cd-seite-keynotes #anfrage-formular .field input[type="time"]::-webkit-calendar-picker-indicator { filter: none; }
body.cd.cd-seite-keynotes #anfrage-formular:not(.theme-paper) .field input[type="date"],
body.cd.cd-seite-keynotes #anfrage-formular:not(.theme-paper) .field input[type="time"] { color-scheme: dark; }
/* Rückmeldung nach dem Absenden in den Farben des neuen CD */
body.cd.cd-seite-keynotes .form-note {
  background: rgba(217, 168, 46, .12);
  border-color: rgba(217, 168, 46, .45);
}
body.cd.cd-seite-keynotes .form-note--error {
  background: rgba(201, 90, 72, .12);
  border-color: rgba(201, 90, 72, .5);
}
/* Handy: Buttons unter dem Formular über die volle Breite, Schrift mittig (auch zweizeilig) */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes #anfrage-formular .btn-row .btn { justify-content: center; text-align: center; }
}

/* Überschrift im Intro: Umbruch nach "Fokus", nur "Risiken von KI" rot, 20 % größer (Niklas, 17.10.2026; Handy unverändert) */
@media (min-width: 561px) {
  body.cd.cd-seite-keynotes .kn-intro .kn-title { font-size: clamp(2.4rem, 6.12vw, 4.8rem); }
}

/* Abschnitt "Perspektive" geteilt (Niklas, 17.10.2026): Experten-Auftritte dunkel, "Was Ihr Publikum mitnimmt" beige,
   "Wieso Niklas Titgemeyer" mit den Profil-Karten dunkel (behält die ID #perspektive). Je 65px Luft. */
body.cd.cd-seite-keynotes #auftritte-keynote,
body.cd.cd-seite-keynotes #mitnehmen { padding-block: clamp(38px, 5.5vw, 65px); }
body.cd.cd-seite-keynotes #auftritte-keynote .section-head { max-width: none; }
/* Überschrift "Was Ihr Publikum … mitnimmt": Kopf nicht auf 760px begrenzen (vorher in #perspektive auch volle Breite),
   damit die Umbrüche wie vorgesehen fallen (EN: "takes" in Zeile 1, "keynote" in Zeile 2) */
body.cd.cd-seite-keynotes #mitnehmen .section-head { max-width: none; }

/* ---------- Seite: kontakt ---------- */
/* Neues CD: Anpassungen für body.cd-seite-kontakt. Jede Regel beginnt mit body.cd-seite-kontakt.
   Gilt auch für en/contact.html (gleiche Seitenklasse), deshalb nur über Klassen und Struktur,
   nie über Texte. Die Seite besteht aus einem einzigen dunklen Seitenkopf mit Formular und
   zwei Karten. */

/* Abstand unten wie bei allen Abschnitten (65px), der Kopf endet direkt am Footer */
body.cd.cd-seite-kontakt .page-hero { padding-bottom: clamp(38px, 5.5vw, 65px); }

/* Formular und Karten sind linksbündig, also auch ihre Buttons (der zentrierte Seitenkopf
   würde sie sonst mittig setzen) */
body.cd.cd-seite-kontakt .kontakt-grid .btn-row { justify-content: flex-start; }

/* Rechte Spalte startet genau auf Höhe des ersten Eingabefelds (Label 0.92rem × 1.6 + 7px Abstand) */
@media (min-width: 601px) {
  body.cd.cd-seite-kontakt .kontakt-grid > div { margin-top: calc(.92rem * 1.6 + 7px); }
}

/* ---------- Formularfelder auf Dunkel: dunkles Glas, Fokus gelb (wie sensibilisierungen.html) ---------- */
body.cd.cd-seite-kontakt section:not(.theme-paper) .field input,
body.cd.cd-seite-kontakt section:not(.theme-paper) .field textarea,
body.cd.cd-seite-kontakt section:not(.theme-paper) .field select {
  background-color: rgba(255, 255, 255, .05);
  color: var(--c-text);
  border-color: rgba(244, 240, 232, .2);
  caret-color: var(--gelb);
}
body.cd.cd-seite-kontakt section:not(.theme-paper) .field ::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-kontakt section:not(.theme-paper) .field input:focus,
body.cd.cd-seite-kontakt section:not(.theme-paper) .field textarea:focus,
body.cd.cd-seite-kontakt section:not(.theme-paper) .field select:focus {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px rgba(217, 168, 46, .16);
}
/* Automatisch ausgefüllte Felder (Name, E-Mail) nicht hellblau, sondern im dunklen Glaston */
body.cd.cd-seite-kontakt section:not(.theme-paper) .field input:-webkit-autofill {
  -webkit-text-fill-color: var(--c-text);
  box-shadow: 0 0 0 100px var(--nacht-karte) inset;
}
body.cd.cd-seite-kontakt section:not(.theme-paper) .field input:-webkit-autofill:focus {
  box-shadow: 0 0 0 100px var(--nacht-karte) inset, 0 0 0 4px rgba(217, 168, 46, .16);
}

/* Datenschutz-Link im Hinweis als Link erkennbar */
body.cd.cd-seite-kontakt .kontakt-grid form p a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--c-linie-stark);
  text-underline-offset: 2px;
}
body.cd.cd-seite-kontakt .kontakt-grid form p a:hover { color: var(--c-akzent); text-decoration-color: currentColor; }

/* Status-Meldung nach dem Absenden (style.css färbt sie im alten Gold): gelb, Fehler rot */
body.cd.cd-seite-kontakt .form-note {
  background: rgba(217, 168, 46, .12);
  border: 1px solid rgba(217, 168, 46, .45);
  color: var(--c-text);
}
body.cd.cd-seite-kontakt .form-note.form-note--error {
  background: rgba(201, 90, 72, .14);
  border-color: rgba(201, 90, 72, .55);
}
body.cd.cd-seite-kontakt .form-note a { color: var(--c-text); text-decoration-color: var(--c-akzent); }

/* ---------- Karten rechts als Liquid Glass (Rezept wie .takeaway-box) ---------- */
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .card {
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .card:hover {
  background: rgba(255, 255, 255, .075);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .6),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .28),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    0 22px 40px -20px rgba(0, 0, 0, .75);
}

/* Rechte Spalte (Niklas, 22.10.2026): nur noch die Karte "Keynote oder Sensibilisierung anfragen?", so hoch wie
   das Formular; oben ein schwarzer Bildbereich mit dem Porträt im Anzug, der den freien Platz füllt */
body.cd.cd-seite-kontakt .kontakt-grid > .kontakt-spalte { align-self: stretch; display: flex; flex-direction: column; }
body.cd.cd-seite-kontakt .kontakt-karte { flex: 1 1 auto; display: flex; flex-direction: column; }
body.cd.cd-seite-kontakt .kontakt-portraet {
  flex: 1 1 auto;
  position: relative;
  min-height: 300px;
  margin-bottom: clamp(20px, 2.4vw, 28px);
  border-radius: 14px;
  overflow: hidden;
  background: #0b0908;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}
body.cd.cd-seite-kontakt .kontakt-portraet img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

/* Instagram/LinkedIn-Pillen: klares Glas statt dunkler Fläche */
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .chip {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(244, 240, 232, .22);
  color: var(--c-text);
}
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .chip:hover {
  background: rgba(255, 255, 255, .11);
  border-color: var(--gelb);
}

/* Zweiter Button einer Reihe (z. B. "Sensibilisierung anfragen" neben "Keynote anfragen"):
   klares Liquid Glass wie .btn--white im Seitenkopf, der erste bleibt gelb */
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .btn-row .btn + .btn,
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .btn-row .btn + .btn:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-kontakt section:not(.theme-paper) .kontakt-grid .btn-row .btn + .btn:hover { background: rgba(255, 255, 255, .15); }

/* ---------- Seite: links ---------- */
/* Neues CD: Anpassungen für body.cd-seite-links. Jede Regel beginnt mit body.cd.cd-seite-links. */

/* Link-Sammlung für Social Media (ähnlich Linktree), ohne Navigation und Footer.
   Warmes Schwarz mit rot-schwarzem Lichtkegel von oben (wie der Seitenkopf mobil),
   Profil in Newsreader, Links als Liquid Glass, wichtigster Link als goldenes Glas. */

body.cd.cd-seite-links { background: var(--nacht); }

/* Die Seite hat keinen .section-Abschnitt: dunkle Kontext-Tokens direkt auf .linkhub */
body.cd.cd-seite-links .linkhub {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);   /* Fließtext auf Dunkel deckend weiß (Niklas, 17.10.2026) */
  --c-text-3: rgba(244, 240, 232, .52);
  --c-linie: rgba(244, 240, 232, .12);
  --c-linie-stark: rgba(244, 240, 232, .30);
  --c-hover-bg: rgba(244, 240, 232, .07);
  --c-akzent: var(--akzent-dunkel);
  --c-deko: var(--deko-dunkel);
  --text: var(--c-text);
  --text-dim: var(--c-text-2);
  color: var(--c-text);
  min-height: 0;                                   /* Seite so hoch wie ihr Inhalt, darunter läuft das warme Schwarz weiter */
  padding-block: clamp(38px, 5.5vw, 65px);         /* Abstandsregel: oben bis zum Bild und unten nach Impressum/Datenschutz je 65px */
  background:
    radial-gradient(ellipse min(46vw, 640px) 640px at 50% 0%, #9a3322 0%, #3a120d 38%, rgba(23, 19, 16, 0) 82%),
    var(--nacht);
}
/* Körnung über dem Lichtkegel, wie beim Seitenkopf */
body.cd.cd-seite-links .linkhub::before {
  inset: 0;
  opacity: .25;
  mix-blend-mode: overlay;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- Profil ---------- */
body.cd.cd-seite-links .linkhub-avatar {
  border: 2px solid rgba(244, 240, 232, .22);
  box-shadow: 0 0 0 6px rgba(255, 255, 255, .06), 0 20px 44px -16px rgba(0, 0, 0, .85);
}
body.cd.cd-seite-links .linkhub-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.9rem, 6.2vw, 2.4rem);
  letter-spacing: -.022em;
  line-height: 1.05;
  color: var(--c-text);
  margin-bottom: .4em;
}
body.cd.cd-seite-links .linkhub-name .dot { color: var(--c-deko); }
body.cd.cd-seite-links .linkhub-bio {
  font-family: var(--font-body);
  color: var(--c-text-2);
  font-size: clamp(1.08rem, 2.6vw, 1.18rem);
  line-height: 1.5;
  max-width: 44ch;
}

/* ---------- Social-Icons als kleine Glas-Kreise ---------- */
body.cd.cd-seite-links .linkhub-socials a {
  border: 0;
  color: var(--c-text);
  background: rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(14px) saturate(1.6);
  backdrop-filter: blur(14px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 10px 22px -12px rgba(0, 0, 0, .7);
  transition: color .25s ease, background .25s ease, box-shadow .25s ease, translate .25s ease;
}
body.cd.cd-seite-links .linkhub-socials a:hover,
body.cd.cd-seite-links .linkhub-socials a:focus-visible {
  color: var(--gelb);
  background: rgba(255, 255, 255, .13);
  border-color: transparent;
  transform: none;
  translate: 0 -2px;
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .3),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    0 10px 22px -12px rgba(0, 0, 0, .7);
}

/* ---------- Link-Buttons als Liquid Glass ---------- */
/* weicher Schein in Rot und Gold hinter der Liste, damit das Glas etwas zeigen kann */
body.cd.cd-seite-links .linkhub-links { position: relative; z-index: 0; }
body.cd.cd-seite-links .linkhub-links::before {
  content: "";
  position: absolute;
  inset: -140px -240px;                           /* groß genug, dass der Schein vor dem Rand ausläuft (keine Kanten) */
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(300px 230px at calc(50% - 140px) 56%, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0)),
    radial-gradient(260px 210px at calc(50% + 170px) 58%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0));
}
body.cd.cd-seite-links .linkhub-link {
  position: relative;
  isolation: isolate;
  border: 0;
  border-radius: 18px;
  padding: 18px 22px 18px 24px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
  /* Reveal (opacity/transform) bleibt erhalten, Hover läuft über "translate" */
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .25s ease, background .25s ease, box-shadow .25s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s, 0s;
}
/* Lichtkante am Glasrand, oben links und unten rechts am hellsten */
body.cd.cd-seite-links .linkhub-link::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd.cd-seite-links .linkhub-link:hover,
body.cd.cd-seite-links .linkhub-link:focus-visible {
  border-color: transparent;
  background: rgba(255, 255, 255, .15);
  translate: 0 -2px;
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .8),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .4),
    inset 0 0 0 1px rgba(255, 255, 255, .18),
    inset 0 10px 18px -12px rgba(255, 255, 255, .45),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-links .linkhub-link-title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1.16rem;
  line-height: 1.3;
}
body.cd.cd-seite-links .linkhub-link-arrow {
  color: var(--gelb);
  font-family: var(--font-label);
  font-size: 1.2rem;
}

/* wichtigster Link ("Keynote anfragen") als goldenes Glas mit dunkler Schrift */
body.cd.cd-seite-links .linkhub-link.linkhub-link--haupt {
  color: var(--tinte);
  background: linear-gradient(135deg, rgba(217, 168, 46, .95), rgba(217, 168, 46, .62));
}
body.cd.cd-seite-links .linkhub-link.linkhub-link--haupt:hover,
body.cd.cd-seite-links .linkhub-link.linkhub-link--haupt:focus-visible {
  background: linear-gradient(135deg, rgba(225, 180, 64, 1), rgba(217, 168, 46, .78));
}
body.cd.cd-seite-links .linkhub-link--haupt .linkhub-link-title { font-weight: 700; }
body.cd.cd-seite-links .linkhub-link--haupt .linkhub-link-arrow { color: var(--tinte); }

/* ---------- Impressum / Datenschutz ---------- */
body.cd.cd-seite-links .linkhub-legal {
  font-family: var(--font-body);
  font-size: .95rem;
  line-height: 1.3;
}
body.cd.cd-seite-links .linkhub-legal a { color: var(--c-text-3); }
body.cd.cd-seite-links .linkhub-legal a:hover,
body.cd.cd-seite-links .linkhub-legal a:focus-visible { color: var(--c-text); }

/* ---------- Handy ---------- */
@media (max-width: 640px) {
  body.cd.cd-seite-links .linkhub {
    background:
      radial-gradient(ellipse 85% 560px at 50% 0%, #9a3322 0%, #3a120d 38%, rgba(23, 19, 16, 0) 84%),
      var(--nacht);
  }
  body.cd.cd-seite-links .linkhub-link { padding: 18px 18px 18px 20px; }
  body.cd.cd-seite-links .linkhub-link-title { font-size: 1.08rem; }
  body.cd.cd-seite-links .linkhub-links::before {
    inset: -110px -60px;
    background:
      radial-gradient(190px 190px at 26% 54%, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0)),
      radial-gradient(170px 170px at 80% 60%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0));
  }
}

/* ---------- Seite: newsletter ---------- */
/* Neues CD: Anpassungen für body.cd-seite-newsletter. Jede Regel beginnt mit body.cd-seite-newsletter. */

/* ---------- Formular als Liquid-Glass-Karte (Rezept wie .fw1-karte / .takeaway-box) ---------- */
body.cd.cd-seite-newsletter .nl-form,
body.cd.cd-seite-newsletter .nl-done {
  position: relative;
  isolation: isolate;
  max-width: 560px;
  margin-inline: auto;
  padding: clamp(24px, 3.4vw, 40px);
  border: 0;
  border-radius: 22px;
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    inset 0 14px 28px -18px rgba(255, 255, 255, .18),
    0 22px 44px -22px rgba(0, 0, 0, .75);
}
/* Lichtkante am Glasrand, oben links und unten rechts am hellsten */
body.cd.cd-seite-newsletter .nl-form::before,
body.cd.cd-seite-newsletter .nl-done::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 65%, rgba(255, 255, 255, .32));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd.cd-seite-newsletter .nl-form > p:not(.nl-spec),
body.cd.cd-seite-newsletter .nl-done p { color: var(--c-text-2); }

/* ---------- Feld auf Dunkel: dunkles Glas, Fokus gelb (wie das Formular der Sensibilisierung) ---------- */
body.cd.cd-seite-newsletter .nl-form .field input {
  background-color: rgba(255, 255, 255, .05);
  color: var(--c-text);
  border-color: rgba(244, 240, 232, .2);
}
body.cd.cd-seite-newsletter .nl-form .field input::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-newsletter .nl-form .field input:focus {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px rgba(217, 168, 46, .16);
}
/* Autofill des Browsers soll das Feld nicht hellblau färben */
body.cd.cd-seite-newsletter .nl-form .field input:-webkit-autofill {
  -webkit-text-fill-color: var(--c-text);
  caret-color: var(--c-text);
  transition: background-color 600000s 0s, color 600000s 0s;
}

/* Hinweis zur Abmeldung: Link in Schriftfarbe mit Unterstrich, beim Überfahren Akzent */
body.cd.cd-seite-newsletter .nl-spec { color: var(--c-text-2); line-height: 1.55; }
body.cd.cd-seite-newsletter .nl-spec a {
  color: var(--c-text);
  text-decoration: underline;
  text-decoration-color: var(--c-akzent);
  text-underline-offset: 2px;
}
body.cd.cd-seite-newsletter .nl-spec a:hover,
body.cd.cd-seite-newsletter .nl-spec a:focus-visible { color: var(--c-akzent); }
body.cd.cd-seite-newsletter .nl-error { color: var(--rot-hell); }

/* ---------- Anmelden-Button: auf Dunkel gelb ---------- */
body.cd.cd-seite-newsletter .nl-form .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-newsletter .nl-form .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }

/* ---------- Seit 19.10.2026: Newsletter-Seite mit den Ausgaben aus Substack ----------
   Seitenkopf mit Anmeldefeld, darunter ein langer dunkler Abschnitt: neueste Ausgabe groß,
   frühere Ausgaben als Glas-Karten, am Ende die Anmeldekarte (.nl-form, Regeln oben).
   Die Karten erzeugt newsletter-ausgaben.php aus dem Feed. Handy-Regeln im Block HANDYANSICHT. */

/* Glas-Rezept wie .fw1-karte und die früheren Artikelkarten */
body.cd.cd-seite-newsletter .nlx-inline,
body.cd.cd-seite-newsletter .nlx-top,
body.cd.cd-seite-newsletter .nlx-karte {
  position: relative;
  isolation: isolate;
  background: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 22px 44px -22px rgba(0, 0, 0, .75);
}
/* Lichtkante am Glasrand, liegt über dem Bild, oben links und unten rechts am hellsten */
body.cd.cd-seite-newsletter .nlx-top::before,
body.cd.cd-seite-newsletter .nlx-karte::before {
  content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .5), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 65%, rgba(255, 255, 255, .3));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: .85;
  transition: opacity .35s ease;
}

/* Seitenkopf: Anmeldefeld als Glas-Pille mit gelbem Button, Fokus gelb */
body.cd.cd-seite-newsletter .nlx-hero .lead { max-width: 58ch; margin-inline: auto; }
/* Desktop: Einleitung in drei statt vier Zeilen (Niklas, 19.10.2026) */
@media (min-width: 641px) { body.cd.cd-seite-newsletter .nlx-hero .lead { max-width: 72ch; } }
body.cd.cd-seite-newsletter .nlx-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
body.cd.cd-seite-newsletter .nlx-inline {
  display: flex; gap: 8px;
  max-width: 560px; margin: 30px auto 0; padding: 7px;
  border-radius: 999px;
  transition: box-shadow .3s ease;
}
body.cd.cd-seite-newsletter .nlx-inline:focus-within {
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset 0 0 0 1px rgba(217, 168, 46, .7),
    0 0 0 4px rgba(217, 168, 46, .16),
    0 22px 44px -22px rgba(0, 0, 0, .75);
}
body.cd.cd-seite-newsletter .nlx-inline input {
  flex: 1; min-width: 0;
  padding: 0 8px 0 20px;
  border: 0; outline: 0; background: transparent;
  font: inherit; font-size: 1.05rem; color: var(--c-text);
}
body.cd.cd-seite-newsletter .nlx-inline input::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-newsletter .nlx-inline input:-webkit-autofill {
  -webkit-text-fill-color: var(--c-text);
  caret-color: var(--c-text);
  transition: background-color 600000s 0s, color 600000s 0s;
}
body.cd.cd-seite-newsletter .nlx-inline .btn,
body.cd.cd-seite-newsletter .nlx-top .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb); border-color: var(--gelb-tief); color: var(--tinte);
  white-space: nowrap;
}
body.cd.cd-seite-newsletter .nlx-inline .btn:hover,
body.cd.cd-seite-newsletter .nlx-top:hover .btn { background: var(--gelb-tief); border-color: var(--gelb-tief); }
body.cd.cd-seite-newsletter .nlx-hinweis { margin: 14px 0 0; font-size: .9rem; color: var(--c-text-3); }
body.cd.cd-seite-newsletter .nlx-hinweis a {
  color: var(--c-text-2);
  text-decoration: underline; text-decoration-color: var(--c-akzent); text-underline-offset: 2px;
}
body.cd.cd-seite-newsletter .nlx-hinweis a:hover,
body.cd.cd-seite-newsletter .nlx-hinweis a:focus-visible { color: var(--c-akzent); }
/* Fehlermeldung (main.js hängt sie ans Formularende) und Erfolgskarte im Kopf */
body.cd.cd-seite-newsletter .nlx-kopf-form .form-note { max-width: 560px; margin: 14px auto 0; }
body.cd.cd-seite-newsletter .nlx-hero .nl-done { margin-top: 30px; text-align: left; }

/* Ausgaben: dunkel, schließt ohne Kante an den Seitenkopf an (wie früher die Artikelkarten) */
body.cd.cd-seite-newsletter .nlx-ausgaben {
  padding-block: clamp(38px, 5.5vw, 65px);
  background:
    radial-gradient(ellipse 50% 14% at 16% 16%, rgba(170, 72, 58, .30), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 44% 13% at 86% 42%, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 72%),
    radial-gradient(ellipse 50% 14% at 14% 66%, rgba(170, 72, 58, .26), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 36% 14% at 60% 90%, rgba(170, 72, 58, .30), rgba(170, 72, 58, 0) 72%),
    linear-gradient(to bottom, #0a0706, rgba(23, 19, 16, 0) 220px),
    var(--nacht);
}

/* Karten: Hover hebt per "translate" an, damit die Reveal-Animation (transform) unberührt bleibt */
body.cd.cd-seite-newsletter .nlx-top,
body.cd.cd-seite-newsletter .nlx-karte {
  color: inherit; text-decoration: none; overflow: hidden;
  transition:
    opacity .8s cubic-bezier(.2, .7, .2, 1),
    transform .8s cubic-bezier(.2, .7, .2, 1),
    translate .35s cubic-bezier(.2, .7, .2, 1),
    background-color .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s;
}
body.cd.cd-seite-newsletter .nlx-top:hover,
body.cd.cd-seite-newsletter .nlx-top:focus-visible,
body.cd.cd-seite-newsletter .nlx-karte:hover,
body.cd.cd-seite-newsletter .nlx-karte:focus-visible {
  translate: 0 -5px;
  background-color: rgba(255, 255, 255, .085);
}
body.cd.cd-seite-newsletter .nlx-top:hover::before,
body.cd.cd-seite-newsletter .nlx-karte:hover::before { opacity: 1; }
body.cd.cd-seite-newsletter .nlx-top img,
body.cd.cd-seite-newsletter .nlx-karte img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
body.cd.cd-seite-newsletter .nlx-top:hover img,
body.cd.cd-seite-newsletter .nlx-karte:hover img { transform: scale(1.03); }

/* Neueste Ausgabe: Bild links über die volle Kartenhöhe, Text rechts */
body.cd.cd-seite-newsletter .nlx-top {
  display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  border-radius: 24px;
}
body.cd.cd-seite-newsletter .nlx-top-bild {
  position: relative; min-height: 320px; overflow: hidden;
  background: var(--nacht-karte);
  border-right: 1px solid rgba(255, 255, 255, .1);
}
body.cd.cd-seite-newsletter .nlx-top-bild img { position: absolute; inset: 0; }
/* Desktop: Bild im Originalformat statt über die volle Kartenhöhe gestreckt; ist der Text höher,
   steht das Bild mittig und die Karte zeigt darüber und darunter ihren Grund */
@media (min-width: 961px) {
  body.cd.cd-seite-newsletter .nlx-top-bild { min-height: 0; aspect-ratio: 1200 / 630; align-self: center; }
  /* Spalten und Innenabstand so, dass Bild und Text ab 1280px gleich hoch sind (gemessen mit der Ausgabe vom 19.10.2026) */
  body.cd.cd-seite-newsletter .nlx-top { grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr); }
  body.cd.cd-seite-newsletter .nlx-top .nlx-top-text { gap: 11px; padding: clamp(18px, 2vw, 24px) clamp(22px, 2.6vw, 34px); }   /* .nlx-top davor, weil die Grundregel weiter unten steht */
}
body.cd.cd-seite-newsletter .nlx-top-text {
  display: flex; flex-direction: column; justify-content: center; gap: 14px;
  padding: clamp(24px, 3vw, 38px);
}
body.cd.cd-seite-newsletter .nlx-top h2 {
  margin: 0; color: var(--c-text);
  font-size: clamp(1.75rem, 2.6vw, 2.2rem); font-weight: 650; line-height: 1.08; letter-spacing: -.015em;
}
body.cd.cd-seite-newsletter .nlx-top p { margin: 0; color: var(--c-text-2); font-size: 1.04rem; line-height: 1.5; }
body.cd.cd-seite-newsletter .nlx-top .btn { align-self: flex-start; margin-top: 6px; }
body.cd.cd-seite-newsletter .nlx-meta { color: var(--c-text-3); font-size: .93rem; }
body.cd.cd-seite-newsletter .nlx-top .nlx-meta { color: var(--c-text-2); }
body.cd.cd-seite-newsletter .nlx-pille {
  display: inline-block; margin-right: 8px; vertical-align: 1px;
  padding: 3px 10px; border-radius: 999px;
  background: var(--gelb); color: var(--tinte);
  font-family: var(--font-label); font-size: .78rem; font-weight: 600;
}

/* Frühere Ausgaben: zwei Spalten */
body.cd.cd-seite-newsletter .nlx-h2 {
  margin: clamp(48px, 6vw, 76px) 0 clamp(20px, 2.4vw, 28px);
  color: var(--c-text); text-align: center;
}
/* Seit 19.10.2026 abends zwei statt drei Ausgaben pro Reihe (Niklas' Wunsch) */
body.cd.cd-seite-newsletter .nlx-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
}
body.cd.cd-seite-newsletter .nlx-karte {
  display: flex; flex-direction: column;
  border-radius: 18px;
}
/* Titelbilder im Originalformat von Substack (1200 × 630, etwa 1,9 : 1), nichts abgeschnitten (Niklas, 19.10.2026) */
body.cd.cd-seite-newsletter .nlx-karte-bild {
  display: block; aspect-ratio: 1200 / 630; overflow: hidden;
  background: var(--nacht-karte);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
body.cd.cd-seite-newsletter .nlx-karte h3 {
  margin: 20px 22px 8px; color: var(--c-text);
  font-size: 1.34rem; font-weight: 650; line-height: 1.16; letter-spacing: -.01em;
}
body.cd.cd-seite-newsletter .nlx-karte p { margin: 0 22px; color: var(--c-text-2); font-size: 1rem; line-height: 1.5; }
body.cd.cd-seite-newsletter .nlx-karte-fuss {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: auto; padding: 18px 22px 20px;
}
body.cd.cd-seite-newsletter .nlx-pfeil { color: var(--gelb); font-size: 1.25rem; line-height: 1; transition: transform .3s ease; }
body.cd.cd-seite-newsletter .nlx-karte:hover .nlx-pfeil { transform: translate(3px, -3px); }
body.cd.cd-seite-newsletter .nlx-alle { justify-content: center; margin-top: clamp(28px, 3.4vw, 40px); }

/* Anmeldekarte am Ende */
body.cd.cd-seite-newsletter .nlx-abschluss { margin-top: clamp(56px, 7vw, 88px); }
/* Anmeldekarte so breit wie der Abschnitt „Worum es im Newsletter geht“ darüber (Niklas, 19.10.2026) */
body.cd.cd-seite-newsletter .nlx-abschluss .nl-form,
body.cd.cd-seite-newsletter .nlx-abschluss .nl-done { max-width: 760px; }

/* „Mehr zum Newsletter“ (19.10.2026): Button unter dem Anmeldefeld im Seitenkopf springt zum
   Abschnitt „Worum es im Newsletter geht“ zwischen den Ausgaben und der Anmeldekarte */
body.cd.cd-seite-newsletter .nlx-mehr-zeile { justify-content: center; margin-top: clamp(18px, 2.2vw, 26px); }
/* Klares Liquid Glass wie „Zu meiner Person“ auf der Startseite (Niklas, 22.10.2026, vorher Kontur-Button) */
body.cd.cd-seite-newsletter .nlx-mehr-zeile .btn,
body.cd.cd-seite-newsletter .nlx-mehr-zeile .btn:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-newsletter .nlx-mehr-zeile .btn:hover { background: rgba(255, 255, 255, .15); }
body.cd.cd-seite-newsletter .nlx-mehr-zeile .btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 35%, rgba(255, 255, 255, .06) 65%, rgba(255, 255, 255, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
/* Desktop: Luft zwischen dem Button und der ersten Ausgabe halbiert (101 → rund 50px bei voller Breite) */
@media (min-width: 641px) {
  body.cd.cd-seite-newsletter .nlx-hero { padding-bottom: calc(clamp(20px, 3vw, 36px) / 2); }
  body.cd.cd-seite-newsletter .nlx-ausgaben { padding-top: calc(clamp(38px, 5.5vw, 65px) / 2); }
}
body.cd.cd-seite-newsletter .nlx-ueber {
  max-width: 760px;
  margin: clamp(56px, 7vw, 88px) auto 0;
  scroll-margin-top: calc(var(--header-h) + 24px);
}
body.cd.cd-seite-newsletter .nlx-ueber .nlx-h2 { margin-top: 0; }
body.cd.cd-seite-newsletter .nlx-ueber p {
  margin: 0 0 1.1em;
  color: var(--c-text-2); font-size: clamp(1.05rem, 1.3vw, 1.15rem); line-height: 1.7;
}
body.cd.cd-seite-newsletter .nlx-ueber sup { line-height: 0; }
body.cd.cd-seite-newsletter .nlx-fn { margin-left: 1px; }
body.cd.cd-seite-newsletter .nlx-fn a { color: var(--gelb); font-weight: 700; text-decoration: none; }
body.cd.cd-seite-newsletter .nlx-ueber .nlx-fussnote {
  margin: 26px 0 0; padding-top: 14px;
  border-top: 1px solid var(--c-linie);
  font-size: .92rem; line-height: 1.5; color: var(--c-text-3);
  scroll-margin-top: calc(var(--header-h) + 24px);
}

@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-newsletter .nlx-top:hover,
  body.cd.cd-seite-newsletter .nlx-top:focus-visible,
  body.cd.cd-seite-newsletter .nlx-karte:hover,
  body.cd.cd-seite-newsletter .nlx-karte:focus-visible { translate: none; }
  body.cd.cd-seite-newsletter .nlx-top:hover img,
  body.cd.cd-seite-newsletter .nlx-karte:hover img { transform: none; }
}

/* Tablet: zwei Spalten, neueste Ausgabe gestapelt */
@media (max-width: 960px) {
  body.cd.cd-seite-newsletter .nlx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.cd.cd-seite-newsletter .nlx-top { grid-template-columns: 1fr; }
  body.cd.cd-seite-newsletter .nlx-top-bild {
    min-height: 0; aspect-ratio: 1200 / 630;
    border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .1);
  }
}

/* ---------- Seite: quellen ---------- */
/* Neues CD: Anpassungen für body.cd.cd-seite-quellen. Jede Regel beginnt mit body.cd.cd-seite-quellen. */

/* ---------- Seitenkopf ----------
   Die ganze Quellenliste steht im .page-hero. Der Lichtkegel aus neues-cd.css rechnet seine Höhe
   in Prozent der Abschnittshöhe und zieht sich hier deshalb über die ganze Seite. Feste Höhe in px,
   mittig über dem zentrierten Titel; darunter läuft er ins fast Schwarze aus. */
body.cd.cd-seite-quellen .page-hero {
  background: radial-gradient(ellipse 40% 620px at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  padding-bottom: clamp(38px, 5.5vw, 65px);   /* letzter Eintrag bis Footer wie überall 65px */
}
@media (max-width: 1060px) {
  body.cd.cd-seite-quellen .page-hero {
    background: radial-gradient(ellipse 80% 600px at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}

/* "Wird laufend aktualisiert": Punkt in Gelb (auf Dunkel), Puls ohne altes Gold */
body.cd.cd-seite-quellen .hero-proof { color: var(--c-text-2); }
body.cd.cd-seite-quellen .hero-proof .pulse {
  background: var(--gelb);
  animation-name: cdSeiteQuellenPuls;
}
@keyframes cdSeiteQuellenPuls {
  0%   { box-shadow: 0 0 0 0 rgba(217, 168, 46, .55); }
  70%  { box-shadow: 0 0 0 12px rgba(217, 168, 46, 0); }
  100% { box-shadow: 0 0 0 0 rgba(217, 168, 46, 0); }
}
@media (prefers-reduced-motion: reduce) {
  body.cd.cd-seite-quellen .hero-proof .pulse { animation: none; }
}

/* ---------- Suche ----------
   Feld als dunkles Glas wie die Formularfelder auf Dunkel, Fokus gelb */
body.cd.cd-seite-quellen .q-search input {
  background-color: rgba(255, 255, 255, .05);
  border-color: rgba(244, 240, 232, .2);
  color: var(--c-text);
}
body.cd.cd-seite-quellen .q-search input::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-quellen .q-search input:focus {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px rgba(217, 168, 46, .16);
}
body.cd.cd-seite-quellen .q-search svg { stroke: var(--c-text-2); }
/* Löschen-Kreuz im Suchfeld statt Browser-Blau in Schriftfarbe */
body.cd.cd-seite-quellen .q-search input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  cursor: pointer;
  opacity: .7;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4f0e8' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.cd.cd-seite-quellen .q-search input::-webkit-search-cancel-button:hover { opacity: 1; }
body.cd.cd-seite-quellen #quellenCount { color: var(--c-text-2); }

/* ---------- Aufgeklappte Einträge ---------- */
/* Hinweis-Kasten: Gelb statt altem Gold */
body.cd.cd-seite-quellen .q-note {
  border-color: rgba(217, 168, 46, .32);
  background: rgba(217, 168, 46, .07);
}
body.cd.cd-seite-quellen .q-note-avatar {
  background: rgba(217, 168, 46, .13);
  border-color: rgba(217, 168, 46, .45);
}
body.cd.cd-seite-quellen .q-note p { color: var(--c-text); }
body.cd.cd-seite-quellen .q-note a {
  color: var(--gelb);
  border-bottom-color: rgba(217, 168, 46, .45);
}
body.cd.cd-seite-quellen .q-note a:hover {
  color: var(--c-text);
  border-bottom-color: currentColor;
}

/* Quellenliste: Newsreader wirkt kleiner als die alte Schrift, deshalb etwas größer */
body.cd.cd-seite-quellen .q-list li a,
body.cd.cd-seite-quellen .q-nolink { font-size: 1.05rem; line-height: 1.55; }
body.cd.cd-seite-quellen .q-list li a { color: var(--c-akzent); }
body.cd.cd-seite-quellen .q-nolink { color: var(--c-text-2); }

/* "Direktlink kopieren" / "Prompt kopieren": ruhige Kontur, beim Überfahren heller, kopiert gelb */
body.cd.cd-seite-quellen .q-share-btn {
  font-family: var(--font-label);
  color: var(--c-text-2);
  background: rgba(255, 255, 255, .03);
  border-color: var(--c-linie-stark);
}
body.cd.cd-seite-quellen .q-share-btn:hover,
body.cd.cd-seite-quellen .q-share-btn:focus-visible {
  color: var(--c-text);
  border-color: var(--c-text-2);
  background: var(--c-hover-bg);
}
body.cd.cd-seite-quellen .q-share-btn.is-copied {
  color: var(--gelb);
  border-color: rgba(217, 168, 46, .55);
  background: rgba(217, 168, 46, .1);
}

/* Verweis auf einen eigenen Beitrag: Pille in Rot statt Lila */
body.cd.cd-seite-quellen .q-artikel-link {
  color: var(--c-akzent);
  border-color: rgba(201, 90, 72, .42);
  background: rgba(201, 90, 72, .1);
}
body.cd.cd-seite-quellen .q-artikel-link:hover,
body.cd.cd-seite-quellen .q-artikel-link:focus-visible {
  color: var(--c-text);
  border-color: rgba(201, 90, 72, .7);
  background: rgba(201, 90, 72, .2);
}

/* Prompt zum Kopieren */
body.cd.cd-seite-quellen .q-prompt-intro { font-size: 1.05rem; color: var(--c-text-2); }
body.cd.cd-seite-quellen .q-prompt { border-color: var(--c-linie); background: rgba(255, 255, 255, .03); }
body.cd.cd-seite-quellen .q-prompt-bar { border-bottom-color: var(--c-linie); }
body.cd.cd-seite-quellen .q-prompt-tag { font-family: var(--font-label); color: var(--c-akzent); }
body.cd.cd-seite-quellen .q-prompt-text {
  color: var(--c-text);
  scrollbar-color: rgba(244, 240, 232, .25) transparent;
}
body.cd.cd-seite-quellen .q-prompt-text::-webkit-scrollbar-thumb { background: rgba(244, 240, 232, .25); }

/* ---------- Seite: ueber-mich ---------- */
/* Neues CD: Anpassungen für body.cd-seite-ueber-mich. Jede Regel beginnt mit body.cd-seite-ueber-mich.
   Gilt auch für en/about.html (gleiche Seitenklasse), deshalb keine Regeln, die an deutschen
   Texten hängen. Der Lebenslauf-Abschnitt wird über :has(.cv-tl-wrap) erkannt, nicht per ID. */

/* ---------- Abstände: 65px von der Abschnittskante bis zum ersten bzw. letzten Objekt ---------- */
body.cd.cd-seite-ueber-mich main > .section { padding-block: clamp(38px, 5.5vw, 65px); }
/* letzter Absatz eines Abschnitts ohne Außenabstand, sonst wächst die Lücke zur Unterkante */
body.cd.cd-seite-ueber-mich .story-fullrow > p:last-child,
body.cd.cd-seite-ueber-mich .story-widerow > p:last-child { margin-bottom: 0; }

/* ---------- Seitenkopf: Auftakttext und Porträt ---------- */
body.cd.cd-seite-ueber-mich .story-lead { color: var(--c-text-2); }
/* Bühne hinter dem freigestellten Porträt: statt Lila der rote Lichtkegel von oben, Glaskante statt lila Rand */
body.cd.cd-seite-ueber-mich .about-stage {
  border: 0;
  background: linear-gradient(to top, #0a0706 0%, #0a0706 16%, #3a120d 60%, #9a3322 100%);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 0 46px -12px rgba(170, 72, 58, .5),
    0 26px 60px -24px rgba(0, 0, 0, .7);
}
/* Follower-Plakette als klares Liquid Glass */
body.cd.cd-seite-ueber-mich .about-stage-tag.story-follower {
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}

/* ---------- Bilder und Video der Geschichte ---------- */
/* Ruhe: feine Linie und warmer Schatten statt schwarzem Rahmen. Hover: nur Anheben, kein Lila */
body.cd.cd-seite-ueber-mich .story-fig,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] {
  border-color: var(--c-linie);
  box-shadow: 0 34px 60px -30px rgba(52, 34, 18, .5);
}
body.cd.cd-seite-ueber-mich .story-fig:hover,
body.cd.cd-seite-ueber-mich .story-fig:focus-within,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service]:hover,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service]:focus-within {
  border-color: var(--c-linie-stark);
  box-shadow: 0 40px 66px -30px rgba(52, 34, 18, .6);
}
/* auf Schwarz (ChatGPT-Logo): dunkler Schatten */
body.cd.cd-seite-ueber-mich .story-dark .story-fig,
body.cd.cd-seite-ueber-mich .story-dark .story-video-frame[data-service] {
  border-color: var(--c-linie);
  box-shadow: 0 26px 58px -28px rgba(0, 0, 0, .75);
}
body.cd.cd-seite-ueber-mich .story-dark .story-fig:hover,
body.cd.cd-seite-ueber-mich .story-dark .story-fig:focus-within {
  border-color: var(--c-linie-stark);
  box-shadow: 0 32px 62px -28px rgba(0, 0, 0, .85);
}
/* Einwilligungs-Hinweis im Video (iframemanager): warmes Schwarz, gelber Lade-Button */
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] { background: var(--nacht-karte); color: var(--beige-hell); }
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .c-nt,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .cll,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .c-n-t,
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] p { color: var(--beige-hell); }
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .c-n-t a { color: var(--gelb); }
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .cll .c-l-b {
  font-family: var(--font-body);
  font-weight: 650;
  background: var(--gelb);
  color: var(--tinte);
  outline-color: var(--tinte);
}
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .cll .c-l-b:hover { background: var(--gelb-tief); }
body.cd.cd-seite-ueber-mich .story-video-frame[data-service] .cll .c-la-b { font-family: var(--font-body); font-weight: 650; }

/* Schlüsselwörter im Fließtext: kursiv in Rot wie überall, ohne lila bzw. goldenes Markerband */
body.cd.cd-seite-ueber-mich .story-body .prose-block .mk { background-image: none; }

/* ChatGPT-Logo-Kachel 8 % kleiner (450 → 414px), damit die Lücke daneben kleiner wird (Niklas, 19.10.2026) */
body.cd.cd-seite-ueber-mich .story-fig--logo { max-width: 414px; }
/* Desktop: Absatz unter der ChatGPT-Zeile näher ans Logo, Abstand rund 35 % kleiner (44 → 20px bei voller Breite).
   Beide Ränder setzen, weil sie zusammenfallen */
@media (min-width: 981px) {
  body.cd.cd-seite-ueber-mich .story-split:has(> .story-fig--logo) { margin-bottom: calc(clamp(23px, 3.2vw, 44px) * .45); }
  body.cd.cd-seite-ueber-mich .story-split:has(> .story-fig--logo) + .story-widerow { margin-top: calc(clamp(23px, 3.2vw, 44px) * .45); }
}

/* ---------- Button-Zeile auf Beige: alle drei als helles Liquid Glass (Niklas, 17.10.2026) ---------- */
body.cd.cd-seite-ueber-mich .story-cta-row .btn,
body.cd.cd-seite-ueber-mich .story-cta-row .btn:hover {
  position: relative;
  border: 0;
  color: var(--tinte);
  background: rgba(255, 255, 255, .42);
  -webkit-backdrop-filter: blur(14px) saturate(1.5);
  backdrop-filter: blur(14px) saturate(1.5);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .95),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .6),
    inset 0 0 0 1px rgba(36, 29, 24, .1),
    inset 0 -10px 18px -14px rgba(170, 72, 58, .18),
    0 14px 28px -18px rgba(72, 50, 28, .45);
}
body.cd.cd-seite-ueber-mich .story-cta-row .btn:hover {
  background: rgba(255, 255, 255, .68);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, 1),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset 0 0 0 1px rgba(36, 29, 24, .14),
    inset 0 -10px 18px -14px rgba(170, 72, 58, .24),
    0 14px 28px -18px rgba(72, 50, 28, .45);
}
body.cd.cd-seite-ueber-mich .story-cta-row .btn .arr { color: var(--rot); }

/* ---------- Mini-Anmeldung zum Newsletter unter den Buttons (Niklas, 19.10.2026) ----------
   Dunkle Karte im Stil des Seitenkopfs von newsletter.html: Titel, ein Satz, Glas-Pille mit gelbem Button.
   Steht auf Beige, bringt deshalb die Kontext-Tokens „dunkel“ selbst mit. Handy-Regeln am Dateiende. */
body.cd.cd-seite-ueber-mich .story-nl {
  --c-text: var(--beige-hell);
  --c-text-2: var(--beige-hell);
  --c-text-3: rgba(244, 240, 232, .58);
  --c-akzent: var(--rot-hell);
  position: relative;
  isolation: isolate;
  max-width: 640px;
  margin: clamp(30px, 4vw, 46px) auto 0;
  padding: clamp(26px, 3.4vw, 38px) clamp(20px, 3.4vw, 40px);
  border-radius: 22px;
  background:
    radial-gradient(70% 95% at 100% 0%, rgba(170, 72, 58, .4), rgba(170, 72, 58, 0) 70%),
    var(--nacht);
  color: var(--c-text);
  text-align: center;
  box-shadow: 0 26px 50px -30px rgba(52, 34, 18, .7);
}
body.cd.cd-seite-ueber-mich .story-nl ::selection { background: rgba(201, 90, 72, .55); color: var(--beige-hell); }
body.cd.cd-seite-ueber-mich .story-nl-titel { margin: 0; color: var(--c-text); }
body.cd.cd-seite-ueber-mich .story-body .prose-block .story-nl-text {
  max-width: 46ch; margin: 10px auto 0;
  font-size: 1.02rem; line-height: 1.55; color: var(--c-text-2);
}
body.cd.cd-seite-ueber-mich .story-nl-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
body.cd.cd-seite-ueber-mich .story-nl-pille {
  display: flex; gap: 8px;
  max-width: 500px; margin: 22px auto 0; padding: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .055);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09);
  transition: box-shadow .3s ease;
}
body.cd.cd-seite-ueber-mich .story-nl-pille:focus-within {
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset 0 0 0 1px rgba(217, 168, 46, .7),
    0 0 0 4px rgba(217, 168, 46, .16);
}
body.cd.cd-seite-ueber-mich .story-nl-pille input {
  flex: 1; min-width: 0;
  padding: 0 8px 0 18px;
  border: 0; outline: 0; background: transparent;
  font: inherit; font-size: 1rem; color: var(--c-text);
}
body.cd.cd-seite-ueber-mich .story-nl-pille input::placeholder { color: var(--c-text-3); opacity: 1; }
body.cd.cd-seite-ueber-mich .story-nl-pille input:-webkit-autofill {
  -webkit-text-fill-color: var(--c-text);
  caret-color: var(--c-text);
  transition: background-color 600000s 0s, color 600000s 0s;
}
body.cd.cd-seite-ueber-mich .story-nl-pille .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb); border-color: var(--gelb-tief); color: var(--tinte);
  white-space: nowrap;
}
body.cd.cd-seite-ueber-mich .story-nl-pille .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }
body.cd.cd-seite-ueber-mich .story-body .prose-block .story-nl-hinweis {
  margin: 12px 0 0; font-size: .85rem; line-height: 1.5; color: var(--c-text-3);
}
body.cd.cd-seite-ueber-mich .story-nl .form-note { max-width: 500px; margin: 12px auto 0; }
body.cd.cd-seite-ueber-mich .story-nl .nl-done { margin-top: 20px; text-align: left; }
body.cd.cd-seite-ueber-mich .story-nl .nl-done p { color: var(--c-text-2); }

/* ---------- Was meine Arbeit leitet (dunkel, früher auf der Social-Media-Seite) ---------- */
body.cd.cd-seite-ueber-mich #prinzipien .section-head,
body.cd.cd-seite-ueber-mich #principles .section-head { margin-bottom: clamp(26px, 3.4vw, 40px); }
/* linke Spalte breit genug, damit "Verantwortungsbewusstsein" in Newsreader einzeilig bleibt */
@media (min-width: 881px) {
  body.cd.cd-seite-ueber-mich #prinzipien .value-row,
  body.cd.cd-seite-ueber-mich #principles .value-row { grid-template-columns: 330px 1fr; }
}
body.cd.cd-seite-ueber-mich #prinzipien .btn,
body.cd.cd-seite-ueber-mich #principles .btn { --glow: rgba(217, 168, 46, .45); background: var(--gelb); border-color: var(--gelb-tief); color: var(--tinte); }
body.cd.cd-seite-ueber-mich #prinzipien .btn:hover,
body.cd.cd-seite-ueber-mich #principles .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }

/* ---------- Lebenslauf (dunkel) ---------- */
/* Weicher Rot-Gold-Schein hinter den Zahlen und hinter dem Abschluss-Panel, damit das Glas etwas zeigen kann */
body.cd.cd-seite-ueber-mich section.section:has(.cv-tl-wrap) {
  background:
    radial-gradient(ellipse 42% 240px at 28% 230px, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 30% 200px at 82% 250px, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 72%),
    radial-gradient(ellipse 34% 260px at 36% calc(100% - 210px), rgba(170, 72, 58, .42), rgba(170, 72, 58, 0) 72%),
    radial-gradient(ellipse 28% 220px at 68% calc(100% - 170px), rgba(217, 168, 46, .22), rgba(217, 168, 46, 0) 72%),
    var(--nacht);
}

/* Zahlen als Liquid-Glass-Karten mit gelben Zahlen (wie "Für wen" auf der Sensibilisierungs-Seite) */
body.cd.cd-seite-ueber-mich .cv-stats--hero .cv-stat {
  border: 0;
  border-radius: 20px;
  background-color: rgba(255, 255, 255, .055);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .45),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .09),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  transition: transform .35s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, box-shadow .35s ease;
}
body.cd.cd-seite-ueber-mich .cv-stats--hero .cv-stat:hover,
body.cd.cd-seite-ueber-mich .cv-stats--hero .cv-stat:active {
  transform: translateY(-5px);
  background-color: rgba(255, 255, 255, .085);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .55),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    0 26px 44px -22px rgba(0, 0, 0, .8);
}
body.cd.cd-seite-ueber-mich .cv-stat-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--gelb);
}
body.cd.cd-seite-ueber-mich .cv-stat-label { color: var(--c-text-2); }

/* Zeitleiste in Rot und Gelb wie auf der Sensibilisierungs-Seite */
body.cd.cd-seite-ueber-mich .cv-timeline::before {
  background: linear-gradient(180deg, var(--rot) 0%, rgba(170, 72, 58, .15) 100%);
}
body.cd.cd-seite-ueber-mich .cv-tl-wrap--js .cv-tl-line { background: rgba(170, 72, 58, .26); }
body.cd.cd-seite-ueber-mich .cv-tl-line-fill {
  background: linear-gradient(180deg, var(--rot), var(--gelb));
  box-shadow: 0 0 12px rgba(217, 168, 46, .45);
}
/* wandernder Punkt: gelb, ruhig leuchtend (der lila Puls aus style.css ist abgeschaltet) */
body.cd.cd-seite-ueber-mich .cv-tl-dot {
  background: radial-gradient(circle at 50% 36%, #f3d48a, var(--gelb) 55%, var(--gelb-tief));
  border-color: rgba(243, 212, 138, .9);
  box-shadow: 0 0 0 4px var(--nacht), 0 0 18px 2px rgba(217, 168, 46, .55);
  animation: none;
}
/* Stationspunkte: ohne JS rot, mit JS zunächst gedimmt rot, beim Erreichen gelb */
body.cd.cd-seite-ueber-mich .cv-tl-item::before {
  background: var(--nacht);
  border-color: var(--rot-hell);
  box-shadow: 0 0 0 4px var(--nacht), 0 0 16px -2px rgba(201, 90, 72, .6);
}
body.cd.cd-seite-ueber-mich .cv-tl-wrap--js .cv-tl-item::before {
  background: var(--nacht);
  border-color: rgba(201, 90, 72, .42);
  box-shadow: 0 0 0 4px var(--nacht);
}
body.cd.cd-seite-ueber-mich .cv-tl-wrap--js .cv-tl-item.is-on::before {
  border-color: var(--gelb);
  box-shadow: 0 0 0 4px var(--nacht), 0 0 16px -1px rgba(217, 168, 46, .7);
}
body.cd.cd-seite-ueber-mich .cv-tl-period { font-family: var(--font-label); color: var(--gelb); }
body.cd.cd-seite-ueber-mich .cv-org { font-family: var(--font-label); color: var(--c-akzent); }
body.cd.cd-seite-ueber-mich .cv-badge {
  font-family: var(--font-label);
  font-weight: 600;
  color: var(--rot-hell);
  background: rgba(201, 90, 72, .14);
  border-color: rgba(201, 90, 72, .38);
}
body.cd.cd-seite-ueber-mich .cv-points li { color: var(--c-text-2); }
body.cd.cd-seite-ueber-mich .cv-points li::before { background: var(--gelb); }

/* ---------- Abschluss-Panel: Liquid Glass statt lila Verlauf ---------- */
body.cd.cd-seite-ueber-mich .panel.panel--glow {
  border: 0;
  color: var(--c-text);
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1), translate .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease;
  transition-delay: var(--d, 0s), var(--d, 0s), 0s, 0s;
}
body.cd.cd-seite-ueber-mich .panel.panel--glow:hover {
  translate: 0 -6px;
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .6),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .28),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    0 30px 50px -24px rgba(0, 0, 0, .8);
}
body.cd.cd-seite-ueber-mich .panel.panel--glow::after { display: none; }
body.cd.cd-seite-ueber-mich .panel.panel--glow h2 { color: var(--c-text); }
body.cd.cd-seite-ueber-mich .panel.panel--glow .lead { color: var(--c-text-2); }
/* Hauptbutton gelb, zweiter Button klares Liquid Glass */
body.cd.cd-seite-ueber-mich .panel.panel--glow .btn:not(.btn--ghost) {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-ueber-mich .panel.panel--glow .btn:not(.btn--ghost):hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }
body.cd.cd-seite-ueber-mich .panel.panel--glow .btn--ghost,
body.cd.cd-seite-ueber-mich .panel.panel--glow .btn--ghost:hover {
  position: relative;
  isolation: isolate;
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
body.cd.cd-seite-ueber-mich .panel.panel--glow .btn--ghost:hover { background: rgba(255, 255, 255, .15); }

/* ---------- Handy ---------- */
@media (max-width: 760px) {
  /* Zahlen stehen hier 2 x 2 und sitzen höher: Schein entsprechend versetzen */
  body.cd.cd-seite-ueber-mich section.section:has(.cv-tl-wrap) {
    background:
      radial-gradient(ellipse 70% 200px at 25% 190px, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0) 72%),
      radial-gradient(ellipse 50% 180px at 85% 240px, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 72%),
      radial-gradient(ellipse 70% 240px at 30% calc(100% - 230px), rgba(170, 72, 58, .42), rgba(170, 72, 58, 0) 72%),
      radial-gradient(ellipse 50% 200px at 80% calc(100% - 160px), rgba(217, 168, 46, .22), rgba(217, 168, 46, 0) 72%),
      radial-gradient(70% 55% at 50% 0%, rgba(236, 230, 218, .05), transparent 70%),
      var(--nacht);
  }
}

/* ---------- Seite: videokurs ---------- */
/* Neues CD: Anpassungen für body.cd-seite-videokurs. Jede Regel beginnt mit body.cd.cd-seite-videokurs. */

/* ---------- Abstände: 65px Luft an jeder Abschnittskante (statt 130px aus .section) ---------- */
body.cd.cd-seite-videokurs #kursvorschau,
body.cd.cd-seite-videokurs .vk-usps,
body.cd.cd-seite-videokurs #module {
  padding-block: clamp(38px, 5.5vw, 65px);
}

/* Kursvorschau folgt direkt auf das dunkle Logo-Band: kein eigener Schein von oben, sonst entsteht eine Kante */
body.cd.cd-seite-videokurs #kursvorschau { background: var(--nacht); }

/* ---------- YouTube-Platzhalter (iframemanager) im neuen CD ----------
   Nur Gestaltung, der Einwilligungs-Mechanismus bleibt unverändert. iframemanager liest
   seine Farben aus --im-…-Variablen; die Selektoren brauchen [data-service] und .cll,
   weil iframemanager.css die Elemente per "all: initial" zurücksetzt. */
body.cd.cd-seite-videokurs .yt-embed[data-service] {
  --im-font-family: var(--font-body);
  --im-color: var(--beige-hell);
  --im-bg: var(--nacht-karte);
  --im-link-color: var(--gelb);
  --im-link-hover-color: #e6bd55;
  --im-btn-color: var(--tinte);
  --im-btn-bg: var(--gelb);
  --im-btn-hover-bg: var(--gelb-tief);
  --im-btn-active-box-shadow: 0 0 0 .25em rgba(217, 168, 46, .28);
  --im-btn-s-color: #fff;
  --im-btn-s-bg: rgba(255, 255, 255, .08);
  --im-btn-s-hover-bg: rgba(255, 255, 255, .15);
  --im-btn-s-active-bg: rgba(255, 255, 255, .12);
  border: 0;
  border-radius: var(--radius-lg);
  /* weicher Rot-Gold-Schein unten, damit das Glas des zweiten Buttons etwas zeigen kann */
  background:
    radial-gradient(58% 70% at 30% 108%, rgba(170, 72, 58, .5), rgba(170, 72, 58, 0) 72%),
    radial-gradient(46% 60% at 76% 112%, rgba(217, 168, 46, .24), rgba(217, 168, 46, 0) 72%),
    var(--nacht-karte);
  box-shadow: inset 0 0 0 1px var(--c-linie), 0 34px 60px -30px rgba(0, 0, 0, .75);
}
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-t {
  font-size: 1.06rem;
  line-height: 1.5;
  max-width: 34em;
  color: var(--c-text-2);
}
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-t a { color: var(--gelb); border-bottom-color: currentColor; }
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-t a:hover { color: var(--c-text); border-bottom-color: var(--gelb); }
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-a { margin-top: 1.4em; gap: 12px; }
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-a button + button { margin-left: 0; }
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-l-b,
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-la-b {
  align-items: center;
  border-radius: 99px;
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 1rem;
  line-height: 1.2;
  padding: 12px 22px;
}
/* Hauptbutton gelb */
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-l-b { box-shadow: 0 14px 30px -16px rgba(217, 168, 46, .5); }
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-l-b::before { border-left-width: .8em; border-top-width: .5em; border-bottom-width: .5em; margin-right: .6em; }
/* zweiter Button als klares Liquid Glass */
body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-la-b {
  -webkit-backdrop-filter: blur(14px) saturate(1.7);
  backdrop-filter: blur(14px) saturate(1.7);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .14),
    inset 0 10px 18px -12px rgba(255, 255, 255, .35),
    0 14px 30px -16px rgba(0, 0, 0, .7);
}
/* Schmalere Fenster: Buttons untereinander statt zweizeilig nebeneinander */
@media (max-width: 900px) {
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-a { flex-direction: column; align-items: center; gap: 10px; }
}
/* Handy: Text und Buttons kompakter, Buttons volle Breite, damit alles in die 16:9-Fläche passt */
@media (max-width: 640px) {
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-t-cn { padding: 0 10px; }
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-t { font-size: .8rem; line-height: 1.38; }
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-n-a { flex-direction: column; align-items: stretch; gap: 7px; margin-top: .75em; }
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-l-b,
  body.cd.cd-seite-videokurs .yt-embed[data-service] .cll .c-la-b { font-size: .8rem; padding: 8px 12px; justify-content: center; text-align: center; }
}

/* ---------- "Auf einen Blick": helle Karten, beim Überfahren ohne lila Rand und Glow ---------- */
body.cd.cd-seite-videokurs .vk-usps .card:hover {
  border-color: var(--c-linie-stark);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 30px 48px -30px var(--schatten);
}

/* ---------- Vier Blöcke (Kapitel-Akkordeon) als Liquid Glass über weichem Rot-Gold-Schein ---------- */
body.cd.cd-seite-videokurs #module {
  background:
    radial-gradient(40% 44% at 12% 58%, rgba(170, 72, 58, .32), rgba(170, 72, 58, 0) 72%),
    radial-gradient(34% 40% at 90% 70%, rgba(217, 168, 46, .2), rgba(217, 168, 46, 0) 72%),
    var(--nacht);
}
body.cd.cd-seite-videokurs #module .acc-item {
  position: relative;
  isolation: isolate;
  border: 0;
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(16px) saturate(1.6);
  backdrop-filter: blur(16px) saturate(1.6);
  box-shadow:
    inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .5),
    inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .22),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    inset 0 12px 24px -16px rgba(255, 255, 255, .22),
    0 18px 36px -20px rgba(0, 0, 0, .7);
  transition: background .3s ease, box-shadow .3s ease;
}
/* Lichtkante am Glasrand, oben links und unten rechts am hellsten */
body.cd.cd-seite-videokurs #module .acc-item::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .6), rgba(255, 255, 255, .08) 35%, rgba(255, 255, 255, .04) 65%, rgba(255, 255, 255, .35));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
body.cd.cd-seite-videokurs #module .acc-item:hover,
body.cd.cd-seite-videokurs #module .acc-item.is-open { background: rgba(255, 255, 255, .08); }
body.cd.cd-seite-videokurs #module .acc-inner > div { border-top-color: rgba(244, 240, 232, .16); }
body.cd.cd-seite-videokurs #module .acc-item p { color: var(--c-text-2); }
/* Dauer als gelbe Pille (wie die Pillen der Lernmaterialien auf der Startseite) */
body.cd.cd-seite-videokurs #module .acc-meta {
  font-family: var(--font-label);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .06em;
  color: var(--tinte);
  background: var(--gelb);
  border-radius: 99px;
  padding: 6px 12px;
}

/* Button "Hier gehts zum Kurs" auf Dunkel gelb */
body.cd.cd-seite-videokurs #module .btn {
  --glow: rgba(217, 168, 46, .45);
  background: var(--gelb);
  border-color: var(--gelb-tief);
  color: var(--tinte);
}
body.cd.cd-seite-videokurs #module .btn:hover { background: var(--gelb-tief); border-color: var(--gelb-tief); }

/* ---------- Seite: en-contact ---------- */
/* Neues CD: Anpassungen für body.cd-seite-en-contact. Jede Regel beginnt mit body.cd.cd-seite-en-contact.
   Die Gestaltung kommt aus css/cd-seiten/kontakt.css (gemeinsame Seitenklasse cd-seite-kontakt).
   Hier steht nur, was auf der englischen Seite abweicht. */

/* Die Kartenüberschriften sind hier h2 statt h3. style.css gibt h2 0.5em Abstand nach unten,
   .card h3 nur 0.4em; damit Überschrift und Text so dicht stehen wie auf kontakt.html */
body.cd.cd-seite-en-contact .kontakt-grid .card h2 { margin-bottom: .4em; }

/* ---------- Seite: en-privacy ---------- */
/* Neues CD: Anpassungen für body.cd-seite-en-privacy. Jede Regel beginnt mit body.cd.cd-seite-en-privacy.
   Die Gestaltung kommt komplett aus datenschutz.css (gemeinsame Seitenklasse cd-seite-datenschutz).
   Hier steht nur, was der unveränderte englische Generator-Export anders auszeichnet als die deutsche Fassung. */

/* „Contents:“ steht im Export als nacktes <strong> zwischen zwei Absätzen (deutsch: <p><strong>Inhalte:</strong></p>).
   Als eigener Absatz mit derselben Luft darunter wie ein <p>. */
body.cd.cd-seite-en-privacy .legal > strong {
  display: block;
  margin: 0 0 1em;
}

/* ---------- Seite: en-thank-you ---------- */
/* Neues CD: Anpassungen für body.cd-seite-en-thank-you. Jede Regel beginnt mit body.cd-seite-en-thank-you. */

/* Kurze Seite: der dunkle Seitenkopf füllt den Bildschirm bis zum Footer,
   damit unter dem Footer kein leerer Streifen stehen bleibt. Kopfzeile,
   Mobilmenü und Fortschrittsbalken sind fixiert und laufen nicht mit. */
body.cd.cd-seite-en-thank-you {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
body.cd.cd-seite-en-thank-you main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}
body.cd.cd-seite-en-thank-you .page-hero {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
body.cd.cd-seite-en-thank-you .page-hero > .container { width: 100%; }

/* Lichtkegel am Desktop mittig über der zentrierten Überschrift
   (gleicher Kegel wie auf den anderen Unterseiten, nur nicht rechts hinter einem Bild).
   Unter 1060px greift ohnehin der mittige Kegel aus neues-cd.css. */
@media (min-width: 1061px) {
  body.cd.cd-seite-en-thank-you .page-hero {
    background: radial-gradient(ellipse 40% 90% at 50% 0%, #9a3322 0%, #3a120d 35%, #0a0706 80%);
  }
}

/* Handy: Überschrift etwas kräftiger, damit der kurze Seitenkopf nicht leer wirkt */
@media (max-width: 600px) {
  body.cd.cd-seite-en-thank-you .page-hero--center h1.display-xl {
    font-size: clamp(2rem, 10.4vw, 2.6rem);
    line-height: 1.06;
  }
}

/* Schlanker Footer ohne Spalten: keine zweite Linie direkt unter der Goldkante,
   Zeile oben und unten gleich viel Luft */
body.cd.cd-seite-en-thank-you .site-footer { padding-top: 0; }
body.cd.cd-seite-en-thank-you .footer-bottom { border-top: 0; padding-block: 26px; }

/* Zeilenumbruch im Einleitungssatz nur am breiten Bildschirm, sonst bricht der Satz unschön */
@media (max-width: 900px) {
  body.cd.cd-seite-en-thank-you .page-hero .lead br { display: none; }
}

/* ============================================================
   NACHTRÄGE 17.10.2026
   ============================================================ */
/* Schrift auf dunklem Grund überall deckend weiß (Niklas): kleine Zusätze, die bisher abgedimmt waren */
body.cd .stats .stat-sub,
body.cd.cd--v3 .stats .stat-sub { color: var(--c-text); opacity: 1; }
body.cd .section:not(.theme-paper) .art-cap { color: var(--c-text); }
body.cd .media-nav-row .media-count { color: var(--c-text); opacity: 1; }
body.cd .section:not(.theme-paper) .nl-spec,
body.cd .page-hero .nl-spec { color: var(--c-text); }
body.cd.cd-seite-links .linkhub-legal a { color: var(--c-text); }
body.cd .section:not(.theme-paper) .tok-bar-cap { opacity: 1; }

/* Keynote-Seite: Name und Untertitel im Kopf gemeinsam 30 % größer (Niklas; Handy unverändert) */
@media (min-width: 821px) {
  body.cd.cd-seite-keynotes .kn-hero2-name { font-size: clamp(2.6rem, 5.6vw, 5.07rem); }
  body.cd.cd-seite-keynotes .kn-hero2-sub { font-size: clamp(1.365rem, 2.73vw, 2.08rem); margin-top: clamp(16px, 2.08vw, 26px); }
}
/* ab 1200px: Textspalte nutzt den freien Platz neben dem Porträt (max. 330px), damit der Name einzeilig bleibt */
@media (min-width: 1200px) {
  body.cd.cd-seite-keynotes .kn-hero2-inner { grid-template-columns: minmax(200px, 330px) 1fr; column-gap: clamp(24px, 3.3vw, 48px); }
  body.cd.cd-seite-keynotes .kn-hero2-name { white-space: nowrap; }
  body.cd.cd-seite-keynotes .kn-hero2-sub { white-space: normal; }
}

/* Über mich: Überschrift „Mein Weg zum Experten für / KI-Risiken und KI-Sicherheit“ 20 % größer (Niklas; Handy unverändert) */
@media (min-width: 821px) {
  /* so groß, dass die längere Zeile bis zur rechten Kante des Porträts reicht (Inhaltsbreite) */
  body.cd.cd-seite-ueber-mich .story-hero .story-title { font-size: clamp(2.69rem, calc((100vw - 96px) / 13.4), 5.05rem); max-width: none; }
  body.cd.cd-seite-en-about .story-hero .story-title { font-size: clamp(2.69rem, calc((100vw - 96px) / 14.75), 4.6rem); }
}
/* Handy-Mockups der Experten-Auftritte: nachgebaute App-Texte ebenfalls deckend */
body.cd .media-slide .tv-meta,
body.cd .media-slide .tv-desc { opacity: 1; }

/* Handy: fester Umbruch in der Über-mich-Überschrift aus, sonst steht „für“ allein in einer Zeile */
@media (max-width: 820px) {
  body.cd.cd-seite-ueber-mich .story-hero .story-title br { display: none; }
}
/* Über mich: Bilder der Geschichte (ChatGPT-Logo, Strafvollzug, Collage) ohne Hover-Effekt, kein Anheben (Niklas) */
body.cd.cd-seite-ueber-mich .story-fig:hover,
body.cd.cd-seite-ueber-mich .story-fig:focus-within {
  transform: none;
  border-color: var(--c-linie);
  box-shadow: 0 34px 60px -30px rgba(52, 34, 18, .5);
}
body.cd.cd-seite-ueber-mich .story-dark .story-fig:hover,
body.cd.cd-seite-ueber-mich .story-dark .story-fig:focus-within {
  transform: none;
  border-color: var(--c-linie);
  box-shadow: 0 26px 58px -28px rgba(0, 0, 0, .75);
}

/* Artikel: Breiten wieder wie auf der Live-Seite (Niklas, 17.10.2026) */
body.cd.cd-seite-artikel .artikel-schluss,
body.cd.cd-seite-artikel .art-ende { max-width: 820px; margin-inline: auto; }
body.cd.cd-seite-artikel .artikel-bio-cta { max-width: 760px; margin-inline: auto; }
body.cd.cd-seite-artikel .art-cap { max-width: 560px; }
/* Einleitung im Kopf: Live-Breiten (dort 62ch/64ch/70ch der alten Schrift; Newsreader ist je Zeichen rund 1,167-mal schmaler) */
body.cd.cd-seite-artikel-chatgpt-als-therapeut .page-hero .lead,
body.cd.cd-seite-artikel-der-kluge-hans-effekt .page-hero .lead,
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .page-hero .lead { max-width: 74.7ch !important; }
body.cd.cd-seite-artikel-funktionsweise-sprachmodelle .page-hero .lead,
body.cd.cd-seite-artikel-ki-muendigkeit .page-hero .lead,
body.cd.cd-seite-artikel-limitierungen-sprachmodelle .page-hero .lead,
body.cd.cd-seite-artikel-vibecoding-dezentrale-software .page-hero .lead { max-width: 72.35ch !important; }
body.cd.cd-seite-artikel-ki-desinformationen .page-hero .lead { max-width: 81.7ch !important; }

/* Autorenbox: Textbreite wie live (dort 42ch der alten Schrift = 451px) */
body.cd.cd-seite-artikel .artikel-bio-cta-text { max-width: 451px; }

/* Mobilmenü: Kopfzeile mit X über die Vollbild-Navigation heben, sonst lässt sich das Menü nicht schließen */
body.cd.nav-open .site-header { z-index: 150; }

/* Startseite: "Zu meiner Person" ohne Weichzeichner. Safari zeichnet backdrop-filter falsch, solange die
   Button-Reihe eingeblendet wird (bunte Flecken links). Dahinter liegt nur der glatte dunkle Verlauf,
   optisch ändert sich also nichts. */
body.cd .hero--anim .hero-cta-row .btn--white,
body.cd .hero--anim .hero-cta-row .btn--white:hover { -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Buttons auf allen Seiten (Niklas, 22.10.2026): ohne Pfeil (im HTML entfernt), Text mittig, beim Überfahren
   kein Schatten (in den jeweiligen Hover-Regeln); am Desktop Schrift etwas größer (17,3 → 20px, klein 16 → 18,4px) */
body.cd.cd-seite-keynotes .about-cta-text { text-align: center; }
body.cd.cd-seite-links .linkhub-link { justify-content: center; text-align: center; }
@media (min-width: 641px) {
  body.cd .btn:not(.btn--sm),
  body.cd .podcast-cta { font-size: 1.25rem; }
  body.cd.cd-seite-keynotes .vortrag-mini { font-size: 1.1rem; }
}
/* kleine Buttons erst ab 821px, sonst bricht "Kostenloses Erstgespräch buchen" in den Kontakt-Karten öfter um */
@media (min-width: 821px) {
  body.cd .btn--sm { font-size: 1.15rem; }
}

/* ============================================================
   HANDYANSICHT (Niklas, 17.10.2026) – nur Media Queries, Desktop unverändert
   ============================================================ */

/* Startseiten: Hero-Titel so groß, wie die feste erste Zeile ("KI-Kompetenz beginnt" bzw. "Mitigating
   AI risks will") in die Inhaltsbreite passt. Per Binärsuche gemessen (Grenze 320px: 27,96px, 390px: 34,36px,
   430px: 37,83px); 8.6vw hält auf allen Handybreiten 2 bis 3 % Abstand dazu, die drei Zeilen bleiben.
   nowrap fängt Rundungsunterschiede anderer Browser ab (eher 1px Überstand in den Rand als eine vierte Zeile).
   Unterzeile bleibt in der alten Größe (Niklas wollte sie nach dem Test doch wieder kleiner). */
@media (max-width: 640px) {
  body.cd .hero--anim .hero-title { font-size: min(8.6vw, 2.55rem); }
  body.cd .hero--anim .hero-title .nb-line { white-space: nowrap; }
}

/* Zahlen-Leiste (Startseite, Keynotes, Sensibilisierungen, Videokurs, englische Seiten) auf dem Handy:
   oben groß "+110.000 Follower" in einer Zeile, darunter eine Linie und drei Spalten (+3 / +4 / 100 %)
   mit senkrechten Linien dazwischen. Kurze Beschriftungen stehen im HTML in .only-m. */
@media (max-width: 640px) {
  body.cd .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.cd .stats .stat { border: 0; padding: 14px 4px 18px 10px; }
  body.cd .stats .stat:first-child {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 14px;
    padding: 20px 0 14px;
    border-bottom: 1px solid var(--c-linie);
  }
  body.cd .stats .stat:nth-child(2) { padding-left: 0; }
  body.cd .stats .stat:nth-child(n+3) { border-left: 1px solid var(--c-linie); }
  body.cd .stats .stat-num { line-height: 1; font-variant-numeric: tabular-nums; }
  /* Größen wachsen bis 390px mit der Breite, damit "+110.000 Follower" einzeilig bleibt (Größe seit 19.10.2026 weiter unten neu) und die
     Spalten auch auf 320px-Geräten nicht mitten im Wort brechen (Trennstellen: KI-, Journa&shy;lismus) */
  body.cd .stats .stat:first-child .stat-num { font-size: min(3.3rem, 13.5vw); }
  body.cd .stats .stat:first-child .stat-label { margin: 0; font-size: min(.85rem, 3.5vw); }
  body.cd .stats .stat:not(:first-child) .stat-num { font-size: min(1.9rem, 8.4vw); }
  body.cd .stats .stat:not(:first-child) .stat-label {
    margin-top: 7px;
    font-size: min(.66rem, 2.9vw);
    letter-spacing: .07em;
    line-height: 1.3;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
  }
}

/* Experten-Auftritte (Startseite, Keynotes, englische Gegenstücke): Titel und Texte der einzelnen
   Auftritte auf dem Handy ausblenden, es bleiben das Handy mit den Auftritten und die Weiter-Leiste */
@media (max-width: 640px) {
  body.cd .media-texts { display: none; }
}

/* Startseiten-Hero: Freiraum über und unter der Unterzeile halbiert (oben 48 → 24px Grid-Abstand,
   unten 48px Grid-Abstand + 30,4px Außenabstand → 39px) */
@media (max-width: 640px) {
  body.cd .hero--anim .hero-lead { margin-top: -24px; margin-bottom: -9px; }
}

/* Abschluss-Buttons: "Keynotes" 50 % größer (16 → 24px). Die beiden dunklen Buttons
   passt js/main.js einzeln bis an den Innenabstand ein. */
@media (max-width: 640px) {
  body.cd .cta-final .btn.cta-haupt { font-size: 1.5rem; }
}

/* Startseite "Schwerpunkte / meiner Expertise": Grundgröße so, dass "meiner Expertise" (7,58em) in die
   Inhaltsbreite passt, sonst rutscht auf schmalen Handys "Expertise" in eine dritte Zeile.
   js/main.js zieht die Überschrift danach bis an den Rand (höchstens +30 %). */
@media (max-width: 640px) {
  body.cd #schwerpunkte .sp-titel { font-size: min(calc((100vw - 40px) / 7.75), 2.42rem); }   /* ID nötig: style.css setzt #schwerpunkte .section-head h2 */
}

/* Startseiten, Angebots-Karten: auf dem Handy zugeklappt (Titel, Kurzzeile, Pfeil rechts daneben).
   Ein Tipp klappt den vollen Text auf (.is-offen, js/main.js), der Pfeil führt zur Seite.
   Die Kurzzeile gibt es nur auf dem Handy. */
body.cd .card-kurz { display: none; }
@media (max-width: 640px) {
  body.cd #angebot .grid-3 { gap: 14px; }
  body.cd #angebot .grid-3 .card--slim {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 14px;
    align-items: center;
    padding: 18px 18px 18px 22px;
  }
  body.cd #angebot .grid-3 .card--slim h3 { grid-column: 1; margin: 0; }
  body.cd #angebot .grid-3 .card--slim .card-kurz {
    display: block;
    grid-column: 1;
    margin-top: 3px;
    color: var(--c-text-2);
    font-size: 1rem;   /* js/main.js verkleinert bei Bedarf bis 15 %, damit die Zeile einzeilig bleibt */
    line-height: 1.35;
  }
  body.cd #angebot .grid-3 .card--slim .resource-arrow {
    position: static;
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
  }
  body.cd #angebot .grid-3 .card--slim p {
    grid-column: 1 / -1;
    padding-right: 0;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, margin-top .35s ease;
  }
  body.cd #angebot .grid-3 .card--slim.is-offen p { max-height: 22em; opacity: 1; margin-top: 12px; }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  body.cd #angebot .grid-3 .card--slim p { transition: none; }
}

/* Startseiten: Bild neben "Schwerpunkte meiner Expertise" auf dem Handy weg */
@media (max-width: 640px) {
  body.cd #schwerpunkte .keynote-stage { display: none; }
}

/* Footer (alle Seiten): Beschreibungstext unter "Niklas Titgemeyer." auf dem Handy weg, Social-Icons bleiben */
@media (max-width: 640px) {
  body.cd .footer-brand > p { display: none; }
}

/* Keynote-Seite (DE/EN): die drei Profil-Karten Soziologe / Journalist / LLM-Experte auf dem Handy weg */
@media (max-width: 640px) {
  body.cd #perspektive .cards-dark { display: none; }
}

/* Keynote-Seite (DE/EN): roter Button "Fragen Sie jetzt eine KI-Keynote als Highlight für Ihr Event an!" auf dem Handy weg */
@media (max-width: 640px) {
  body.cd .kn-cta-box { display: none; }
}

/* Startseiten (DE/EN), Handy: Zahlen-Leiste hängt js/main.js unter das Porträt in #person.
   Dort läuft sie über die volle Bildschirmbreite statt innerhalb des Containers. */
@media (max-width: 640px) {
  body.cd .stats.stats--unter-portraet {
    justify-self: stretch;
    width: auto;
    margin-inline: calc(50% - 50vw);
    margin-block: 0;
  }
  /* Band bündig ans Porträt, danach der restliche Abschnitt (Text, Liste, Button) dunkel bis zum Logo-Band.
     Rand und Innenabstand heben sich auf, der Text bleibt genau in der Spalte. */
  body.cd #person .about-grid:has(.stats--unter-portraet) { row-gap: 0; }
  body.cd #person:has(.stats--unter-portraet) { padding-bottom: 0; }
  body.cd #person .stats--unter-portraet + div {
    margin-inline: calc(50% - 50vw);
    padding: clamp(38px, 5.5vw, 65px) calc(50vw - 50%);
    background: var(--nacht);   /* ohne Schein von oben, damit die Zahlen-Leiste nahtlos übergeht */
    color: var(--c-text);
  }
  /* Zahlen-Leiste läuft nach unten in genau dieses Schwarz aus (oberes Viertel bleibt unverändert rot) */
  body.cd.cd--v3 .stats.stats--unter-portraet {
    background:
      linear-gradient(180deg, rgba(23, 19, 16, 0) 25%, var(--nacht) 100%),
      linear-gradient(90deg, rgba(170, 72, 58, .62) 0%, rgba(170, 72, 58, .22) 36%, rgba(170, 72, 58, 0) 64%, rgba(217, 168, 46, .06) 100%),
      #2a120e;
  }
}

/* Über mich (DE/EN), Handy: Titel komplett weiß, Einleitung in der Größe des späteren Fließtexts
   (.prose-block p: 1.1rem / 1.75), bei "Was meine Arbeit leitet" Einleitungssatz und Linie weg */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich .story-title .mk { color: var(--c-text); }
  body.cd.cd-seite-ueber-mich .story-lead { font-size: 1.1rem; line-height: 1.75; }
  body.cd.cd-seite-ueber-mich #prinzipien .section-head .lead,
  body.cd.cd-seite-en-about #principles .section-head .lead { display: none; }
  body.cd.cd-seite-ueber-mich #prinzipien .section-head + .value-row,
  body.cd.cd-seite-en-about #principles .section-head + .value-row { border-top: 0; padding-top: 0; }
}

/* Keynote-Seite (DE/EN), Handy: Name und Arbeitstitel ganz oben mittig über dem Foto, Button bleibt darunter.
   Solange die Seite oben steht, fällt dafür der Name links in der Kopfzeile weg; rastet beim Scrollen die
   dunkle Leiste ein (.is-scrolled), ist der Hero-Name aus dem Bild und der Name oben links kommt zurück. */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes .kn-hero2-text { display: contents; }
  body.cd.cd-seite-keynotes .kn-hero2-name { order: -1; }
  body.cd.cd-seite-keynotes .kn-hero2-photo { order: 0; }
  body.cd.cd-seite-keynotes .kn-hero2-text > .btn-row { order: 1; }
  /* ganze Kopfzeile (Name und Menü-Knopf) erst sichtbar, wenn beim Scrollen die dunkle Leiste einrastet */
  body.cd.cd-seite-keynotes .site-header { transition: opacity .3s ease, visibility .3s; }
  body.cd.cd-seite-keynotes .site-header:not(.is-scrolled) { opacity: 0; visibility: hidden; }
  /* Button, den js/main.js zwischen Einleitungstext und Bühnenfoto hängt */
  body.cd.cd-seite-keynotes .kn-anfrage-unten { margin-top: 24px; }
}

/* Keynote-Seite (DE/EN), Handy: "Mehr zu Niklas Titgemeyer …" ohne festen Umbruch, js/main.js passt den Text auf drei Zeilen ein */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes .about-cta-title br { display: none; }
}

/* Startseiten (DE/EN), Handy: Freiraum über und unter "Soziologe und Experte für …" halbiert
   (oben 38 → 19px, darunter 16 + 34px → 8 + 17px) */
@media (max-width: 640px) {
  body.cd #person.home-about { padding-top: 19px; }
  body.cd #person .home-about-title { margin-bottom: 8px; }
  body.cd #person .section-head { margin-bottom: 17px; }
}

/* Über mich (DE/EN), Handy: die drei Buttons unter der Geschichte. Schrift 50 % größer, Glas etwas
   durchsichtiger und dahinter ein weicher Rot-Gold-Schein wie bei den Abschluss-Buttons der Startseite,
   damit das Glas auf dem glatten Beige etwas zeigen kann. */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich .story-cta-row { position: relative; isolation: isolate; }
  body.cd.cd-seite-ueber-mich .story-cta-row::before {
    content: "";
    position: absolute;
    inset: -30px -10px;
    z-index: -1;
    pointer-events: none;
    background:
      radial-gradient(42% 46% at 30% 60%, rgba(170, 72, 58, .30), rgba(170, 72, 58, 0) 72%),
      radial-gradient(40% 44% at 72% 40%, rgba(217, 168, 46, .32), rgba(217, 168, 46, 0) 72%);
  }
  body.cd.cd-seite-ueber-mich .story-cta-row .btn { font-size: 1.5rem; background: rgba(255, 255, 255, .3); }
  body.cd.cd-seite-ueber-mich .story-cta-row .btn:hover { background: rgba(255, 255, 255, .5); }
}

/* Über mich (DE/EN), Handy: "Quellen aller Videos" mit je 30px Luft zur letzten Prinzip-Zeile und zum Titel
   "Mein Lebenslauf im Detail" (vorher 65 und 58px). Oben: 30px Zeilenpolster + 5px Unterlänge, der Inline-Abstand
   clamp(30px, 5vw, 46px) wird dafür überschrieben. Unten: Abschnitt ohne Polster, der Lebenslauf (ebenfalls dunkel,
   ohne Kante) beginnt mit 30px. Schrift im Button 60 % größer (17,28 → 27,6px). */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich #prinzipien .btn-row,
  body.cd.cd-seite-en-about #principles .btn-row { margin-top: -5px !important; }
  body.cd.cd-seite-ueber-mich #prinzipien,
  body.cd.cd-seite-en-about #principles { padding-bottom: 0; }
  body.cd.cd-seite-ueber-mich #prinzipien + section,
  body.cd.cd-seite-en-about #principles + section { padding-top: 30px; }
  body.cd.cd-seite-ueber-mich #prinzipien .btn-row .btn,
  body.cd.cd-seite-en-about #principles .btn-row .btn { font-size: 1.728rem; }
}

/* Über mich (DE/EN), Handy: Lebenslauf-Abschnitt beginnt oben in reinem Schwarz und läuft erst darunter in
   die Rot-Gold-Scheine, damit zu "Was meine Arbeit leitet" keine Kante entsteht */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich section.section:has(.cv-tl-wrap) {
    background:
      linear-gradient(to bottom, var(--nacht) 0, rgba(23, 19, 16, 0) 170px),
      radial-gradient(ellipse 70% 200px at 25% 190px, rgba(170, 72, 58, .34), rgba(170, 72, 58, 0) 72%),
      radial-gradient(ellipse 50% 180px at 85% 240px, rgba(217, 168, 46, .16), rgba(217, 168, 46, 0) 72%),
      radial-gradient(ellipse 70% 240px at 30% calc(100% - 230px), rgba(170, 72, 58, .42), rgba(170, 72, 58, 0) 72%),
      radial-gradient(ellipse 50% 200px at 80% calc(100% - 160px), rgba(217, 168, 46, .22), rgba(217, 168, 46, 0) 72%),
      var(--nacht);
  }
  /* Gefängnisbild oben um 20 % beschnitten (900 x 1080 → sichtbar 900 x 864) */
  body.cd.cd-seite-ueber-mich .story-fig img[src*="strafvollzug-gang-gitter"] {
    aspect-ratio: 900 / 864;
    height: auto;
    object-fit: cover;
    object-position: 50% 100%;
  }
}

/* Keynote-Seite (DE/EN), Handy: Name höher (Freiraum über dem Namen halbiert, die Kopfzeile ist oben
   ohnehin ausgeblendet) und "Jetzt Niklas Titgemeyer … buchen." oben so viel Luft wie unten (73 → 23px) */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes .kn-hero2 { padding-top: 46px; }
  /* überschreibt den Inline-Abstand clamp(56px, 8vw, 90px); sichtbar rund 28px über "Jetzt", wie unter "buchen." (24 bis 35px je nach Umbruch) */
  body.cd.cd-seite-keynotes #keynote-themen .kn-book-cta { margin-top: 26px !important; }
}

/* Logo-Band (alle Seiten), Handy: ohne hellen Schein am oberen Rand, damit es nahtlos an den dunklen
   Abschnitt darüber anschließt */
@media (max-width: 640px) {
  body.cd.cd--v3 .marquee-band { background: var(--nacht); }
}

/* Startseiten (DE/EN), Handy: Freiraum zwischen Kopfzeile und Titel halbiert (44 → 22px unter der 76px-Leiste).
   Hero-Buttons auf 90 % Breite, Schrift 1.24rem (vorher eingepasst rund 26,5px, jetzt 25 % kleiner) */
@media (max-width: 640px) {
  body.cd .hero.hero--anim { padding-top: calc(var(--header-h) + 22px); }
  body.cd .hero--anim .hero-cta-row { width: 90%; margin-inline: auto; }
  body.cd .hero--anim .hero-cta-row .btn { font-size: min(1.24rem, 5.4vw); }   /* unter 370px kleiner, damit "Zu meinen Angeboten →" einzeilig bleibt */
}

/* Über mich (DE/EN), Handy: ChatGPT-Logo oben und unten je 12 % beschnitten, Breite bleibt (800 x 800 → 800 x 608).
   Darüber so wenig Luft wie darunter: Absatz-Abstand + Raster-Abstand ergaben 54px, darunter 29px → Logo 25px höher */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich .story-split > .story-fig--logo { margin-top: -25px; }
  body.cd.cd-seite-ueber-mich .story-fig img[src*="chatgpt-logo"] {
    aspect-ratio: 800 / 608;
    height: auto;
    object-fit: cover;
    object-position: 50% 50%;
  }
}

/* Startseite, Handy: Porträt in "Soziologe, Content Creator …" 20 % größer (277 → 332px) */
@media (max-width: 640px) {
  body.cd #person .about-photo { max-width: 332px; }
}


/* Sensibilisierungen (DE/EN), Handy: Freiraum zwischen Kopfzeile und Titel halbiert (56 → 28px) und die beiden
   Buttons unter das Porträt. Die Textspalte löst sich dafür auf; Abstände wie vorher je 32px
   (Absatz hat unten 25,6px, das Foto bekommt die restlichen 6px). */
@media (max-width: 640px) {
  /* Titel ganz oben (wie Keynote-Seite: 46px); die Kopfzeile mit Name und Menü-Knopf erscheint erst beim Scrollen */
  body.cd.cd-sens .page-hero.ws-hero--flush { padding-top: 46px; }
  body.cd.cd-sens .site-header { transition: opacity .3s ease, visibility .3s; }
  body.cd.cd-sens .site-header:not(.is-scrolled) { opacity: 0; visibility: hidden; }
  body.cd.cd-sens .page-hero-grid.ws-hero { row-gap: 0; }
  body.cd.cd-sens .page-hero-grid.ws-hero > div:first-child { display: contents; }
  body.cd.cd-sens .ws-hero-photo { order: 1; margin-top: 6px; }
  /* Buttons ragen in den unteren, nach Schwarz auslaufenden Teil des Porträts (Maske ab 58 %), das Foto bleibt dahinter */
  body.cd.cd-sens .page-hero-grid.ws-hero > div:first-child > .btn-row { order: 2; margin-top: -85px; position: relative; z-index: 2; }
  /* Buttons 25px tiefer, dafür unten halb so viel Luft (50 → 25px); der Hero bleibt gleich hoch */
  body.cd.cd-sens .page-hero.ws-hero--flush { padding-bottom: 25px; }
}

/* Sensibilisierungen (DE/EN), Handy: die beiden Buttons im Abschnitt "Über mich" mit 15 % größerer Schrift */
@media (max-width: 640px) {
  body.cd.cd-sens #workshopleiter .btn-row .btn--sm { font-size: 1.15rem; }   /* 16 → 18,4px */
}

/* Sensibilisierungen (DE/EN), Handy: Text in den sechs Baustein-Karten zwei Stufen kleiner (18,4 → 16px)
   und minimal enger (Zeilenhöhe 1.65 → 1.55) */
@media (max-width: 640px) {
  body.cd.cd-sens .tip-card p { font-size: 1rem; line-height: 1.55; }
}

/* Keynote-Seite (DE/EN), Handy: Porträt im Kopf 18 % und dann nochmal 5 % größer (234 → 276 → 290px) */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes .kn-hero2-photo { max-width: 290px; }
}

/* Keynote-Seite (DE/EN), Handy: "Anfrage absenden" im Formular 20 % größer (17,28 → 20,7px) */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes form .btn-row button[type="submit"] { font-size: 1.296rem; }
}

/* Keynote-Seite (DE/EN), Handy: Zahlen-Leiste um die halbe Höhe der "+110.000 Follower"-Zeile nach oben auf das
   Porträt geschoben (Zeile = 20 + 14px Polster + 1px Linie + Ziffernhöhe min(3.3rem, 13.5vw)). Porträt bleibt unverändert. */
@media (max-width: 640px) {
  body.cd.cd-seite-keynotes .kn-hero2 + .stats {
    position: relative;
    z-index: 2;
    margin-top: calc((35px + min(3.3rem, 13.5vw)) / -2 - 1.5px);   /* -1,5px: setzt nach dem größeren Porträt wieder an derselben Stelle am Sakko an */
  }
}

/* Über mich (DE/EN), Desktop-Ausnahme (Niklas, 17.10.2026): "Diese vier Prinzipien leiten meine Arbeit" in einer Zeile.
   Der Kopf ist sonst auf 760px begrenzt; die Überschrift braucht bei 54px rund 1000px, der Container bietet 1180px. */
@media (min-width: 641px) {
  body.cd.cd-seite-ueber-mich #prinzipien .section-head,
  body.cd.cd-seite-en-about #principles .section-head { max-width: none; }
}

/* Startseiten (DE/EN), Handy: Zahlen-Leiste unter dem Porträt um ein Drittel der "+110.000 Follower"-Zeile
   nach oben auf das Porträt (Zeile = 35px + Ziffernhöhe min(3.3rem, 13.5vw)) */
@media (max-width: 640px) {
  body.cd .stats.stats--unter-portraet {
    position: relative;
    z-index: 2;
    margin-top: calc((35px + min(3.3rem, 13.5vw)) / -3);
  }
}

/* Über mich (DE/EN), Desktop-Ausnahme: Prinzipien-Titel nochmal 15 % größer, aber nie größer als die Zeilenbreite
   erlaubt (DE braucht 18,3em, EN 16,4em; Inhaltsbreite = min(1084px, 100vw - 96px)), damit er einzeilig bleibt */
@media (min-width: 1061px) {
  body.cd.cd-seite-ueber-mich #prinzipien h2 { font-size: min(calc(clamp(2.1rem, 4.6vw, 3.4rem) * 1.15), calc(min(1084px, 100vw - 96px) / 18.5)); }
  body.cd.cd-seite-en-about #principles h2 { font-size: min(calc(clamp(2.1rem, 4.6vw, 3.4rem) * 1.15), calc(min(1084px, 100vw - 96px) / 16.6)); }
}

/* Kontakt (DE/EN), Handy: "Keynote anfragen" als goldenes Liquid Glass wie "Keynotes" im Abschluss der Startseite */
@media (max-width: 640px) {
  body.cd.cd-seite-kontakt .btn[href*="keynotes.html"],
  body.cd.cd-seite-kontakt .btn[href*="keynotes.html"]:hover {
    position: relative;
    border: 0;
    color: var(--tinte);
    background: linear-gradient(135deg, rgba(217, 168, 46, .95), rgba(217, 168, 46, .62));
    -webkit-backdrop-filter: blur(14px) saturate(1.7);
    backdrop-filter: blur(14px) saturate(1.7);
    box-shadow:
      inset 1.5px 1.5px 1px -.5px rgba(255, 255, 255, .7),
      inset -1.5px -1.5px 1px -.5px rgba(255, 255, 255, .35),
      inset 0 0 0 1px rgba(255, 255, 255, .14),
      inset 0 10px 18px -12px rgba(255, 255, 255, .35),
      0 14px 30px -16px rgba(0, 0, 0, .7);
  }
  body.cd.cd-seite-kontakt .btn[href*="keynotes.html"]:hover { background: linear-gradient(135deg, rgba(225, 180, 64, 1), rgba(217, 168, 46, .78)); }
}

/* Artikel, Handy: Porträt in der Autorenbox am Ende 30 % kleiner (348 → 244px breit, mittig) */
@media (max-width: 640px) {
  body.cd.cd-seite-artikel .artikel-bio-cta-img {
    flex: none;
    width: 70%;
    height: auto;
    aspect-ratio: 348 / 421;
    align-self: center;
    object-fit: cover;
  }
}

/* Gratis Guide, Handy: Freiraum zwischen Kopfzeile und Titel halbiert (56 → 28px) */
@media (max-width: 640px) {
  body.cd.cd-seite-guide .page-hero { padding-top: calc(var(--header-h) + 28px); }
}

/* Quellen (DE/EN), Handy: Kästen der Videos kompakter. Weniger Innenabstand (20 → 14px), Titelzeilen enger
   (1.6 → 1.3) und das Datum direkt unter dem Titel (Abstand 14 → 5px) */
@media (max-width: 640px) {
  body.cd.cd-seite-quellen .q-acc-item .acc-head { padding-top: 14px; padding-bottom: 14px; row-gap: 5px; }
  body.cd.cd-seite-quellen .q-acc-title { line-height: 1.3; }
}

/* Experten-Auftritte (Startseiten, Keynote-Seiten), Handy und Desktop: Rahmen wie das Hero-Handy "Titan Natur"
   (Titan-Ring 3px, schwarze Blende 7px, Seitentasten, Dynamic Island), auf die Breite des Auftritte-Handys
   umgerechnet (Hero 290px, hier 320px, Faktor 1,1). Inhalt und Bedienung bleiben unverändert. */
body.cd .podcast-phone.media-phone {
  border: 3px solid transparent;
  padding: 7px;
  border-radius: 50px;
  background:
    linear-gradient(#050506, #050506) padding-box,
    linear-gradient(145deg, #a9a296 0%, #d8d2c7 20%, #bdb6aa 48%, #e2ddd3 76%, #9d968a 100%) border-box;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .07),
    0 52px 66px -40px rgba(0, 0, 0, .8),
    0 22px 30px -22px rgba(0, 0, 0, .55);
}
body.cd .podcast-phone.media-phone .media-screen { border-radius: 40px; }
/* Ab 641px bleibt das Handy so lang wie vorher (320 x 656): der Rahmen ist 2px dicker, also wird das Display
   etwas schlanker (300 statt 302px) und behält mit 300 / 636 die alte Gesamthöhe. Handy: siehe weiter unten (300 / 592). */
@media (min-width: 641px) {
  body.cd .podcast-phone.media-phone .media-screen { aspect-ratio: 300 / 636; }
}
/* Seitentasten: links Aktionstaste und Lautstärke, rechts Seitentaste */
body.cd .podcast-phone.media-phone::before,
body.cd .podcast-phone.media-phone::after {
  content: "";
  position: absolute;
  width: 3px;
  pointer-events: none;
}
body.cd .podcast-phone.media-phone::before {
  left: -5px;
  top: 128px;
  height: 152px;
  border-radius: 3px 0 0 3px;
  background:
    linear-gradient(90deg, #8f887c, #cfc9be) 0 0 / 100% 26px no-repeat,
    linear-gradient(90deg, #8f887c, #cfc9be) 0 48px / 100% 47px no-repeat,
    linear-gradient(90deg, #8f887c, #cfc9be) 0 105px / 100% 47px no-repeat;
}
body.cd .podcast-phone.media-phone::after {
  right: -5px;
  top: 199px;
  height: 76px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(270deg, #8f887c, #cfc9be);
}
/* Dynamic Island mittig in der Statusleiste */
body.cd .podcast-phone.media-phone .media-screen::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  z-index: 20;
  width: 95px;
  height: 27px;
  transform: translateX(-50%);
  border-radius: 15px;
  background:
    radial-gradient(circle at calc(100% - 15px) 50%, #34405e 0, #0d1220 3.5px, #000 5px, transparent 5.5px),
    #000;
  pointer-events: none;
}

/* Experten-Auftritte, Handy: Play-Knopf im Spotify-Nachbau optisch mittig. Das Dreieck saß 3,4px rechts der
   Kreismitte; optisch mittig wirkt ein Dreieck, wenn sein Schwerpunkt in der Mitte liegt (rund 1px rechts). */
@media (max-width: 640px) {
  body.cd .pp-play svg { margin-left: -3px; }
}

/* Artikel-Übersicht (aktuelles.html), Handy: Abstand vom Einleitungstext zum ersten Artikel halbiert (89 → 45px).
   Kopf und Artikelliste sind beide dunkel, es gibt also keine Kante. */
@media (max-width: 640px) {
  body.cd.cd-seite-aktuelles main > .page-hero { padding-bottom: 14px; }
  body.cd.cd-seite-aktuelles main > .page-hero + .section { padding-top: 0; }
}

/* Experten-Auftritte, alle Breiten: "Nächster Auftritt" blieb nach mehrfachem Klicken/Antippen rot mit rotem Rahmen
   (hängender Hover-Zustand und Fokus-Rahmen). Der Button bleibt jetzt immer weiß; als Rückmeldung rückt nur der Pfeil. */
body.cd .media-next:hover,
body.cd .media-next:focus,
body.cd .media-next:focus-visible { color: var(--c-text); outline: none; }
body.cd .media-next { -webkit-tap-highlight-color: transparent; }

/* Experten-Auftritte, Handy: weniger Leerraum in den Handy-Ansichten. Display 41px niedriger (300 x 633 → 300 x 592),
   dadurch rückt im Podcast der Titel ans Cover (63 → 22px). Beim TV-Beitrag ist der Text 12 % größer und luftiger
   gesetzt, damit unten weniger frei bleibt. Der YouTube-Feed läuft wie bisher bis an den unteren Rand. */
@media (max-width: 640px) {
  body.cd .podcast-phone.media-phone .media-screen { aspect-ratio: 300 / 592; }
  body.cd .media-slide--tv .tv-badge { margin-top: 20px; }
  body.cd .media-slide--tv .tv-title { font-size: 1.48rem; margin-top: 12px; }
  body.cd .media-slide--tv .tv-meta { margin-top: 10px; }
  body.cd .media-slide--tv .tv-topic { font-size: 1.46rem; margin-top: 22px; }
  body.cd .media-slide--tv .tv-desc { font-size: .99rem; margin-top: 14px; }
}

/* Über mich (DE/EN), Handy: die drei Glas-Buttons unter der Geschichte 15 % flacher (71 → 60px), Schrift bleibt */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich .story-cta-row .btn { padding-top: 11px; padding-bottom: 11px; }
}

/* Experten-Auftritte, Desktop-Ausnahme (Niklas, 17.10.2026): Text unter dem Video im TV-Beitrag größer,
   damit er das 636px hohe Display bis kurz über den Home-Balken füllt (vorher endete er bei 502px) */
@media (min-width: 641px) {
  body.cd .media-slide--tv .tv-badge { margin-top: 22px; font-size: .86rem; }
  body.cd .media-slide--tv .tv-title { font-size: 1.58rem; margin-top: 12px; }
  body.cd .media-slide--tv .tv-meta { font-size: .88rem; margin-top: 10px; }
  body.cd .media-slide--tv .tv-topic { font-size: 1.56rem; margin-top: 24px; }
  body.cd .media-slide--tv .tv-desc { font-size: 1.06rem; margin-top: 14px; }
}

/* Experten-Auftritte, Desktop-Ausnahme: im Podcast-Slide der Titel größer auf drei Zeilen (15,7 → 24px: "Wieso du
   künstlicher / Intelligenz niemals blind / vertrauen darfst"), direkt unter dem Cover statt unten angeklebt;
   das Cover rückt 6px tiefer, die Bedienung damit nach oben. */
@media (min-width: 641px) {
  body.cd .media-slide--podcast .pp-cover { margin-top: 20px; }
  body.cd .media-slide--podcast .pp-meta { margin-top: 0; padding-top: 22px; }
  body.cd .media-slide--podcast .pp-title { font-size: 1.5rem; line-height: 1.15; }
  body.cd .media-slide--podcast .pp-show { margin-top: 8px; font-size: .9rem; }
}

/* Experten-Auftritte, gestapelt (bis 880px): Spalte als minmax(0, 1fr) statt 1fr. Mit 1fr durfte sie nicht schmaler
   werden als die drei Slides nebeneinander, und auf Handys bis 380px (dort ist das Handy 100 % breit) wurde es
   725px breit statt 280 bis 340px. */
@media (max-width: 880px) {
  body.cd .media-stage { grid-template-columns: minmax(0, 1fr); }
  body.cd .media-phone-col { min-width: 0; max-width: 100%; }
}
/* Sehr schmale Handys (bis 350px): Display etwas höher, sonst ragt die Podcast-Bedienung bei dreizeiligem Titel unten heraus */
@media (max-width: 350px) {
  body.cd .podcast-phone.media-phone .media-screen { aspect-ratio: 300 / 630; }
}

/* Desktop-Ausnahme (Niklas, 17.10.2026): aktueller Menüpunkt in der Kopfzeile gelb. Bei Unterseiten von
   "Sonstiges" / "More" wird der Aufklapp-Knopf gelb und im Menü die Unterseite. Seit 19.10.2026 nicht mehr
   fett, sondern in derselben Stärke wie die übrigen Menüpunkte (Niklas' Wunsch). */
@media (min-width: 641px) {
  /* in Gelb, ohne Box dahinter (auch beim Überfahren bleibt es gelb) */
  body.cd .main-nav > a[aria-current="page"],
  body.cd .main-nav > a[aria-current="page"]:hover,
  body.cd .nav-drop-btn.is-current,
  body.cd .nav-drop-btn.is-current:hover,
  body.cd .nav-drop.is-open .nav-drop-btn.is-current,
  body.cd .main-nav .nav-drop-menu a[aria-current="page"],
  body.cd .main-nav .nav-drop-menu a[aria-current="page"]:hover { font-weight: 500; color: var(--gelb); }
  /* Läuft der Code-Regen auf einem anderen Menüpunkt (.is-code aus main.js), ist der aktuelle Reiter
     nicht mehr gelb, sondern in der normalen Menüfarbe (Niklas, 22.10.2026) */
  body.cd .main-nav:has(.is-code:not([aria-current="page"]):not(.is-current)) > a[aria-current="page"]:not(.is-code),
  body.cd .main-nav:has(.is-code:not([aria-current="page"]):not(.is-current)) .nav-drop-btn.is-current:not(.is-code) { color: var(--c-text-2); }
}

/* Startseiten (DE/EN), Handy und Desktop: "Schwerpunkte meiner Expertise" mit einheitlichem Text. Absatz und Liste
   in reinem Schwarz statt gedämpftem Braungrau bzw. Tinte, die Liste in Größe und Zeilenhöhe des Absatzes darüber
   (dieselbe Formel wie .lead: Handy 18,4px, Desktop 21,8px) */
body.cd #schwerpunkte .section-head .lead,
body.cd #schwerpunkte .expertise-list li,
body.cd #schwerpunkte .expertise-list li * { color: #000; }
body.cd #schwerpunkte .expertise-list li { font-size: clamp(1.15rem, 1.7vw, 1.36rem); line-height: 1.55; }

/* Über mich (DE/EN), Desktop-Ausnahme (Niklas, 17.10.2026): Button "Quellen aller Videos" unter den Prinzipien weg,
   "Mein Lebenslauf im Detail" doppelt so groß (57,6 → 115px) und dicht unter dem letzten Prinzip
   (vorher 286px Abstand inkl. Button, jetzt nur noch das Zeilenpolster der Prinzip-Zeile) */
@media (min-width: 641px) {
  body.cd.cd-seite-ueber-mich #prinzipien .btn-row,
  body.cd.cd-seite-en-about #principles .btn-row { display: none; }
  body.cd.cd-seite-ueber-mich #prinzipien,
  body.cd.cd-seite-en-about #principles { padding-bottom: 0; }
  body.cd.cd-seite-ueber-mich #prinzipien + section,
  body.cd.cd-seite-en-about #principles + section { padding-top: 0; }
  body.cd.cd-seite-ueber-mich #prinzipien + section .section-head,
  body.cd.cd-seite-en-about #principles + section .section-head { max-width: none; }
  /* in einer Zeile: so groß, wie "Mein Lebenslauf im Detail" (12,4em) in die Inhaltsbreite passt (bei 1280px rund 86px);
     englisch dieselbe Größe, damit beide Seiten gleich aussehen */
  body.cd.cd-seite-ueber-mich #prinzipien + section .section-head > h2,
  body.cd.cd-seite-en-about #principles + section .section-head > h2 { font-size: min(calc(min(1084px, 100vw - 96px) / 12.6), 7.2rem); white-space: nowrap; }
}

/* Über mich (DE/EN), alle Breiten: wandernde Kugel im Lebenslauf erst sichtbar, sobald sie sich bewegt (--cv-dot-op aus js/main.js) */
body.cd.cd-seite-ueber-mich .cv-tl-wrap--js .cv-tl-dot { opacity: var(--cv-dot-op, 0); }

/* Experten-Auftritte, Handy: Podcast-Titel größer und auf drei Zeilen (15,7 → 21px), direkt unter dem Cover.
   Abstände in der Bedienung etwas knapper und das Display 12px höher (300 / 592 → 300 / 604, bis 350px Breite
   300 / 630 → 300 / 650), damit die Bedienung frei über dem Home-Balken bleibt. */
@media (max-width: 640px) {
  body.cd .podcast-phone.media-phone .media-screen { aspect-ratio: 300 / 604; }
  body.cd .media-slide--podcast .pp-meta { margin-top: 0; padding-top: 16px; }
  body.cd .media-slide--podcast .pp-title { font-size: 1.3125rem; line-height: 1.18; }
  body.cd .media-slide--podcast .pp-show { margin-top: 6px; }
  body.cd .media-slide--podcast .pp-progress { margin-top: 12px; }
  body.cd .media-slide--podcast .pp-controls { margin-top: 10px; }
}
@media (max-width: 350px) {
  body.cd .podcast-phone.media-phone .media-screen { aspect-ratio: 300 / 650; }
}

/* Wandernde Kugel an den Baustein-Listen (Sensibilisierungen DE/EN, Artikel), alle Breiten: statt des 4px-Rings in
   Hintergrundfarbe (auf Beige als heller Kreis sichtbar) nur ein weicher gelber Glow */
body.cd .tok-tl-dot,
body.cd .theme-paper .tok-tl-dot {
  box-shadow: 0 0 12px 2px rgba(217, 168, 46, .65), 0 0 26px 6px rgba(217, 168, 46, .28) !important;
  animation: none;
}

/* Über mich (DE/EN), alle Breiten: wandernde Kugel im Lebenslauf ebenfalls ohne Ring in Hintergrundfarbe
   (auf dem rot-goldenen Schein als dunkler Kreis sichtbar), nur mit weichem gelbem Glow */
body.cd.cd-seite-ueber-mich .cv-tl-dot {
  box-shadow: 0 0 12px 2px rgba(217, 168, 46, .65), 0 0 26px 6px rgba(217, 168, 46, .28);
}
/* … und ohne hellbeigen 2px-Rand (auf Beige als heller Ring sichtbar): der Goldverlauf reicht bis an den Rand */
body.cd .tok-tl-dot,
body.cd .theme-paper .tok-tl-dot { border-color: transparent; background-origin: border-box !important; }   /* Verlauf über die ganze Kugel, sonst wiederholt er sich im Rand als Streifen (!important wie die background-Regel oben) */
/* Über mich (DE/EN): Kugel im Lebenslauf ebenfalls ohne hellen Rand, Verlauf über die ganze Kugel */
body.cd.cd-seite-ueber-mich .cv-tl-dot { border-color: transparent; background-origin: border-box; }
/* Artikel: Kugel dort ebenso (der Artikel-Block setzte den hellen Rand wieder) */
body.cd.cd-seite-artikel .tok-tl-dot { border-color: transparent; background-origin: border-box !important; }

/* Startseiten (DE/EN), ab 641px: Überschrift "Soziologe und Experte für …" in #person 25 % größer als .display-lg
   (2.1rem / 4.6vw / 3.4rem × 1.25) */
@media (min-width: 641px) {
  body.cd #person .home-about-title { font-size: clamp(2.625rem, 5.75vw, 4.25rem); }
}
/* Startseiten (DE/EN), Desktop: Anzug-Porträt so hoch wie die Textspalte, damit der Kopf oben bündig mit dem
   Text abschließt. Die Bildzelle streckt sich über die Rasterzeile (unten weiter bis an die Abschnittskante),
   das Bild füllt sie in der Höhe, seine Breite folgt dem Seitenverhältnis und darf über die Spalte hinausragen.
   Wächst mit dem Text, deshalb auf DE und EN unterschiedlich groß. Höchstens so breit, dass rechts 24px Luft
   zum Text bleiben (Spaltenabstand wie .about-grid); knapp über 1060px wird das Bild dann kleiner (contain,
   unten bündig) und der Kopf sitzt etwas tiefer. */
@media (min-width: 1061px) {
  body.cd #person .about-photo { align-self: stretch; justify-self: stretch; max-width: none; margin-top: 0; }
  body.cd #person .about-photo img {
    position: absolute; top: 0; left: 50%;
    width: auto; height: 100%;
    max-width: calc(100% + 2 * (clamp(36px, 5vw, 80px) - 24px));
    object-fit: contain; object-position: 50% 100%;
    transform: translateX(-50%);
  }
}

/* Logo-Band (alle Seiten mit Band), Handy: Beschriftung "Diese Partner vertrauen auf meine Expertise" in einer Zeile.
   Schrift wächst mit der Breite bis zur bisherigen Größe (.76rem), etwas engerer Buchstabenabstand und Rand.
   31.3 = Zeilenbreite in Vielfachen der Schriftgröße (gemessen 25,25 für die Buchstaben + 44 × .12em, mit Reserve). */
@media (max-width: 640px) {
  body.cd .marquee-label {
    padding-inline: 12px;
    letter-spacing: .12em;
    font-size: min(.76rem, calc((100vw - 24px) / 31.3));
  }
  /* Englisch ("These partners trust my expertise") ist kürzer: 23,5 + Reserve */
  html[lang="en"] body.cd .marquee-label { font-size: min(.76rem, calc((100vw - 24px) / 24.2)); }
}

/* Keynotes (DE/EN), alle Breiten: Einleitung unter "Experten-Auftritte von Niklas Titgemeyer" über die volle Inhaltsbreite */
body.cd.cd-seite-keynotes .media-feature > .section-head,
body.cd.cd-seite-keynotes .media-feature > .section-head .lead { max-width: none; }

/* Videos in den Experten-Auftritten (Brisant, YouTube-Interview; Startseiten und Keynotes, DE/EN), alle Breiten:
   statt des kleinen Lautsprecher-Kreises eine deutlich sichtbare gelbe Pille "Ton einschalten" oben rechts.
   Ist der Ton an, bleibt der kleine runde Knopf zum Ausschalten. */
body.cd .tv-sound-text { display: none; }
body.cd .tv-sound.is-muted {
  width: auto;
  height: 30px;
  gap: 6px;
  padding: 0 12px 0 9px;
  border-radius: 999px;
  background: var(--gelb);
  color: var(--tinte);
  font-family: var(--font-label);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .45);
  transition: background-color .2s ease;
}
body.cd .tv-sound.is-muted:hover,
body.cd .tv-sound.is-muted:focus-visible { background: var(--gelb-tief); }
body.cd .tv-sound.is-muted .tv-sound-text { display: inline; order: 2; }

/* Artikel mit Bild neben der Einleitung (.art-intro, z. B. ChatGPT als Therapeut), Desktop: Die Einleitung umschließt
   das schwebende Bild, damit die nächste Zwischenüberschrift erst darunter beginnt und nicht um das Bild herumfließt
   ("Chatbots sind | Speichellecker"). Unter 861px stapelt style.css die Einleitung ohnehin. */
@media (min-width: 861px) {
  body.cd.cd-seite-artikel .art-intro { display: flow-root; }
}
/* Tokens-Artikel, alle Breiten: Kontextfenster-Balken oben so breit wie der Einleitungstext (volle Inhaltsbreite statt 760px) */
body.cd.cd-seite-artikel-tokens-sparen-mit-claude .tok-hero-viz { max-width: none; }

/* Zahlen-Leiste, Handy (seit 110.000 Followern, 19.10.2026): "+110.000 Follower" bleibt einzeilig. Die Zahl ist eine
   Ziffer breiter (rund 4,6em), das englische "Followers" braucht am meisten Platz. Die Größe wächst deshalb linear mit
   der Breite (320px: 38px, 390px: 49px) und erreicht ab etwa 415px wieder die alten 3.3rem; 3 % Reserve zum Rand.
   Die Verschiebungen auf das Porträt (Startseiten, Keynotes) bleiben wie gehabt. */
@media (max-width: 640px) {
  body.cd .stats .stat:first-child .stat-num { font-size: min(3.3rem, calc(15.5vw - 11.5px)); }
}

/* Über mich (DE/EN), Handy und Tablet: Follower-Plakette auf dem Porträt nie breiter als das Bild samt Rahmen (Bühne =
   min(100vw, 420px) - 40px, je Seite 5px Luft). Icons, Abstände und Polster in em, damit alles mit der Schrift skaliert;
   bei 1.13rem sind es genau die alten px-Werte. Breite der Plakette: DE 20,45em, EN 21,18em. Desktop unverändert. */
@media (max-width: 1060px) {
  body.cd.cd-seite-ueber-mich .about-stage-tag.story-follower {
    font-size: min(1.13rem, calc((min(100vw, 420px) - 50px) / 20.45));
    gap: .608em;
    padding: .608em 1.217em;
  }
  body.cd.cd-seite-en-about .about-stage-tag.story-follower { font-size: min(1.13rem, calc((min(100vw, 420px) - 50px) / 21.2)); }
  body.cd.cd-seite-ueber-mich .story-follower-icons { gap: .442em; }
  body.cd.cd-seite-ueber-mich .story-follower-icons svg { width: 1.106em; height: 1.106em; }
}

/* Newsletter (19.10.2026), Handy: Ausgaben einspaltig, Anmeldefeld und Button untereinander, Buttons volle Breite */
@media (max-width: 640px) {
  body.cd.cd-seite-newsletter .nlx-grid { grid-template-columns: 1fr; }
  body.cd.cd-seite-newsletter .nlx-inline { flex-direction: column; border-radius: 22px; padding: 8px; }
  body.cd.cd-seite-newsletter .nlx-inline input { padding: 14px; }
  body.cd.cd-seite-newsletter .nlx-inline .btn { justify-content: center; }
  body.cd.cd-seite-newsletter .nlx-top-text { gap: 12px; }
  body.cd.cd-seite-newsletter .nlx-top .btn { align-self: stretch; justify-content: center; }
}

/* Über mich, Handy: Newsletter-Pille wie auf newsletter.html untereinander, Button volle Breite */
@media (max-width: 640px) {
  body.cd.cd-seite-ueber-mich .story-nl-pille { flex-direction: column; border-radius: 22px; padding: 8px; }
  body.cd.cd-seite-ueber-mich .story-nl-pille input { padding: 14px; }
  body.cd.cd-seite-ueber-mich .story-nl-pille .btn { justify-content: center; }
}
