/* ============================================================
   THETA UI — einheitliche Gestaltung aller Seiten (Adin 06.11.2026)
   Vorbild: andreasbaulig.de (Aufbau, Rhythmus, Knöpfe, Kopfzeile; design/BAULIG-REVERSE.md)
   Lesbarkeit/Abstände nach Apple HIG (Fliesstext >= 17 px, Kontrast >= 4.5:1, Ziele >= 44 px).
   Wird als LETZTES Stylesheet geladen und überschreibt die älteren Schichten.
   ============================================================ */
:root {
  --t-navy: #0d1b33;
  --t-navy-deep: #091426;
  --t-ink: #111827;
  --t-muted: #4a5466;
  --t-line: #e3e6ec;
  --t-soft: #f4f5f7;
  --t-red-1: #c42a33;
  --t-red-2: #a11f28;
  --t-red-hover: #8d1a22;
  --t-white: #ffffff;
  --t-font: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  --t-container: 1140px;
  --t-pad-x: 20px;
  --t-section-y: 80px;
  --t-shadow-media: 1px 1px 20px rgba(0, 0, 0, 0.28);
  --t-shadow-btn: 1px 1px 20px rgba(0, 0, 0, 0.22);
}
@media (max-width: 767px) {
  :root { --t-section-y: 56px; }
}

/* ---- Grundtypografie ---- */
html body > :not(.nav):not(.footer) { font-family: var(--t-font); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
/* Unterseiten hell; die Startseite behält ihren eigenen Farbaufbau (home.css) */
html body:not(.theta-home) { background: var(--t-white); }
html body:not(.theta-home) > :not(.nav):not(.footer) { color: var(--t-ink); }
@media (max-width: 767px) { html body { font-size: 17px; } }
body :is(h1, h2, h3, h4):not(.footer *) { font-family: var(--t-font); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
body :is(p, li):not(.footer *) { text-wrap: pretty; hyphens: manual; -webkit-hyphens: manual; }
body .shell:not(.footer > .shell) { max-width: calc(var(--t-container) + 2 * var(--t-pad-x)); padding-left: var(--t-pad-x); padding-right: var(--t-pad-x); margin-left: auto; margin-right: auto; }
body .shell.narrow { max-width: calc(860px + 2 * var(--t-pad-x)); }

/* ---- Knöpfe (Baulig: kräftig, 2 px Ecken, Schatten; THETA-Rot statt Orange) ---- */
body .btn.btn--gold:not(.nav *), body a.btn--gold:not(.nav *), body button.btn--gold:not(.nav *) { display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 56px; padding: 14px 34px; background: linear-gradient(180deg, var(--t-red-1) 0%, var(--t-red-2) 100%); color: #ffffff; border: 0; border-radius: 2px; font-family: var(--t-font); font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: 0.02em; text-decoration: none; box-shadow: var(--t-shadow-btn); transition: filter 0.2s ease, transform 0.2s ease; }
body .btn.btn--gold:not(.nav *):hover, body a.btn--gold:not(.nav *):hover { filter: brightness(0.92); color: #ffffff; transform: translateY(-1px); }
body .btn:focus-visible, body a:focus-visible, body button:focus-visible { outline: 3px solid #5b8def; outline-offset: 3px; }
@media (max-width: 767px) { body .btn.btn--gold:not(.nav *), body a.btn--gold:not(.nav *) { width: 100%; padding: 14px 20px; } }

/* ---- Seiten-Einstieg (Unterseiten): zentriert wie Baulig, heller Grund mit Bühnenfoto-Hauch ---- */
body .page-hero { position: relative; padding: 56px 0 64px; text-align: center; background: #ffffff; overflow: hidden; }
body .page-hero::before { content: ""; position: absolute; inset: 0; background: url("/public/media/buehne-keynote.jpg") center 30% / cover no-repeat; opacity: 0.07; pointer-events: none; }
body .page-hero > * { position: relative; }
body .page-hero .eyebrow { justify-content: center; }
body .page-hero .lead, body .page-hero .hero-sub { margin-left: auto; margin-right: auto; max-width: 760px; }
body .page-hero .herochips, body .page-hero .hero-actions { justify-content: center; }
body .page-hero-h1 { margin: 10px auto 18px; max-width: 900px; font-size: 46px; line-height: 1.18; font-weight: 700; letter-spacing: -0.015em; color: var(--t-ink); }
@media (max-width: 1023px) { body .page-hero-h1 { font-size: 38px; } }
@media (max-width: 767px) { body .page-hero { padding: 36px 0 44px; } body .page-hero-h1 { font-size: 30px; line-height: 1.22; } }

/* Einfarbige Überschriften (Baulig, Apple): kein zweifarbiger Teil, kein Kreuz-Badge im Titel */
body .accent-word, body .h1-center { color: inherit; font-style: normal; }
body h1 .swiss-badge, body h2 .swiss-badge, body .page-hero-h1 .swiss-badge { display: none; }

/* ---- Kicker, Überschriften, Text ---- */
body:not(.theta-home) .eyebrow, body .hero-eyebrow2, body .vr-eyebrow { font-family: var(--t-font); font-size: 14px; font-weight: 700; line-height: 1.5; letter-spacing: 0.06em; text-transform: uppercase; color: var(--t-navy); }
body:not(.theta-home) .section:not(.section--light) .eyebrow, body:not(.theta-home) .cta .eyebrow { color: #c9d3e6; }
body .h2, body main h2 { font-size: 36px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; }
body .h3, body main h3 { font-size: 22px; line-height: 1.35; font-weight: 700; }
@media (max-width: 1023px) { body .h2, body main h2 { font-size: 30px; } }
@media (max-width: 767px) { body .h2, body main h2 { font-size: 26px; } body .h3, body main h3 { font-size: 20px; } }
body:not(.theta-home) .lead { font-size: 20px; line-height: 1.55; font-weight: 500; color: var(--t-muted); }
body .body, body main p { font-size: inherit; line-height: 1.65; }
@media (max-width: 767px) { body .lead { font-size: 18px; } }

/* ---- Abschnitte: Weiss und Navy im Wechsel (Baulig hell/dunkel) ---- */
body .section { padding-top: var(--t-section-y); padding-bottom: var(--t-section-y); }
/* Startseite behält ihre eigenen Abschnittsfarben (home.css); dort würde das erzwungene Navy weisse Schrift auf helle Karten setzen */
body:not(.theta-home) .section { background: var(--t-navy); color: #ffffff; }
body:not(.theta-home) .section .h2, body:not(.theta-home) .section h2, body:not(.theta-home) .section h3, body:not(.theta-home) .section .h3 { color: #ffffff; }
body:not(.theta-home) .section .lead, body:not(.theta-home) .section .body, body:not(.theta-home) .section p, body:not(.theta-home) .section li { color: #d6dcea; }
body:not(.theta-home) .section.section--light { background: #ffffff; color: var(--t-ink); }
body:not(.theta-home) .section.section--light .h2, body:not(.theta-home) .section.section--light h2, body:not(.theta-home) .section.section--light h3, body:not(.theta-home) .section.section--light .h3 { color: var(--t-ink); }
body:not(.theta-home) .section.section--light .lead, body:not(.theta-home) .section.section--light .body, body:not(.theta-home) .section.section--light p, body:not(.theta-home) .section.section--light li { color: var(--t-muted); }
body .section.section--light + .section.section--light { background: var(--t-soft); }

/* Bilder: eckig mit Schatten (Baulig) */
body main img:not(.brand-logo):not(.media-strip-logo img):not(.vr-fhead-face) { border-radius: 0; }
body main figure img, body .authorbox img, body .team-card img, body .t-photo img { box-shadow: var(--t-shadow-media); }

/* ---- Bekannt aus: farbige Logos, statisch (Adin), Platz der Baulig-Vertrauensleiste ---- */
body .media-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 40px; margin: 0; padding: 30px max(var(--t-pad-x), calc((100vw - var(--t-container)) / 2)); background: #ffffff; border-top: 1px solid var(--t-line); border-bottom: 1px solid var(--t-line); }
body .media-strip-heading { display: flex; align-items: center; gap: 12px; margin: 0; }
body .media-strip-label { margin: 0; font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--t-navy); }
body .media-strip-link { display: none; }
body .media-strip-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 36px; }
body .media-strip-logo { display: inline-flex; align-items: center; min-height: 44px; }
body .media-strip-logo img { height: 30px; width: auto; max-width: 150px; object-fit: contain; filter: none !important; opacity: 1 !important; mix-blend-mode: normal; }
body .media-strip-logo--nzz img, body .media-strip-logo--entscheider img { height: 34px; }
body .media-strip-logo--srf img, body .media-strip-logo--20min img { height: 26px; }
@media (max-width: 767px) {
  body .media-strip { padding: 24px var(--t-pad-x); gap: 12px; }
  body .media-strip-logos { gap: 14px 26px; }
  body .media-strip-logo img { height: 24px; max-width: 120px; }
}

/* ---- Abschluss-Band (CTA) ---- */
body .cta { padding: var(--t-section-y) 0; background: var(--t-navy-deep); color: #ffffff; text-align: center; }
body .cta .cta-h { color: #ffffff; font-size: 36px; line-height: 1.25; font-weight: 700; }
body .cta .cta-points { justify-content: center; color: #d6dcea; }
@media (max-width: 767px) { body .cta .cta-h { font-size: 26px; } }

/* ---- FAQ ---- */
body .faq-list details { border-top: 1px solid var(--t-line); }
body .faq-list summary { padding: 18px 44px 18px 4px; font-size: 19px; font-weight: 700; line-height: 1.4; cursor: pointer; min-height: 44px; }
body .section:not(.section--light) .faq-list details { border-color: rgba(255, 255, 255, 0.16); }


/* ---- Brotkrumen klein und ruhig ---- */
body .crumbs { padding: 14px 0 0; font-size: 14px; color: var(--t-muted); background: #ffffff; }
body .crumbs a { color: var(--t-muted); }

@media (prefers-reduced-motion: reduce) {
  body .btn { transition: none; }
}

/* Startseite: statt Laufband die feste «Bekannt aus»-Leiste (kein Marquee) */
body .hero-logos.logo-marquee { display: none; }

/* ===== Korrekturrunde 1 (Sichtprüfung 06.11.) ===== */
/* Einfarbige Überschriften durchsetzen (ältere Regeln färbten .accent-word blau) */
html body .accent-word, html body h1 .accent-word, html body h2 .accent-word { color: inherit !important; -webkit-text-fill-color: currentColor; background: none !important; }

/* Einstieg zentriert nur bei einspaltigem Einstieg (.shell.narrow), Fliesstext bleibt links */
html body .page-hero { text-align: left; }
html body .page-hero .shell.narrow { text-align: center; }
html body .page-hero .shell.narrow > .eyebrow, html body .page-hero .shell.narrow > .page-hero-h1, html body .page-hero .shell.narrow > .lead, html body .page-hero .shell.narrow > .hero-sub, html body .page-hero .shell.narrow > p { margin-left: auto; margin-right: auto; text-align: center; }
html body .page-hero .shell.narrow .herochips, html body .page-hero .shell.narrow .hero-actions { display: flex; flex-wrap: wrap; justify-content: center; }
html body .page-hero::before { opacity: 0.05; }

/* Rechtstexte: dunkel auf Weiss (Seiten hatten helle Schrift für dunklen Grund) */
html body .legal h1, html body .legal h2 { color: var(--t-ink); }
html body .legal p, html body .legal address, html body .legal li { color: var(--t-muted); font-size: 17px; }
html body .legal a { color: var(--t-red-2); }
html body .legal .back { color: var(--t-muted); }
html body .legal { padding-top: 48px; }

/* Vor dem Erstgespräch: Kopf-/Fusszeile volle Breite, Inhalt als Spalte */
html body.consultation-gate { display: block; padding: 0; background: #ffffff; text-align: left; }
html body.consultation-gate .gate-main { margin: 0 auto; padding: 56px var(--t-pad-x) 72px; text-align: center; }
html body.consultation-gate .gate-main h1 { font-size: 44px; font-weight: 700; letter-spacing: -0.015em; color: var(--t-ink); }
html body.consultation-gate .gate-main > p:not(.gate-effort):not(.gate-assurance) { font-size: 19px; color: var(--t-muted); }
html body.consultation-gate .gate-effort, html body.consultation-gate .gate-assurance { font-size: 15px; }
html body.consultation-gate .gate-footer { display: none; }
@media (max-width: 767px) { html body.consultation-gate .gate-main { padding-top: 36px; } html body.consultation-gate .gate-main h1 { font-size: 30px; } }

/* Startseite: Kicker wie Baulig, Inhalt in 1140 px, Unterzeile lesbar */
html body .hero .hero-eyebrow2 { font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--t-navy); }
html body .hero .hero-shell { max-width: calc(var(--t-container) + 2 * var(--t-pad-x)); margin-left: auto; margin-right: auto; padding-left: var(--t-pad-x); padding-right: var(--t-pad-x); }
html body .hero .hero-subc { font-size: 19px; line-height: 1.55; }
@media (max-width: 767px) { html body .hero .hero-subc { font-size: 17px; } }

/* ===== Korrekturrunde 2: Startseite nutzt #hero-Selektoren (redesign.css) ===== */
html body #hero .hero-shell { max-width: calc(var(--t-container) + 2 * var(--t-pad-x)); padding-left: var(--t-pad-x); padding-right: var(--t-pad-x); }
html body #hero .hero-grid { max-width: var(--t-container); margin-left: auto; margin-right: auto; }
html body #hero .hero-eyebrow2 { font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--t-navy); }
html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 46px; line-height: 1.18; font-weight: 700; letter-spacing: -0.015em; color: var(--t-ink); }
html body #hero .hero-subc { font-size: 19px; line-height: 1.55; max-width: 860px; margin-left: auto; margin-right: auto; }
@media (max-width: 1023px) { html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 36px; } }
@media (max-width: 767px) { html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 28px; line-height: 1.22; } html body #hero .hero-subc { font-size: 17px; } }

/* Mehrspaltiger Einstieg (z. B. Über uns): Titel bündig mit dem Kicker */
html body .page-hero .shell:not(.narrow) .page-hero-h1 { margin-left: 0; margin-right: 0; }

/* ===== Korrekturrunde 3: Startbildschirm feinjustiert ===== */
html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 40px; line-height: 1.2; }
@media (max-width: 1023px) { html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 34px; } }
@media (max-width: 767px) { html body #hero .hero-h1c, html body #hero .h1-main, html body #hero .h1-center { font-size: 26px; line-height: 1.25; } }
html body #hero .hero-checks li, html body #hero .hero-checks li div { font-size: 17px; line-height: 1.5; }
html body .media-strip-logos { gap: 16px 28px; }
html body .media-strip-logo img { max-width: 128px; }
@media (min-width: 1024px) { html body .media-strip-logos { flex-wrap: nowrap; } }

/* ---- Runde 4 (Prüfer-Funde 06.11.2026) ---- */
/* Einstieg: ruhiger, sauberer Grund ohne durchscheinendes Foto; alles auf einer Mittelachse */
html body .page-hero::before { display: none; }
html body .page-hero { background: var(--t-soft); }
html body .page-hero .shell > .eyebrow, html body .page-hero .shell > p.eyebrow { display: block; text-align: center; }
html body .page-hero .hero-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 28px; text-align: center; }
html body .page-hero .hero-actions .hero-sub { margin: 0; font-size: 16px; color: var(--t-muted); }
/* Merkmal-Chips: eckig wie die Knöpfe, gleichmässig */
html body .herochips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0; margin: 22px auto 0; list-style: none; }
html body .herochips li { border-radius: 2px; padding: 8px 14px; font-size: 15px; background: #ffffff; border: 1px solid var(--t-line); color: var(--t-ink); }
/* Knopfpaare: Abstand, gleiche Höhe */
html body p.body > .btn + .btn, html body .btn-row .btn + .btn { margin-left: 12px; }
html body .btn.btn--ghost { min-height: 56px; display: inline-flex; align-items: center; padding: 14px 28px; border-radius: 2px; font-size: 17px; font-weight: 700; }
@media (max-width: 767px) { html body p.body > .btn + .btn { margin-left: 0; margin-top: 12px; } html body p.body > .btn { width: 100%; justify-content: center; } }
/* Porträt im Brief: Baulig-Bild mit Schatten statt Briefmarke */
html body main p.body > img[width="120"] { width: 200px !important; height: 250px !important; box-shadow: var(--t-shadow-media); margin: 0 0 20px !important; }
/* Aufzählung unter dem Knopf im Abschlussband: zentrierte Reihe mit Haken statt Punkten */
html body .cta .cta-points { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; padding: 0; margin: 20px 0 0; list-style: none; }
html body .cta .cta-points li { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; color: #d6dcea; }
html body .cta .cta-points li::before { content: "✓"; color: #ffffff; font-weight: 700; }
html body .cta .cta-points li::marker { content: none; }
/* Formularfelder überall gleich (Leitfaden u. a.) */
html body main form input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), html body main form select, html body main form textarea { box-sizing: border-box; width: 100%; min-height: 52px; padding: 12px 14px; font: inherit; font-size: 17px; color: var(--t-ink); background: #ffffff; border: 1px solid #b9c0cc; border-radius: 2px; }
html body main form input:focus, html body main form select:focus, html body main form textarea:focus { outline: 3px solid #5b8def; outline-offset: 1px; border-color: var(--t-navy); }
/* Karten: eine Ecken-Sprache (Unterseiten) */
html body:not(.theta-home) main .card, html body:not(.theta-home) main [class$="-card"], html body:not(.theta-home) main table { border-radius: 2px; }
/* Tabellen auf dem Handy: Zeilen untereinander statt abgeschnitten */
@media (max-width: 767px) {
  html body main table, html body main table tbody, html body main table tr, html body main table td, html body main table th { display: block; width: 100% !important; box-sizing: border-box; }
  html body main table { min-width: 0 !important; max-width: 100%; }
  html body main table caption { display: block; width: 100%; text-align: left; padding: 0 0 8px; }
  html body main .table-wrap { overflow: visible; }
  html body main table thead { display: none; }
  html body main table tr { padding: 12px 0; border-bottom: 1px solid var(--t-line); }
  html body main table td, html body main table th { padding: 2px 12px; border: 0; white-space: normal; }
  html body main table td:first-child, html body main table th:first-child { font-weight: 700; }
}
/* Rechner-Knöpfe in derselben Knopfsprache wie alle Seiten */
html body .vr-pill { border-radius: 2px; font-weight: 700; letter-spacing: 0.02em; }
html body .vr-pill--dark { background: linear-gradient(180deg, var(--t-red-1) 0%, var(--t-red-2) 100%); border-color: transparent; color: #ffffff; box-shadow: var(--t-shadow-btn); min-height: 56px; }
html body .vr-pill--dark:hover { filter: brightness(0.92); color: #ffffff; }

/* ---- Runde 7: Alle-Seiten-Prüfung (68 Seiten, 06.11.2026) ---- */
/* Eckig überall (Unterseiten): Karten, Spalten, Formulare, Autorenkasten, Tabellenrahmen */
html body:not(.theta-home) main :is(.authorbox, .table-wrap, .scard, .ccol, .opt, .calc, select, .qualify-col, .fact-chip, .group-parent, .group-card, .team-card, .card, button.btn, .callout, .note, .faq-list details) { border-radius: 2px; }
/* Navy folgt nie direkt auf Navy: ein dunkler Abschnitt direkt vor dem Abschlussband wird hell */
html body:not(.theta-home) main .section:not(.section--light):not(.cta):has(+ .cta) { background: var(--t-soft); color: var(--t-ink); }
html body:not(.theta-home) main .section:not(.section--light):not(.cta):has(+ .cta) :is(h2, .h2, h3, .h3) { color: var(--t-ink); }
html body:not(.theta-home) main .section:not(.section--light):not(.cta):has(+ .cta) :is(p, li, .lead, .body) { color: var(--t-muted); }
html body:not(.theta-home) main .section:not(.section--light):not(.cta):has(+ .cta) .eyebrow { color: var(--t-navy); }
html body:not(.theta-home) main .section:not(.section--light):not(.cta):has(+ .cta) a:not(.btn) { color: var(--t-red-2); }
/* Linklisten «Weiterlesen»: lesbar, mit Pfeil, ohne Leerfläche */
html body main ul.related { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 4px; }
html body main ul.related li a { display: inline-flex; gap: 8px; padding: 8px 0; font-size: 18px; font-weight: 600; text-decoration: none; }
html body main ul.related li a::before { content: "→"; }
html body main ul.related li a:hover { text-decoration: underline; }
/* Tabellen in dunklen Abschnitten: helle Schrift */
html body:not(.theta-home) main .section:not(.section--light) :is(td, th) { color: #d6dcea; border-color: rgba(255, 255, 255, 0.16); }
html body:not(.theta-home) main .section:not(.section--light) th { color: #ffffff; }
/* Vergleichsspalten auf hellem Kartengrund in dunklen Abschnitten: dunkle Schrift */
html body:not(.theta-home) main .section:not(.section--light) .ccol :is(h3, .h4, p, li, .ccol-tag) { color: var(--t-ink); }
/* Abschlussband: alles auf der Mittelachse, auf allen Breiten */
html body .cta :is(.eyebrow, .cta-h, h2, .lead, p) { text-align: center; margin-left: auto; margin-right: auto; }
html body .cta .lead { max-width: 720px; }
@media (max-width: 767px) { html body .cta .cta-points { flex-direction: column; align-items: center; gap: 6px; } }
/* Einstieg: Zusatzzeile unter dem Knopf ebenfalls zentriert */
html body .page-hero .shell.narrow .hero-sub, html body .page-hero .shell.narrow .hero-note { text-align: center; width: 100%; }
/* Zweispaltiger Einstieg (Über uns): Kicker bündig mit Überschrift */
html body .page-hero .shell:not(.narrow) .eyebrow { text-align: left; }
/* «Bekannt aus» auf dem Handy: ruhiges Raster 4 + 3 statt Restzeilen */
@media (max-width: 767px) {
  html body .media-strip-logos { display: grid; grid-template-columns: repeat(4, auto); justify-content: center; align-items: center; gap: 14px 18px; }
  html body .media-strip-logo img { max-width: 72px; max-height: 26px; }
}
/* Lange Wörter in Überschriften auf dem Handy sauber trennen statt brechen */
@media (max-width: 767px) { html body :is(h1, h2, .page-hero-h1) { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 12 5 5; overflow-wrap: normal; } }
/* Rechner: Abschlussband nur auf der Startansicht, nicht im Fragebogen */
html body.vr-mode .vr-endcta { display: none !important; }
html body:not(.theta-home) main .section:not(.section--light) :is(thead th, thead td) { background: rgba(255, 255, 255, 0.08); color: #ffffff; }

/* ---- Runde 8 (zweite Prüfrunde, 07.11.2026) ---- */
/* Hinweiskästen: eckig, klarer Kontrast, gleiche Schrift wie Fliesstext */
html body:not(.theta-home) main :is(.note, blockquote) { border-radius: 2px; border: 1px solid var(--t-line); background: #ffffff; padding: 20px 24px; }
html body:not(.theta-home) main :is(.note, blockquote) :is(p, li) { color: var(--t-ink); font-size: 17px; }
html body:not(.theta-home) main .note .note-label { font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--t-navy); }
html body:not(.theta-home) main .section:not(.section--light):not(:has(+ .cta)) .note { background: rgba(255, 255, 255, 0.06); box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.16); }
html body:not(.theta-home) main .section:not(.section--light):not(:has(+ .cta)) .note :is(p, li) { color: #e6ebf5; }
html body:not(.theta-home) main .section:not(.section--light):not(:has(+ .cta)) .note .note-label { color: #ffffff; }
/* Tabellen auf dem Desktop: volle Breite, lesbare Schrift, keine Silbentrennung */
@media (min-width: 768px) {
  html body main table { width: 100%; font-size: 16px; line-height: 1.5; }
  html body main table :is(td, th) { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; padding: 12px 14px; vertical-align: top; }
  html body main table :is(td, th):first-child { min-width: 170px; font-weight: 700; }
}
/* Gestapelte Tabellen: Spaltenname vor jedem Wert (data-label wird per Skript gesetzt) */
@media (max-width: 767px) { html body main table td[data-label]:not(:first-child)::before { content: attr(data-label) ": "; font-weight: 700; color: inherit; } }
/* Vier Einstiegs-Chips: 2 + 2 statt 3 + 1 */
html body .herochips:has(> li:nth-child(4):last-child) { display: grid; grid-template-columns: repeat(2, auto); justify-content: center; }
@media (max-width: 767px) { html body .herochips:has(> li:nth-child(4):last-child) { grid-template-columns: 1fr; } }
/* Überschriften ausgewogen umbrechen, keine Waisen */
html body :is(h1, .page-hero-h1, h2) { text-wrap: balance !important; }
/* Weiterlesen-Abschnitte immer hell (verhindert Navy-Folgen vor Autorenkasten und Abschlussband) */
html body:not(.theta-home) main .section:not(.section--light):has(ul.related) { background: var(--t-soft); color: var(--t-ink); }
html body:not(.theta-home) main .section:not(.section--light):has(ul.related) :is(h2, .h2, h3) { color: var(--t-ink); }
html body:not(.theta-home) main .section:not(.section--light):has(ul.related) :is(p, li) { color: var(--t-muted); }
html body:not(.theta-home) main .section:not(.section--light):has(ul.related) .eyebrow { color: var(--t-navy); }
html body:not(.theta-home) main .section:not(.section--light):has(ul.related) a:not(.btn) { color: var(--t-red-2); }
/* Rechner-Einstieg im selben hellgrauen Grund wie alle Einstiege */
html body .vr-hero { background: var(--t-soft); }
/* Brückenseite vor dem Erstgespräch: hellgrauer Einstieg, Kicker */
html body.consultation-gate { background: var(--t-soft); }
html body.consultation-gate .gate-eyebrow { display: block; text-align: center; margin: 0 0 12px; }
/* Erstgespräch: Kopf des Formulars auf der Mittelachse */
html body.funnel-page .funnel-head { text-align: center; }
html body.funnel-page .funnel-head .eyebrow { justify-content: center; }
html body.funnel-page .fstep > :is(.fstep-q, .fstep-hint) { display: block; width: 100%; text-align: center; }
/* Über uns: Telefonnummer nie umbrechen */
html body a[href^="tel:"] { white-space: nowrap; }
/* ---- Runde 9 (dritte Prüfrunde) ---- */
/* Vier Chips 2 + 2 (höhere Spezifität als die Einstiegs-Flexregel) */
html body .page-hero .shell .herochips:has(> li:nth-child(4):last-child) { display: grid; grid-template-columns: repeat(2, auto); justify-content: center; }
@media (max-width: 767px) { html body .page-hero .shell .herochips:has(> li:nth-child(4):last-child) { grid-template-columns: 1fr; } }
/* Tabellenzellen nie automatisch trennen */
html body main table :is(td, th) { hyphens: manual !important; -webkit-hyphens: manual !important; overflow-wrap: normal; }
html body main table td:has(> :is(strong, span)) { white-space: normal; }
/* Drei Karten in einer Reihe statt 2 + 1 */
@media (min-width: 1024px) { html body main .card-grid:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Autorenkasten nicht direkt auf dem Abschlussband */
html body main .section:has(.authorbox) { padding-bottom: var(--t-section-y); }
/* Rechner-Überschrift ohne Trennung */
html body .vr-h1 { hyphens: manual !important; -webkit-hyphens: manual !important; }
/* ---- Runde 10 (vierte Prüfrunde) ---- */
/* Akzent-Token der alten Schicht (blau) auf THETA-Rot: Links, Akzentrahmen, Pfeile einheitlich */
html body:not(.theta-home) > :not(.nav):not(.footer) { --accent: #a11f28; --accent-glow: rgba(161, 31, 40, 0.16); --accent-deep: #8d1a22; }
/* Auf Navy bleiben Links hell */
html body:not(.theta-home) main .section:not(.section--light):not(:has(+ .cta)):not(:has(ul.related)) a:not(.btn) { color: #ffffff; text-decoration: underline; text-underline-offset: 3px; }
html body:not(.theta-home) main .cta a:not(.btn) { color: #ffffff; }
/* Hinweiskästen: Fliesstext dunkel (schlägt die graue Abschnittsregel) */
html body:not(.theta-home) main .section .note :is(p, li):not(.note-label) { color: var(--t-ink); }
/* Tabellen in Lesegrösse */
@media (min-width: 768px) { html body main table { font-size: 17px; } }
/* Kartentitel ohne automatische Trennung, Kartentext lesbar */
html body main .scard h3 { hyphens: manual !important; -webkit-hyphens: manual !important; overflow-wrap: normal; }
html body main .scard p { font-size: 16px; line-height: 1.55; }
/* Widerspruch-Knopf (Datenschutz): klar erkennbar, auch im deaktivierten Zustand lesbar */
html body #theta-optout { display: inline-flex; align-items: center; min-height: 48px; padding: 10px 22px; background: #ffffff; background-image: none; color: var(--t-navy); border: 1px solid var(--t-navy); border-radius: 2px; font-weight: 700; box-shadow: none; cursor: pointer; }
html body #theta-optout[disabled] { color: var(--t-muted); border-color: #b9c0cc; cursor: default; opacity: 1; }

/* ---- Kopf- und Fusszeile = Startseite (Adin 07.11.2026: «header und footer überall einheitlich … wie bei der mainpage») ----
   Seiten mit hellem Grund (Erstgespräch, Brückenseite) legen die Dunkel-Tokens seitenweit um. Kopf- und Fusszeile
   holen sich deshalb die Original-Tokens vom :root zurück (Alias wird am :root aufgelöst und vererbt). */
:root { --chrome-ink-950: var(--ink-950); --chrome-ink-900: var(--ink-900); --chrome-ink-850: var(--ink-850); --chrome-ink-800: var(--ink-800); --chrome-ink-700: var(--ink-700); --chrome-tint-deep: var(--tint-deep); --chrome-text-on-dark: var(--text-on-dark); --chrome-text-on-dark-muted: var(--text-on-dark-muted); --chrome-text-on-dark-faint: var(--text-on-dark-faint); --chrome-hairline: var(--hairline); --chrome-hairline-strong: var(--hairline-strong); --chrome-accent: var(--accent); --chrome-accent-bright: var(--accent-bright); --chrome-accent-deep: var(--accent-deep); --chrome-accent-glow: var(--accent-glow); --chrome-shadow-card: var(--shadow-card); }
html body:not(.theta-home) > :is(.nav, .footer) { --ink-950: var(--chrome-ink-950); --ink-900: var(--chrome-ink-900); --ink-850: var(--chrome-ink-850); --ink-800: var(--chrome-ink-800); --ink-700: var(--chrome-ink-700); --tint-deep: var(--chrome-tint-deep); --text-on-dark: var(--chrome-text-on-dark); --text-on-dark-muted: var(--chrome-text-on-dark-muted); --text-on-dark-faint: var(--chrome-text-on-dark-faint); --hairline: var(--chrome-hairline); --hairline-strong: var(--chrome-hairline-strong); --accent: var(--chrome-accent); --accent-bright: var(--chrome-accent-bright); --accent-deep: var(--chrome-accent-deep); --accent-glow: var(--chrome-accent-glow); --shadow-card: var(--chrome-shadow-card); color: var(--text-on-dark); }
/* Kopfzeile auf Unterseiten: sticky statt fixed. Gleiches Aussehen wie auf der Startseite, aber sie nimmt
   ihren eigenen Platz ein — Brotkrumen und Kicker («Kostenloses Erstgespräch») liegen nicht mehr darunter. */
html body:not(.theta-home) > header.nav { position: sticky; top: 0; }
/* Erstgespräch: Hinweis unter der Frage auf der Mittelachse (fieldset-Kind ohne volle Breite) */
html body.funnel-page .fstep .fstep-hint { display: block; width: 100%; margin-left: auto; margin-right: auto; text-align: center; }
