/* Elektro — „Strom im Plan"
   Schaltplanpapier mit Millimeterraster, Tusche, Leitungsblau, Signalgelb.
   Der Lichtschalter schaltet die ganze Seite in die Nachtansicht (Klasse .nacht am <html>). */
:root {
  --papier: #e9edf2; --papier-2: #dde3eb; --tafel: #f6f8fb;
  --tusche: #16202e; --tusche-2: #4a5669;
  --linie: #1f5bff; --signal: #f5c400; --signal-text: #16202e;
  --pv: #a87a00; --last: #1f5bff;
  --raster: rgb(31 91 255 / .075); --raster-2: rgb(31 91 255 / .035);
  --fokus: #1f5bff;
  --rand: clamp(1.1rem, 4.5vw, 4rem);
  --spur: rgb(22 32 46 / .16); --fuell: var(--linie); --knopf: var(--tafel);
  --knopf-rand: 2px solid var(--tusche); --knopf-r: 3px; --knopf-g: 20px; --spur-h: 2px; --spur-r: 0;
  --knopf-schatten: 3px 3px 0 var(--tusche);
  --seg-r: 0; --seg-an: var(--tusche); --seg-an-text: var(--papier);
  color-scheme: light;

  /* Bausteine aus gemeinsam/rahmen.css */
  --b-akzent: var(--linie); --b-akzent-text: #fff; --b-radius: 0;
  --b-titel: "Unbounded", "Manrope", sans-serif; --b-zitat: "Manrope", sans-serif;
  --b-linie: color-mix(in srgb, var(--tusche) 22%, transparent); --b-karte: var(--tafel);
  --b-fehler: #c4291f; --b-gut: #16875a;
  --kopf-fest-grund: color-mix(in srgb, var(--papier) 90%, transparent); --kopf-fest-text: var(--tusche); --kopf-fest-rand: var(--tusche);
  --menue-grund: var(--papier); --menue-text: var(--tusche); --menue-akzent: var(--linie);
  --menue-linie: color-mix(in srgb, var(--tusche) 20%, transparent); --menue-schrift: "Unbounded", sans-serif; --menue-gewicht: 700;
  --menue-knopf-r: 0; --menue-knopf-rand: var(--tusche);
}
:root.nacht {
  --papier: #0c1424; --papier-2: #132038; --tafel: #16243d;
  --tusche: #e6ecf5; --tusche-2: #9fb0c8;
  --linie: #4f86ff; --signal: #ffd21f; --signal-text: #0c1424;
  --pv: #b88c00; --last: #4f86ff;
  --raster: rgb(79 134 255 / .09); --raster-2: rgb(79 134 255 / .04);
  --fokus: #ffd21f;
  color-scheme: dark;
  --b-fehler: #ff8d85; --b-gut: #5fd79e;
}

body {
  background-color: var(--papier); color: var(--tusche);
  background-image:
    linear-gradient(var(--raster) 1px, transparent 1px), linear-gradient(90deg, var(--raster) 1px, transparent 1px),
    linear-gradient(var(--raster-2) 1px, transparent 1px), linear-gradient(90deg, var(--raster-2) 1px, transparent 1px);
  background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
  font: 400 1.05rem/1.6 "Manrope", system-ui, sans-serif;
}
h1, h2, h3 { font-family: "Unbounded", "Manrope", sans-serif; font-weight: 700; letter-spacing: -.035em; line-height: 1; }
h2 { font-size: clamp(2rem, 4.6vw, 3.8rem); max-width: 18ch; }
.rahmen { width: min(100% - 2 * var(--rand), 1280px); margin-inline: auto; }
.vorspann { color: var(--tusche-2); margin-top: 1rem; max-width: 40rem; }

/* Umschalten mit Kreis vom Schalter aus (View Transition im selben Dokument) */
:root.schalt-vt::view-transition-old(root), :root.schalt-vt::view-transition-new(root) { animation: none; mix-blend-mode: normal; }

/* ---------- Kopf ---------- */
.kopf { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem var(--rand); position: relative; z-index: 5; }
.marke { display: flex; align-items: center; gap: .65rem; text-decoration: none; font: 600 1rem/1 "Unbounded", sans-serif; letter-spacing: -.02em; }
.marke svg { width: 2rem; fill: none; stroke: var(--linie); stroke-width: 2.6; }
.kopf nav { display: flex; align-items: center; gap: clamp(.8rem, 2.5vw, 2rem); font-weight: 600; font-size: .95rem; }
.kopf nav a { text-decoration: none; }
.kopf nav a:hover, .kopf nav a.ist-aktiv { color: var(--linie); }
.notdienst { display: inline-flex; align-items: center; gap: .4rem; border: 2px solid var(--tusche); padding: .4rem .75rem; box-shadow: 3px 3px 0 var(--signal); }
.notdienst svg { width: .7rem; fill: var(--signal); stroke: var(--tusche); stroke-width: 1; }
@media (max-width: 760px) { .kopf nav a:not(.notdienst) { display: none; } .marke span { font-size: .85rem; } }

/* ---------- Knöpfe ---------- */
.knopf { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .7rem 1.3rem; text-decoration: none; font-weight: 700; border: 2px solid var(--tusche); transition: translate .15s, box-shadow .15s; }
.knopf-signal { background: var(--signal); color: var(--signal-text); box-shadow: 4px 4px 0 var(--tusche); }
.knopf-signal:hover { translate: -2px -2px; box-shadow: 6px 6px 0 var(--tusche); }
.knopf-linie { background: transparent; }
.knopf-linie:hover { background: var(--tafel); }

/* ---------- Held ---------- */
.held { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 1rem; padding: 0 0 0 var(--rand); min-height: min(88svh, 900px); }
.held h1 { font-size: clamp(3.6rem, 9vw, 8.2rem); font-weight: 800; letter-spacing: -.06em; line-height: .9; }
.held-text > p { max-width: 30rem; margin-top: 1.4rem; color: var(--tusche-2); font-size: 1.1rem; }
.held-aktionen { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.schalter-feld { display: flex; align-items: center; gap: 1.1rem; margin-top: 2.4rem; }
.schalter-feld p { font-size: .92rem; color: var(--tusche-2); max-width: 12rem; }

/* Lichtschalter: Rahmen + Wippe mit Kippung */
.lichtschalter { padding: 0; border: 0; background: none; border-radius: 16px; }
.lichtschalter .dose {
  display: grid; place-items: center; width: 5.6rem; height: 5.6rem; border-radius: 16px; perspective: 300px;
  background: linear-gradient(145deg, #ffffff, #e3e8ef); box-shadow: 0 1px 0 #fff inset, 0 10px 24px rgb(22 32 46 / .18), 0 0 0 1px rgb(22 32 46 / .12);
}
.lichtschalter .wippe {
  position: relative; width: 3.9rem; height: 3.9rem; border-radius: 9px;
  background: linear-gradient(180deg, #ffffff 0%, #eef1f5 48%, #dfe4eb 52%, #f7f9fb 100%);
  box-shadow: 0 0 0 1px rgb(22 32 46 / .12), 0 4px 6px rgb(22 32 46 / .12);
  transform: rotateX(10deg); transition: transform .18s cubic-bezier(.3,1.6,.5,1), background .2s;
}
.lichtschalter .led { position: absolute; left: 50%; bottom: .45rem; width: .9rem; height: .22rem; margin-left: -.45rem; border-radius: 2px; background: #c3cad4; transition: background .2s, box-shadow .2s; }
.lichtschalter[aria-pressed="true"] .wippe { transform: rotateX(-10deg); background: linear-gradient(0deg, #ffffff 0%, #eef1f5 48%, #dfe4eb 52%, #f7f9fb 100%); }
.lichtschalter[aria-pressed="true"] .led { background: #ffd21f; box-shadow: 0 0 10px 2px rgb(255 210 31 / .8); }
.nacht .lichtschalter .dose { background: linear-gradient(145deg, #2a3a58, #1b2940); box-shadow: 0 1px 0 rgb(255 255 255 / .08) inset, 0 10px 24px rgb(0 0 0 / .4); }
.nacht .lichtschalter .wippe { background: linear-gradient(0deg, #34476b 0%, #2a3b5a 48%, #22314d 52%, #30426a 100%); }

.held-bild { position: relative; margin: 0; height: min(88svh, 900px); min-height: 520px; }
.held-ersatz { background: radial-gradient(60% 50% at 50% 55%, var(--tafel), transparent); }
.held-bild > canvas {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 94%, transparent), linear-gradient(to bottom, transparent, #000 8%, #000 90%, transparent);
  -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent, #000 10%, #000 94%, transparent), linear-gradient(to bottom, transparent, #000 8%, #000 90%, transparent);
  mask-composite: intersect;
}
.sonnenbogen { position: absolute; left: 8%; width: 84%; top: 5%; height: 10%; pointer-events: none; }
.sonnenbogen svg { width: 100%; height: 100%; overflow: visible; }
.sonnenbogen path { fill: none; stroke: var(--linie); stroke-width: 1.5; stroke-dasharray: 4 6; vector-effect: non-scaling-stroke; opacity: .6; }
.sonnenpunkt { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: var(--signal); border: 1.5px solid var(--tusche); box-shadow: 0 0 0 5px color-mix(in oklab, var(--signal) 35%, transparent); transition: opacity .3s; }
.schilder { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.schild {
  position: absolute; left: 0; top: 0; translate: -50% -100%; white-space: nowrap;
  padding: .3rem .55rem; font-size: .78rem; font-weight: 600; background: var(--tafel); border: 1.5px solid var(--tusche);
  box-shadow: 2px 2px 0 var(--linie); color: var(--tusche); opacity: 0;
}
.schild b { color: var(--tusche); font-variant-numeric: tabular-nums; margin-left: .2rem; }
.held-bild figcaption { position: absolute; left: 6%; right: 6%; bottom: 1.2rem; display: flex; gap: 1rem; align-items: end; }
.tageszeit { flex: 1; background: color-mix(in oklab, var(--tafel) 88%, transparent); border: 1.5px solid var(--tusche); padding: .7rem .9rem .35rem; }
.tageszeit label { font-size: .85rem; color: var(--tusche-2); }
.tageszeit output { font: 700 1rem/1 "Unbounded", sans-serif; }
.abspielen { flex: none; min-height: 2.6rem; padding: 0 .9rem; border: 1.5px solid var(--tusche); background: var(--tafel); font-weight: 700; font-size: .85rem; }
.abspielen[aria-pressed="false"] { background: transparent; }
@media (max-width: 900px) {
  .held { grid-template-columns: 1fr; padding: 1rem 0 0; }
  .held-text { padding-inline: var(--rand); }
  .held-bild { height: auto; aspect-ratio: 4 / 5; min-height: 0; }
  .held-bild figcaption { left: var(--rand); right: var(--rand); flex-wrap: wrap; }
  .schild { font-size: .7rem; padding: .2rem .4rem; }
}

/* ---------- Leitung links neben den Abschnitten ---------- */
.kreis { position: relative; padding: clamp(4rem, 9vw, 7.5rem) 0; }
@media (min-width: 1200px) {
  .kreis::before, .kreis::after { content: ""; position: absolute; left: calc(var(--rand) * .45); top: 0; bottom: 0; width: 2px; background: var(--linie); opacity: .3; }
  .kreis::after { background: var(--signal); opacity: 1; transform-origin: top; scale: 1 0; box-shadow: 0 0 8px var(--signal); }
  @supports (animation-timeline: view()) {
    .kreis::after { animation: stromfluss linear both; animation-timeline: view(); animation-range: entry 20% exit 20%; }
    @keyframes stromfluss { to { scale: 1 1; } }
  }
}

/* ---------- Verteiler (Leistungen) ---------- */
.verteiler { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; margin-top: 2.5rem; }
.hutschiene {
  display: flex; gap: 3px; padding: 1.4rem 1.2rem; background: var(--papier-2); border: 2px solid var(--tusche);
  background-image: linear-gradient(transparent calc(50% - 9px), #aab4c3 calc(50% - 9px), #c9d1dc calc(50% - 4px), #aab4c3 calc(50% + 9px), transparent calc(50% + 9px));
}
.lss {
  width: 4.4rem; height: auto; padding: .5rem .3rem; display: grid; grid-template-rows: auto 1fr auto; justify-items: center; gap: .4rem;
  background: linear-gradient(#ffffff, #eef1f5); border: 1px solid #b7c0cc; border-radius: 3px; color: #16202e;
  box-shadow: 0 2px 0 #c9d1dc, 0 6px 12px rgb(22 32 46 / .12);
}
.lss-nr { font: 700 .8rem/1 "Unbounded", sans-serif; }
.lss-hebel { position: relative; width: 1.5rem; height: 5.4rem; border-radius: 3px; background: #d7dde5; box-shadow: inset 0 2px 4px rgb(0 0 0 / .18); }
.lss-hebel::after {
  content: ""; position: absolute; left: .1rem; right: .1rem; height: 2.5rem; bottom: .15rem; border-radius: 3px;
  background: linear-gradient(#3a4556, #232c39); transition: bottom .22s cubic-bezier(.3,1.5,.5,1), background .2s;
}
.lss-name { font-size: .7rem; font-weight: 700; writing-mode: vertical-rl; rotate: 180deg; height: 5.5rem; text-align: center; }
.lss[aria-pressed="true"] .lss-hebel::after { bottom: calc(100% - 2.65rem); background: linear-gradient(#e03a2f, #b8231a); }
.lss[aria-pressed="true"] { box-shadow: 0 2px 0 #c9d1dc, 0 6px 12px rgb(22 32 46 / .12), 0 -3px 0 var(--signal) inset; }
.kreis-inhalt h3 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); margin-bottom: .8rem; }
.kreis-inhalt p { max-width: 34rem; color: var(--tusche-2); font-size: 1.1rem; }
.kreis-inhalt:not([hidden]) { animation: einschalten .5s steps(1) both, einblenden .4s .05s both; }
@keyframes einschalten { 0% { opacity: .3; } 20% { opacity: 1; } 30% { opacity: .5; } 45% { opacity: 1; } }
@keyframes einblenden { from { translate: 0 8px; } }
@media (max-width: 860px) {
  .verteiler { grid-template-columns: 1fr; }
  .hutschiene { overflow-x: auto; padding: 1rem; justify-content: space-between; }
  .lss { width: 3.3rem; flex: none; }
  .lss-name { font-size: .62rem; height: 4.6rem; }
}

/* ---------- Rechner ---------- */
.rechner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "kopf kopf" "ein aus" "kurve kurve" "annahmen annahmen"; gap: 2.5rem clamp(2rem, 5vw, 4.5rem); }
.rechner-kopf { grid-area: kopf; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 26rem); gap: 1rem 3rem; align-items: end; }
.rechner-kopf p { color: var(--tusche-2); }
.eingaben { grid-area: ein; display: grid; gap: 1.3rem; align-content: start; padding: 1.6rem; background: var(--tafel); border: 2px solid var(--tusche); box-shadow: 6px 6px 0 var(--linie); }
.eingaben label { font-size: .92rem; color: var(--tusche-2); }
.eingaben output { font: 700 1.05rem/1 "Unbounded", sans-serif; }
.eingaben .schalter { color: var(--tusche); font-weight: 600; }
.ausgaben { grid-area: aus; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "geld ring" "zahlen zahlen"; gap: 1.8rem 2rem; align-content: start; }
.ersparnis { grid-area: geld; align-self: center; }
.etikett { display: block; color: var(--tusche-2); font-weight: 600; }
.betrag { font: 800 clamp(3.4rem, 8vw, 6.8rem)/1 "Unbounded", sans-serif; letter-spacing: -.05em; display: inline-flex; align-items: baseline; gap: .1em; }
.waehrung { font-size: .5em; color: var(--tusche-2); }
.ring { grid-area: ring; position: relative; width: 9.5rem; aspect-ratio: 1; }
.ring svg { width: 100%; rotate: -90deg; }
.ring circle { fill: none; stroke-width: 10; }
.ring-grund { stroke: var(--papier-2); }
.ring-wert { stroke: var(--signal); stroke-dasharray: 0 100; transition: stroke-dasharray 1s cubic-bezier(.2,.8,.2,1); }
.ring-zahl { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font: 800 1.9rem/1 "Unbounded", sans-serif; }
.ring-zahl small { font: 600 .68rem/1.25 "Manrope", sans-serif; color: var(--tusche-2); max-width: 6rem; margin-top: .3rem; }
.kennzahlen { grid-area: zahlen; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--tusche); }
.kennzahlen > div { padding: .9rem .8rem 0 0; }
.kennzahlen dt { font-size: .85rem; color: var(--tusche-2); }
.kennzahlen dd { font: 700 clamp(1.1rem, 2vw, 1.5rem)/1.2 "Unbounded", sans-serif; letter-spacing: -.03em; }
.kurve { grid-area: kurve; margin: 0; padding: 1.4rem; background: var(--tafel); border: 2px solid var(--tusche); }
.kurve-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; }
.kurve-kopf figcaption { font: 600 1.1rem/1.2 "Unbounded", sans-serif; letter-spacing: -.02em; }
.legende { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 1rem 0 .4rem; font-size: .9rem; color: var(--tusche-2); }
.legende li { display: flex; align-items: center; gap: .45rem; }
.legende i { width: 1.1rem; height: .7rem; border-radius: 2px; }
.farbe-pv { background: var(--pv); } .farbe-last { background: var(--last); }
.kurve-flaeche { position: relative; }
#kurve { width: 100%; height: auto; overflow: visible; font-family: "Manrope", sans-serif; }
#kurve .achse text { fill: var(--tusche-2); font-size: 12px; }
#kurve .raster line { stroke: var(--tusche); stroke-opacity: .1; }
#kurve .pv-flaeche { fill: var(--pv); fill-opacity: .22; }
#kurve .pv-linie { fill: none; stroke: var(--pv); stroke-width: 2; stroke-linejoin: round; }
#kurve .last-linie { fill: none; stroke: var(--last); stroke-width: 2; stroke-linejoin: round; }
#kurve .marke-text { fill: var(--tusche); font-size: 12.5px; font-weight: 700; }
#kurve .fadenkreuz { stroke: var(--tusche); stroke-opacity: .45; stroke-width: 1; }
#kurve .punkt-pv { fill: var(--pv); stroke: var(--tafel); stroke-width: 2; }
#kurve .punkt-last { fill: var(--last); stroke: var(--tafel); stroke-width: 2; }
.kurve-tipp { position: absolute; top: 0; pointer-events: none; padding: .5rem .7rem; background: var(--tusche); color: var(--papier); font-size: .82rem; line-height: 1.45; white-space: nowrap; translate: -50% 0; }
.kurve-tipp b { font-variant-numeric: tabular-nums; }
.tabelle { margin-top: 1rem; font-size: .9rem; }
.tabelle summary { cursor: pointer; font-weight: 700; }
.tabelle-rolle { max-height: 18rem; overflow: auto; margin-top: .6rem; }
.tabelle table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.tabelle th, .tabelle td { text-align: right; padding: .3rem .6rem; border-bottom: 1px solid var(--papier-2); }
.tabelle th:first-child, .tabelle td:first-child { text-align: left; }
.annahmen { grid-area: annahmen; font-size: .85rem; color: var(--tusche-2); }
@media (max-width: 960px) {
  .rechner { grid-template-columns: 1fr; grid-template-areas: "kopf" "ein" "aus" "kurve" "annahmen"; }
  .rechner-kopf { grid-template-columns: 1fr; }
  .kennzahlen { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .ausgaben { grid-template-columns: 1fr; grid-template-areas: "geld" "ring" "zahlen"; }
  .ring { width: 8.5rem; }
  .kurve { padding: 1rem .8rem; }
}

/* ---------- Zählerstand ---------- */
.zaehlwerke { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.zaehlwerk { margin: 0; padding: 1.4rem 1.4rem 1.2rem; background: var(--tafel); border: 2px solid var(--tusche); position: relative; display: grid; gap: 1rem; }
.fenster-z { display: flex; align-items: center; gap: .6rem; }
.zaehlwerk .rolle { font: 700 clamp(1.7rem, 3vw, 2.3rem)/1 "Unbounded", sans-serif; background: #141a22; color: #f2f4f7; padding: 0 .12em; gap: 2px; border-radius: 2px; box-shadow: 0 0 0 .16em #141a22; margin: .16em; }
.zaehlwerk .rolle .band > span, .zaehlwerk .rolle .fest { height: 1.08em; padding-inline: .06em; }
.zaehlwerk .rolle .band:last-of-type { color: #ff5146; }
.einheit { font-weight: 700; color: var(--tusche-2); }
.zaehlwerk figcaption { color: var(--tusche-2); font-weight: 600; }
.scheibe { position: absolute; right: 1.2rem; bottom: 1.2rem; width: 3.2rem; height: .55rem; border-radius: 50%; background: repeating-linear-gradient(90deg, #aeb7c3 0 4px, #e3e8ee 4px 8px); overflow: hidden; }
.scheibe::after { content: ""; position: absolute; top: 0; bottom: 0; width: .5rem; background: #e03a2f; animation: scheibe 2.4s linear infinite; }
@keyframes scheibe { from { left: -10%; } to { left: 110%; } }
.zaehlerstand .musterhinweis { margin-top: 1.5rem; }

/* ---------- Kontakt ---------- */
.kontakt { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); }
.kontakt p { color: var(--tusche-2); margin-top: .8rem; }
.kontakt-ruf a { font: 800 clamp(1.6rem, 3.4vw, 2.6rem)/1 "Unbounded", sans-serif; letter-spacing: -.04em; color: var(--tusche); text-decoration: none; }
.anfrage { display: grid; gap: 1rem; padding: 1.6rem; background: var(--tafel); border: 2px solid var(--tusche); box-shadow: 6px 6px 0 var(--linie); }
.anfrage label { display: grid; gap: .35rem; font-weight: 700; font-size: .92rem; }
.anfrage input, .anfrage select, .anfrage textarea { padding: .75rem .85rem; border: 1.5px solid var(--tusche); border-radius: 0; background: var(--papier); color: var(--tusche); }
.anfrage .knopf { justify-self: start; }
.anfrage-antwort { min-height: 1.4em; font-weight: 700; color: var(--linie); }
@media (max-width: 800px) { .kontakt { grid-template-columns: 1fr; } }

/* ---------- Fuß ---------- */
.fuss { border-top: 2px solid var(--tusche); padding: 0 0 5.5rem; font-size: .95rem; color: var(--tusche-2); background: var(--papier-2); }
.fuss-raster { --fuss-linie: color-mix(in srgb, var(--tusche) 22%, transparent); }
.fuss .marke, .fuss a { color: var(--tusche); }
.fuss .fuss-titel { color: var(--tusche); opacity: 1; font-family: "Unbounded", sans-serif; letter-spacing: .06em; }

/* ---------- Kopf fest, Menü ---------- */
.kopf.ist-fest { border-bottom-width: 2px; }
.kopf .menue-knopf, .kopf .kopf-ruf { border-width: 2px; box-shadow: 3px 3px 0 var(--signal); background: var(--tafel); font-weight: 700; }
.menue {
  background-image: linear-gradient(var(--raster) 1px, transparent 1px), linear-gradient(90deg, var(--raster) 1px, transparent 1px);
  background-size: 20px 20px;
}
.menue-nav a { letter-spacing: -.04em; font-size: clamp(1.6rem, 7.4vw, 2.6rem); }
.menue-ruf { font-size: 1.4rem; }

/* ---------- Projekte ---------- */
.projekt-bild { border: 2px solid var(--tusche); box-shadow: 8px 8px 0 var(--linie); background: var(--tafel); }
.projekt:nth-child(2) .projekt-bild { box-shadow: 8px 8px 0 var(--signal); }
.projekt h3 { letter-spacing: -.045em; font-size: clamp(1.35rem, 2.2vw, 2rem); line-height: 1.05; }
.projekt-daten { border-top: 2px solid var(--tusche); }
.projekt-daten dd { font-family: "Unbounded", sans-serif; letter-spacing: -.03em; }
.projekte-hinweis, .stimmen-hinweis { margin-top: 2.5rem; }

/* ---------- Betrieb ---------- */
.betrieb-lead { font-weight: 600; color: var(--tusche); }
.siegel li { background: var(--tafel); border: 2px solid var(--tusche); box-shadow: 4px 4px 0 var(--linie); }
.siegel svg { stroke: var(--tusche); fill: var(--signal); fill-opacity: .9; }
.siegel li:nth-child(2) svg { fill: var(--signal); }
.grundsaetze li { border-top: 2px solid var(--tusche); }
.grundsaetze h3 { letter-spacing: -.04em; }
.team-bild { border-radius: 0; background: #16202e; color: #f5c400; font: 700 1.1rem/1 "Unbounded", sans-serif; box-shadow: 3px 3px 0 var(--linie); }

/* ---------- Ablauf ---------- */
.ablauf-schritte li { border-top: 2px solid var(--tusche); }
.ablauf-schritte li::before { font-family: "Unbounded", sans-serif; }
.ablauf-schritte li::after { height: 4px; top: -3px; background: var(--signal); box-shadow: 0 0 8px var(--signal); }
.ablauf-schritte h3 { letter-spacing: -.04em; }

/* ---------- Stimmen ---------- */
.stimme { background: var(--tafel); border: 2px solid var(--tusche); box-shadow: 6px 6px 0 var(--linie); }
.stimme blockquote { font-weight: 500; }
.stimme figcaption { border-top: 2px dashed var(--b-linie); }

/* ---------- Fragen ---------- */
.fragen-liste details { border-bottom-width: 2px; border-color: var(--tusche); }
.fragen-liste details:first-child { border-top: 2px solid var(--tusche); }
.fragen-liste summary::after { border-radius: 0; border: 2px solid var(--tusche); }
.fragen-liste details[open] > summary::after { background-color: var(--signal); border-color: var(--tusche); color: var(--signal-text); }
.fragen-kopf a { color: var(--tusche); text-decoration-color: var(--linie); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- Kontakt ---------- */
.kontakt-mail a, .zeiten, .gebiet { color: var(--tusche); }
.kontakt .kontakt-anschrift { margin-top: .2rem; }
.zeiten dl > div { border-bottom-style: solid; }
