/* GenerationKlick – Gemeinsames Stylesheet */
/* Corporate Design "Der smarte Begleiter" – Petrol, Koralle, Soft Design */
/* Barrierefreiheit für Senioren: Große Schrift, hoher Kontrast, ruhiges Layout */

/* Schriften: Montserrat (Überschriften) + Open Sans (Fließtext).
   Lokal gehostet aus /schriften/ – KEIN externer Google-Abruf mehr
   (DSGVO: es wird keine IP-Adresse mehr an Google übertragen).
   Nur die tatsächlich genutzten Schnitte, als schlanke woff-Dateien. */
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 600;
  font-display: swap; src: url('schriften/montserrat-600.woff') format('woff');
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 700;
  font-display: swap; src: url('schriften/montserrat-700.woff') format('woff');
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 800;
  font-display: swap; src: url('schriften/montserrat-800.woff') format('woff');
}
@font-face {
  font-family: 'Open Sans'; font-style: normal; font-weight: 400;
  font-display: swap; src: url('schriften/opensans-400.woff') format('woff');
}
@font-face {
  font-family: 'Open Sans'; font-style: italic; font-weight: 400;
  font-display: swap; src: url('schriften/opensans-400italic.woff') format('woff');
}
@font-face {
  font-family: 'Open Sans'; font-style: normal; font-weight: 500;
  font-display: swap; src: url('schriften/opensans-500.woff') format('woff');
}
@font-face {
  font-family: 'Open Sans'; font-style: normal; font-weight: 600;
  font-display: swap; src: url('schriften/opensans-600.woff') format('woff');
}
@font-face {
  font-family: 'Open Sans'; font-style: normal; font-weight: 700;
  font-display: swap; src: url('schriften/opensans-700.woff') format('woff');
}

:root {
  /* Markenfarben Konzept 1 */
  --cd-petrol: #008080;
  --cd-petrol-tief: #006666;
  --cd-petrol-hell: #e6f2f2;
  --cd-koralle: #F08080;
  --cd-koralle-tief: #e06868;
  --cd-schiefer: #34495e;

  /* Bestehende Variablennamen – auf neue Palette gemappt */
  --farbe-hintergrund: #fcfbfa;
  --farbe-text: #34495e;
  --farbe-ueberschrift: #008080;
  --farbe-akzent: #F08080;
  --farbe-hinweis-hintergrund: #e6f2f2;
  --farbe-hinweis-rahmen: #008080;
  --farbe-warnung-hintergrund: #fdeeea;
  --farbe-warnung-rahmen: #e06868;
  --farbe-tipp-hintergrund: #eef5f5;
  --farbe-tipp-rahmen: #008080;
  --farbe-navigation: #fcfbfa;
  --farbe-navigation-text: #34495e;
  --schrift-basis: 18px;
  --schrift-gross: 1.3rem;
  --schrift-ueberschrift: 1.6rem;
  --schrift-titel: 2.1rem;
  --zeilenabstand: 1.75;
  --max-breite: 880px;

  /* Soft-Design-Token */
  --cd-radius: 18px;
  --cd-radius-gross: 26px;
  --cd-schatten: 0 6px 24px -10px rgba(52, 73, 94, 0.18);
  --cd-schatten-soft: 0 3px 14px -6px rgba(52, 73, 94, 0.14);
  --cd-rahmen: #e8e6e3;
}

/* =============================================
   HOCHKONTRAST-MODUS (gelb auf schwarz)
   ============================================= */
body.hochkontrast {
  --farbe-hintergrund: #000000;
  --farbe-text: #ffff00;
  --farbe-ueberschrift: #ffff00;
  --farbe-akzent: #ffff00;
  --farbe-hinweis-hintergrund: #111111;
  --farbe-hinweis-rahmen: #ffff00;
  --farbe-warnung-hintergrund: #111111;
  --farbe-warnung-rahmen: #ff9900;
  --farbe-tipp-hintergrund: #111111;
  --farbe-tipp-rahmen: #ffff00;
  --farbe-navigation: #0c0c0c;
  --farbe-navigation-text: #ffff00;
  --cd-rahmen: #ffff00;
  --cd-schatten: none;
  --cd-schatten-soft: none;
  background-color: #000000;
  color: #ffff00;
}
/* Brücke gegen weißes Aufblitzen: das Inline-Kopf-Skript setzt vor dem
   Rendern .hochkontrast-pre auf <html>, bis barrierefreiheit.js die volle
   Kontrast-Darstellung (body.hochkontrast) übernimmt. */
html.hochkontrast-pre,
html.hochkontrast-pre body { background: #000 !important; color: #ffff00 !important; }
body.hochkontrast a { color: #ffff00; }
body.hochkontrast h2, body.hochkontrast h3 { color: #ffff00; }
body.hochkontrast nav.hauptnavigation { border-bottom: 3px solid #ffff00; background-color: #0c0c0c; }
body.hochkontrast nav.hauptnavigation .logo { color: #ffff00; }
body.hochkontrast .nav-schaltflaeche { background-color: #222; border: 2px solid #ffff00; color: #ffff00; }
body.hochkontrast .nav-schaltflaeche:hover { background-color: #444; }
body.hochkontrast .analogie { background-color: #111; border-color: #ffff00; color: #ffff00; }
body.hochkontrast .analogie::before { color: #ff9900; }
body.hochkontrast .einleitung { background-color: #111; color: #ffff00; border-color: #ffff00; }
body.hochkontrast ol.schritte li { background-color: #111; border: 1px solid #444; }
body.hochkontrast ol.schritte li::before { background-color: #333; border: 2px solid #ffff00; color: #ffff00; }
body.hochkontrast .teil-karte { border-color: #ffff00; background-color: #000; }
body.hochkontrast .willkommen { background: #111 !important; border: 2px solid #ffff00; }
body.hochkontrast .willkommen h1,
body.hochkontrast .willkommen p { color: #ffff00 !important; opacity: 1; }
body.hochkontrast .versprechen { background-color: #111; border-color: #ffff00; }
body.hochkontrast .fortschrittsbalken-huelle { background-color: #333; border: 1px solid #ffff00; }
body.hochkontrast .fortschrittsbalken-fuell { background-color: #ffff00; background-image: none; }
body.hochkontrast .fortschritt-info { color: #ffff00; }
body.hochkontrast .lesezeit-badge { background-color: #222; color: #ffff00; border: 1px solid #ffff00; }
body.hochkontrast .kapitel-kopf { border-color: #ffff00; }
body.hochkontrast .einstieg-box { background: #111; border-color: #ffff00; }
body.hochkontrast .einstieg-box h2,
body.hochkontrast .einstieg-box p { color: #ffff00; }
body.hochkontrast .einstieg-schaltflaeche { background-color: #333; border: 2px solid #ffff00; color: #ffff00; }
body.hochkontrast ul.liste li { border-color: #333; }
body.hochkontrast ul.liste li::before { color: #ffff00; }
body.hochkontrast .merksatz { background-color: #111; border-color: #ff9900; color: #ffff00; }
body.hochkontrast .merksatz-titel { color: #ff9900; }
body.hochkontrast .teil-buchstabe,
body.hochkontrast .teil-karte .teil-buchstabe { background-color: #0c0c0c; border: 2px solid #ffff00; color: #ffff00; }

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: var(--schrift-basis);
  scroll-behavior: smooth;
}

body {
  font-family: 'Open Sans', 'Segoe UI', Arial, sans-serif;
  background-color: var(--farbe-hintergrund);
  color: var(--farbe-text);
  line-height: var(--zeilenabstand);
  max-width: var(--max-breite);
  margin: 0 auto;
  padding: 0 24px 60px 24px;
  -webkit-font-smoothing: antialiased;
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* =============================================
   VOLLBREITEN-MODUS (Landingpage & Kurs-Übersicht)
   Hebt die schmale Lesespalte auf. Diese Seiten bringen
   eigene innere Container (.inhalt-breit) mit, die den
   Inhalt großzügig, aber nicht endlos breit zentrieren.
   ============================================= */
body.voll-breite {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  --rand: 48px;   /* seitlicher Rand der breiten Bahnen */
  --bahn: 1480px; /* maximale Bahnbreite auf großen Schirmen */
}
@media (max-width: 900px) { body.voll-breite { --rand: 28px; } }
@media (max-width: 600px) { body.voll-breite { --rand: 18px; } }

/* =============================================
   KURS- & USE-CASE-SEITEN: gleiche großzügige Breite
   wie die übrigen Seiten. Der Inhalt liegt hier direkt
   im <body> (ohne eigenen .inhalt-breit-Container), darum
   zentriert der <body> selbst die breite Bahn.
   Das behebt auch den umbrechenden Kopf: Logo, Navigation
   und Barrierefreiheits-Werkzeuge haben in der breiten Bahn
   wieder in einer Zeile Platz und verdecken nicht mehr die
   erste Überschrift.
   (kurse.html/register.html sind bereits .voll-breite und
   bleiben durch :not(.voll-breite) unberührt.)
   ============================================= */
body[data-gk-schutz]:not(.voll-breite) {
  --rand: 48px;
  --bahn: 1480px;
  max-width: var(--bahn);
  padding-left: var(--rand);
  padding-right: var(--rand);
}
@media (max-width: 900px) { body[data-gk-schutz]:not(.voll-breite) { --rand: 28px; } }
@media (max-width: 600px) { body[data-gk-schutz]:not(.voll-breite) { --rand: 18px; } }

body[data-gk-schutz]:not(.voll-breite) .kopf-bahn {
  max-width: var(--bahn);
  padding-left: var(--rand);
  padding-right: var(--rand);
}

/* Innerer Container: nutzt die Breite, deckelt aber bei sehr
   großen Bildschirmen für angenehme Zeilenlängen. */
body.voll-breite .inhalt-breit {
  width: 100%;
  max-width: var(--bahn);
  margin: 0 auto;
  padding-left: var(--rand);
  padding-right: var(--rand);
}

/* Navigation oben */
nav.hauptnavigation {
  background-color: var(--farbe-navigation);
  color: var(--farbe-navigation-text);
  padding: 14px 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--cd-rahmen);
}

nav.hauptnavigation a {
  color: var(--cd-petrol);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 12px 18px;
  border-radius: 14px;
  border: 2px solid transparent;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  transition: background-color .2s ease, border-color .2s ease;
}

nav.hauptnavigation a:hover,
nav.hauptnavigation a:focus {
  background-color: var(--cd-petrol-hell);
  border-color: var(--cd-petrol);
  outline: none;
}
body.hochkontrast nav.hauptnavigation a:hover,
body.hochkontrast nav.hauptnavigation a:focus { background-color: #1a1a1a; }

nav.hauptnavigation a.logo {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.5px;
  color: var(--cd-schiefer);
  margin-right: auto;
  padding: 8px 4px;
  border: none;
  min-height: 0;
}
nav.hauptnavigation a.logo:hover,
nav.hauptnavigation a.logo:focus {
  background-color: transparent;
  border-color: transparent;
  color: var(--cd-petrol-tief);
}
body.hochkontrast nav.hauptnavigation a.logo:hover,
body.hochkontrast nav.hauptnavigation a.logo:focus { background-color: transparent; }

/* aktiver Navigationspunkt */
nav.hauptnavigation a[aria-current="page"] {
  background-color: var(--cd-petrol-hell);
  border-color: var(--cd-petrol);
  color: var(--cd-petrol-tief);
}
body.hochkontrast nav.hauptnavigation a[aria-current="page"] {
  background-color: #1a1a1a; border-color: #ffff00; color: #ffff00;
}

/* Kapitel-Kopf */
.kapitel-kopf {
  border-bottom: 3px solid var(--cd-petrol-hell);
  padding-top: 32px;
  margin-bottom: 40px;
  padding-bottom: 22px;
}

.kapitel-nummer {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--cd-petrol);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 10px;
}

h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: var(--schrift-titel);
  font-weight: 800;
  color: var(--cd-schiefer);
  line-height: 1.15;
  letter-spacing: -1px;
  margin-bottom: 14px;
}
body.hochkontrast h1 { color: #ffff00; }

h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: var(--schrift-gross);
  font-weight: 700;
  color: var(--farbe-ueberschrift);
  margin-top: 48px;
  margin-bottom: 16px;
  padding-left: 16px;
  border-left: 5px solid var(--farbe-akzent);
  letter-spacing: -0.4px;
}

h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  color: var(--cd-schiefer);
  margin-top: 32px;
  margin-bottom: 12px;
  font-weight: 700;
}
body.hochkontrast h3 { color: #ffff00; }

p {
  font-size: 1rem;
  margin-bottom: 20px;
}

/* Einleitung / Einführungstext */
.einleitung {
  font-size: 1.05rem;
  color: var(--cd-schiefer);
  border-left: 6px solid var(--cd-petrol);
  padding: 20px 24px;
  background-color: var(--cd-petrol-hell);
  margin-bottom: 40px;
  border-radius: 0 var(--cd-radius) var(--cd-radius) 0;
}
body.hochkontrast .einleitung { color: #ffff00; }

/* Hinweis-Boxen */
.hinweis, .warnung, .tipp, .merksatz {
  padding: 22px 26px;
  border-radius: var(--cd-radius);
  margin: 32px 0;
  border-left: 6px solid;
  box-shadow: var(--cd-schatten-soft);
}

.hinweis {
  background-color: var(--farbe-hinweis-hintergrund);
  border-color: var(--farbe-hinweis-rahmen);
}

.warnung {
  background-color: var(--farbe-warnung-hintergrund);
  border-color: var(--farbe-warnung-rahmen);
}

.tipp {
  background-color: var(--farbe-tipp-hintergrund);
  border-color: var(--farbe-tipp-rahmen);
}

.merksatz {
  background-color: #fdeeea;
  border-color: var(--cd-koralle);
  font-size: 1.05rem;
  font-weight: 600;
}

.hinweis-titel, .warnung-titel, .tipp-titel, .merksatz-titel {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.hinweis-titel { color: var(--cd-petrol-tief); }
.warnung-titel { color: var(--cd-koralle-tief); }
.tipp-titel { color: var(--cd-petrol-tief); }
.merksatz-titel { color: var(--cd-koralle-tief); }

/* Schritt-für-Schritt Listen */
ol.schritte {
  list-style: none;
  counter-reset: schritt;
  padding: 0;
}

ol.schritte li {
  counter-increment: schritt;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 20px;
  padding: 22px 24px;
  background-color: #ffffff;
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius);
  box-shadow: var(--cd-schatten-soft);
}

ol.schritte li::before {
  content: counter(schritt);
  background-color: var(--cd-petrol);
  color: white;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 800;
  flex-shrink: 0;
}

ul.liste {
  list-style: none;
  padding: 0;
}

ul.liste li {
  padding: 12px 0 12px 34px;
  position: relative;
  border-bottom: 1px solid var(--cd-rahmen);
  font-size: 1rem;
}

ul.liste li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 12px;
  color: var(--cd-petrol);
  font-weight: bold;
  font-size: 1rem;
}

/* Analogie-Box */
.analogie {
  background-color: #fff6f0;
  border: 2px dashed var(--cd-koralle);
  border-radius: var(--cd-radius);
  padding: 22px 26px;
  margin: 32px 0;
  font-style: italic;
  font-size: 1rem;
  color: var(--cd-schiefer);
}

.analogie::before {
  content: "💡 Zum besseren Verständnis: ";
  font-family: 'Montserrat', sans-serif;
  font-style: normal;
  font-weight: 700;
  color: var(--cd-koralle-tief);
  display: block;
  margin-bottom: 8px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Navigation zwischen Kapiteln */
.kapitel-navigation {
  display: flex;
  justify-content: space-between;
  margin-top: 60px;
  padding-top: 28px;
  border-top: 2px solid var(--cd-rahmen);
  gap: 16px;
  flex-wrap: wrap;
}

.nav-schaltflaeche {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 30px;
  background-color: var(--cd-petrol);
  color: white;
  text-decoration: none;
  border-radius: var(--cd-radius);
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  min-width: 180px;
  min-height: 60px;
  text-align: center;
  box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}

.nav-schaltflaeche:hover, .nav-schaltflaeche:focus {
  background-color: var(--cd-petrol-tief);
  transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}

/* Fortschrittsanzeige (Untertitel im Kapitelkopf) */
.fortschritt {
  color: var(--cd-schiefer);
  font-size: 0.85rem;
  margin-bottom: 8px;
  opacity: 0.85;
}
body.hochkontrast .fortschritt { color: #ffff00; opacity: 1; }

/* Responsive */
@media (max-width: 600px) {
  :root { --schrift-basis: 18px; --schrift-titel: 1.5rem; }
  h1 { font-size: 1.4rem; }
  h2 { font-size: 1.1rem; }
}

/* =============================================
   FIXIERTER KOPFBEREICH (einheitlich auf allen Seiten)
   Barrierefreiheits-Leiste + Navigation sind zusammen
   am oberen Rand fixiert und über alle Seiten konsistent.
   ============================================= */
.kopf-fixiert {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  background-color: rgba(252, 251, 250, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cd-rahmen);
}
body.hochkontrast .kopf-fixiert {
  background-color: #0c0c0c;
  border-color: #555;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Platz schaffen, damit Inhalt nicht unter dem fixierten Kopf verschwindet.
   barrierefreiheit.js überschreibt diesen Wert dynamisch nach JS-Load. */
body { padding-top: 84px; }
@media (max-width: 720px) { body { padding-top: 132px; } }

/* Anker (z.B. #kaufen) nicht unter dem fixierten Kopf landen lassen */
:target { scroll-margin-top: 100px; }

/* Eine Zeile: Logo · Navigation · kompakte Barrierefreiheit */
.kopf-bahn {
  max-width: var(--max-breite);
  margin: 0 auto;
  width: 100%;
  min-height: 64px;
  padding: 8px 24px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
body.voll-breite .kopf-bahn {
  max-width: var(--bahn);
  padding-left: var(--rand);
  padding-right: var(--rand);
}

.kopf-bahn .logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  margin-right: 8px;
  flex-shrink: 0;
}
.kopf-bahn .logo:hover, .kopf-bahn .logo:focus { outline: none; opacity: 0.85; }
.kopf-bahn .logo:focus-visible { outline: 3px solid var(--cd-petrol); border-radius: 4px; }

.logo-bild {
  height: 48px;
  width: auto;
  max-width: 240px;
  display: block;
}

/* Hochkontrast: Logo invertieren damit es auf schwarzem Hintergrund lesbar bleibt */
body.hochkontrast .logo-bild {
  filter: brightness(0) invert(1);
}

/* Navigationslinks */
.kopf-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  margin-right: auto;
}
.kopf-nav a {
  color: var(--cd-petrol);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 10px 16px;
  border-radius: 12px;
  border: 2px solid transparent;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease;
}
.kopf-nav a:hover, .kopf-nav a:focus {
  background-color: var(--cd-petrol-hell); border-color: var(--cd-petrol); outline: none;
}
body.hochkontrast .kopf-nav a { color: #ffff00; }
body.hochkontrast .kopf-nav a:hover, body.hochkontrast .kopf-nav a:focus { background-color: #1a1a1a; }
.kopf-nav a[aria-current="page"] {
  background-color: var(--cd-petrol-hell); border-color: var(--cd-petrol); color: var(--cd-petrol-tief);
}
body.hochkontrast .kopf-nav a[aria-current="page"] { background-color: #1a1a1a; border-color: #ffff00; color: #ffff00; }

/* Kompakte Barrierefreiheits-Werkzeuge (rechts, eine Gruppe) */
.bf-werkzeuge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  background-color: rgba(255,255,255,0.6);
  border: 1px solid var(--cd-rahmen);
  border-radius: 100px;
}
body.hochkontrast .bf-werkzeuge { background-color: #1a1a1a; border-color: #ffff00; }
.bf-werkzeuge .bf-anzeige {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--cd-schiefer);
  min-width: 30px;
  text-align: center;
}
body.hochkontrast .bf-werkzeuge .bf-anzeige { color: #ffff00; }
.bf-trenner { width: 1px; height: 24px; background-color: var(--cd-rahmen); margin: 0 2px; }
body.hochkontrast .bf-trenner { background-color: #ffff00; }

.bf-btn {
  background-color: var(--cd-petrol);
  color: white;
  border: 2px solid transparent;
  border-radius: 50%;
  padding: 0;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: background-color .2s ease, transform .15s ease;
}
.bf-btn:hover, .bf-btn:focus { background-color: var(--cd-petrol-tief); transform: translateY(-1px); outline: 3px solid var(--cd-koralle); outline-offset: 2px; }
body.hochkontrast .bf-btn { background-color: #333; border: 2px solid #ffff00; color: #ffff00; }
body.hochkontrast .bf-btn:hover { background-color: #555; }

.bf-btn-kontrast {
  background-color: var(--cd-schiefer);
  width: auto;
  border-radius: 100px;
  padding: 0 14px;
  font-size: 0.7rem;
  gap: 6px;
}
body.hochkontrast .bf-btn-kontrast { background-color: #ffff00; color: #000; border-color: #000; }

@media (max-width: 720px) {
  .kopf-bahn { gap: 10px; }
  .kopf-nav { gap: 2px; width: 100%; order: 3; }
  .bf-werkzeuge { margin-left: auto; }
  .logo-bild { height: 40px; max-width: 180px; }
}

/* =============================================
   FORTSCHRITTSBALKEN
   ============================================= */
.fortschritt-container {
  margin: 0 -24px 36px -24px;
  background-color: var(--cd-petrol-hell);
  padding: 14px 24px;
  border-bottom: 1px solid var(--cd-rahmen);
}
body.hochkontrast .fortschritt-container { background-color: #111; border-color: #444; }

.fortschritt-info {
  font-size: 0.75rem;
  color: var(--cd-schiefer);
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.fortschritt-info strong { color: var(--cd-petrol-tief); font-size: 0.8rem; font-family: 'Montserrat', sans-serif; }
body.hochkontrast .fortschritt-info { color: #ffff00; }
body.hochkontrast .fortschritt-info strong { color: #ffff00; }

.fortschrittsbalken-huelle {
  background-color: #d4e6e6;
  border-radius: 100px;
  height: 14px;
  overflow: hidden;
}
.fortschrittsbalken-fuell {
  background: linear-gradient(90deg, var(--cd-petrol), var(--cd-koralle));
  height: 100%;
  border-radius: 100px;
  transition: width 0.4s ease;
}

/* =============================================
   LESEZEIT-BADGE
   ============================================= */
.lesezeit-badge {
  display: inline-block;
  background-color: var(--cd-petrol-hell);
  color: var(--cd-petrol-tief);
  border: 1px solid #a9d4d4;
  border-radius: 100px;
  padding: 5px 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 8px;
}

/* =============================================
   EINSTIEGS-BOX (Startseite)
   ============================================= */
.einstieg-box {
  background: linear-gradient(135deg, #e6f2f2 0%, #fdeeea 100%);
  border: 2px solid var(--cd-petrol);
  border-radius: var(--cd-radius-gross);
  padding: 36px 40px;
  margin: 32px 0 40px 0;
  text-align: center;
  box-shadow: var(--cd-schatten-soft);
}
.einstieg-box h2 {
  font-family: 'Montserrat', sans-serif;
  border: none;
  padding: 0;
  margin-top: 0;
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--cd-schiefer);
  letter-spacing: -0.6px;
}
body.hochkontrast .einstieg-box h2 { color: #ffff00; }
.einstieg-box p { font-size: 1rem; color: var(--cd-schiefer); margin-bottom: 24px; }
.einstieg-schaltflaeche {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--cd-petrol);
  color: white;
  text-decoration: none;
  padding: 18px 36px;
  border-radius: var(--cd-radius);
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  min-height: 60px;
  margin: 6px 8px;
  box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.einstieg-schaltflaeche:hover { background-color: var(--cd-petrol-tief); transform: translateY(-3px); }
.einstieg-schaltflaeche.sekundaer {
  background-color: var(--cd-koralle);
}
.einstieg-schaltflaeche.sekundaer:hover { background-color: var(--cd-koralle-tief); }

/* =============================================
   STARTSEITE (index.html)
   Diese Regeln standen früher in einem <style>-Block der index.html.
   Sie sind hierher verlagert, damit die Startseite zentral im neuen CD
   gepflegt wird und keine alten Farben mehr mitbringt.
   ============================================= */
.willkommen {
  background: linear-gradient(135deg, var(--cd-petrol) 0%, var(--cd-koralle) 100%);
  color: white;
  padding: 52px 44px;
  border-radius: var(--cd-radius-gross);
  margin-bottom: 48px;
  text-align: center;
  box-shadow: var(--cd-schatten);
}
.willkommen h1 {
  font-family: 'Montserrat', sans-serif;
  color: white;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -1px;
  margin-bottom: 16px;
}
.willkommen p { font-size: 1rem; opacity: 0.96; max-width: 620px; margin: 0 auto; }

.teil-karte {
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius-gross);
  padding: 30px 34px;
  margin-bottom: 24px;
  background-color: #ffffff;
  box-shadow: var(--cd-schatten-soft);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.teil-karte:hover { border-color: var(--cd-petrol); transform: translateY(-5px); box-shadow: var(--cd-schatten); }
.teil-karte h2 {
  font-family: 'Montserrat', sans-serif;
  margin-top: 0;
  border: none;
  padding: 0;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--cd-schiefer);
  letter-spacing: -0.5px;
}
body.hochkontrast .teil-karte h2 { color: #ffff00; }

.teil-karte .teil-buchstabe {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--cd-petrol);
  color: white;
  width: 56px; height: 56px;
  border-radius: 18px;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: 14px;
}

.kapitel-liste { list-style: none; padding: 0; margin-top: 16px; }
.kapitel-liste li { padding: 4px 0; border-bottom: 1px solid var(--cd-rahmen); }
.kapitel-liste a {
  color: var(--cd-petrol-tief);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  display: block;
  padding: 12px 8px;
  min-height: 48px;
  border-radius: 12px;
  transition: background-color .15s ease, color .15s ease;
}
.kapitel-liste a:hover { color: var(--cd-koralle-tief); background-color: var(--cd-petrol-hell); }
body.hochkontrast .kapitel-liste a { color: #ffff00; }
body.hochkontrast .kapitel-liste a:hover { background-color: #1a1a1a; }

.versprechen {
  background-color: var(--cd-petrol-hell);
  border-left: 6px solid var(--cd-petrol);
  padding: 26px 30px;
  border-radius: 0 var(--cd-radius) var(--cd-radius) 0;
  margin-bottom: 40px;
}
.versprechen h3 { font-family: 'Montserrat', sans-serif; margin-bottom: 12px; color: var(--cd-petrol-tief); }
body.hochkontrast .versprechen h3 { color: #ffff00; }

/* =============================================
   GETEILTE FUSSZEILE (Landing / Kurse / Anmelden)
   ============================================= */
.fusszeile {
  margin-top: 64px;
  padding: 36px 0;
  border-top: 1px solid var(--cd-rahmen);
  font-size: 0.75rem;
  color: var(--cd-schiefer);
  opacity: 0.78;
  text-align: center;
}
body.hochkontrast .fusszeile { color: #ffff00; opacity: 1; border-color: #444; }

/* =============================================
   ILLUSTRATIONEN (Gesten & Symbole)
   ============================================= */

/* Container für eine einzelne Illustration neben dem Text */
.illu {
  display: block;
  max-width: 220px;
  margin: 8px auto 24px auto;
}
.illu svg, .illu img { width: 100%; height: auto; }

/* Zwei oder mehr Illustrationen nebeneinander (z. B. Gesten-Reihe) */
.illu-reihe {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  margin: 16px 0 28px 0;
}
.illu-reihe figure {
  margin: 0;
  flex: 0 1 200px;
  text-align: center;
}
.illu-reihe svg, .illu-reihe img { width: 140px; height: auto; }
.illu-reihe figcaption {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--cd-schiefer);
  margin-top: 8px;
}

/* Inline-Symbole im Text (erben Farbe und wachsen mit der Schrift) */
.gk-symbol {
  width: 1.4em;
  height: 1.4em;
  vertical-align: -0.3em;
  color: var(--cd-petrol);
}

/* Symbol-Karten in Kapitel 9: einheitliches Icon statt Emoji */
.symbol-zeichen svg {
  width: 48px;
  height: 48px;
  color: var(--cd-petrol);
}

/* --- Hochkontrast-Modus --- */
body.hochkontrast .illu svg .gk-illu,
body.hochkontrast .gk-symbol,
body.hochkontrast .symbol-zeichen svg { color: #ffff00; }

/* Korallene Touch-Kreise: im Kontrastmodus auf Orange für genug Kontrast */
body.hochkontrast .illu svg .gk-touch,
body.hochkontrast .illu svg .gk-ring,
body.hochkontrast .illu svg .gk-spur { fill: #ff9900; stroke: #ff9900; }
body.hochkontrast .illu svg .gk-flaeche,
body.hochkontrast .illu svg .gk-streifen,
body.hochkontrast .illu svg .gk-objekt,
body.hochkontrast .illu svg .gk-zoomflaeche { opacity: 0.3; }

/* =============================================
   SKIP-LINK ("Zum Inhalt springen")
   Wird per JavaScript als erstes Body-Element eingefügt.
   Unsichtbar, bis er mit der Tastatur fokussiert wird.
   ============================================= */
.gk-skip {
  position: fixed;
  top: -120px;            /* außerhalb des Bildes geparkt */
  left: 12px;
  z-index: 300;           /* über dem fixierten Kopf (z-index 200) */
  background-color: var(--cd-petrol);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  padding: 14px 22px;
  border-radius: var(--cd-radius);
  box-shadow: var(--cd-schatten);
  transition: top .15s ease;
}
.gk-skip:focus {
  top: 12px;
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}
body.hochkontrast .gk-skip {
  background-color: #000; color: #ffff00; border: 2px solid #ffff00;
}
/* Fokus-Ziel des Skip-Links soll keinen störenden Umriss zeigen */
[id="hauptinhalt"]:focus { outline: none; }

/* =============================================
   AUTOMATISCH EINGEFÜGTER FORTSCHRITTSBALKEN
   (auf Kapitelseiten per JS nach dem Kopf eingefügt)
   Anders als die schmale Lesespalten-Variante braucht er
   hier keine negativen Seitenränder.
   ============================================= */
.fortschritt-container--auto {
  margin: 8px 0 36px 0;
  border-radius: var(--cd-radius);
  border: 1px solid var(--cd-rahmen);
}
body.hochkontrast .fortschritt-container--auto { border-color: #444; }


/* =============================================
   LERNHILFEN – VORLESEN
   ============================================= */
.gk-vorlesen {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin: 8px 0 32px 0;
  padding: 16px 20px;
  background-color: var(--cd-petrol-hell);
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius);
}
body.hochkontrast .gk-vorlesen { background-color: #111; border-color: #ffff00; }
.gk-vl-knopf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 60px;
  min-width: 60px;
  padding: 14px 26px;
  border: 2px solid transparent;
  border-radius: var(--cd-radius);
  background-color: var(--cd-petrol);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.gk-vl-knopf:hover, .gk-vl-knopf:focus {
  background-color: var(--cd-petrol-tief);
  transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}
.gk-vl-stopp { background-color: var(--cd-koralle-tief); }
.gk-vl-stopp:hover, .gk-vl-stopp:focus { background-color: #c95757; }
body.hochkontrast .gk-vl-knopf { background-color: #333; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .gk-vl-knopf:hover { background-color: #555; }
.gk-vl-icon { font-size: 0.85em; }
.gk-vl-status {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--cd-petrol-tief);
}
body.hochkontrast .gk-vl-status { color: #ffff00; }

/* Stimmen-Auswahl */
.gk-vl-stimme-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.gk-vl-stimme-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--cd-schiefer);
}
body.hochkontrast .gk-vl-stimme-label { color: #ffff00; }
.gk-vl-stimme {
  min-height: 52px;
  max-width: 240px;
  padding: 10px 14px;
  font-family: inherit;
  font-size: 0.95rem;
  color: var(--cd-schiefer);
  background-color: #fff;
  border: 2px solid var(--cd-petrol);
  border-radius: var(--cd-radius);
  cursor: pointer;
}
.gk-vl-stimme:focus { outline: 3px solid var(--cd-koralle); outline-offset: 2px; }
body.hochkontrast .gk-vl-stimme { background-color: #000; color: #ffff00; border-color: #ffff00; }

/* Gerade vorgelesener Abschnitt */
.gk-liest {
  background-color: #fff3d6;
  box-shadow: inset 4px 0 0 var(--cd-koralle);
  border-radius: 8px;
}
body.hochkontrast .gk-liest {
  background-color: #1a1a00 !important;
  box-shadow: inset 4px 0 0 #ff9900;
  color: #ffff00;
}

/* =============================================
   LERNHILFEN – INLINE-GLOSSAR
   ============================================= */
.gk-begriff {
  font: inherit;
  color: var(--cd-petrol-tief);
  background: transparent;
  border: none;
  border-bottom: 2px dotted var(--cd-petrol);
  padding: 0 1px;
  margin: 0;
  cursor: pointer;
  font-weight: 600;
}
.gk-begriff::after { content: " \24D8"; font-size: 0.8em; vertical-align: super; opacity: 0.8; }
.gk-begriff:hover, .gk-begriff:focus {
  background-color: var(--cd-petrol-hell);
  outline: 2px solid var(--cd-petrol);
  outline-offset: 1px;
  border-radius: 4px;
}
body.hochkontrast .gk-begriff { color: #ffff00; border-bottom-color: #ffff00; }
body.hochkontrast .gk-begriff:hover, body.hochkontrast .gk-begriff:focus { background-color: #1a1a1a; }
.gk-begriff-erklaerung {
  display: block;
  margin: 12px 0 16px 0;
  padding: 16px 20px;
  background-color: #fff6f0;
  border-left: 5px solid var(--cd-koralle);
  border-radius: 0 var(--cd-radius) var(--cd-radius) 0;
  font-size: 0.95rem;
}
.gk-begriff-erklaerung[hidden] { display: none; }
body.hochkontrast .gk-begriff-erklaerung { background-color: #111; border-left-color: #ff9900; color: #ffff00; }
.gk-be-titel {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--cd-koralle-tief);
  margin-bottom: 6px;
}
body.hochkontrast .gk-be-titel { color: #ff9900; }
.gk-be-text { display: block; line-height: 1.6; }

/* =============================================
   LERNHILFEN – SELBST-CHECK
   ============================================= */
.gk-check {
  margin: 56px 0 8px 0;
  padding: 32px 30px;
  background: linear-gradient(135deg, var(--cd-petrol-hell) 0%, #fdeeea 100%);
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius-gross);
}
body.hochkontrast .gk-check { background: #111; border-color: #ffff00; }
.gk-check-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--cd-koralle-tief); margin-bottom: 8px;
}
body.hochkontrast .gk-check-eyebrow { color: #ff9900; }
.gk-check-kopf h2 {
  font-family: 'Montserrat', sans-serif;
  border: none; padding: 0; margin: 0 0 10px 0;
  font-size: 1.5rem; font-weight: 800; color: var(--cd-schiefer); letter-spacing: -0.5px;
}
body.hochkontrast .gk-check-kopf h2 { color: #ffff00; }
.gk-check-intro { font-size: 0.95rem; color: var(--cd-schiefer); margin-bottom: 8px; }
body.hochkontrast .gk-check-intro { color: #ffff00; }
.gk-frage {
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius);
  background-color: #fff;
  padding: 22px 24px;
  margin: 22px 0 0 0;
  box-shadow: var(--cd-schatten-soft);
}
body.hochkontrast .gk-frage { background-color: #000; border-color: #ffff00; }
.gk-frage-text {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cd-schiefer);
  padding: 0;
  margin-bottom: 16px;
  line-height: 1.4;
}
body.hochkontrast .gk-frage-text { color: #ffff00; }
.gk-optionen { display: flex; flex-direction: column; gap: 12px; }
.gk-option {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  text-align: left;
  min-height: 60px;
  padding: 14px 18px;
  border: 2px solid var(--cd-rahmen);
  border-radius: var(--cd-radius);
  background-color: #fff;
  color: var(--cd-schiefer);
  font-family: inherit;
  font-size: 1rem;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, transform .1s ease;
}
.gk-option:hover, .gk-option:focus {
  border-color: var(--cd-petrol);
  background-color: var(--cd-petrol-hell);
  outline: none;
  transform: translateY(-1px);
}
body.hochkontrast .gk-option { background-color: #000; color: #ffff00; border-color: #777; }
body.hochkontrast .gk-option:hover, body.hochkontrast .gk-option:focus { border-color: #ffff00; background-color: #1a1a1a; }
.gk-option-marke {
  flex-shrink: 0;
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 2px solid var(--cd-rahmen);
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 0.9rem;
}
.gk-option-text { flex: 1; line-height: 1.4; }
.gk-option-richtig {
  border-color: var(--cd-petrol);
  background-color: #e6f5ec;
}
.gk-option-richtig .gk-option-marke { background-color: var(--cd-petrol); border-color: var(--cd-petrol); color: #fff; }
body.hochkontrast .gk-option-richtig { background-color: #002200; border-color: #00ff66; }
body.hochkontrast .gk-option-richtig .gk-option-marke { background-color: #00ff66; color: #000; border-color: #00ff66; }
.gk-option-nochmal { border-color: var(--cd-koralle); background-color: #fff3ef; }
.gk-option-nochmal .gk-option-marke { border-color: var(--cd-koralle-tief); color: var(--cd-koralle-tief); }
body.hochkontrast .gk-option-nochmal { background-color: #2a1500; border-color: #ff9900; }
.gk-option-aus { opacity: 0.5; cursor: default; }
.gk-option[disabled] { cursor: default; }
.gk-rueck {
  margin: 14px 0 0 0;
  padding: 12px 16px;
  border-radius: var(--cd-radius);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
}
.gk-rueck-lob { background-color: #e6f5ec; color: #1c6b41; }
.gk-rueck-tipp { background-color: #fff3ef; color: var(--cd-koralle-tief); }
body.hochkontrast .gk-rueck-lob { background-color: #002200; color: #00ff66; border: 1px solid #00ff66; }
body.hochkontrast .gk-rueck-tipp { background-color: #2a1500; color: #ff9900; border: 1px solid #ff9900; }
.gk-check-abschluss {
  margin-top: 24px;
  padding: 18px 22px;
  background-color: var(--cd-petrol);
  color: #fff;
  border-radius: var(--cd-radius);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  text-align: center;
}
body.hochkontrast .gk-check-abschluss { background-color: #333; color: #ffff00; border: 2px solid #ffff00; }

/* =============================================
   LERNHILFEN – WEITERMACHEN-BAND (Startseite)
   ============================================= */
.gk-weiter-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  margin-bottom: 26px;
  padding: 18px 22px;
  background-color: #fff;
  border: 2px solid var(--cd-petrol);
  border-radius: var(--cd-radius-gross);
  box-shadow: var(--cd-schatten-soft);
}
body.hochkontrast .gk-weiter-band { background-color: #000; border-color: #ffff00; }
.gk-weiter-gruss {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--cd-schiefer);
}
body.hochkontrast .gk-weiter-gruss { color: #ffff00; }
.gk-weiter-info { font-size: 0.95rem; color: var(--cd-schiefer); flex: 1 1 200px; }
.gk-weiter-info strong { color: var(--cd-petrol-tief); }
body.hochkontrast .gk-weiter-info, body.hochkontrast .gk-weiter-info strong { color: #ffff00; }
.gk-weiter-knopf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  padding: 14px 28px;
  background-color: var(--cd-petrol);
  color: #fff;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  border-radius: var(--cd-radius);
  box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.gk-weiter-knopf:hover, .gk-weiter-knopf:focus {
  background-color: var(--cd-petrol-tief);
  transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}
body.hochkontrast .gk-weiter-knopf { background-color: #333; color: #ffff00; border: 2px solid #ffff00; }

/* =============================================
   KOPF-AKTIONEN (rechts): Suche · Anmelden/Abmelden · Einstellungen
   Lösen die alte .bf-werkzeuge-Leiste ab. Aufbau via barrierefreiheit.js
   ============================================= */
.kopf-aktionen {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-wrap: wrap;
}
.kopf-akt {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 10px 18px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--cd-petrol);
  background-color: #fff;
  border: 2px solid var(--cd-petrol);
  border-radius: 14px;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, transform .15s ease;
}
.kopf-akt:hover, .kopf-akt:focus {
  background-color: var(--cd-petrol-hell);
  transform: translateY(-1px);
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}
.kopf-akt .kopf-ico { flex-shrink: 0; }
.kopf-akt[aria-current="page"] {
  background-color: var(--cd-petrol-hell);
  border-color: var(--cd-petrol);
  color: var(--cd-petrol-tief);
}
/* Anmelden = einladender Hauptknopf */
.kopf-anmelden { background-color: var(--cd-petrol); color: #fff; }
.kopf-anmelden:hover, .kopf-anmelden:focus { background-color: var(--cd-petrol-tief); }
/* Abmelden = ruhiger, korallener Umriss */
.kopf-abmelden { color: var(--cd-koralle-tief); border-color: var(--cd-koralle); }
.kopf-abmelden:hover, .kopf-abmelden:focus { background-color: #fff3ef; }
/* Einstellungen = neutraler Umriss */
.kopf-einstellungen { color: var(--cd-schiefer); border-color: var(--cd-rahmen); }
.kopf-einstellungen:hover, .kopf-einstellungen:focus { border-color: var(--cd-petrol); background-color: var(--cd-petrol-hell); }

body.hochkontrast .kopf-akt { background-color: #000; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .kopf-akt:hover, body.hochkontrast .kopf-akt:focus { background-color: #1a1a1a; }
body.hochkontrast .kopf-anmelden { background-color: #333; color: #ffff00; }
body.hochkontrast .kopf-abmelden { color: #ff9900; border-color: #ff9900; }
body.hochkontrast .kopf-akt[aria-current="page"] { background-color: #1a1a1a; border-color: #ffff00; color: #ffff00; }

@media (max-width: 720px) {
  .kopf-aktionen { gap: 6px; }
  .kopf-akt { padding: 8px 12px; font-size: 0.8rem; min-height: 44px; }
}

/* =============================================
   STARTSEITE – kein Unterschied je nach Login
   ============================================= */

/* =============================================
   KURS-VORSCHAU (nicht angemeldet)
   ============================================= */
.gk-vorschau-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  margin: 8px 0 24px 0;
  padding: 20px 26px;
  background: linear-gradient(135deg, var(--cd-petrol-hell) 0%, #fdeeea 100%);
  border: 2px solid var(--cd-petrol);
  border-radius: var(--cd-radius-gross);
}
body.hochkontrast .gk-vorschau-band { background: #111; border-color: #ffff00; }
.gk-vorschau-text {
  flex: 1 1 260px;
  font-size: 1rem;
  color: var(--cd-schiefer);
}
.gk-vorschau-text strong { font-family: 'Montserrat', sans-serif; }
body.hochkontrast .gk-vorschau-text, body.hochkontrast .gk-vorschau-text strong { color: #ffff00; }
.gk-vorschau-knopf {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 60px; padding: 14px 28px;
  background-color: var(--cd-petrol); color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: 1rem; font-weight: 700;
  text-decoration: none; border-radius: var(--cd-radius); box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.gk-vorschau-knopf:hover, .gk-vorschau-knopf:focus {
  background-color: var(--cd-petrol-tief); transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle); outline-offset: 2px;
}
body.hochkontrast .gk-vorschau-knopf { background-color: #333; color: #ffff00; border: 2px solid #ffff00; }

/* =============================================
   EINSTELLUNGEN-SEITE (einstellungen.html)
   ============================================= */
.einst-seite { max-width: 760px; margin: 0 auto; }
.einst-intro { font-size: 1.05rem; color: var(--cd-schiefer); margin-bottom: 8px; }
body.hochkontrast .einst-intro { color: #ffff00; }
.einst-gruppe {
  background: #fff;
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius-gross);
  padding: 28px 30px;
  margin: 24px 0;
  box-shadow: var(--cd-schatten-soft);
}
body.hochkontrast .einst-gruppe { background: #000; border-color: #ffff00; }
.einst-gruppe h2 {
  font-family: 'Montserrat', sans-serif;
  border: none; padding: 0; margin: 0 0 8px 0;
  font-size: 1.3rem; font-weight: 800; color: var(--cd-schiefer); letter-spacing: -0.4px;
}
body.hochkontrast .einst-gruppe h2 { color: #ffff00; }
.einst-erkl { margin: 0 0 18px 0; font-size: 0.98rem; color: var(--cd-schiefer); opacity: 0.92; }
body.hochkontrast .einst-erkl { color: #ffff00; opacity: 1; }
.einst-zeile { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.einst-knopf {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 64px; min-width: 64px; padding: 16px 28px;
  border: 2px solid var(--cd-petrol); border-radius: var(--cd-radius);
  background: var(--cd-petrol); color: #fff;
  font-family: 'Montserrat', sans-serif; font-size: 1.05rem; font-weight: 700;
  cursor: pointer; box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.einst-knopf:hover, .einst-knopf:focus {
  background: var(--cd-petrol-tief); transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle); outline-offset: 2px;
}
.einst-knopf-breit { width: 100%; }
body.hochkontrast .einst-knopf { background: #333; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .einst-knopf:hover { background: #555; }

/* Fortschritt zurücksetzen */
.einst-knopf-koralle { background: var(--cd-koralle); border-color: var(--cd-koralle); color: #fff; }
.einst-knopf-koralle:hover, .einst-knopf-koralle:focus { background: var(--cd-koralle-tief); border-color: var(--cd-koralle-tief); }
.einst-knopf-hell { background: #fff; color: var(--cd-schiefer); border-color: var(--cd-rahmen); }
.einst-knopf-hell:hover, .einst-knopf-hell:focus { background: var(--cd-petrol-hell); border-color: var(--cd-petrol); }
.einst-reset-box {
  margin-top: 18px; padding: 20px 22px;
  border: 2px solid var(--farbe-warnung-rahmen); border-radius: var(--cd-radius);
  background: var(--farbe-warnung-hintergrund);
}
.einst-reset-frage { margin: 0 0 14px; font-weight: 700; }
.einst-reset-status {
  margin-top: 18px; padding: 16px 20px;
  border: 2px solid var(--cd-petrol); border-radius: var(--cd-radius);
  background: var(--cd-petrol-hell); font-weight: 700;
}
body.hochkontrast .einst-knopf-koralle { background: #333; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .einst-knopf-koralle:hover { background: #555; }
body.hochkontrast .einst-knopf-hell { background: #000; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .einst-knopf-hell:hover { background: #333; }
body.hochkontrast .einst-reset-box { background: #111; border-color: #ff9900; }
body.hochkontrast .einst-reset-status { background: #111; border-color: #ffff00; color: #ffff00; }

/* Textabstand-Modus „Mehr Abstand" – nur im Hauptinhalt, Kopf/Fuß bleiben unberührt */
body.mehr-abstand { --zeilenabstand: 2.15; }
body.mehr-abstand main p,
body.mehr-abstand main li,
body.mehr-abstand main dd,
body.mehr-abstand main .einst-erkl {
  letter-spacing: 0.06em;
  word-spacing: 0.16em;
}
body.mehr-abstand main p { margin-top: 1.3em; margin-bottom: 1.3em; }
body.mehr-abstand main li { margin-bottom: 0.7em; }
.einst-wert {
  font-family: 'Montserrat', sans-serif; font-size: 1.8rem; font-weight: 800;
  color: var(--cd-petrol-tief); min-width: 3ch; text-align: center;
}
body.hochkontrast .einst-wert { color: #ffff00; }
.einst-vorschau {
  margin-top: 18px; padding: 20px 24px;
  border: 2px dashed var(--cd-rahmen); border-radius: var(--cd-radius);
  background: var(--cd-petrol-hell);
}
body.hochkontrast .einst-vorschau { background: #111; border-color: #ffff00; }
.einst-vorschau-titel {
  font-family: 'Montserrat', sans-serif; font-size: 0.75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.5px; color: var(--cd-petrol-tief); margin-bottom: 8px;
}
body.hochkontrast .einst-vorschau-titel { color: #ff9900; }
.einst-zurueck {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 8px;
  min-height: 56px; padding: 14px 26px;
  background: #fff; color: var(--cd-petrol-tief);
  border: 2px solid var(--cd-petrol); border-radius: var(--cd-radius);
  font-family: 'Montserrat', sans-serif; font-weight: 700; text-decoration: none;
  transition: background-color .2s ease, transform .15s ease;
}
.einst-zurueck:hover, .einst-zurueck:focus { background: var(--cd-petrol-hell); transform: translateY(-1px); outline: 3px solid var(--cd-koralle); outline-offset: 2px; }
body.hochkontrast .einst-zurueck { background: #000; color: #ffff00; border-color: #ffff00; }

/* =============================================
   EINSTELLUNGEN-SEITE: breites Layout wie die übrigen Seiten
   ============================================= */
.einst-seite { max-width: var(--bahn); }
.einst-raster {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: start;
}
.einst-raster .einst-gruppe { margin: 0; }
.einst-gruppe-voll { grid-column: 1 / -1; }
.einst-knopf-breit { max-width: 520px; }
@media (max-width: 760px) { .einst-raster { grid-template-columns: 1fr; } }

/* =============================================
   FIX: Anmelden-Knopf bleibt immer gut lesbar (weißer Text auf
   Petrol) – auch wenn er die aktuelle Seite ist oder beim Hover.
   ============================================= */
.kopf-anmelden,
.kopf-anmelden[aria-current="page"] {
  background-color: var(--cd-petrol);
  color: #fff;
  border-color: var(--cd-petrol);
}
.kopf-anmelden:hover,
.kopf-anmelden:focus {
  background-color: var(--cd-petrol-tief);
  color: #fff;
}
body.hochkontrast .kopf-anmelden,
body.hochkontrast .kopf-anmelden[aria-current="page"] {
  background-color: #333; color: #ffff00; border-color: #ffff00;
}
body.hochkontrast .kopf-anmelden:hover,
body.hochkontrast .kopf-anmelden:focus {
  background-color: #555; color: #ffff00;
}

/* =============================================
   SLIDESHOW-ANSICHT für Kapitel
   ============================================= */
/* Umschalter (oben rechts) */
.gk-ansicht-leiste {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 20px 0;
}
.gk-ansicht-knopf {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 22px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--cd-petrol-tief);
  background-color: #fff;
  border: 2px solid var(--cd-petrol);
  border-radius: var(--cd-radius);
  cursor: pointer;
  transition: background-color .2s ease, transform .15s ease;
}
.gk-ansicht-knopf:hover, .gk-ansicht-knopf:focus {
  background-color: var(--cd-petrol-hell); transform: translateY(-1px);
  outline: 3px solid var(--cd-koralle); outline-offset: 2px;
}
body.hochkontrast .gk-ansicht-knopf { background-color: #000; color: #ffff00; border-color: #ffff00; }

/* Folien */
.gk-slides.gk-slideshow .gk-slide { display: none; }
.gk-slides.gk-slideshow .gk-slide.gk-slide-aktiv { display: block; }
.gk-slides.gk-slideshow .gk-slide.gk-slide-aktiv {
  /* etwas Luft, damit eine kurze Folie nicht "verloren" wirkt */
  min-height: 40vh;
}
.gk-slides.gk-ganz .gk-slide { display: block; }
.gk-slides.gk-ganz .gk-slide + .gk-slide {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 2px solid var(--cd-rahmen);
}
/* In der Slideshow steht die Abschnitts-Überschrift schön oben ohne großen Abstand */
.gk-slides.gk-slideshow .gk-slide > h2:first-child { margin-top: 8px; }

/* Steuerleiste unten: Zurück · Position · Weiter */
.gk-slide-steuerung {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin: 28px 0 8px 0;
  padding-top: 24px;
  border-top: 2px solid var(--cd-rahmen);
}
body.hochkontrast .gk-slide-steuerung { border-top-color: #ffff00; }
.gk-slide-knopf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 64px;
  min-width: 150px;
  padding: 16px 30px;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  background-color: var(--cd-petrol);
  border: 2px solid transparent;
  border-radius: var(--cd-radius);
  cursor: pointer;
  box-shadow: var(--cd-schatten-soft);
  transition: background-color .2s ease, transform .15s ease;
}
.gk-slide-knopf:hover, .gk-slide-knopf:focus {
  background-color: var(--cd-petrol-tief); transform: translateY(-2px);
  outline: 3px solid var(--cd-koralle); outline-offset: 2px;
}
.gk-slide-zurueck { background-color: #fff; color: var(--cd-petrol-tief); border-color: var(--cd-petrol); }
.gk-slide-zurueck:hover, .gk-slide-zurueck:focus { background-color: var(--cd-petrol-hell); }
.gk-slide-knopf[disabled] {
  opacity: 0.4; cursor: default; transform: none; box-shadow: none;
}
.gk-slide-knopf[disabled]:hover { background-color: #fff; transform: none; outline: none; }
.gk-slide-weiter-kapitel { background-color: var(--cd-koralle-tief); }
.gk-slide-weiter-kapitel:hover, .gk-slide-weiter-kapitel:focus { background-color: #c95757; }
.gk-slide-pos {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--cd-schiefer);
  flex: 1 1 auto;
  text-align: center;
}
body.hochkontrast .gk-slide-pos { color: #ffff00; }
body.hochkontrast .gk-slide-knopf { background-color: #333; color: #ffff00; border-color: #ffff00; }
body.hochkontrast .gk-slide-zurueck { background-color: #000; color: #ffff00; }
body.hochkontrast .gk-slide-weiter-kapitel { background-color: #5a2d00; color: #ff9900; border-color: #ff9900; }

@media (max-width: 600px) {
  .gk-slide-knopf { min-width: 0; flex: 1 1 44%; padding: 16px 18px; font-size: 0.95rem; }
  .gk-slide-pos { order: -1; flex-basis: 100%; }
}

/* =============================================
   KOMPAKTER KAPITEL-KOPFBEREICH
   Titel · schlanker Fortschritt · eine Werkzeugleiste (Vorlesen + Ansicht).
   Damit beginnt der eigentliche Inhalt deutlich weiter oben.
   ============================================= */
.kapitel-kopf { padding-top: 32px; margin-bottom: 18px; padding-bottom: 14px; }

/* Fortschritt: schlanke Zeile direkt unter dem Titel */
.fortschritt-container--auto {
  margin: 0 0 14px 0;
  padding: 8px 16px;
  border-radius: var(--cd-radius);
  border: 1px solid var(--cd-rahmen);
  background-color: var(--cd-petrol-hell);
}
.fortschritt-container--auto .fortschritt-info { font-size: 0.7rem; margin-bottom: 5px; }
.fortschritt-container--auto .fortschrittsbalken-huelle { height: 8px; }

/* Werkzeugleiste schlanker; Umschalter rechts in derselben Zeile */
.gk-vorlesen { margin: 0 0 22px 0; padding: 12px 16px; }
.gk-vorlesen .gk-ansicht-knopf-inline {
  margin-left: auto;
  min-height: 56px;
  font-size: 0.85rem;
  padding: 10px 18px;
}

/* =============================================
   KOMPAKTE KOPF-LESELEISTE
   Lesezeit-Chip + Fortschritt + Vorlesen + Ansicht
   in EINER Zeile – spart viel Platz, bleibt gut tippbar
   (Knöpfe mit Text, min. 48px Höhe).
   ============================================= */
.gk-leseleiste {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin: 0 0 24px 0;
  padding: 10px 16px;
  background-color: var(--cd-petrol-hell);
  border: 1px solid var(--cd-rahmen);
  border-radius: var(--cd-radius);
}
body.hochkontrast .gk-leseleiste { background-color: #111; border-color: #ffff00; }

/* Chip hebt sich mit weißem Grund ab, kein oberer Abstand */
.gk-leseleiste .lesezeit-badge { margin-top: 0; background-color: #fff; }

/* Fortschritt: nimmt die Mitte ein, ohne eigenen Rahmen/Hintergrund */
.gk-leseleiste .fortschritt-container--auto {
  flex: 1 1 200px;
  min-width: 170px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}
.gk-leseleiste .fortschritt-info { flex-wrap: wrap; gap: 2px 10px; margin-bottom: 4px; }
.gk-leseleiste .fortschrittsbalken-huelle { height: 8px; }
body.hochkontrast .gk-leseleiste .fortschritt-container--auto { border: none; }

/* Vorlese-Leiste: kein eigener Kasten mehr, kompaktere Knöpfe */
.gk-leseleiste .gk-vorlesen {
  margin: 0;
  padding: 0;
  gap: 10px;
  background: transparent;
  border: none;
  flex: 0 1 auto;
}
body.hochkontrast .gk-leseleiste .gk-vorlesen { background: transparent; border: none; }
.gk-leseleiste .gk-vl-knopf {
  min-height: 48px;
  min-width: 0;
  padding: 10px 18px;
  font-size: 0.9rem;
}
.gk-leseleiste .gk-vl-status { font-size: 0.8rem; }
.gk-leseleiste .gk-ansicht-knopf,
.gk-leseleiste .gk-ansicht-knopf-inline {
  margin-left: 0;
  min-height: 48px;
  padding: 10px 16px;
  font-size: 0.85rem;
}
.gk-leseleiste .gk-ansicht-leiste { margin: 0; }

@media (max-width: 600px) {
  .gk-leseleiste { gap: 10px 12px; }
  .gk-leseleiste .gk-vorlesen { flex-basis: 100%; flex-wrap: wrap; }
}

/* Stimmenauswahl auf der Einstellungen-Seite */
.einst-label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.98rem;
  color: var(--cd-schiefer);
}
body.hochkontrast .einst-label { color: #ffff00; }
.einst-stimme { min-height: 56px; max-width: 380px; flex: 1 1 240px; }

/* =============================================
   ABSCHNITTS-ICONS (eigene Outline-SVGs)
   ============================================= */
.gk-abschnitt-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  color: var(--cd-petrol);
  vertical-align: -0.3em;
  margin-right: 10px;
  flex-shrink: 0;
}
.gk-abschnitt-icon svg { width: 100%; height: 100%; display: block; }
body.hochkontrast .gk-abschnitt-icon { color: #ffff00; }

/* Kapiteltitel-Symbol */
.kapitel-kopf h1 .gk-abschnitt-icon { width: 1.2em; height: 1.2em; }

/* In der Slideshow: großes Symbol als ruhige Kachel über der Überschrift */
.gk-slides.gk-slideshow .gk-slide > h2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.gk-slides.gk-slideshow .gk-slide > h2 .gk-abschnitt-icon {
  width: 44px;
  height: 44px;
  padding: 12px;
  margin: 0 0 14px 0;
  vertical-align: initial;
  background-color: var(--cd-petrol-hell);
  border-radius: 18px;
  box-sizing: content-box;
}
body.hochkontrast .gk-slides.gk-slideshow .gk-slide > h2 .gk-abschnitt-icon {
  background-color: #111;
  border: 1px solid #ffff00;
}


/* ════════════════════════════════════════════════════════════
   KAPITEL-HERO – Introtext links, Bild rechts
   ════════════════════════════════════════════════════════════ */

.kapitel-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
  margin: 2rem 0 2.5rem;
}

/* Introtext prominenter: größer, mit Petrol-Akzentlinie */
.kapitel-hero .einleitung {
  font-size: 1.15em;
  line-height: 1.75;
  color: var(--farbe-text);
  border-left: 5px solid var(--cd-petrol);
  padding-left: 1.4rem;
  margin: 0;
  font-weight: 500;
}

/* Bild */
.kapitel-hero-bild {
  margin: 0;
}

.kapitel-hero-bild img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
  object-fit: cover;
  aspect-ratio: 3 / 2;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10);
}

/* Hochkontrast */
body.hochkontrast .kapitel-hero .einleitung {
  border-left-color: #ffff00;
  color: #ffffff;
}
body.hochkontrast .kapitel-hero-bild img {
  filter: grayscale(40%) contrast(1.1);
  box-shadow: 0 0 0 2px #ffff00;
}

/* Mobile: untereinander, Bild zuerst */
@media (max-width: 720px) {
  .kapitel-hero {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .kapitel-hero-bild {
    order: -1;
  }
  .kapitel-hero .einleitung {
    font-size: 1.05em;
  }
}

/* In der Slideshow: Hero bleibt zweispaltig auf dem ersten Slide */
.gk-slides.gk-slideshow .gk-slide .kapitel-hero {
  grid-template-columns: 1fr 1fr;
}

/* =======================================================
   SEITEN-FOOTER – einzeilig, 2-spaltig
   ======================================================= */
/* =======================================================
   DRUCK-STYLESHEET  (@media print)
   Ziel: Kapitel und v. a. das Notfallblatt sollen sich
   sauber ausdrucken lassen. Bedien-Elemente verschwinden,
   der Text wird schwarz auf weiß, der Slideshow-Modus wird
   für den Druck aufgehoben (ALLE Folien werden sichtbar).
   ======================================================= */
@media print {
  /* Grundflächen: immer schwarz auf weiß – auch wenn der
     Hochkontrast-Modus (gelb auf schwarz) aktiv ist.        */
  html, body,
  body.hochkontrast {
    background: #fff !important;
    color: #000 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    padding-top: 0 !important;   /* überschreibt die per JS gesetzte Kopfhöhe */
  }
  html { font-size: 12pt !important; }  /* kompakter, aber gut lesbar auf Papier */
  * { box-shadow: none !important; text-shadow: none !important; }

  /* Bedien- und Navigationselemente ausblenden */
  .kopf-fixiert,
  .bf-werkzeuge,
  .gk-skip,
  .fortschritt-container,
  #gk-fortschritt,
  .kapitel-navigation,
  .gk-vorlesen,
  .gk-vl-knopf,
  .gk-slide-steuerung,
  .gk-ansicht-knopf,
  .gk-check,
  .gk-weiter-band,
  .einstieg-schaltflaeche,
  .seiten-fuss .fuss-nav {
    display: none !important;
  }

  /* Slideshow aufheben: alle Folien zeigen, nicht nur die aktive */
  .gk-slides.gk-slideshow .gk-slide,
  .gk-slides .gk-slide {
    display: block !important;
  }
  .gk-slides .gk-slide + .gk-slide {
    margin-top: 1.5em;
    padding-top: 1.5em;
    border-top: 1px solid #999;
  }

  /* Links schwarz und unterstrichen (Farbe trägt auf Papier keine Info) */
  a { color: #000 !important; text-decoration: underline; }

  /* Info-Kästen behalten eine Kontur, damit ihre Struktur auch
     auf Schwarz-Weiß-Druckern erkennbar bleibt.               */
  .analogie, .warnung, .tipp, .hinweis, .merksatz,
  .gk-karte, .einstieg-box, .einleitung {
    background: #fff !important;
    color: #000 !important;
    border: 1.5px solid #000 !important;
  }

  /* Bilder nicht über den Seitenrand hinaus, nicht umbrechen */
  img { max-width: 100% !important; height: auto; }
  figure, img, .gk-karte, .warnung, .tipp, .hinweis, .merksatz,
  ol.schritte li, ul.liste li {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  h1, h2, h3 { page-break-after: avoid; break-after: avoid; color: #000 !important; }

  /* Große Kapitel-Kopfbilder auf Papier verkleinern */
  .kapitel-hero-bild img { max-height: 8cm; width: auto; }
}

.seiten-fuss {
  margin-top: 64px;
  padding: 0;
  border-top: 1px solid var(--cd-rahmen);
  background-color: var(--farbe-navigation, #fcfbfa);
}

/* Flex-Layout explizit für alle Kontexte */
.fuss-innen {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  box-sizing: border-box;
  padding-top: 16px;
  padding-bottom: 16px;
}

/* voll-breite: Footer ist full-width → Container zentriert sich selbst */
body.voll-breite .fuss-innen {
  max-width: var(--bahn, 1480px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rand, 48px);
  padding-right: var(--rand, 48px);
}

/* data-gk-schutz: body hat bereits Padding und max-width */
body[data-gk-schutz]:not(.voll-breite) .fuss-innen {
  padding-left: 0;
  padding-right: 0;
  width: 100%;
}

/* Copyright */
.fuss-copy {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8rem;
  color: #6b7a8d;
  margin: 0;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Link-Navigation */
.fuss-nav {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  flex-shrink: 0;
}

/* Links: alle States explizit überschreiben */
.fuss-nav a,
.fuss-nav a:link,
.fuss-nav a:visited {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8rem;
  color: #4a5568 !important;
  text-decoration: none !important;
  padding: 8px 14px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border-radius: 6px;
  transition: color 0.15s, background-color 0.15s;
}

.fuss-nav a + a {
  border-left: 1px solid #dde1e7;
}

.fuss-nav a:hover,
.fuss-nav a:hover:link,
.fuss-nav a:hover:visited {
  color: var(--cd-petrol-tief) !important;
  background-color: var(--cd-petrol-hell);
  text-decoration: none !important;
}

.fuss-nav a:focus-visible {
  outline: 3px solid var(--cd-petrol);
  outline-offset: 1px;
  color: var(--cd-petrol-tief) !important;
}

/* Hochkontrast */
body.hochkontrast .seiten-fuss {
  background-color: #0c0c0c;
  border-top-color: #ffff00;
}
body.hochkontrast .fuss-copy { color: #aaaaaa; }
body.hochkontrast .fuss-nav a,
body.hochkontrast .fuss-nav a:link,
body.hochkontrast .fuss-nav a:visited { color: #cccccc !important; }
body.hochkontrast .fuss-nav a + a { border-left-color: #444; }
body.hochkontrast .fuss-nav a:hover,
body.hochkontrast .fuss-nav a:focus-visible {
  color: #ffff00 !important;
  background-color: #1a1a1a;
  outline-color: #ffff00;
}

/* Mobil: untereinander */
@media (max-width: 600px) {
  .fuss-innen {
    flex-wrap: wrap !important;
    gap: 4px 0;
  }
  .fuss-nav { order: 1; }
  .fuss-copy { order: 2; width: 100%; padding-top: 6px; }
  .fuss-nav a,
  .fuss-nav a:link,
  .fuss-nav a:visited { padding: 8px 10px; font-size: 0.78rem; }
}

/* =======================================================
   NACH-OBEN-KNOPF  (wird von barrierefreiheit.js erzeugt)
   Erscheint erst nach dem Herunterscrollen. Große Klickfläche,
   ruhiges Ein-/Ausblenden – unter prefers-reduced-motion ohne
   Bewegung. Nicht sichtbar im Druck (siehe @media print).
   ======================================================= */
.gk-nach-oben {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 60px;
  min-width: 60px;
  padding: 14px 22px;
  border: 2px solid #fff;
  border-radius: 100px;
  background: var(--cd-petrol);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--cd-schatten);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.gk-nach-oben.gk-sichtbar { opacity: 1; visibility: visible; transform: translateY(0); }
.gk-nach-oben:hover,
.gk-nach-oben:focus-visible {
  background: var(--cd-petrol-tief);
  outline: 3px solid var(--cd-koralle);
  outline-offset: 2px;
}
.gk-nach-oben .gk-pfeil { font-size: 1.25em; line-height: 1; }
body.hochkontrast .gk-nach-oben { background: #000; color: #ffff00; border-color: #ffff00; box-shadow: none; }
body.hochkontrast .gk-nach-oben:hover,
body.hochkontrast .gk-nach-oben:focus-visible { background: #333; outline-color: #ffff00; }
@media (prefers-reduced-motion: reduce) {
  .gk-nach-oben { transition: none; transform: none; }
  .gk-nach-oben.gk-sichtbar { transform: none; }
}
@media (max-width: 600px) {
  .gk-nach-oben { right: 14px; bottom: 14px; padding: 12px 16px; }
  .gk-nach-oben .gk-label { display: none; }
}
@media print { .gk-nach-oben { display: none !important; } }


/* =======================================================
   RECHTSSEITEN – nutzen body[data-gk-schutz] für Layout
   ======================================================= */

.rechts-seite {
  padding-top: 40px;
  padding-bottom: 40px;
}

.rechts-seite h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 800;
  color: var(--cd-schiefer);
  margin-bottom: 8px;
}

.rechts-seite .rechts-untertitel {
  font-size: 1rem;
  color: var(--cd-petrol-tief);
  margin-bottom: 40px;
  opacity: 0.85;
}

.rechts-seite h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--cd-petrol-tief);
  margin: 40px 0 10px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--cd-petrol-hell);
}

.rechts-seite h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--cd-schiefer);
  margin: 24px 0 8px;
}

.rechts-seite p,
.rechts-seite li {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--cd-schiefer);
}

.rechts-seite ul,
.rechts-seite ol {
  padding-left: 1.4em;
  margin: 10px 0 16px;
}

.rechts-seite li { margin-bottom: 6px; }

.rechts-seite a {
  color: var(--cd-petrol-tief);
  text-decoration: underline;
}
.rechts-seite a:hover,
.rechts-seite a:focus {
  color: var(--cd-petrol);
  outline: 3px solid var(--cd-petrol);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Adressblock */
.rechts-adresse {
  background-color: var(--cd-petrol-hell);
  border-left: 5px solid var(--cd-petrol);
  border-radius: 0 var(--cd-radius) var(--cd-radius) 0;
  padding: 20px 24px;
  margin: 16px 0 32px;
  font-style: normal;
}
.rechts-adresse p { margin: 2px 0; }

/* Stand-Zeile */
.rechts-stand {
  font-size: 0.82rem;
  color: var(--cd-schiefer);
  opacity: 0.6;
  margin-top: 56px;
  padding-top: 16px;
  border-top: 1px solid var(--cd-rahmen);
}

/* Hochkontrast */
body.hochkontrast .rechts-seite h1,
body.hochkontrast .rechts-seite h2,
body.hochkontrast .rechts-seite h3,
body.hochkontrast .rechts-seite p,
body.hochkontrast .rechts-seite li { color: #ffff00; }
body.hochkontrast .rechts-seite h2 { border-bottom-color: #ffff00; }
body.hochkontrast .rechts-adresse { background-color: #111; border-left-color: #ffff00; }
body.hochkontrast .rechts-seite a { color: #ffff00; }
body.hochkontrast .rechts-stand { color: #ffff00; border-top-color: #ffff00; }