/* Binoro — „Stadt im Tagesverlauf"
   Abendstadt-Designsystem (Prototyp design/04-abendstadt.html) für das ganze Portal.
   Vier Zustände über data-zeit auf <html>: morgen / tag / abend (Basis) / nacht.
   WICHTIG: Die Legacy-Token-Namen (--papier, --tinte, --plan …) bleiben definiert,
   weil die Tool-Seiten (nebenkosten-rechner, kautions-check …) sie in ihren
   Inline-Styles konsumieren — sie werden je Zustand neu belegt. */

:root {
  /* Abendstadt-Kerntokens (Abend = Basis) */
  --nacht: #0A1322;
  --nacht2: #101E33;
  --himmel3: #0D1930;
  --warmweiss: #EDE9DC;
  --gedimmt: #9BA3B2;
  --fenster: #FFB454;
  --fenster-glow: rgba(255, 180, 84, .35);
  --akzent-rgb: 255, 180, 84;
  --haus: #060C18;
  --fensteraus: #1C2A44;
  --stern: #E8E4D8;
  --mond-loch: #0A1322;
  --sonnenfarbe: #FFD75E;
  --panel: rgba(20, 34, 58, .85);
  --btn-text: #1A1206;

  /* Legacy-Namen → Abend-Werte (von Tool-Seiten konsumiert!) */
  --papier: #0A1322;
  --karte: #14223A;
  --tinte: #EDE9DC;
  --tinte-soft: #9BA3B2;
  --linie: rgba(232, 228, 216, .14);
  --plan: #FFB454;
  --plan-tief: #E0983A;
  --plan-hell: rgba(255, 180, 84, .12);
  --messing: #D8B36A;
  --alarm: #FF8A7A;
  --alarm-hell: rgba(255, 122, 107, .14);

  /* Ampel-Semantik (zentral; überstimmt lokale :root-Definitionen der Tools,
     weil :root[data-zeit] spezifischer ist als :root) */
  --gruen: #7DD8A0;
  --gruen-bg: rgba(125, 216, 160, .14);
  --gelb: #FFD75E;
  --gelb-bg: rgba(255, 215, 94, .14);
  --rot: #FF8A7A;
  --rot-bg: rgba(255, 122, 107, .14);

  /* Fortschritts-Rampe im Service-Index (Fuß bleibt in allen Zuständen dunkel) */
  --fs-null: #6E7787;
  --fs-start: #8FA8CE;
  --fs-mitte: #C3D3EC;
  --fs-weit: #D8B36A;
  --fuss-bg: #060D1A;
  --fuss-text: #B9C3CC;
  --fuss-head: #8C99A4;
  --fuss-linie: #1D2A40;

  --radius: 12px;
  --schatten: 0 1px 2px rgba(0, 0, 0, .25), 0 10px 30px rgba(0, 0, 0, .35);
  --display: 'Fraunces', Georgia, serif;
  --lesen: 'Outfit', 'Avenir Next', 'Helvetica Neue', sans-serif;
}

/* ── Morgen: Sonnenaufgang ── */
:root[data-zeit="morgen"] {
  --nacht: #2C3E5C;
  --nacht2: #8A5A72;
  --himmel3: #E8A57C;
  --warmweiss: #F5EFE4;
  --gedimmt: #CDC5D2;
  --haus: #1A2436;
  --fensteraus: #2E3B54;
  --mond-loch: #2C3E5C;
  --sonnenfarbe: #FF9E4A;
  --panel: rgba(46, 59, 84, .85);
  --papier: #2C3E5C;
  --karte: #33415C;
  --tinte: #F5EFE4;
  --tinte-soft: #CDC5D2;
  --linie: rgba(240, 230, 215, .18);
  --plan-hell: rgba(255, 180, 84, .14);
  --alarm: #FF9A8C;
  --alarm-hell: rgba(255, 154, 140, .16);
  --gruen: #8FE0AE;
  --gelb: #FFDE7A;
  --rot: #FF9A8C;
}

/* ── Tag: Light-Mode ── */
:root[data-zeit="tag"] {
  --nacht: #BBD7EA;
  --nacht2: #E4EEF5;
  --himmel3: #FDF6E8;
  --warmweiss: #22303F;
  --gedimmt: #4E5D6C;
  --fenster: #E08A00;
  --fenster-glow: rgba(224, 138, 0, .28);
  --akzent-rgb: 224, 138, 0;
  --haus: #D9E4EE;
  --fensteraus: #AFC3D3;
  --stern: transparent;
  --mond-loch: #BBD7EA;
  --panel: rgba(255, 255, 255, .88);
  --btn-text: #241800;
  --papier: #E9F0F6;
  --karte: #FFFFFF;
  --tinte: #22303F;
  --tinte-soft: #4E5D6C;
  --linie: rgba(34, 48, 63, .16);
  --plan: #E08A00;
  --plan-tief: #A96800;
  --plan-hell: rgba(224, 138, 0, .10);
  --messing: #8A6A2F;
  --alarm: #B3261E;
  --alarm-hell: rgba(179, 38, 30, .08);
  --gruen: #1E7A45;
  --gruen-bg: rgba(30, 122, 69, .10);
  --gelb: #8A6400;
  --gelb-bg: rgba(255, 215, 94, .28);
  --rot: #B3261E;
  --rot-bg: rgba(179, 38, 30, .08);
  --schatten: 0 1px 2px rgba(34, 48, 62, .08), 0 10px 30px rgba(34, 48, 62, .10);
}

/* ── Nacht: die Stadt schläft ── */
:root[data-zeit="nacht"] {
  --nacht: #050A14;
  --nacht2: #081020;
  --himmel3: #0A1526;
  --warmweiss: #E9E4D6;
  --gedimmt: #98A0B0;
  --haus: #04080F;
  --fensteraus: #111D33;
  --panel: rgba(10, 20, 38, .85);
  --papier: #050A14;
  --karte: #0E1A2E;
  --tinte: #E9E4D6;
  --tinte-soft: #98A0B0;
  --linie: rgba(232, 228, 216, .10);
}

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

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
  font-family: var(--lesen);
  font-weight: 300;
  font-size: 1.04rem;
  line-height: 1.65;
  color: var(--tinte);
  background: linear-gradient(180deg, var(--nacht) 0%, var(--nacht2) 55%, var(--himmel3) 100%) fixed, var(--papier);
  min-height: 100vh;
}

h1, h2, h3, .brand, .btn, .tag, .badge, .eyebrow, .buzzer-label,
.klingel-head, .phase, .foot-head, .blueprint-label, .dual {
  font-family: var(--display);
}
.journey, .crumbs, .switcher a { font-family: var(--lesen); }

h1 { font-size: clamp(1.9rem, 4.5vw, 3rem); line-height: 1.12; letter-spacing: -0.015em; font-weight: 600; }
h1 em, h2 em { font-style: italic; color: var(--fenster); }
h2 { font-size: clamp(1.3rem, 2.6vw, 1.7rem); line-height: 1.2; font-weight: 600; margin-bottom: 1rem; }
h3 { font-size: 1.1rem; line-height: 1.3; font-weight: 600; }
strong, b { font-weight: 500; }

a { color: var(--plan); }

.wrap { max-width: 68rem; margin: 0 auto; padding: 0 1.25rem; }
.section { margin: 3.5rem auto; }

.skip {
  position: absolute; left: -999px; top: 0; background: var(--karte); color: var(--tinte);
  padding: 0.5rem 1rem; z-index: 10;
}
.skip:focus { left: 0; }

:focus-visible { outline: 3px solid var(--fenster); outline-offset: 2px; }

/* ── Kopf ──────────────────────────────────────────────── */
.site-head {
  background: var(--panel);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--linie);
  position: sticky; top: 0; z-index: 5;
}
.head-row {
  display: flex; align-items: center; gap: 1.5rem;
  min-height: 3.75rem; flex-wrap: wrap; padding-top: 0.5rem; padding-bottom: 0.5rem;
}
.brand {
  font-weight: 600; font-size: 1.3rem; letter-spacing: 0.01em;
  color: var(--tinte); text-decoration: none;
}
.logo-i { display: inline-block; position: relative; line-height: 1; }
.logo-fenster {
  display: block; position: absolute; left: 50%; transform: translateX(-50%);
  top: .05em; width: .30em; height: .20em;
  background: var(--fenster); border-radius: 1.5px;
  box-shadow: 0 0 8px var(--fenster-glow);
}
.sr-nur { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.brand-tag {
  font-size: 0.62rem; letter-spacing: 0.08em; color: var(--tinte-soft);
  border: 1px solid var(--linie); border-radius: 99px; padding: 0.1rem 0.45rem;
  margin-left: 0.5rem; vertical-align: 2px; text-transform: none;
  font-family: var(--lesen);
}
.journey { display: flex; gap: 1.1rem; flex-wrap: wrap; margin-left: auto; }
.journey a {
  color: var(--tinte-soft); text-decoration: none; font-size: 0.92rem; font-weight: 400;
  letter-spacing: 0.02em; padding: 0.25rem 0; border-bottom: 2px solid transparent;
}
.journey a:hover { color: var(--fenster); border-bottom-color: var(--fenster); }
.notfall-link {
  color: var(--alarm); font-weight: 500; font-size: 0.92rem; text-decoration: none;
  border: 1.5px solid currentColor; border-radius: 99px; padding: 0.3rem 0.85rem;
  font-family: var(--lesen);
}
.notfall-link:hover { background: var(--alarm); color: var(--papier); }

/* ── Hero + Klingelschild (Zielgruppen-Einstieg) ───────── */
.hero {
  display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 3rem;
  align-items: center; padding-top: 4rem; padding-bottom: 4rem;
}
.eyebrow {
  font-size: 0.78rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--tinte-soft); margin-bottom: 0.9rem; font-family: var(--lesen);
}
.lede { font-size: 1.15rem; color: var(--tinte-soft); margin-top: 1.1rem; max-width: 34rem; }

.klingel {
  background: var(--karte);
  border: 1px solid var(--linie);
  border-radius: 14px;
  box-shadow: var(--schatten);
  padding: 1.5rem 1.5rem 1.1rem;
}
.klingel-head {
  font-size: 0.8rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--tinte-soft); text-align: center; font-family: var(--lesen);
  border-bottom: 1px solid var(--linie); padding-bottom: 0.8rem; margin-bottom: 0.5rem;
}
.buzzer {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 0.72rem 0.5rem; text-decoration: none; color: var(--tinte);
  border-bottom: 1px dashed var(--linie);
}
.buzzer:last-child { border-bottom: 0; }
.buzzer-btn {
  flex: 0 0 auto; width: 1.7rem; height: 2rem; border-radius: 3px;
  background: var(--fenster);
  box-shadow: 0 0 12px var(--fenster-glow);
  display: grid; place-items: center;
  font-size: 0.78rem; font-weight: 600; color: var(--btn-text);
  font-family: var(--lesen);
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.buzzer-label { font-weight: 500; font-size: 1.02rem; }
.buzzer:hover .buzzer-btn { transform: scale(1.06); box-shadow: 0 0 20px var(--fenster-glow); }
.buzzer:hover .buzzer-label { color: var(--fenster); }

/* ── Notfall-Band ─────────────────────────────────────── */
.notfall-band { background: var(--alarm-hell); border-block: 1px solid var(--alarm); }
.notfall-row {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding-top: 1rem; padding-bottom: 1rem; flex-wrap: wrap;
}
.notfall-row p { color: var(--tinte); }
.notfall-row strong { color: var(--alarm); }

.btn {
  display: inline-block; text-decoration: none; font-weight: 500; font-size: 0.95rem;
  font-family: var(--lesen);
  border-radius: 8px; padding: 0.6rem 1.4rem;
  background: var(--fenster); color: var(--btn-text);
  box-shadow: 0 0 20px var(--fenster-glow);
  transition: box-shadow .2s ease, transform .15s ease;
}
.btn:hover { box-shadow: 0 0 34px var(--fenster-glow); transform: translateY(-1px); }
.btn-notfall { background: var(--alarm); color: var(--papier); box-shadow: none; }
.btn-notfall:hover { box-shadow: 0 0 20px var(--alarm-hell); }

/* ── Karten & Grids ───────────────────────────────────── */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }

.card {
  display: flex; flex-direction: column; gap: 0.5rem;
  background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius);
  padding: 1.2rem 1.25rem 1.1rem; text-decoration: none; color: var(--tinte);
  transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.card:hover {
  border-color: rgba(var(--akzent-rgb), .5);
  transform: translateY(-3px);
  box-shadow: 0 0 30px rgba(var(--akzent-rgb), .10);
}
.card h3 { font-weight: 600; }
.card p { font-size: 0.92rem; color: var(--tinte-soft); flex-grow: 1; }
.card-big { padding: 1.8rem 1.6rem; }
.card-big h3 { font-size: 1.3rem; }

.tag {
  align-self: flex-start; font-size: 0.7rem; font-weight: 500; letter-spacing: 0.09em;
  text-transform: uppercase; color: var(--tinte-soft); font-family: var(--lesen);
  border: 1px solid var(--linie); border-radius: 4px; padding: 0.18rem 0.6rem;
}
.tag.live { color: var(--fenster); border-color: rgba(var(--akzent-rgb), .5); }

/* ── Phasen-Leiste ────────────────────────────────────── */
.section-lede { color: var(--tinte-soft); max-width: 38rem; margin-bottom: 1.4rem; }
.phasen { display: flex; gap: 0; flex-wrap: wrap; border: 1px solid var(--linie); border-radius: var(--radius); overflow: hidden; }
.phase {
  flex: 1 1 8rem; text-align: center; padding: 1rem 0.5rem; text-decoration: none;
  font-weight: 600; color: var(--tinte); background: var(--karte);
  border-right: 1px solid var(--linie); position: relative;
}
.phase:last-child { border-right: 0; }
.phase:hover { background: var(--plan-hell); color: var(--fenster); }

/* ── Seitenkopf (Hub / Service) ───────────────────────── */
.page-head { padding-top: 3rem; }
.page-head-notfall h1 { color: var(--alarm); }
.eyebrow-notfall { color: var(--alarm); }

.crumbs { font-size: 0.82rem; color: var(--tinte-soft); margin-bottom: 1.2rem; }
.crumbs a { color: var(--tinte-soft); }
.crumbs a:hover { color: var(--fenster); }

.badges { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.badge {
  font-size: 0.72rem; font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--fenster); background: var(--plan-hell); font-family: var(--lesen);
  border-radius: 99px; padding: 0.22rem 0.7rem; text-decoration: none;
}
.badge:hover { background: var(--fenster); color: var(--btn-text); }
.badge-notfall { color: var(--alarm); background: var(--alarm-hell); }
.badge-notfall:hover { background: var(--alarm); color: var(--papier); }

.dual {
  display: inline-flex; gap: 0.6rem; align-items: baseline; margin-top: 1.3rem;
  font-size: 0.9rem; color: var(--tinte-soft); font-family: var(--lesen);
  border: 1px solid var(--linie); border-radius: 99px; padding: 0.45rem 1rem;
  background: var(--karte);
}
.dual a { font-weight: 600; text-decoration: none; }
.dual a:hover { text-decoration: underline; }

/* ── Blaupausen-Box (Tool-Platzhalter) → „Baustelle bei Nacht" ── */
.blueprint {
  border: 2px dashed rgba(var(--akzent-rgb), .55);
  border-radius: var(--radius);
  background:
    linear-gradient(rgba(var(--akzent-rgb), .05) 1px, transparent 1px) 0 0 / 100% 28px,
    var(--karte);
  padding: 1.6rem 1.6rem 1.8rem;
  color: var(--tinte);
}
.blueprint-label {
  display: inline-block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--btn-text); background: var(--fenster);
  font-family: var(--lesen);
  border-radius: 3px; padding: 0.2rem 0.6rem; margin-bottom: 0.8rem;
}
.blueprint-mock { display: flex; gap: 0.8rem; margin-top: 1rem; flex-wrap: wrap; align-items: flex-end; }
.blueprint-mock label {
  display: flex; flex-direction: column; gap: 0.3rem; flex: 1 1 16rem;
  font-family: var(--lesen); font-size: 0.8rem; font-weight: 500;
}
.blueprint-mock input {
  border: 1px dashed rgba(var(--akzent-rgb), .55); border-radius: 6px; padding: 0.6rem 0.8rem;
  font-family: var(--lesen); font-size: 0.95rem; background: var(--papier); color: var(--tinte);
}
.blueprint-mock button {
  border: 0; border-radius: 8px; padding: 0.65rem 1.4rem;
  font-family: var(--lesen); font-weight: 500; font-size: 0.95rem;
  background: var(--fenster); color: var(--btn-text); opacity: 0.55;
}

.tool-cta {
  background: linear-gradient(150deg, var(--fenster) 0%, var(--plan-tief) 100%);
  color: #1A1206; border-radius: var(--radius); padding: 1.8rem 2rem;
  box-shadow: 0 0 34px var(--fenster-glow);
}
.tool-cta h2, .tool-cta h3 { color: #1A1206; }
.tool-cta-label {
  font-family: var(--lesen); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: rgba(26, 18, 6, .65); margin-bottom: 0.6rem;
}
.tool-cta-text { font-size: 1.05rem; max-width: 42rem; margin-bottom: 1.2rem; color: rgba(26, 18, 6, .85); }
.btn-tool { background: #1A1206; color: #FFD9A0; box-shadow: none; }
.btn-tool:hover { background: #2A1E0C; }

.mehr-link { margin-top: 1rem; font-family: var(--lesen); font-weight: 500; }
.mehr-link a { text-decoration: none; }
.mehr-link a:hover { text-decoration: underline; }

/* ── Wechsler / Beruhigung ────────────────────────────── */
.switcher { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.switcher a {
  text-decoration: none; font-weight: 500; font-size: 0.9rem; color: var(--tinte);
  border: 1px solid var(--linie); border-radius: 99px; padding: 0.45rem 1rem;
  background: var(--karte);
}
.switcher a:hover { border-color: var(--fenster); color: var(--fenster); }
.switch-notfall { color: var(--alarm) !important; }
.switch-notfall:hover { border-color: var(--alarm) !important; }

.beruhigung {
  background: var(--karte); border-left: 4px solid var(--fenster);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 1.4rem 1.6rem; box-shadow: var(--schatten);
}
.beruhigung p { color: var(--tinte-soft); margin-top: 0.4rem; }

/* ── Fuß (bleibt in allen Zuständen dunkel — der Sockel der Stadt) ── */
.site-foot { background: var(--fuss-bg); color: var(--fuss-text); margin-top: 4rem; }
.foot-grid {
  display: grid; grid-template-columns: 1.3fr 0.8fr 0.8fr 1.6fr 0.9fr; gap: 2rem;
  padding-top: 2.5rem; padding-bottom: 2.5rem;
}
.site-foot nav[aria-label="Werkzeuge"] { columns: 2; column-gap: 1.6rem; }
.site-foot nav[aria-label="Werkzeuge"] .foot-head { column-span: all; }
.site-foot nav a { break-inside: avoid; }
.foot-brand { font-family: var(--display); font-weight: 600; font-size: 1.15rem; color: #fff; }
.foot-brand .logo-fenster { background: #FFB454; box-shadow: 0 0 10px rgba(255, 180, 84, .35); }
.foot-brand .brand-tag { border-color: #4a5866; color: #9aa7b2; }
.foot-note { font-size: 0.85rem; color: var(--fuss-head); margin-top: 0.6rem; max-width: 22rem; }
.foot-head {
  font-family: var(--lesen); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--fuss-head); margin-bottom: 0.6rem;
}
.site-foot nav a { display: block; color: var(--fuss-text); text-decoration: none; font-size: 0.9rem; padding: 0.18rem 0; }
.site-foot nav a:hover { color: #fff; }

/* ── Service-Index im Fuß ─────────────────────────────── */
.foot-services { border-bottom: 1px solid var(--fuss-linie); padding: 2.5rem 0 2rem; }
.fs-titel {
  font-family: var(--lesen); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: #fff;
  display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap;
}
.fs-hinweis { font-size: 0.8rem; color: var(--fuss-head); margin: 0.5rem 0 1.6rem; max-width: 46rem; }
.fs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6rem 2rem; }
.fs-spalte { min-width: 0; }
.fs-head {
  font-family: var(--lesen); font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.06em; color: #fff;
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem;
  padding-bottom: 0.4rem; margin-bottom: 0.5rem; border-bottom: 1px solid var(--fuss-linie);
}
.fs-head a { color: #fff; text-decoration: none; }
.fs-head a:hover { color: #FFB454; }
.fs-liste { list-style: none; }
.fs-liste a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem;
  color: var(--fuss-text); text-decoration: none; font-size: 0.84rem; line-height: 1.35;
  padding: 0.2rem 0; border-radius: 4px;
}
.fs-liste a:hover { color: #fff; }
.fs-liste a:hover .fs-name { text-decoration: underline; text-underline-offset: 2px; }
.fs-name { min-width: 0; }
/* Fortschritt läuft über die Leuchtkraft: aus → erste Glut → hell → Fenster-Gold. */
.fs-pct {
  font-family: var(--lesen); font-size: 0.72rem; font-weight: 600;
  font-variant-numeric: tabular-nums; white-space: nowrap; flex-shrink: 0;
}
.fs-head-pct { font-size: 0.68rem; letter-spacing: 0.04em; }
.fs-null  { color: var(--fs-null); }
.fs-start { color: var(--fs-start); }
.fs-mitte { color: var(--fs-mitte); }
.fs-weit  { color: var(--fs-weit); }

/* ── Startseiten-Skyline (aus dem Prototyp) ───────────── */
.hero-mitte { text-align: center; padding: 3.5rem 0 0; }
.hero-mitte h1 { max-width: 18ch; margin: 1.1rem auto 1.2rem; font-size: clamp(2.3rem, 5.4vw, 4rem); }
.hero-mitte .lede { max-width: 56ch; margin: 0 auto 1.8rem; }
.hero-cta { display: flex; gap: 0.9rem; justify-content: center; flex-wrap: wrap; margin-bottom: 0.5rem; }
.btn.leer { background: transparent; color: var(--tinte); border: 1px solid var(--linie); box-shadow: none; }
.btn.leer:hover { border-color: var(--fenster); color: var(--fenster); }
.cta-hinweis { font-size: 0.82rem; color: var(--tinte-soft); }

.skyline { position: relative; margin-top: 2.6rem; }
.skyline svg { width: 100%; height: auto; display: block; }
.haus-form { fill: var(--haus); }
.fenster-aus { fill: var(--fensteraus); }
.fenster-an { fill: var(--fenster); }
.stern { fill: var(--stern); opacity: .5; }
:root[data-zeit="morgen"] .stern { opacity: .15; }
.skyline .lampe { filter: drop-shadow(0 0 7px rgba(var(--akzent-rgb), .9)); }
.tuer-link .fenster-an { transition: filter .2s ease; }
.tuer-link:hover .fenster-an, .tuer-link:focus-visible .fenster-an { filter: drop-shadow(0 0 14px var(--fenster)); }
.mond-loch { fill: var(--mond-loch); }
:root[data-zeit="morgen"] .mond, :root[data-zeit="tag"] .mond { display: none; }
:root[data-zeit="nacht"] .mond { transform: translate(-30px, -18px); }
.sonne { display: none; }
.sonne circle { fill: var(--sonnenfarbe); filter: drop-shadow(0 0 18px rgba(255, 215, 94, .55)); }
:root[data-zeit="tag"] .sonne { display: block; }
:root[data-zeit="morgen"] .sonne { display: block; transform: translate(480px, 90px); }
.sterne-extra { display: none; }
:root[data-zeit="nacht"] .sterne-extra { display: block; }
:root[data-zeit="morgen"] .fenster-frueh { fill: var(--fenster); }
.tuer-label {
  font-family: var(--lesen); font-size: 13px; font-weight: 500;
  fill: var(--tinte); text-anchor: middle;
}
.tuer-nr { fill: var(--btn-text); font-size: 12px; font-weight: 600; text-anchor: middle; }
.skyline-hinweis { text-align: center; color: var(--tinte-soft); font-size: 0.85rem; padding: 0.85rem 0 0; letter-spacing: .5px; }
@media (prefers-reduced-motion: no-preference) {
  .flackern { animation: flackern 4.5s ease-in-out infinite; }
  @keyframes flackern { 0%, 100% { opacity: 1; } 50% { opacity: .75; } }
}

.notband {
  margin: 3.4rem auto;
  border: 1px solid rgba(var(--akzent-rgb), .4); border-radius: var(--radius);
  background: rgba(var(--akzent-rgb), .06);
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  padding: 1.5rem 1.9rem;
}
.notband strong { color: var(--fenster); font-weight: 600; }
.notband p { color: var(--tinte); max-width: 62ch; }

/* ── Tageszeit-Vorschau (von js/zeit.js erzeugt) ──────── */
.zeitwahl {
  position: fixed; top: 4.6rem; right: 1.1rem; z-index: 50;
  display: flex; gap: 2px; padding: 5px 7px;
  background: var(--panel);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--linie); border-radius: 999px;
}
.zeitwahl button {
  font-family: var(--lesen); font-size: 0.9rem; line-height: 1;
  background: none; border: 0; color: var(--tinte-soft);
  padding: 6px 10px; border-radius: 999px; cursor: pointer; opacity: .6;
}
.zeitwahl button:hover { opacity: 1; }
.zeitwahl button.aktiv { background: var(--fenster); color: var(--btn-text); box-shadow: 0 0 16px var(--fenster-glow); opacity: 1; }
:root[data-zeit="tag"] .zeitwahl button { opacity: .85; filter: drop-shadow(0 1px 1px rgba(34, 48, 63, .45)); }
@media (max-width: 760px) { .zeitwahl { top: auto; bottom: 1rem; right: 0.8rem; } }

/* ── Textvarianten je Tageszeit (nur Startseite) ──────── */
[data-zeigen] { display: none; }
:root[data-zeit="morgen"] [data-zeigen="morgen"],
:root[data-zeit="tag"] [data-zeigen="tag"],
:root[data-zeit="abend"] [data-zeigen="abend"],
:root[data-zeit="nacht"] [data-zeigen="nacht"] { display: revert; }

/* ── Responsiv ─────────────────────────────────────────── */
@media (max-width: 68rem) {
  .fs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 56rem) {
  .hero { grid-template-columns: 1fr; padding-top: 2.5rem; gap: 2rem; }
  .grid { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 38rem) {
  .grid, .grid-2 { grid-template-columns: 1fr; }
  .head-row { gap: 0.35rem 0.75rem; min-height: 0; padding-top: 0.6rem; padding-bottom: 0.6rem; }
  .brand { font-size: 1.15rem; }
  .journey { gap: 0.45rem 0.85rem; margin-left: 0; font-size: 0.86rem; order: 3; flex-basis: 100%; }
  .journey a { padding: 0.1rem 0; }
  .notfall-link { margin-left: auto; font-size: 0.85rem; padding: 0.25rem 0.7rem; }
  .site-foot nav[aria-label="Werkzeuge"] { columns: 1; }
  .notfall-row { flex-direction: column; align-items: flex-start; }
  .foot-grid { grid-template-columns: 1fr; }
  .fs-grid { grid-template-columns: 1fr; }
  .tuer-label { font-size: 15px; }
}

/* ══ GEO-/Grounding-Bausteine + Experten-Verzeichnis ══════ */

.artikel { max-width: 46rem; }
.artikel ul, .artikel ol { margin: 0.6rem 0 1rem 1.4rem; }
.artikel li { margin: 0.35rem 0; }

.stand { font-family: var(--lesen); font-size: 0.82rem; color: var(--tinte-soft); margin-top: 1rem; }

.definition {
  background: var(--plan-hell); border-left: 4px solid var(--fenster);
  border-radius: 0 8px 8px 0; padding: 1rem 1.2rem; margin: 1.2rem 0;
}
.definition p:first-child { margin-top: 0; }
.definition p:last-child { margin-bottom: 0; }

.fakten-scroller { overflow-x: auto; margin: 1rem 0; }
.fakten { border-collapse: collapse; width: 100%; font-size: 0.92rem; }
.fakten th, .fakten td { padding: 0.5rem 0.7rem; text-align: left; border-bottom: 1px solid var(--linie); vertical-align: top; }
.fakten thead th { font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tinte-soft); font-family: var(--lesen); }

.kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.8rem; margin: 1.2rem 0; }
.kachel { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); box-shadow: var(--schatten); padding: 0.9rem 1rem; }
.kachel dt { font-family: var(--lesen); font-size: 0.78rem; color: var(--tinte-soft); }
.kachel dd { font-family: var(--display); font-size: 1.35rem; font-weight: 600; color: var(--fenster); margin-top: 0.2rem; }

details.faq { border: 1px solid var(--linie); border-radius: 8px; background: var(--karte); margin: 0.6rem 0; }
details.faq > summary { cursor: pointer; list-style: none; padding: 0.8rem 1rem; font-family: var(--display); font-weight: 600; font-size: 1rem; display: flex; gap: 0.6rem; align-items: baseline; }
details.faq > summary::-webkit-details-marker { display: none; }
details.faq > summary::before { content: "\25B8"; color: var(--fenster); }
details.faq[open] > summary::before { content: "\25BE"; }
details.faq .faq-body { padding: 0 1rem 1rem; }

.quellen { font-size: 0.88rem; }
.quellen li { margin: 0.5rem 0; word-break: break-word; }

/* ── Experten-Verzeichnis ─────────────────────────────── */
.experten-liste { list-style: none; margin: 1.2rem 0; padding: 0; }
.experten-eintrag { border-bottom: 1px solid var(--linie); padding: 1.1rem 0; list-style: none; }
.experten-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.experten-kopf h3 { font-size: 1.15rem; }
.experten-score { font-family: var(--display); font-variant-numeric: tabular-nums; font-weight: 600; font-size: 1.35rem; color: var(--fenster); white-space: nowrap; }
.experten-score small { font-size: 0.7em; font-weight: 400; opacity: 0.7; }
.experten-kanzlei { margin: 0.1rem 0 0; font-weight: 500; }
.experten-adresse, .experten-google { margin: 0.2rem 0; font-size: 0.95rem; color: var(--tinte-soft); }
.experten-badges { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.45rem 0; padding: 0; }
.experten-badges .badge { text-transform: none; letter-spacing: 0.01em; font-weight: 500; }
.experten-detail { margin-top: 0.3rem; }
.experten-detail summary { cursor: pointer; font-size: 0.9rem; color: var(--tinte-soft); }
.experten-quellen { font-size: 0.85rem; opacity: 0.8; }
.experten-sekundaer { list-style: none; margin: 1rem 0; padding: 0; columns: 2; column-gap: 2rem; font-size: 0.92rem; }
.experten-sekundaer li { margin: 0 0 0.5rem; break-inside: avoid; }
@media (max-width: 40rem) { .experten-sekundaer { columns: 1; } }
.experten-korrektur { border-top: 2px solid var(--linie); padding-top: 1.4rem; }
.experten-korrektur .fn { font-size: 0.85rem; color: var(--tinte-soft); }

/* Druck: immer heller Token-Satz, Leiste aus */
@media print{ :root,:root[data-zeit="morgen"],:root[data-zeit="tag"],:root[data-zeit="abend"],:root[data-zeit="nacht"]{ --papier:#fff; --karte:#fff; --tinte:#1c2733; --tinte-soft:#3d4754; --linie:#c8c8c8; --nacht:#fff; --nacht2:#fff; --himmel3:#fff; } body{background:#fff} .zeitwahl{display:none} }
