/* ==========================================================================
   Fairly Claims v4: Designsystem nach dem Canvas vom 04.09.2026 (docs/design/startseite/)
   Reihenfolge: Fonts → Basis → Bausteine → Header/Footer → Motion. Seitenspezifisches in css/pages/<slug>.css.
   Regeln: BEM-flach, keine Keyframes, nur transition + .is-visible, Breakpoints 991/767/479, Tokens aus styles.css.
   ========================================================================== */

/* ===== Fonts lokal (woff2, Subset latin, SIL OFL 1.1) ===== */
@font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/instrument-serif-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Instrument Serif"; font-style: italic; font-weight: 400; font-display: swap; src: url("/assets/fonts/instrument-serif-400i.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/dm-mono-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/dm-mono-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/work-sans-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/work-sans-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/work-sans-600.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/work-sans-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face { font-family: "Teko"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("/assets/fonts/teko-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ===== Basis-Typografie ===== */
h1, h2 { font-family: var(--fc-font-display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; color: var(--fc-ink); text-wrap: balance; hyphens: manual; }
h1 { font-size: clamp(48px, 6.67vw, var(--fc-h1)); }
h2 { font-size: clamp(34px, 3.89vw, var(--fc-h2)); line-height: 1.06; }
h3 { font-family: var(--fc-font-display); font-size: var(--fc-h3); font-weight: 400; line-height: 1.15; letter-spacing: -0.015em; color: var(--fc-ink); }
h4 { font-family: var(--fc-font); font-size: 17px; font-weight: 600; line-height: 1.4; }
em, .fc-accent { font-style: italic; color: var(--fc-green-800); }
.fc-serif { font-family: var(--fc-font-display); font-weight: 400; letter-spacing: -0.01em; }
.fc-container { width: 100%; max-width: calc(var(--fc-container) + (var(--fc-gutter) * 2)); margin-inline: auto; padding-inline: var(--fc-gutter); }
.fc-container--wide { max-width: calc(var(--fc-container-wide) + (var(--fc-gutter) * 2)); }
.fc-kicker { display: block; margin-bottom: 20px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.fc-kicker--tight { margin-bottom: 12px; }
.fc-lead { max-width: 34em; color: var(--fc-copy); font-size: var(--fc-lead); line-height: 1.5; }
.fc-lead--wide { max-width: 60ch; }
.fc-copy { color: var(--fc-copy); font-size: var(--fc-body); line-height: 1.6; max-width: 60ch; }
.fc-note { color: var(--fc-copy); font-size: 13px; line-height: 1.5; }
.fc-mono { color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: 0.02em; }
.fc-ph-text { color: var(--fc-muted); }

/* Sektionen: 132 Standard, 160 groß, 84 knapp. Flächen: Weiß, Soft, Tint (grün), Flow, Dunkel. */
.sec { padding-block: var(--fc-section); background: var(--fc-white); }
.sec--lg { padding-block: var(--fc-section-lg); }
.sec--sm { padding-block: var(--fc-section-sm); }
.sec--soft { background: var(--fc-soft); }
.sec--tint { background: var(--fc-green-50); }
.sec--flow { background: var(--fc-flow); }
.sec--dark { background: var(--fc-green-950); color: var(--fc-white); }
.sec--dark h1, .sec--dark h2, .sec--dark h3 { color: var(--fc-white); }
.sec--dark .fc-kicker { color: rgba(255,255,255,.55); }
.sec--dark .fc-lead, .sec--dark .fc-copy { color: var(--fc-on-dark-soft); }
.sec--dark.sec--anthrazit { background: var(--fc-gray-dark); } /* Anthrazit-Variante (Guide-Farbe), 08.09.2026 fuer den Team-Block auf Ueber uns: Bastians Fotos haben Anthrazit-Waende */
.sec--flush-top { padding-top: 0; }
.sec--flush-bottom { padding-bottom: 0; }

/* ===== Buttons und Links ===== */
.fc-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 58px; padding: 0 32px; border: 1px solid transparent; border-radius: var(--fc-radius-pill); font-size: 17px; font-weight: 500; line-height: 1; white-space: nowrap; transition: background-color 180ms var(--fc-ease), border-color 180ms var(--fc-ease), color 180ms var(--fc-ease), transform 180ms var(--fc-ease); }
.fc-button:active { transform: translateY(1px); }
.fc-button--green { background: var(--fc-green-800); color: var(--fc-white); border-color: var(--fc-green-800); }
.fc-button--green:hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.fc-button--dark { background: var(--fc-ink); color: var(--fc-white); border-color: var(--fc-ink); }
.fc-button--dark:hover { background: var(--fc-green-800); border-color: var(--fc-green-800); }
.fc-button--light { background: var(--fc-white); color: var(--fc-ink); border-color: var(--fc-line-strong); }
.fc-button--light:hover { border-color: var(--fc-ink); }
.fc-button--mint { background: var(--fc-green-300); color: var(--fc-green-950); border-color: var(--fc-green-300); }
.fc-button--mint:hover { background: var(--fc-white); border-color: var(--fc-white); }
.fc-link { display: inline-flex; align-items: center; gap: 7px; color: var(--fc-ink); font-size: 16px; font-weight: 500; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 6px; transition: text-decoration-color 180ms var(--fc-ease), color 180ms var(--fc-ease); }
.fc-link:hover { text-decoration-color: currentColor; color: var(--fc-green-800); }
.fc-link--sm { font-size: 15px; }
/* Textlink statt Button in Sektionen (Laurence 26.10.2026, Muster Legacy): Buttons nur im Hero, in Abschluss-Panels
   und Formularen. Dazwischen ein kleiner fetter Link mit sichtbarer Unterstreichung. Auf Dunkel weiß (Regeln .sec--dark). */
.fc-link--strong { min-height: 44px; color: var(--fc-green-800); font-weight: 600; text-decoration-color: currentColor; text-decoration-thickness: 1.5px; transition: text-underline-offset 180ms var(--fc-ease), color 180ms var(--fc-ease); }
.fc-link--strong:hover { color: var(--fc-ink); text-underline-offset: 4px; }
/* Social-Icon-Link (LinkedIn). Baustein, damit Team, Footer und Kontakt gleich aussehen. */
.fc-social { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-left: -8px; border-radius: var(--fc-radius-sm); color: var(--fc-muted); transition: color 180ms var(--fc-ease), background-color 180ms var(--fc-ease); }
.fc-social:hover, .fc-social:focus-visible { color: var(--fc-green-800); background: var(--fc-green-50); }
/* Kontextkarten: kleines Bild links, Titel und eine Zeile rechts. Optik wie die Karten im Mega-Menü Netzwerk. */
.link-cards { display: grid; gap: 6px; }
.link-card { display: grid; grid-template-columns: 128px minmax(0, 1fr); align-items: center; gap: 18px; margin-left: -10px; padding: 10px; border-radius: var(--fc-radius-sm); color: var(--fc-ink); transition: background-color 180ms var(--fc-ease); }
.link-card:hover, .link-card:focus-within { background: var(--fc-green-50); }
.link-card img { width: 100%; height: 84px; border-radius: var(--fc-radius-media); object-fit: cover; }
.link-card strong { display: block; font-family: var(--fc-font-display); font-size: 21px; font-weight: 400; line-height: 1.15; letter-spacing: -.01em; transition: color 180ms var(--fc-ease); }
.link-card:hover strong { color: var(--fc-green-800); }
.link-card small { display: block; margin-top: 4px; color: var(--fc-copy); font-size: 14px; line-height: 1.45; }
.fc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.fc-actions--center { justify-content: center; }
.fc-text-link { color: var(--fc-green-800); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.fc-text-link:hover { color: var(--fc-ink); }

/* ===== Seitenkopf: Bild dahinter, Titel zentriert, Header transparent darüber ===== */
.page-hero { position: relative; overflow: hidden; display: grid; align-items: center; min-height: 520px; padding: calc(var(--fc-header-h) + 72px) 0 72px; background: var(--fc-flow); }
.page-hero--home { min-height: min(820px, 92vh); padding-top: calc(var(--fc-header-h) + 96px); padding-bottom: 96px; }
.page-hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.page-hero__media img, .page-hero__media video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.page-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,.10) 18%, rgba(255,255,255,0) 45%, rgba(255,255,255,.30) 100%); pointer-events: none; }
.page-hero__media--ph { display: flex; }
.page-hero__inner { position: relative; z-index: 1; display: grid; justify-items: center; text-align: center; }
.page-hero__inner .fc-kicker { color: var(--fc-copy); }
.page-hero__inner h1 { max-width: 14ch; }
.page-hero--home .page-hero__inner h1 { max-width: 1400px; font-size: clamp(60px, 6.67vw, var(--fc-h1-home)); }
.page-hero__lead { max-width: 640px; margin-top: 28px; color: var(--fc-copy); font-size: var(--fc-lead); line-height: 1.5; }
.page-hero__actions { margin-top: 36px; }
.page-hero__nowrap { white-space: nowrap; }

/* Seitenkopf zweigeteilt: steht jetzt in css/skala.css, damit Startseite und Unterseiten
   denselben Baustein benutzen. Nicht hierher zurueckkopieren. */
.js .page-hero__media img, .js .page-hero__media video { opacity: 0; transform: scale(1.03); transition: opacity 900ms var(--fc-ease), transform 1400ms var(--fc-ease); }
.js .page-hero.is-ready .page-hero__media img, .js .page-hero.is-ready .page-hero__media video { opacity: 1; transform: none; }
.js .page-hero .hero-seq { opacity: 0; transform: translateY(16px); transition: opacity 700ms var(--fc-ease), transform 700ms var(--fc-ease); transition-delay: calc(var(--step, 0) * 120ms); }
.js .page-hero.is-ready .hero-seq { opacity: 1; transform: none; }

/* ===== Zweispalter: oben bündig, Überschrift links ===== */
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.split--6-6 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.split--4-8 { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px; }
.split--7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.split--9-11 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; } /* seit 22.10.2026 gleiche rechte Kante wie .split (Laurence: einheitliche Abstände) */
.split--10-8 { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 96px; }
.split > h2, .split__head > h2 { margin-top: -2px; }
.split__head .fc-lead { margin-top: 24px; }
.split__head .fc-actions { margin-top: 48px; }
.split__body > .fc-copy + .fc-actions, .split__body > .fc-lead + .fc-actions { margin-top: 24px; }

/* ===== Zeilen mit Haarlinien ===== */
.rows { display: block; border-bottom: 1px solid var(--fc-line); }
.rows__item { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid var(--fc-line); font-size: 15px; line-height: 1.5; }
.rows__label { color: var(--fc-ink); font-weight: 500; }
.rows__text { color: var(--fc-copy); max-width: 68ch; } /* Lesbarkeitsgrenze, seit Container 1440 (07.09.) */
.rows--spec .rows__item { padding: 10px 0; font-size: 14px; }
.rows--spec .rows__label { padding-top: 3px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.rows--spec .rows__text { color: var(--fc-ink); }
.rows--stations .rows__item { display: block; padding: 20px 0; }
.rows--stations .rows__label { display: block; font-size: 19px; font-weight: 500; }
.rows--stations .rows__text { display: block; margin-top: 6px; font-size: 16px; }
.rows--titled .rows__item { grid-template-columns: minmax(0, .4fr) minmax(0, 1fr); padding: 18px 4px; }
.rows--titled .rows__label { font-family: var(--fc-font-display); font-size: 24px; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
.rows--titled .rows__text { padding-top: 2px; font-size: 15px; }
.rows--wide .rows__item { grid-template-columns: 220px minmax(0, 1fr); }
.rows--link .rows__item { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.rows--plain .rows__item { display: block; }

/* ===== Schritte, Zahlen, Zitat ===== */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.steps__item { padding-top: 18px; border-top: 1px solid var(--fc-ink); }
.steps__n { display: block; margin-bottom: 14px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .06em; }
.steps__title { display: block; font-size: 19px; font-weight: 500; line-height: 1.3; }
.steps__text { margin-top: 8px; color: var(--fc-copy); font-size: 15px; line-height: 1.5; }
.steps__meta { display: block; margin-top: 10px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; }

.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 64px; }
.facts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
.facts--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 32px; }
.facts__item { padding-top: 14px; border-top: 1px solid var(--fc-line); }
.facts__num { display: block; font-family: var(--fc-font-display); font-size: 40px; line-height: 1; color: var(--fc-ink); font-variant-numeric: tabular-nums; }
.facts__label { display: block; margin-top: 8px; color: var(--fc-copy); font-size: 14px; line-height: 1.45; }
.facts--big .facts__item { padding-top: 0; border-top: 0; }
.facts--big .facts__num { font-size: 52px; color: var(--fc-green-950); }
.facts--big .facts__item + .facts__item { padding-left: 32px; border-left: 1px solid var(--fc-line-strong); }
.facts--big .facts__label { margin-top: 10px; font-size: 13px; }
.facts-band__text { max-width: 60ch; font-family: var(--fc-font-display); font-size: 22px; line-height: 1.35; letter-spacing: -.01em; }
.facts-band__rule { height: 1px; margin: 28px 0 40px; background: var(--fc-line-strong); }

.quote { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; padding-top: 24px; border-top: 1px solid var(--fc-line); }
/* Aussage-Band: eine grosse Aussage mit Haarlinie links, erste Sektion nach dem Hero (Aon-Muster).
   Vorher sechsmal identisch in css/pages/ (ueber-uns, leistungen, leistung, community, academy, karriere). 07.09. */
.statement { max-width: var(--fc-statement-w, 1060px); padding-left: 40px; border-left: 3px solid var(--fc-green-800); font-size: clamp(32px, 4.2vw, var(--fc-statement, 60px)); line-height: 1.08; letter-spacing: -.015em; }
@media (max-width: 767px) { .statement { padding-left: 24px; } }

.quote__text { margin: 0; font-family: var(--fc-font-display); font-size: 28px; line-height: 1.3; letter-spacing: -.01em; color: var(--fc-ink); }
.quote__who { margin-top: 20px; color: var(--fc-copy); font-size: 14px; }
.quote__who strong { color: var(--fc-ink); font-weight: 500; }
.quote__media { min-height: 260px; }
.quote--solo { grid-template-columns: minmax(0, 1fr); }

/* Gruender-Band (Academy "Fuer Versicherer", 11.09.2026): zentrierte Spalte mit Kicker, grosser Aussage als H2,
   einem Absatz und Avatar-Zeile mit Name und Rolle als Link. Muster wie der Gruender-Block der Startseite
   (home-live/25-home-people, v3) und der Ueber-uns-Block von TP Service. Auf Dunkel ueber .sec--dark. */
.founder { display: grid; justify-items: center; max-width: 900px; margin-inline: auto; text-align: center; }
.founder__quote { max-width: 18em; font-family: var(--fc-font-display); font-size: clamp(32px, 3.4vw, 52px); font-weight: 400; line-height: 1.15; letter-spacing: -.015em; text-wrap: balance; }
.founder__text { max-width: 40em; margin-top: 24px; color: var(--fc-copy); font-size: var(--fc-lead, 22px); line-height: 1.5; }
.founder__link { display: inline-flex; align-items: center; gap: 16px; margin-top: 40px; text-align: left; color: inherit; text-decoration: none; }
.founder__avatar { display: block; flex: none; width: 64px; height: 64px; overflow: hidden; border-radius: 50%; background: var(--fc-soft); transition: transform .3s ease; }
.founder__avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.founder__link:hover .founder__avatar { transform: scale(1.05); }
.founder__name { display: block; font-size: 17px; font-weight: 600; }
.founder__role { display: block; margin-top: 3px; color: var(--fc-green-800); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.sec--dark .founder__text { color: var(--fc-on-dark-soft); }
.sec--dark .founder__role { color: var(--fc-green-300); }
@media (max-width: 767px) {
  .founder__quote { font-size: 28px; }
  .founder__text { margin-top: 16px; font-size: 18px; }
  .founder__link { margin-top: 28px; }
}

/* Nummerierte Punkte am senkrechten Haarstrich. Benutzt von Karriere (Werte und Benefits).
   Senkrecht statt waagerecht ist Absicht: .rows--stations und .steps tragen schon die
   waagerechte Linie, ein drittes Mal dasselbe Bild macht die Abschnitte ununterscheidbar. */
.numbers { display: grid; grid-template-columns: repeat(var(--numbers-cols, 2), minmax(0, 1fr)); gap: 40px 48px; }
.numbers--1 { --numbers-cols: 1; }
.numbers--2 { --numbers-cols: 2; }
.numbers--3 { --numbers-cols: 3; }
.numbers--4 { --numbers-cols: 4; }
.numbers__item { padding-left: 24px; border-left: 1px solid var(--fc-line); }
.numbers__n { display: block; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .06em; }
.numbers__n--icon { height: 24px; color: var(--fc-green-800); }
.numbers__n--icon svg { display: block; }
.numbers__titel { display: block; margin-top: 12px; color: var(--fc-ink); font-size: 19px; font-weight: 500; line-height: 1.3; }
.numbers__text { margin-top: 10px; color: var(--fc-copy); font-size: 15px; line-height: 1.55; }
.sec--dark .numbers__item { border-color: var(--fc-on-dark-line); }
.sec--dark .numbers__titel { color: var(--fc-white); }
.sec--dark .numbers__text { color: var(--fc-on-dark-soft); }
.sec--dark .numbers__n--icon { color: var(--fc-green-300); }
/* Kartenraster (Karriere-Benefits, Bastian 22.10.2026): Icon in getönter Kachel, Titel, optional ein Satz. */
.numbers--cards { gap: 20px; }
.numbers--cards .numbers__item { padding: 28px; border: 1px solid var(--fc-line); border-radius: var(--fc-radius); background: var(--fc-white); }
.numbers--cards .numbers__n--icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 14px; background: var(--fc-green-100); }
.numbers--cards .numbers__titel { font-size: 18px; }
/* .rows auf Dunkel (Academy-Module 11.09.2026): Haarlinien, Titel weiss, Text gedaempft, Spec-Label wie der Kicker. */
.sec--dark .rows, .sec--dark .rows__item { border-color: var(--fc-on-dark-line); }
.sec--dark .rows__label { color: var(--fc-white); }
.sec--dark .rows__text { color: var(--fc-on-dark-soft); }
.sec--dark .rows--spec .rows__label { color: rgba(255,255,255,.55); }
.sec--dark .rows--spec .rows__text { color: var(--fc-white); }
/* Key Facts (Partner werden, 08.09.2026, Muster Aon): Icon, grosse Zahl, ein Satz. Zahl im Mass von .facts--big. */
.numbers--facts .numbers__titel { margin-top: 20px; font-family: var(--fc-font-display); font-size: 52px; font-weight: 400; line-height: 1; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.numbers--facts .numbers__text { margin-top: 12px; font-size: 15px; }


/* Bild neben Text: EIN Baustein fuer alle Seiten (Laurence, 11.09.2026, Massstab ist Partner werden).
   Halbe-halbe, das Bild endet mit dem Text (img absolut, damit seine Eigenhoehe die Zeile nicht aufzieht),
   keine Mindesthoehe: die Hoehe bestimmt der Text. Ein 4:5-Minimum machte kurze Bloecke viel zu gross
   (Laurence abends). .feature--flip Bild rechts. .feature--split-copy: Bild 5/12, Text 7/12 mit zwei
   Textspalten (Partner werden 03). .feature--wide nur fuer Gruppenfotos (16:9, Teamfoto). Mobil steht das
   Bild oben in 4:3. Seiten-CSS setzt am Baustein nur object-position; scripts/check.mjs prueft (Bauregel 12).
   Das Verhaeltnis liegt auf ::before, nie auf dem gestreckten Slot selbst: ein gestreckter Grid-Eintrag mit
   aspect-ratio waechst bei langem Text in die Breite und laeuft aus der Spalte (gemessen 11.09.). */
.feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: stretch; }
.feature__media { position: relative; min-height: 0; overflow: hidden; border-radius: var(--fc-radius-media); }
.feature__media::before { content: ""; display: block; }
.feature__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.feature__body { align-self: center; }
.feature__body > * + * { margin-top: 16px; }
.feature__body > .fc-kicker + * { margin-top: 0; }
.feature__body > h2 + * { margin-top: 24px; }
.feature__body > * + .fc-actions { margin-top: 32px; }
.feature--flip .feature__media { order: 2; }
.feature--wide .feature__media::before { aspect-ratio: 16 / 9; }

/* ===== Aussage auf Bild: Motiv im gerundeten Rahmen, Text als Overlay =====
   Muster von Sana ("Mission", Mobbin 07.09.2026): das Bild ist eingefasst, nicht vollflaechig,
   der Grund der Sektion bleibt hell. Kein harter Scrim, nur so viel Verlauf, dass die Copy sitzt.
   Deshalb braucht der Baustein ein ruhiges Motiv mit heller, flaechiger linker Bildhaelfte. */
.overlay { padding-block: var(--fc-section); background: var(--fc-white); }
.overlay__frame { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: center; min-height: 700px; padding: 88px; border-radius: var(--fc-radius-band); background: var(--fc-green-950); }
.overlay__media { position: absolute; inset: 0; z-index: 0; }
.overlay__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% 45%; }
.overlay__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 39, 30, .74) 0%, rgba(11, 39, 30, .58) 42%, rgba(11, 39, 30, .16) 74%, rgba(11, 39, 30, 0) 100%); pointer-events: none; }
.overlay__body { position: relative; z-index: 1; max-width: 42ch; color: var(--fc-white); }
.overlay__body > * + * { margin-top: 20px; }
.overlay__body > .fc-kicker + * { margin-top: 14px; }
.overlay__body > h2 + * { margin-top: 24px; }
.overlay__body .fc-kicker { color: rgba(255, 255, 255, .72); }
.overlay__body h2 { color: var(--fc-white); max-width: 16ch; }
.overlay__body .fc-lead, .overlay__body .fc-copy { color: rgba(255, 255, 255, .92); }

@media (max-width: 991px) {
  .numbers { gap: 32px 40px; }
  .numbers--4 { --numbers-cols: 2; }
  .numbers__item { padding-left: 20px; }
  /* Schmaler Viewport: der Verlauf laeuft von unten, der Text sitzt im Fuss des Rahmens. */
  .overlay__frame { min-height: 560px; padding: 40px; align-items: end; }
  .overlay__media::after { background: linear-gradient(180deg, rgba(11, 39, 30, .10) 0%, rgba(11, 39, 30, .50) 45%, rgba(11, 39, 30, .82) 100%); }
  .overlay__body { max-width: none; }
  .overlay__body h2 { max-width: none; }
}

@media (max-width: 767px) {
  .numbers { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .numbers__titel { font-size: 17px; }
  .overlay__frame { min-height: 480px; padding: 28px; border-radius: var(--fc-radius-sm); }
}
/* Variante mit zwei Textspalten (Vorbild IntegratedBio, Partner werden 03): Bild 5/12, Text 7/12,
   Fliesstext unter der H2 in .feature__cols. Kein Kicker-Punkt, kein Pfeil im Button. */
.feature--split-copy { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.feature--split-copy .feature__body > h2 + * { margin-top: 32px; }
.feature__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.feature__cols > div > * + * { margin-top: 16px; }

/* ===== Karten, Band, Kacheln ===== */
.card { padding: 32px; border: 1px solid var(--fc-card-border); border-radius: var(--fc-radius); background: var(--fc-white); box-shadow: var(--fc-shadow-card); transition: border-color 160ms var(--fc-ease), background-color 160ms var(--fc-ease); }
.card--soft { background: var(--fc-soft); border-color: transparent; box-shadow: none; }
.card--flat { box-shadow: none; }
.card--pad-lg { padding: 40px; }
.card--hover:hover, .card--hover:focus-within { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); }
.card--soft.card--hover:hover, .card--soft.card--hover:focus-within { border-color: var(--fc-line-green); }
.card__title { font-family: var(--fc-font-display); font-size: 36px; font-weight: 400; line-height: 1.05; letter-spacing: -.015em; }
.card__title--sm { font-size: 28px; }
.card__text { margin: 10px 0 20px; color: var(--fc-copy); font-size: 15px; line-height: 1.5; }
.card__foot { margin-top: 24px; }
.card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card-grid .card { display: flex; flex-direction: column; }
.card-grid .card > .rows, .card-grid .card > .card__foot { margin-top: auto; }

.band { border-radius: var(--fc-radius-band); background: var(--fc-band); padding: 64px 64px 96px; }
.band--inline { padding: 64px; }
.band--tint { background: var(--fc-green-50); }
.band__pull { margin: -64px 48px 0; }
.band__after { margin-top: 32px; }
.band--lg { padding: 72px 64px 110px; }

.tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tile { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--fc-card-border); border-radius: var(--fc-radius); background: var(--fc-white); box-shadow: var(--fc-shadow-card); color: var(--fc-ink); transition: border-color 160ms var(--fc-ease), background-color 160ms var(--fc-ease); }
.tile:hover, .tile:focus-visible { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); }
.tile__media img { transition: transform 400ms var(--fc-ease); }
.tile:hover .tile__media img { transform: scale(1.03); }
.tile__media { height: 220px; }
.tile__media img, .tile__media .ph { width: 100%; height: 100%; border: 0; border-radius: 0; object-fit: cover; }
.tile__body { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.tile__title { font-family: var(--fc-font-display); font-size: 30px; font-weight: 400; line-height: 1.05; letter-spacing: -.015em; }
.tile__text { margin-top: 10px; color: var(--fc-copy); font-size: 15px; line-height: 1.5; }
.tile__foot { margin-top: auto; padding-top: 24px; }
/* Kompakte Kacheln ohne Bild (Karriere-Stellen, 08.09.2026): Meta-Zeile, Titel, ein Satz, zwei Aktionen.
   <article> statt <a>, damit der Button drin ein echter Link bleibt; Hover greift über .tile trotzdem. */
.tiles--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tile--compact .tile__body { padding: 24px; }
/* In kompakten Kacheln bleibt der Button klein, sonst dominiert er die Karte (Basisgroesse seit 08.09. wie Aon: 58/32/17). */
.tile--compact .fc-button { min-height: 46px; padding: 0 22px; font-size: 15px; }
.tile__meta { display: block; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.tile__title--sm { font-size: 24px; }
.tile__meta + .tile__title { margin-top: 12px; }
.tile--compact .tile__foot { padding-top: 20px; gap: 12px 20px; }

/* Leistungs-Karussell: dieselben Kacheln wie auf Ueber uns, nur laeuft die Reihe seitlich weiter.
   Nur Bedienung, kein Autoplay, keine Keyframes, keine Scroll-Kopplung. */
.rail__nav { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 20px; }
.rail__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--fc-line-strong); border-radius: var(--fc-radius-pill); background: var(--fc-white); color: var(--fc-ink); cursor: pointer; transition: border-color 160ms var(--fc-ease), background-color 160ms var(--fc-ease); }
.rail__btn svg { width: 18px; height: 18px; }
.rail__btn[disabled] { border-color: var(--fc-line); background: transparent; color: var(--fc-line-strong); cursor: default; }
@media (hover: hover) and (pointer: fine) { .rail__btn:not([disabled]):hover { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); } }
.rail__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; margin: -8px; padding: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 8px; scrollbar-width: none; }
.rail__track::-webkit-scrollbar { display: none; }
.rail__track > * { scroll-snap-align: start; }
.rail.is-static .rail__nav { display: none; }

/* Fotos und Platzhalter (Material von Bastian, Kürzel aus docs/material-liste.md) */
.photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.photos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.photos__item { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--fc-radius-media); }
.photos__item img { width: 100%; height: 100%; object-fit: cover; }
.ph { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 120px; padding: 16px; border: 1px dashed var(--fc-line-strong); border-radius: var(--fc-radius-media); background: repeating-linear-gradient(135deg, #eef0ef 0 12px, #e6e9e7 12px 24px); color: var(--fc-copy); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .04em; line-height: 1.5; text-align: center; text-transform: uppercase; }
.ph--4x5 { aspect-ratio: 4 / 5; min-height: 0; }
.ph--4x3 { aspect-ratio: 4 / 3; min-height: 0; }
.ph--16x9 { aspect-ratio: 16 / 9; min-height: 0; }
.ph--21x9 { aspect-ratio: 21 / 9; min-height: 0; }
.ph--1x1 { aspect-ratio: 1; min-height: 0; }
.ph--circle { width: 96px; height: 96px; min-height: 0; padding: 0; border-radius: 50%; font-size: 9px; }
.ph--fill { position: absolute; inset: 0; border: 0; border-radius: 0; align-items: flex-end; justify-content: flex-end; padding: 24px 36px; }
.ph--dark { background: repeating-linear-gradient(135deg, #123a2c 0 12px, #0f3126 12px 24px); border-color: rgba(255,255,255,.35); color: rgba(255,255,255,.75); }
.ph--logo { height: 84px; min-height: 0; font-size: 10px; }

/* Referenz-Logos: 4 Spalten, Graustufen, Welle beim Reveal */
.logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.logos__item { display: flex; align-items: center; justify-content: center; height: 84px; padding: 18px 22px; border: 1px solid var(--fc-line); border-radius: var(--fc-radius-sm); background: var(--fc-white); }
.logos__item img { max-height: 36px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .82; transition: opacity 180ms ease, filter 180ms ease; }
.logos__item:hover img { filter: none; opacity: 1; }

/* Sprungleiste (Leistungen): Pills, sticky unter dem Header */
.pills { padding: 12px 0; border-bottom: 1px solid var(--fc-line); background: var(--fc-white); }
.pills__list { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.pills__list::-webkit-scrollbar { display: none; }
.pills__item { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border: 1px solid var(--fc-line); border-radius: var(--fc-radius-pill); color: var(--fc-copy); font-size: 14px; font-weight: 500; white-space: nowrap; transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease; }
.pills__item:hover { border-color: var(--fc-ink); color: var(--fc-ink); }
.pills__item.is-active { background: var(--fc-ink); border-color: var(--fc-ink); color: var(--fc-white); }

/* Klappen (Weitere Leistungen): Höhe wächst weich, Nachbarn bleiben */
.fold__head { display: grid; grid-template-columns: minmax(0, 1fr) 20px; align-items: center; gap: 12px; width: 100%; padding: 0; border: 0; background: none; color: var(--fc-ink); font: inherit; text-align: left; cursor: pointer; }
.fold__head i { position: relative; width: 18px; height: 18px; }
.fold__head i::before, .fold__head i::after { content: ""; position: absolute; top: 50%; left: 3px; right: 3px; height: 1px; background: var(--fc-ink); transition: transform 200ms ease; }
.fold__head i::after { transform: rotate(90deg); }
.fold.is-open .fold__head i::after { transform: rotate(0); }
.fold__panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows 400ms var(--fc-ease); }
.js .fold__panel { grid-template-rows: 0fr; }
.js .fold.is-open .fold__panel { grid-template-rows: 1fr; }
.fold__inner { min-height: 0; overflow: hidden; }
.fold__toggle { display: inline-block; margin-top: 16px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }

/* FAQ als Akkordeon (Academy, Community, Bastian 08.09.2026): Zeilen mit Haarlinien, Antworten zu im Default.
   <details>, damit es ohne JS aufklappt; [data-accordion] in v4.js laesst nur einen Eintrag offen.
   data-faq am <details> liefert das FAQPage-JSON-LD (scripts/build.mjs). */
/* FAQ als Boxen mit Chevron (11.09.2026 abends, Laurence, Muster laurencezgonjanin.de, erst auf Partner werden, dann
   ueberall): jede Frage eine weisse Box mit Haarlinie und Baustein-Radius, rechts ein Pfeil, der sich beim Oeffnen dreht.
   Hover und offen heben den Rand an. Das <i> im Markup ist der Pfeil (::before), ::after bleibt frei. */
.faq { display: block; }
.faq__item { border: 1px solid var(--fc-line); border-radius: var(--fc-radius-sm); background: var(--fc-white); transition: border-color 200ms ease; }
.faq__item + .faq__item { margin-top: 12px; }
.faq__item:hover, .faq__item[open] { border-color: var(--fc-line-strong); }
.faq__q { display: grid; grid-template-columns: minmax(0, 1fr) 20px; align-items: center; gap: 16px; padding: 18px 22px; color: var(--fc-ink); font-size: 18px; font-weight: 500; line-height: 1.3; cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 3px; }
.faq__q i { position: relative; width: 20px; height: 20px; }
.faq__q i::before { content: ""; position: absolute; top: 4px; left: 5px; width: 8px; height: 8px; border-right: 1.5px solid var(--fc-muted); border-bottom: 1.5px solid var(--fc-muted); transform: rotate(45deg); transition: transform 240ms var(--fc-ease), border-color 200ms ease; }
.faq__item:hover .faq__q i::before, .faq__item[open] .faq__q i::before { border-color: var(--fc-ink); }
.faq__item[open] .faq__q i::before { transform: translateY(5px) rotate(225deg); }
.faq__a { max-width: 68ch; padding: 0 56px 22px 22px; color: var(--fc-copy); font-size: 16px; line-height: 1.6; opacity: 0; transform: translateY(6px); transition: opacity 400ms var(--fc-ease), transform 400ms var(--fc-ease); }
.faq__item[open] .faq__a { opacity: 1; transform: none; }
.faq__a p + p, .faq__a p + ul, .faq__a ul + p { margin-top: 12px; }
.faq__a ul { margin: 0; padding: 0; list-style: none; }
.faq__a li { padding: 6px 0; border-top: 1px solid var(--fc-line); }
.faq__a li:first-child { border-top: 0; }
@media (max-width: 767px) { .faq__q { padding: 14px 16px; font-size: 17px; } .faq__a { padding: 0 16px 16px; } }

/* Anliegen-Router (Startseite) und Themenwahl (Kontakt): Zeilen links, Panel rechts */
.chooser { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.chooser__list { border-bottom: 1px solid var(--fc-line); }
.chooser__item { display: flex; align-items: center; width: 100%; min-height: 56px; padding: 0 0 0 16px; border: 0; border-top: 1px solid var(--fc-line); border-left: 2px solid transparent; background: none; color: var(--fc-muted); font: inherit; font-size: 17px; text-align: left; cursor: pointer; transition: color 180ms ease, border-color 220ms var(--fc-ease); }
.chooser__item:hover { color: var(--fc-ink); }
.chooser__item[aria-pressed="true"], .chooser__item.is-active { border-left-color: var(--fc-green-800); color: var(--fc-ink); font-weight: 500; }
.chooser__panels { position: relative; min-height: 300px; }
.chooser__panel { transition: opacity 250ms var(--fc-ease), transform 250ms var(--fc-ease); }
.chooser__panel[hidden] { display: none; }
.js .chooser__panel.is-leaving { opacity: 0; }
.js .chooser__panel.is-entering { opacity: 0; transform: translateY(6px); }
.chooser__panel h2 { margin-top: -2px; }
.chooser__panel .fc-copy { margin-top: 16px; max-width: 52ch; }
.chooser__panel .fc-actions { margin-top: 28px; }
.chooser__panel .fc-mono { display: block; margin-top: 16px; }
html:not(.js) .chooser__panel + .chooser__panel { margin-top: 48px; }

/* CTA-Block: Überschrift, Lead, Button, Hotline, rechts optional Medium */
.cta-block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 96px; align-items: start; }
.cta-block--solo { grid-template-columns: minmax(0, 720px); }
.cta-block__lead { margin-top: 24px; }
.cta-block__actions { margin-top: 32px; }
.cta-block__note { margin-top: 16px; color: var(--fc-copy); font-size: 13px; line-height: 1.5; max-width: 52ch; }
/* Abschluss-Panel: einziger dunkler Moment je Seite, gerundet im hellen Rand. */
.cta-panel { position: relative; isolation: isolate; overflow: hidden; padding: 96px 80px; border-radius: var(--fc-radius-band); background: var(--fc-dark-panel); color: var(--fc-white); }
/* Zwei Ringe: konischer Verlauf, per Maske auf eine dünne Kontur reduziert. Kein Bild, keine Keyframes. */
.cta-panel::before, .cta-panel::after {
  content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; background: var(--fc-ring);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 22px), black calc(100% - 21px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 22px), black calc(100% - 21px));
}
.cta-panel::before { top: -62%; right: -14%; width: 46vw; height: 46vw; }
.cta-panel::after { bottom: -54%; left: -12%; width: 38vw; height: 38vw;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 16px), black calc(100% - 15px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 16px), black calc(100% - 15px)); }
.cta-panel h2 { color: var(--fc-white); max-width: 15ch; }
.cta-panel .fc-lead { color: var(--fc-on-dark-soft); }
.cta-panel .fc-link, .cta-panel .fc-link:hover { color: var(--fc-white); }
.cta-panel .cta-block__note { color: rgba(255, 255, 255, 0.55); }
.cta-panel .cta-block__note a { color: rgba(255, 255, 255, 0.8); }
.cta-panel .cta-block__note a:hover { color: var(--fc-white); }
.cta-block__media { position: relative; height: 320px; overflow: hidden; border-radius: var(--fc-radius-media); background: var(--fc-soft); }
.cta-block__media video, .cta-block__media img { width: 100%; height: 100%; object-fit: cover; }
/* Panel mit Porträt: Bild füllt die rechte Hälfte randlos, Text links im Padding (Muster Dropbox, TIDAL; 08.09.2026). */
.cta-panel--media { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); padding: 0; }
.cta-panel--media > .cta-block--solo { padding: 96px 80px; align-content: center; }
/* Bild absolut, damit seine Eigenhöhe nicht die Zeile treibt: die Panelhöhe kommt vom Text, das Bild füllt sie. */
.cta-panel__media { position: relative; z-index: 1; min-height: 480px; }
.cta-panel__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }

/* Vergleichstabelle (Leistungen): der Wrapper ist der Tabellenkoerper, das Liniengitter macht die Spalten sichtbar. */
.compare-wrap { overflow-x: auto; border: 1px solid var(--fc-line); border-radius: var(--fc-radius-sm); background: var(--fc-white); }
.compare { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; line-height: 1.45; }
.compare th, .compare td { padding: 14px 16px; border-top: 1px solid var(--fc-line); border-left: 1px solid var(--fc-line); text-align: left; vertical-align: top; }
.compare th:first-child, .compare td:first-child { border-left: 0; }
.compare thead th { padding: 12px 16px; border-top: 0; border-bottom: 1px solid var(--fc-line-strong); background: var(--fc-soft); color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.compare tbody th { color: var(--fc-ink); font-weight: 500; }
.compare tbody td { color: var(--fc-copy); }
.compare .compare__none { color: var(--fc-line-strong); }
/* Haken und Kreuz statt Textwerten (Bastian 22.10.2026): Spalten zentriert, Zebrazeilen, Kreuz bewusst leise. */
.compare--icons thead th:not(:first-child), .compare--icons td { text-align: center; }
.compare--icons tbody tr:nth-child(even) th, .compare--icons tbody tr:nth-child(even) td { background: var(--fc-soft); }
.compare--icons td { vertical-align: middle; }
.compare--icons .compare__yes { color: var(--fc-green-600); }
.compare--icons .compare__no { color: var(--fc-muted); opacity: .55; }
.compare__yes svg, .compare__no svg { display: inline-block; vertical-align: middle; }
.compare--icons .compare__text { color: var(--fc-ink); font-size: 14px; }
.fc-dialog .compare caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Popup: natives <dialog>, eine Fläche mit Kopfzeile. Öffnen in js/v4.js (data-dialog-open). */
.fc-dialog { width: min(880px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: var(--fc-radius-band); background: var(--fc-white); color: var(--fc-ink); box-shadow: 0 30px 80px rgba(11, 39, 30, .35); }
.fc-dialog::backdrop { background: rgba(11, 39, 30, .6); }
.fc-dialog__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 28px; border-bottom: 1px solid var(--fc-line); background: var(--fc-white); }
.fc-dialog .fc-dialog__head h2 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.05; }
.fc-dialog__close { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; border: 1px solid var(--fc-line-strong); border-radius: 999px; background: transparent; color: var(--fc-ink); cursor: pointer; transition: border-color 180ms var(--fc-ease), color 180ms var(--fc-ease); }
.fc-dialog__close:hover, .fc-dialog__close:focus-visible { border-color: var(--fc-green-800); color: var(--fc-green-800); }
.fc-dialog .compare-wrap { margin: 24px 28px 28px; }

/* Phasen-Leiste (AR Complete): grüne Oberlinie, einzige Linie in Grün */
.phases { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; border-top: 2px solid var(--fc-green-800); }
.phases__item { padding-top: 16px; }
.phases__n { display: block; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .06em; }
.phases__title { display: block; margin-top: 8px; font-size: 17px; font-weight: 500; }
.phases__text { margin-top: 6px; color: var(--fc-copy); font-size: 14px; line-height: 1.5; }
.phases--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.phases--3 .phases__item { padding-top: 20px; }
.phases--3 .phases__title { margin-top: 0; font-size: 20px; }
.phases--3 .phases__text { margin-top: 10px; font-size: 15px; }
/* Schritte mit grosser Ziffer (Partner werden, 08.09.2026, Muster Aon 01/02/03). Linie oben bleibt Hausmuster. */
.phases--num .phases__n { font-family: var(--fc-font-display); font-size: clamp(56px, 5vw, 80px); line-height: .9; letter-spacing: -.02em; color: var(--fc-green-800); }
.phases--num .phases__title { margin-top: 20px; }

/* Drei Spalten mit Serif-Titel (Arbeitsweise, Kontaktwege) */
.cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cols__title { font-family: var(--fc-font-display); font-size: 26px; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
.cols__text { margin-top: 12px; color: var(--fc-copy); font-size: 15px; line-height: 1.55; max-width: 62ch; }
.cols__text a { color: var(--fc-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.cols__text a:hover { color: var(--fc-green-800); }

/* Bild-Mosaik (Büro) */
.mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 16px; height: 560px; }
.mosaic__item { position: relative; overflow: hidden; border-radius: var(--fc-radius-media); }
.mosaic__item:first-child { grid-column: span 2; grid-row: span 2; }
.mosaic__item img, .mosaic__item .ph { width: 100%; height: 100%; object-fit: cover; }

/* Personen-Raster (Bereichsleitungen) */
.people { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.people__item .ph, .people__item img { aspect-ratio: 1; width: 100%; border-radius: var(--fc-radius-media); object-fit: cover; }
/* Kopfzeile der Personenkarte: Name und LinkedIn nebeneinander, das Icon gehoert zur Person, nicht ans Kartenende. */
.people__head { display: flex; align-items: center; gap: 2px; margin-top: 16px; }
.people__head .people__name { margin-top: 0; }
.people__head .fc-social { width: 26px; height: 26px; margin-left: 0; }
.people__head .fc-social svg { width: 15px; height: 15px; }
.people__name { display: block; margin-top: 16px; font-size: 16px; font-weight: 500; }
/* Der Name ist selbst der LinkedIn-Link, das Icon steht dahinter im gleichen Link. */
.people__link { display: inline; color: inherit; text-decoration: none; transition: color 180ms var(--fc-ease); }
.people__link:hover, .people__link:focus-visible { color: var(--fc-green-800); }
/* display: inline-block gegen den Reset (img, svg, video { display: block }), sonst rutscht das Icon unter den Namen. */
.people__in { display: inline-block; width: 15px; height: 15px; margin-left: 7px; vertical-align: -1px; color: var(--fc-muted); transition: color 180ms var(--fc-ease); }
.people__link:hover .people__in, .people__link:focus-visible .people__in { color: var(--fc-green-800); }
.people__role { display: block; margin-top: 2px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.people__text { margin-top: 10px; color: var(--fc-copy); font-size: 14px; line-height: 1.5; }

/* Ansprechpartner-Karte */
.contact-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 20px; align-items: center; padding: 24px; border: 1px solid var(--fc-card-border); border-radius: var(--fc-radius); background: var(--fc-white); box-shadow: var(--fc-shadow-card); transition: border-color 160ms var(--fc-ease); }
.contact-card:hover, .contact-card:focus-within { border-color: var(--fc-line-green); }
.contact-card__name { display: block; font-size: 17px; font-weight: 500; }
.contact-card__role { display: block; margin-top: 2px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.contact-card__links { margin-top: 10px; font-size: 14px; color: var(--fc-copy); }
.contact-card__links a { color: var(--fc-ink); text-decoration: underline; text-underline-offset: 4px; }

/* Google Maps als Zwei-Klick-Lösung: Vorschaubild, Iframe erst nach Zustimmung (kein Consent-Banner nötig) */
.maps { position: relative; height: 260px; overflow: hidden; border-radius: var(--fc-radius-sm); background: var(--fc-soft); }
.maps img { width: 100%; height: 100%; object-fit: cover; }
.maps__consent { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 24px; background: rgba(255,255,255,.62); text-align: center; }
.maps__consent p { max-width: 36ch; color: var(--fc-copy); font-size: 13px; line-height: 1.5; }
.maps iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ===== Header (fixed, transparent über dem Hero, gefrostet ab 48 px, blendet beim Runterscrollen aus) ===== */
/* Header und Navigation: Optik liegt komplett in css/pages/navigation.css (gemeinsam mit v3, seit 07.09.2026). */
.fc-header__actions { display: flex; align-items: center; gap: 4px; flex: none; }
.fc-header__burger { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; flex-direction: column; gap: 6px; border-radius: 50%; }
.fc-header__burger span { width: 18px; height: 1.5px; background: var(--fc-ink); transition: transform 180ms ease; }
.fc-header__burger[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.fc-header__burger[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* Mobile-Nav: Overlay unter dem Header (eigenes Fragment 20a, außerhalb des Headers wegen backdrop-filter) */
.fc-mobile-nav { position: fixed; z-index: 99; inset: var(--fc-header-h) 0 0; min-height: calc(100svh - var(--fc-header-h)); overflow-y: auto; overscroll-behavior: contain; padding: 12px var(--fc-gutter) max(24px, env(safe-area-inset-bottom)); border-top: 1px solid var(--fc-line); background: var(--fc-white); }
.fc-mobile-nav[hidden] { display: none; }
.fc-mobile-nav a { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; border-bottom: 1px solid var(--fc-line); font-size: 17px; font-weight: 500; }
.fc-mobile-nav a:last-child { border-bottom: 0; }
.fc-mobile-nav span { color: var(--fc-muted); font-size: 12px; text-align: right; }

/* ===== Footer hell ===== */
.fc-footer { padding-bottom: 30px; border-top: 1px solid var(--fc-line); background: var(--fc-soft); color: var(--fc-ink); }
.fc-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 40px 0; border-bottom: 1px solid var(--fc-line-strong); }
.fc-footer__top img { width: 140px; }
.fc-footer__top p { color: var(--fc-muted); font-size: 13px; }
.fc-footer__grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr 1fr; gap: 60px; padding: 44px 0 52px; }
.fc-footer__grid nav, .fc-footer__grid address { display: grid; align-content: start; justify-items: start; gap: 10px; }
.fc-footer__grid strong { margin-bottom: 10px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 10px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.fc-footer__grid a, .fc-footer__grid span { color: var(--fc-copy); font-size: 13px; }
.fc-footer__grid a:hover { color: var(--fc-green-800); }
.fc-footer__bottom { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; padding-top: 24px; border-top: 1px solid var(--fc-line-strong); }
.fc-footer__bottom p, .fc-footer__bottom a { color: var(--fc-muted); font-size: 11px; }
.fc-footer__bottom a:hover { color: var(--fc-ink); }
.fc-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* ===== Netzwerk-Karte: Rahmen 2:3 (Basisbild 1024×1536), 153 Pins als Sprite, Nord → Süd ===== */
.map { position: relative; width: 100%; aspect-ratio: 2 / 3; }
.map img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.map-pins { position: absolute; inset: 0; }
.map-pin { position: absolute; left: calc(var(--x) / 1024 * 100%); top: calc(var(--y) / 1536 * 100%); width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: var(--fc-green-800); box-shadow: 0 0 0 3px rgba(26, 81, 63, 0.10); }
.js .map[data-reveal] { opacity: 1; transform: none; }
.js .map .map-pin { opacity: 0; transform: scale(.2); transform-origin: 50% 50%; transition: opacity .22s ease, transform .5s cubic-bezier(0.34, 1.4, 0.64, 1); transition-delay: calc(var(--delay, 0) * 15ms + 200ms); }
.js .map.is-visible .map-pin { opacity: 1; transform: none; }

/* ===== Kontaktformular ===== */
.form { display: grid; gap: 22px; }
.form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.form__field { display: grid; gap: 8px; }
.form__label { display: flex; align-items: baseline; gap: 6px; color: var(--fc-ink); font-size: 14px; font-weight: 500; }
.form__label span { color: var(--fc-green-800); }
.form__label small { color: var(--fc-muted); font-size: 12px; font-weight: 400; }
.form__input, .form__select, .form__textarea { width: 100%; min-height: 51px; padding: 12px 16px; border: 1px solid var(--fc-line-strong); border-radius: 8px; background: var(--fc-white); color: var(--fc-ink); font-family: var(--fc-font); font-size: 16px; line-height: 1.4; transition: border-color 150ms ease, box-shadow 150ms ease; -webkit-appearance: none; appearance: none; }
.form__textarea { min-height: 120px; resize: vertical; }
.form__field--select { position: relative; }
.form__field--select::after { content: ""; position: absolute; right: 18px; bottom: 21px; width: 8px; height: 8px; border-right: 1.5px solid var(--fc-copy); border-bottom: 1.5px solid var(--fc-copy); transform: rotate(45deg); pointer-events: none; }
.form__select { padding-right: 44px; }
.form__input::placeholder, .form__textarea::placeholder { color: var(--fc-muted); }
.form__input:focus-visible, .form__select:focus-visible, .form__textarea:focus-visible { outline: 0; border-color: var(--fc-green-800); box-shadow: 0 0 0 3px var(--fc-tint); }
.form__field.is-invalid .form__input, .form__field.is-invalid .form__select, .form__field.is-invalid .form__textarea { border-color: var(--fc-black); box-shadow: 0 0 0 1px var(--fc-black); }
.form__error { display: none; color: var(--fc-copy); font-size: 13px; line-height: 1.4; }
.form__field.is-invalid .form__error { display: block; }
.form__field[hidden] { display: none; }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__check { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; align-items: start; color: var(--fc-copy); font-size: 14px; line-height: 1.5; cursor: pointer; }
.form__check input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--fc-green-800); }
.form__check a { color: var(--fc-ink); text-decoration: underline; text-underline-offset: 3px; }
.form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 10px; }
.form__note { color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; }
.form__fail { margin-bottom: 22px; padding: 20px 24px; border: 1px solid var(--fc-line); border-radius: var(--fc-radius-sm); background: var(--fc-white); color: var(--fc-copy); font-size: 15px; }
.form__fail[hidden] { display: none; }
.form__fail:focus-visible { outline: 0; }

/* ===== Rechtstexte, 404 ===== */
.legal-page { padding: calc(var(--fc-header-h) + 96px) 0 var(--fc-section-lg); background: var(--fc-white); }
.legal-page__head { max-width: 760px; margin-bottom: 64px; }
.legal-page__head h1 { font-size: clamp(44px, 5.6vw, 100px); overflow-wrap: anywhere; }
.legal-page__lead { max-width: 34em; margin-top: 24px; color: var(--fc-copy); font-size: 19px; line-height: 1.5; }
.legal-page__body { max-width: 760px; color: var(--fc-copy); font-size: 17px; line-height: 1.6; }
.legal-page__body h2 { margin: 56px 0 18px; font-size: 30px; line-height: 1.15; letter-spacing: -0.015em; color: var(--fc-ink); }
.legal-page__body h2:first-child { margin-top: 0; }
.legal-page__body h3 { margin: 32px 0 10px; font-family: var(--fc-font); font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: 0; color: var(--fc-ink); }
.legal-page__body h4 { margin: 24px 0 8px; font-size: 17px; line-height: 1.4; color: var(--fc-ink); }
.legal-page__body p, .legal-page__body address { margin: 0 0 16px; }
.legal-page__body strong { color: var(--fc-ink); font-weight: 600; }
.legal-page__body ul, .legal-page__body ol { margin: 0 0 20px; padding-left: 24px; list-style: disc; }
.legal-page__body ol { list-style: decimal; }
.legal-page__body li { margin-bottom: 8px; padding-left: 4px; }
.legal-page__body a { color: var(--fc-green-800); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.legal-page__body a:hover { color: var(--fc-ink); }
.legal-page--404 { min-height: 70vh; }
.legal-page__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 44px; }
.legal-page__links { display: flex; flex-wrap: wrap; gap: 8px 28px; }

/* ===== Motion: ein Reveal für alles (24 px, 600 ms, Stagger 120 ms), ausgelöst per IntersectionObserver ===== */
.js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 600ms var(--fc-ease), transform 600ms var(--fc-ease); transition-delay: calc(var(--delay, 0) * 120ms); }
.js [data-reveal].is-visible { opacity: 1; transform: none; }
.js [data-reveal="slide"] { transform: translateX(48px); transition-duration: 700ms; }
.js [data-reveal="slide"].is-visible { transform: none; }
.js [data-reveal="scale"] { transform: scale(1.03); transition-duration: 900ms; }
.js [data-reveal="scale"].is-visible { transform: none; }
.js [data-reveal-media] img { transform: scale(1.04); transition: transform 900ms var(--fc-ease); }
.js [data-reveal-media].is-visible img { transform: none; }

/* Zwei Varianten mit eigener Uhr (08.09.), bewusst knapp gehalten (Laurence: corporate, nicht übertrieben).
   rule: nur .statement mit .statement__text, Haarlinie wächst von oben, Text folgt.
   lines: Kinder mit Haarlinie oben (.rows, .facts, Zitat-Reihen), Linie zieht von links, Inhalt folgt, 90 ms Staffel bis 6 Kinder.
   Eine Bild-Freilegung per clip-path (unveil) gab es kurz und ist am 08.09. wieder raus: Bild und Text sollen zusammen erscheinen. */
.js [data-reveal="rule"] { position: relative; opacity: 1; transform: none; border-left-color: transparent; }
.js [data-reveal="rule"]::before { content: ""; position: absolute; top: 0; bottom: 0; left: -3px; width: 3px; background: var(--fc-green-800); transform: scaleY(0); transform-origin: top; transition: transform 500ms var(--fc-ease); }
.js [data-reveal="rule"] .statement__text { display: block; opacity: 0; transform: translateY(12px); transition: opacity 500ms var(--fc-ease) 200ms, transform 500ms var(--fc-ease) 200ms; }
.js [data-reveal="rule"].is-visible::before { transform: scaleY(1); }
.js [data-reveal="rule"].is-visible .statement__text { opacity: 1; transform: none; }
.js [data-reveal="lines"] { opacity: 1; transform: none; }
.js [data-reveal="lines"] > * { position: relative; border-top-color: transparent; opacity: 0; transform: translateY(8px); transition: opacity 500ms var(--fc-ease), transform 500ms var(--fc-ease); }
.js [data-reveal="lines"] > *::before { content: ""; position: absolute; top: -1px; right: 0; left: 0; height: 1px; background: var(--fc-line); transform: scaleX(0); transform-origin: left; transition: transform 600ms var(--fc-ease); }
/* Die Staffel addiert --delay des Rasters (11.09.: Zeilen in einem .feature starten erst, wenn Bild und Kopf stehen). */
.js [data-reveal="lines"] > *, .js [data-reveal="lines"] > *::before { transition-delay: calc(var(--delay, 0) * 120ms); }
.js [data-reveal="lines"] > :nth-child(2), .js [data-reveal="lines"] > :nth-child(2)::before { transition-delay: calc(var(--delay, 0) * 120ms + 90ms); }
.js [data-reveal="lines"] > :nth-child(3), .js [data-reveal="lines"] > :nth-child(3)::before { transition-delay: calc(var(--delay, 0) * 120ms + 180ms); }
.js [data-reveal="lines"] > :nth-child(4), .js [data-reveal="lines"] > :nth-child(4)::before { transition-delay: calc(var(--delay, 0) * 120ms + 270ms); }
.js [data-reveal="lines"] > :nth-child(5), .js [data-reveal="lines"] > :nth-child(5)::before { transition-delay: calc(var(--delay, 0) * 120ms + 360ms); }
.js [data-reveal="lines"] > :nth-child(6), .js [data-reveal="lines"] > :nth-child(6)::before { transition-delay: calc(var(--delay, 0) * 120ms + 450ms); }
.js [data-reveal="lines"].is-visible > * { opacity: 1; transform: none; }
.js [data-reveal="lines"].is-visible > *::before { transform: scaleX(1); }
.js .sec--dark [data-reveal="lines"] > *::before { background: var(--fc-on-dark-line); }
/* .numbers traegt die Haarlinie links statt oben: dieselbe Mechanik, die Linie waechst von oben nach unten. */
.js .numbers[data-reveal="lines"] > * { border-left-color: transparent; }
.js .numbers[data-reveal="lines"] > *::before { top: 0; right: auto; bottom: 0; left: -1px; width: 1px; height: auto; transform: scaleY(0); transform-origin: top; }
.js .numbers[data-reveal="lines"].is-visible > *::before { transform: scaleY(1); }
/* phases (Partner werden 11.09.): die gruene Linie oben zieht 900 ms von links, dann erscheinen die Schritte nacheinander,
   Ziffer zuerst, Titel und Text 100 ms spaeter. Ein Prozess liest sich als Prozess. Container bleibt sichtbar. */
.js [data-reveal="phases"] { position: relative; opacity: 1; transform: none; border-top-color: transparent; }
.js [data-reveal="phases"]::before { content: ""; position: absolute; top: -2px; right: 0; left: 0; height: 2px; background: var(--fc-green-800); transform: scaleX(0); transform-origin: left; transition: transform 900ms var(--fc-ease); }
.js [data-reveal="phases"] .phases__n, .js [data-reveal="phases"] .phases__title, .js [data-reveal="phases"] .phases__text { opacity: 0; transform: translateY(12px); transition: opacity 500ms var(--fc-ease), transform 500ms var(--fc-ease); }
.js [data-reveal="phases"] > :nth-child(1) .phases__n { transition-delay: 250ms; }
.js [data-reveal="phases"] > :nth-child(1) .phases__title, .js [data-reveal="phases"] > :nth-child(1) .phases__text { transition-delay: 350ms; }
.js [data-reveal="phases"] > :nth-child(2) .phases__n { transition-delay: 450ms; }
.js [data-reveal="phases"] > :nth-child(2) .phases__title, .js [data-reveal="phases"] > :nth-child(2) .phases__text { transition-delay: 550ms; }
.js [data-reveal="phases"] > :nth-child(3) .phases__n { transition-delay: 650ms; }
.js [data-reveal="phases"] > :nth-child(3) .phases__title, .js [data-reveal="phases"] > :nth-child(3) .phases__text { transition-delay: 750ms; }
.js [data-reveal="phases"].is-visible::before { transform: scaleX(1); }
.js [data-reveal="phases"].is-visible .phases__n, .js [data-reveal="phases"].is-visible .phases__title, .js [data-reveal="phases"].is-visible .phases__text { opacity: 1; transform: none; }

@media (hover: none) {
  .fc-button:hover { transform: none; }
  .card--hover:hover, .tile:hover { border-color: var(--fc-card-border); background: var(--fc-white); }
  .tile:hover .tile__media img { transform: none; }
  .fc-button:hover { box-shadow: none; }
  .fc-mobile-nav a:hover { background: transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .js [data-reveal], .js .hero-seq, .js .page-hero__media img, .js .page-hero__media video, .js .map .map-pin, .js [data-reveal-media] img { opacity: 1; transform: none; transition: none; }
  .js [data-reveal="rule"]::before, .js [data-reveal="rule"] .statement__text, .js [data-reveal="lines"] > *, .js [data-reveal="lines"] > *::before { opacity: 1; transform: none; transition: none; }
  .js [data-reveal="phases"]::before, .js [data-reveal="phases"] .phases__n, .js [data-reveal="phases"] .phases__title, .js [data-reveal="phases"] .phases__text { opacity: 1; transform: none; transition: none; }
}

/* ===== Responsive ===== */
@media (max-width: 991px) {
  h1 { font-size: clamp(44px, 7.5vw, 72px); }
  .fc-nav { display: none; }
  .fc-header__burger { display: flex; }
  .fc-header__inner { gap: 16px; }
  .page-hero { min-height: 0; padding-top: calc(var(--fc-header-h) + 56px); padding-bottom: 56px; }
  .page-hero--home { min-height: 0; padding-top: calc(var(--fc-header-h) + 72px); padding-bottom: 72px; }
  .page-hero--home .page-hero__inner h1 { font-size: clamp(48px, 10.5vw, 96px); }
  .split, .split--6-6, .split--4-8, .split--7-5, .split--9-11, .split--10-8 { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .feature, .feature--split-copy { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .feature--flip .feature__media { order: 0; }
  .feature__media::before { aspect-ratio: var(--fc-feature-ratio-mobile); }
  .feature--wide .feature__media::before { aspect-ratio: 16 / 9; }
  .split > h2, .split__head > h2 { margin-top: 0; }
  .chooser, .cta-block, .quote { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .cta-panel { padding: 64px 40px; }
  .chooser__panels { min-height: 0; }
  .band, .band--lg { padding: 48px 36px 80px; }
  .band--inline { padding: 48px 36px; }
  .band__pull { margin: -48px 20px 0; }
  .card-grid, .card-grid--3, .tiles { grid-template-columns: minmax(0, 1fr); }
  .tiles--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cta-panel--media { grid-template-columns: minmax(0, 1fr); }
  .cta-panel--media > .cta-block--solo { padding: 64px 40px; }
  .cta-panel__media { min-height: 0; height: 360px; }
  .rail__track { grid-auto-columns: min(360px, calc(100% - 56px)); }
  .card-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cols { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .cols--2 { grid-template-columns: minmax(0, 1fr); }
  .people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phases--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
  .mosaic { height: auto; grid-template-rows: none; }
  .mosaic__item { aspect-ratio: 4 / 3; }
  .mosaic__item:first-child { grid-column: span 3; grid-row: auto; aspect-ratio: 16 / 9; }
  .logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fc-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .map { max-width: 420px; margin-inline: auto; }
}
@media (max-width: 767px) {
  h2 { font-size: clamp(28px, 7vw, 34px); }
  .page-hero--home .page-hero__inner h1 { font-size: clamp(42px, 12.5vw, 56px); }
  .page-hero__nowrap { white-space: normal; }
  .page-hero__lead { margin-top: 20px; font-size: 16px; }
  .page-hero__actions { margin-top: 28px; }
  .rows__item, .rows--wide .rows__item, .rows--titled .rows__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .rows--titled .rows__label { font-size: 22px; }
  .steps, .steps--4, .facts, .facts--2, .facts--4, .card-grid--3, .photos, .photos--2, .people, .phases, .phases--3, .feature__cols, .tiles { grid-template-columns: minmax(0, 1fr); }
  .phases--num .phases__n { font-size: 48px; }
  .numbers--facts .numbers__titel { font-size: 40px; }
  .feature__cols { gap: 16px; }
  /* Groessere Klickflaeche fuer Touch, negatives Margin haelt den optischen Abstand zum Namen wie am Desktop. */
  .people__head .fc-social { width: 36px; height: 36px; margin-left: -6px; }
  .rail__track { grid-auto-columns: min(320px, calc(100% - 48px)); }
  .facts--2, .facts--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts--big .facts__num { font-size: 40px; }
  .band, .band--lg, .band--inline { padding: 36px 24px 64px; border-radius: var(--fc-radius); }
  .band--inline { padding-bottom: 36px; }
  .band__pull { margin: -40px 8px 0; }
  .card, .card--pad-lg { padding: 24px; }
  .card__title { font-size: 28px; }
  .quote__text { font-size: 22px; }
  .quote__media { min-height: 0; }
  .logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .logos__item { height: 72px; }
  .compare { font-size: 14px; }
  .compare th, .compare td { padding: 12px 12px; }
  .cta-block__media { height: 240px; }
  .cta-panel { padding: 48px 24px; }
  .cta-panel--media { padding: 0; }
  .cta-panel--media > .cta-block--solo { padding: 48px 24px; }
  .cta-panel__media { height: 280px; }
  .tiles--compact { grid-template-columns: minmax(0, 1fr); }
  .cta-panel::before { top: -46%; right: -34%; width: 110vw; height: 110vw; }
  .cta-panel::after { bottom: -60%; left: -44%; width: 100vw; height: 100vw; }
  .fc-actions { gap: 12px 20px; }
  .fc-footer__top { flex-direction: column; align-items: flex-start; gap: 12px; padding: 32px 0; }
  .fc-footer__grid { grid-template-columns: 1fr; gap: 32px; padding: 36px 0 40px; }
  .fc-footer__bottom { grid-template-columns: 1fr; gap: 8px; }
  .fc-mobile-nav a { min-height: 56px; font-size: 16px; }
  .fc-mobile-nav span { font-size: 11px; }
  .map { max-width: 340px; }
  .js .map .map-pin { transition-delay: calc(var(--delay, 0) * 9ms + 200ms); }
  .js [data-reveal] { transform: translateY(16px); transition-delay: 0s; }
  .js [data-reveal="scale"] { transform: none; }
  .js [data-reveal="rule"]::before { transition-duration: 400ms; }
  .js [data-reveal="rule"] .statement__text { transition-duration: 380ms; transition-delay: 150ms; }
  .js [data-reveal="lines"] > * { transition-duration: 380ms; }
  .js [data-reveal="lines"] > *::before { transition-duration: 420ms; }
  .js [data-reveal="lines"] > :nth-child(2), .js [data-reveal="lines"] > :nth-child(2)::before { transition-delay: 55ms; }
  .js [data-reveal="lines"] > :nth-child(3), .js [data-reveal="lines"] > :nth-child(3)::before { transition-delay: 110ms; }
  .js [data-reveal="lines"] > :nth-child(4), .js [data-reveal="lines"] > :nth-child(4)::before { transition-delay: 165ms; }
  .js [data-reveal="lines"] > :nth-child(5), .js [data-reveal="lines"] > :nth-child(5)::before { transition-delay: 220ms; }
  .js [data-reveal="lines"] > :nth-child(6), .js [data-reveal="lines"] > :nth-child(6)::before { transition-delay: 275ms; }
  .mosaic { gap: 8px; }
  .maps { height: 220px; }
}
@media (max-width: 479px) {
  .fc-dialog__head { padding: 18px 20px; }
  .fc-dialog .compare-wrap { margin: 16px 12px 20px; }
  .compare--icons th, .compare--icons td { padding: 10px 8px; font-size: 13px; }
  .compare--icons thead th { padding: 10px 8px; font-size: 10px; }
  .compare--icons .compare__text { font-size: 12px; }
  .page-hero--home .page-hero__inner h1 { font-size: clamp(38px, 12vw, 46px); }
  .fc-button { width: 100%; }
  .fc-header__cta { display: none; }
  .form__row { grid-template-columns: minmax(0, 1fr); }
  .facts--2, .facts--4 { grid-template-columns: minmax(0, 1fr); }
  .contact-card { grid-template-columns: minmax(0, 1fr); }
  .band__pull { margin: -32px 0 0; }
}


/* Unterseiten nach der freigegebenen Ueber-uns-Seite, 09.09.2026.
   Opt-in aus dem Build; Home und die Referenzseite bleiben unveraendert.
   Groessen und responsive Geometrie stehen ausschliesslich in skala.css. */
.subpage-design { --fc-radius-media: var(--fc-radius); }
.subpage-design :is(.sec--tint, .sec--flow) { background: var(--fc-hero); }
.subpage-design .statement { border-left-color: var(--fc-gray-dark); }
.subpage-design :is(.community-cta, .academy-abschluss, .karriere-abschluss,
  .geschaedigte-hotline, .community-anspruch, .partner-werden-leistungen,
  .leistung-section:has(.cta-panel)) { background: var(--fc-soft); }
.subpage-design .cta-panel {
  --fc-ring: rgba(255, 255, 255, .10);
  background: var(--fc-gray-dark);
}
.subpage-design .cta-panel .fc-kicker { color: var(--fc-green-300); }
.subpage-design .sec--dark {
  --fc-ink: var(--fc-white);
  --fc-copy: var(--fc-on-dark-soft);
  --fc-line: var(--fc-on-dark-line);
  --fc-line-strong: rgba(255, 255, 255, .32);
}
.subpage-design .sec--dark :is(.fc-kicker, .numbers__n, .phases__n) { color: var(--fc-green-300); }
.subpage-design .sec--dark :is(.rows__label, .steps__title, .phases__title, .fc-link) { color: var(--fc-white); }
.subpage-design .sec--dark :is(.rows__text, .steps__text, .phases__text, .cols__text) { color: var(--fc-on-dark-soft); }
.subpage-design .sec--dark .fc-button--green { color: var(--fc-green-950); background: var(--fc-white); border-color: var(--fc-white); }
.subpage-design .sec--dark .fc-button--green:hover { background: var(--fc-green-300); border-color: var(--fc-green-300); }
.subpage-design :is(.sec--dark, .page-hero--bleed, .cta-panel) :focus-visible { outline-color: var(--fc-green-300); }
.subpage-design .card--soft { background: var(--fc-soft); }
.subpage-design :is(.card--hover, .tile, .contact-card):is(:hover, :focus-within) { background: var(--fc-soft); border-color: var(--fc-green-800); }
.subpage-design .legal-page { background: var(--fc-soft); }
.subpage-design .legal-page__head { border-bottom: 1px solid var(--fc-line-strong); }
.subpage-design .legal-page__body { background: var(--fc-white); border-radius: var(--fc-radius); }


/* Corporate Bedienung und Bildkanten: gilt auch fuer die About-Referenz. */
.brand-page:not(.home-page) { --fc-radius-media: var(--fc-radius); }
.brand-page:not(.home-page) :is(.contact-card > img, .partner-werden-fragen__card > img, .ph--circle) { border-radius: var(--fc-radius); }
.brand-page:not(.home-page) .fc-button { border-radius: var(--fc-radius-pill); font-family: var(--fc-font-display); font-weight: 500; letter-spacing: .02em; }
.brand-page:not(.home-page) :is(.fc-button--green, .fc-button--dark) { color: var(--fc-white); background: var(--fc-green-800); border-color: var(--fc-green-800); }
.brand-page:not(.home-page) :is(.fc-button--green, .fc-button--dark):hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.brand-page:not(.home-page) .fc-button--light { color: var(--fc-green-950); background: var(--fc-white); border-color: var(--fc-line-strong); }
.brand-page:not(.home-page) .fc-button--light:hover { background: var(--fc-soft); border-color: var(--fc-green-800); }
.brand-page:not(.home-page) :is(.sec--dark, .page-hero--bleed, .cta-panel) :is(.fc-button--green, .fc-button--dark, .fc-button--mint) { color: var(--fc-green-950); background: var(--fc-green-300); border-color: var(--fc-green-300); }
.brand-page:not(.home-page) :is(.sec--dark, .page-hero--bleed, .cta-panel) :is(.fc-button--green, .fc-button--dark, .fc-button--mint):hover { color: var(--fc-green-950); background: var(--fc-white); border-color: var(--fc-white); }
.brand-page:not(.home-page) :is(.sec--dark, .page-hero--bleed, .cta-panel) .fc-button--light { color: var(--fc-white); background: transparent; border-color: var(--fc-on-dark-soft); }
.brand-page:not(.home-page) :is(.sec--dark, .page-hero--bleed, .cta-panel) .fc-button--light:hover { color: var(--fc-green-950); background: var(--fc-white); border-color: var(--fc-white); }
.subpage-design .legal-page__body { overflow-wrap: anywhere; }
@media (max-width: 991px) {
  .subpage-design .page-hero--bleed .page-hero__media::after { content: none; }
}

.subpage-design .sec--dark .steps__n { color: var(--fc-green-300); }
.subpage-design .sec--dark .steps__meta { color: var(--fc-on-dark-soft); }

/* Dieselbe Glasscheibe auf jedem Foto-Hero, einschliesslich About.
   Die Motivfarbe scheint durch; Toennung und Blur werden nie pro Seite gewaehlt. */
.brand-page:not(.home-page) { --fc-hero-glass: rgba(42, 121, 85, .30); }
.brand-page:not(.home-page) .page-hero--bleed .page-hero__panel::before { background: var(--fc-hero-glass); -webkit-backdrop-filter: blur(12px) saturate(.95); backdrop-filter: blur(12px) saturate(.95); }


/* Hero-Familien: Menschen, Leistungen, direkte Hilfe. Gemeinsame Markentokens. */
.subpage-design :is(.page-hero--editorial, .page-hero--catalog) { background: var(--fc-gray-dark); }
.subpage-design :is(.page-hero--service, .page-hero--utility) { background: var(--fc-white); }
.subpage-design .page-hero--utility { border-bottom: 1px solid var(--fc-line); }
.subpage-design :is(.page-hero--editorial, .page-hero--service) .page-hero__media { overflow: hidden; border-radius: var(--fc-radius-media); background: var(--fc-hero); }
.subpage-design :is(.page-hero--editorial, .page-hero--service) .page-hero__media::after { content: none; }
.subpage-design :is(.page-hero--editorial, .page-hero--service) .page-hero__media img { object-fit: cover; }
.subpage-design .page-hero__topics { border-top: 1px solid var(--fc-line); }
.subpage-design .page-hero__topics a { color: var(--fc-green-800); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.subpage-design .page-hero__topics a:hover { color: var(--fc-black); }
.subpage-design .page-hero--catalog .page-hero__topics { border-color: var(--fc-on-dark-line); }
.subpage-design .page-hero--catalog .page-hero__topics a { color: var(--fc-white); }
.subpage-design .page-hero--catalog .page-hero__topics a:hover { color: var(--fc-green-300); }
.subpage-design .page-hero--catalog .leistung-breadcrumb,
.subpage-design .page-hero--catalog .leistung-breadcrumb li + li::before { color: var(--fc-on-dark-soft); }
.subpage-design .page-hero--catalog .leistung-breadcrumb a:hover { color: var(--fc-white); }
.subpage-design .page-hero--editorial .page-hero__lead { color: var(--fc-on-dark-soft); }

/* Freigegebene Hero-Szenen: gleiche Bildtiefe wie Ueber uns, eigener Einstieg je Kategorie.
   Masse ausschliesslich in skala.css. Der erste Folgeinhalt bildet die deckende zweite Ebene. */
.page-hero--scene { display: block; isolation: isolate; background: var(--fc-white); }
.page-hero--scene .page-hero__scene-media { z-index: 0; }
.page-hero--scene .page-hero__scene-media::after { content: none; }
.page-hero--scene .page-hero__scene-copy { position: absolute; z-index: 2; display: grid; }
.page-hero--scene .page-hero__scene-copy h1 { color: inherit; }
.page-hero--scene .page-hero__scene-detail { display: flex; flex-direction: column; align-items: flex-start; }
.page-hero--panorama { background: var(--fc-green-950); color: var(--fc-white); }
.page-hero--panorama .page-hero__scene-media::after { content: ""; background: rgba(11, 39, 30, calc(.13 + .14 * var(--scrub, 0))); }
.page-hero--panorama .page-hero__scene-veil { position: absolute; z-index: 1; background: rgba(11, 39, 30, .72); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); transform: translateY(calc(100% * var(--scrub, 0))); }
.page-hero--panorama .page-hero__scene-detail { opacity: calc(1 - var(--scrub, 0)); }
.page-hero--panorama .page-hero__lead { color: var(--fc-white); }
.page-hero--opening { color: var(--fc-black); }
.page-hero--opening .page-hero__scene-copy { opacity: clamp(0, calc(1 - var(--scrub, 0) * 2), 1); }
.page-hero--opening .page-hero__scene-caption { position: absolute; z-index: 1; color: var(--fc-white); background: rgba(11, 39, 30, .8); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); opacity: clamp(0, calc((var(--scrub, 0) - .5) * 2), 1); }
.hero-scrub--scene.is-scrub .page-hero--scene { position: sticky; top: 0; }
.hero-scrub--scene.is-scrub .page-hero__scene-veil { will-change: transform; }
.hero-scrub--scene.is-scrub .page-hero--opening .page-hero__scene-media { will-change: inset, border-radius; }
.subpage-design .hero-scene-intro { background: var(--fc-white); }
.subpage-design .hero-scene-intro.sec--dark { background: var(--fc-green-950); }
.subpage-design .hero-scene-intro .statement { border: 0; color: var(--fc-black); }
.subpage-design .hero-scene-intro.sec--dark .statement { color: var(--fc-white); }
@media (max-width: 991px) {
  .page-hero--scene .page-hero__scene-copy { position: relative; }
  .page-hero--panorama .page-hero__scene-copy { background: rgba(11, 39, 30, .72); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
  .page-hero--panorama .page-hero__scene-veil { display: none; }
  .page-hero--opening .page-hero__scene-media { position: relative; }
  .page-hero--opening .page-hero__scene-caption { display: none; }
}

.hero-scrub--opening { background: var(--fc-green-950); }

@media (prefers-reduced-motion: reduce) {
  .js .page-hero--scene .hero-seq,
  .js .page-hero--scene .page-hero__scene-media img { opacity: 1; transform: none; transition: none; }
}

/* Zwei verwandte Aussagen als ein Kapitel. Nur bei ausreichend Platz erweitert JS den Lesefluss. */
.story-shift { position: relative; background: var(--fc-white); }
.story-shift.is-active .story-shift__stage { position: sticky; overflow: clip; isolation: isolate; background: var(--fc-white); }
.story-shift.is-active .story-shift__stage > .sec { position: absolute; display: grid; align-content: center; background: var(--fc-white); }
.story-shift.is-active .story-shift__intro { z-index: 2; transform: translateX(calc(-100% * var(--story-progress, 0))); will-change: transform; }
.story-shift.is-active .story-shift__detail { z-index: 1; transform: translateX(calc(100% * (1 - var(--story-progress, 0)))); will-change: transform; }
.story-shift.is-active .story-shift__detail [data-reveal] { opacity: 1; transform: none; transition: none; }
.story-shift.is-active .story-shift__intro::before { content: ""; position: absolute; background: var(--fc-line); }

/* Gemeinsame Kapitelbewegung: deckende Flaechen, gefuehrte Listen, freie Bedienabschnitte. */
.scroll-chapter { position: relative; }
.scroll-chapter.is-active > .scroll-chapter__panel { position: sticky; display: grid; align-content: center; }
.has-scroll-chapters .scroll-chapter__guide { position: sticky; align-self: start; }
/* Der ganze Abschnitt uebernimmt die Bewegung; keine zweite Einblendung innerhalb der Flaeche. */
.js .scroll-chapter.is-active [data-reveal],
.js .scroll-chapter.is-active [data-reveal="lines"] > *,
.js .scroll-chapter.is-active .statement__text { opacity: 1; transform: none; transition: none; }
.js .scroll-chapter.is-active [data-reveal]::before,
.js .scroll-chapter.is-active [data-reveal="lines"] > *::before { transform: none; transition: none; }

/* Drei Hero-Familien: Foto/Glas, Netzwerk-Panorama und heller Fotoauftakt. */
.subpage-design .page-hero--brand-bleed .page-hero__media::after { content: ""; background: linear-gradient(90deg, rgba(11, 39, 30, .56), rgba(11, 39, 30, .12)); }
.page-hero--brand-bleed :is(.leistung-breadcrumb, .leistung-breadcrumb a, .leistung-breadcrumb li + li::before, .fc-link, .page-hero__topics a) { color: var(--fc-white); }
.page-hero--brand-bleed .page-hero__topics { border-color: var(--fc-on-dark-line); }
.page-hero--brand-bleed :is(.fc-link, .page-hero__topics a):hover { color: var(--fc-green-300); }
.page-hero--welcome { display: block; background: var(--fc-white); }
.page-hero--welcome .page-hero__panel { display: grid; }
.page-hero--welcome .page-hero__media { position: relative; overflow: hidden; border-radius: var(--fc-radius-media); }
.page-hero--welcome .page-hero__media::after { content: none; }
.page-hero--welcome .page-hero__topics { border-color: var(--fc-line); }
.page-hero--welcome .page-hero__topics a { color: var(--fc-green-800); }
@media (max-width: 991px) {
 .subpage-design .page-hero--brand-bleed .page-hero__panel { background: var(--fc-green-950); }
}

/* Produktfamilie: freigegebene Option 3, verwandt mit dem Community-Panorama. */
.subpage-design .page-hero--product .page-hero__scene-copy { isolation: isolate; }
.page-hero--product .page-hero__scene-copy::before { content: ""; position: absolute; z-index: -1; background: rgba(11, 39, 30, .72); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.page-hero--product .page-hero__product-links { display: flex; flex-wrap: wrap; border-top: 1px solid var(--fc-on-dark-line); }
.page-hero--product .page-hero__product-links a { color: var(--fc-white); font-family: var(--fc-font-display); text-decoration: underline; }
.page-hero--product .fc-link { color: var(--fc-white); }
@media (max-width: 991px) {
 .page-hero--product .page-hero__scene-copy::before { content: none; }
}

/* Persoenlicher Kontaktzugang mit vorhandenem Teamportraet. */
.contact-person__portrait { display: block; border-radius: 50%; object-fit: cover; }
.contact-person__name { color: var(--fc-black); font-family: var(--fc-font-display); }
.contact-person__role { color: var(--fc-copy); }

/* Benannte Gruppen halten zusammengehörige Kontaktfelder beieinander. */
.form__group { display: grid; min-inline-size: 0; margin: 0; border: 0; border-top: 1px solid var(--fc-line); }
.form__group-title { width: 100%; font-family: var(--fc-font); font-weight: 500; color: var(--fc-ink); }

/* Produkt-Heros mit Scroll-Übergang (seit 22.10.2026): Bild zoomt beim Wegscrollen leicht heran, die Textebene blendet aus. */
.hero-scrub--scene.is-scrub .page-hero--product .page-hero__scene-media img { transform: scale(calc(1 + .08 * var(--scrub, 0))); transform-origin: 50% 40%; will-change: transform; }
.hero-scrub--scene.is-scrub .page-hero--product .page-hero__scene-copy { opacity: calc(1 - var(--scrub, 0) * 2); transform: translateY(calc(-40px * var(--scrub, 0))); }

/* Zusammengehörige Wörter nicht umbrechen (z. B. Hamburg-Eppendorf). */
.nowrap { white-space: nowrap; }

/* Kopf-Blöcke (H2 und ein Lead) auf allen Seiten gleich. Seit 26.10.2026 (Laurence, Layout-Regel Kick-off 04.09.:
   „alles auf einer linken Kante, nie mittig“) stehen Kicker, H2 und Lead untereinander linksbündig. Vorher (22.10.)
   stand der Lead als rechte Spalte unten bündig und passte zu keiner Kante darunter. */
:is(.split:has(> .split__body > .fc-lead:only-child), .split:has(> h2 + .fc-lead:last-child), .catalog-bento__heading, .home-services__head, .home-testimonials__head) { grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
:is(.split:has(> .split__body > .fc-lead:only-child), .split:has(> h2 + .fc-lead:last-child), .catalog-bento__heading, .home-services__head, .home-testimonials__head) :is(.fc-lead, .home-services__intro, .home-testimonials__intro) { max-width: 44em; margin: 0; hyphens: manual; }
@media (max-width: 991px) {
  :is(.split:has(> .split__body > .fc-lead:only-child), .split:has(> h2 + .fc-lead:last-child), .catalog-bento__heading, .home-services__head, .home-testimonials__head) { grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
  /* Sticky-Köpfe nur auf Desktop: einspaltig würden sie über den Inhalt laufen. */
  .split__head { position: static; }
}
/* Gründer-Band mobil linksbündig wie der Rest der Seite (Prüfbericht 22.10.2026). */
@media (max-width: 767px) { .founder { justify-items: start; text-align: left; } }

/* Buttons auf hellen Inhaltsflächen, seitenübergreifend (Laurence 22.10.2026): Outline, transparent mit schwarzem Rand,
   Hover füllt grün. Keine Pfeile (Projektregel). Heros, Header, Dialoge und dunkle Flächen behalten ihre Buttons (grün bzw. mint). */
main :is(.sec:not(.sec--dark), .home-contact, .trust-section, .home-paths) :is(.fc-button--green, .fc-button--dark, .fc-button--light, .home-contact__button) { background: transparent; border: 1.5px solid var(--fc-black); color: var(--fc-black); }
main :is(.sec:not(.sec--dark), .home-contact, .trust-section, .home-paths) :is(.fc-button--green, .fc-button--dark, .fc-button--light, .home-contact__button):is(:hover, :focus-visible) { background: var(--fc-green-800); border-color: var(--fc-green-800); color: var(--fc-white); }


/* ===== css/pages/academy.css ===== */
/* Academy (sections/academy/): nur Feinheiten, die Bausteine stehen in v4.css. Register Du (O1). */

/* Aussage-Band: Baustein .statement in v4.css. */

/* Kopf jeder Sektion: Kicker über der H2 links, Kontext rechts. Gleiches Muster und gleicher
   Abstand zum Inhalt wie auf Über uns und Karriere. */
.academy-kopf + * { margin-top: 56px; }

/* Lernpfade als Klappkarten (Baustein .fold). Der geöffnete Pfad zeigt, welche Module darin stecken. */
.academy-pfade { display: grid; gap: 16px; }
.academy-pfad__titel { font-family: var(--fc-font-display); font-size: 28px; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
.academy-pfad__text { padding-top: 20px; color: var(--fc-copy); font-size: 16px; line-height: 1.6; max-width: 72ch; }
/* Geoeffneter Pfad zweispaltig (11.09.): Beschreibung links, Spezifikation rechts, beide beginnen auf einer Hoehe. */
.academy-pfad .fold__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 20px 64px; align-items: start; }
.academy-pfad__spec { margin-top: 20px; }
.academy-pfad__spec .rows__item { grid-template-columns: 140px minmax(0, 1fr); gap: 24px; }
.academy-pfad__spec .rows__item:first-child { border-top: 0; padding-top: 0; }

/* Module als Liste (11.09.2026 abends, vorher 3×2-Raster): Kopf links bleibt beim Scrollen stehen wie bei den
   Fragen, rechts ein Modul je Zeile (.rows--stations), darunter Themen und Lernpfade als .rows--spec wie in den
   Lernpfad-Klappkarten. Farben für Dunkel stehen in v4.css (.sec--dark .rows). */
.academy-module .split__head { position: sticky; top: calc(var(--fc-header-h) + 56px); }
.academy-module .split__head .fc-lead { margin-top: 24px; }
.academy-module__rows { border-bottom: 0; }
.academy-module__rows > .rows__item { padding: 32px 0; }
.academy-module__rows > .rows__item:first-child { border-top: 0; padding-top: 0; }
.academy-module__rows > .rows__item:first-child::before { display: none; }
.academy-module__rows > .rows__item > .rows__label { font-family: var(--fc-font-display); font-size: 28px; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; text-wrap: balance; }
.academy-module__rows > .rows__item > .rows__text { max-width: 60ch; }
.academy-modul__icon { display: block; height: 24px; margin-bottom: 16px; color: var(--fc-green-300); }
.academy-modul__icon svg { display: block; }
/* Die Spec liegt in einer Stationen-Zeile; deren Block-Regeln (Label 19 px, Text 16 px, Zeile als Block) hier zuruecksetzen.
   Keine zweite Linie am Ende: die naechste Modulzeile bringt ihre eigene mit. */
.academy-modul__spec { margin-top: 16px; border-bottom: 0; }
.academy-modul__spec .rows__item { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 24px; font-size: 14px; }
.academy-modul__spec .rows__label { display: block; font-size: 11px; font-weight: 500; }
.academy-modul__spec .rows__text { display: block; margin-top: 0; font-size: 14px; }

/* Formate: Kopf als .feature, darunter vier Spalten mit Haarlinie oben (11.09., vorher Label/Wert-Zeilen). */
.academy-formate__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 40px; margin-top: 64px; }
.academy-formate__item { padding-top: 18px; border-top: 1px solid var(--fc-ink); }
.academy-formate__label { font-size: 19px; font-weight: 500; line-height: 1.3; color: var(--fc-ink); }
.academy-formate__text { margin-top: 8px; color: var(--fc-copy); font-size: 15px; line-height: 1.5; }

/* Für Versicherer: Baustein .founder in v4.css, Fläche Grün-950. Nichts Seitenspezifisches. */

/* Eine Stimme, ein Bild. Werte wie .karriere-stimme__quote. */
.academy-stimme__quote { margin: 0; padding: 40px 0 0; border-top: 1px solid var(--fc-line-strong); gap: 64px; }
.academy-stimme__quote .quote__text { margin: 0; font-size: 34px; color: var(--fc-green-950); }
.academy-stimme__quote .quote__who { color: var(--fc-muted); }
.academy-stimme__quote .quote__who strong { color: var(--fc-green-800); }
.academy-stimme__quote .quote__media img { display: block; width: 100%; height: 340px; object-fit: cover; border-radius: var(--fc-radius-media); }

.academy-weiter__title { max-width: 20ch; }
.academy-weiter__tiles { margin-top: 48px; }

.academy-abschluss { padding-bottom: var(--fc-section-sm); }

@media (max-width: 991px) {
  .academy-module .split__head { position: static; }
  .academy-formate__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .academy-pfad .fold__inner { gap: 20px 40px; }
  .academy-pfad__titel { font-size: 24px; }
  .academy-stimme__quote .quote__text { font-size: 28px; }
  .academy-stimme__quote .quote__media img { height: 280px; }
}
@media (max-width: 767px) {
  .academy-kopf + * { margin-top: 36px; }
  .academy-module__rows > .rows__item { padding: 24px 0; }
  .academy-module__rows > .rows__item > .rows__label { font-size: 24px; }
  .academy-modul__spec .rows__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .academy-pfad .fold__inner { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .academy-pfad__spec { margin-top: 16px; }
  .academy-pfad__spec .rows__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .academy-pfad__spec .rows__item:first-child { border-top: 1px solid var(--fc-line); padding-top: 14px; }
  .academy-formate__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 36px; }
  .academy-stimme__quote { margin-top: 8px; padding: 24px 0 0; gap: 32px; }
  .academy-stimme__quote .quote__text { font-size: 24px; }
  .academy-stimme__quote .quote__media img { height: auto; aspect-ratio: 4 / 3; }
  .academy-weiter__tiles { margin-top: 32px; }
}

/* Fragen (Laurence 08.09., abends): der Kopf links bleibt beim Scrollen durch die Fragen stehen, wie
   „Unsere Geschichte" auf Über uns und Benefits auf Karriere (position: sticky, kein JS). Unter 991
   einspaltig, dann kein sticky. */
.academy-fragen .split__head { position: sticky; top: calc(var(--fc-header-h) + 56px); }
@media (max-width: 991px) { .academy-fragen .split__head { position: static; } }


/* ===== css/pages/community.css ===== */
/* Community (sections/community/): nur Feinheiten, die Bausteine stehen in v4.css. Anrede Du (O1 offen). */

/* Hero: die H1 fliegt beim Laden von links ein (Laurence, 08.09.), der Lead folgt wie bisher von unten.
   Eigene Kurve und laengere Dauer als die Sequenz in v4.css, Reduced Motion setzt den Endzustand. */
.js .community-hero h1.hero-seq { transform: translateX(-72px); transition-duration: 900ms; }
.js .community-hero.is-ready h1.hero-seq { transform: none; }

/* Aussage-Band: Baustein .statement in v4.css, Motion data-reveal="rule". */

/* Abstand Sektionskopf zum Inhalt, wie .karriere-kopf auf der Karriereseite. */
.community-kopf + * { margin-top: 56px; }

/* Feature-Blöcke: Raster in v4.css (5/7, Hochformat-Slot). Hier nur der Ausschnitt, Gesichter im oberen Drittel. */
.community-verband .feature__media img,
.community-anspruch .feature__media img,
.community-academy .feature__media img,
.community-stimmen__lead .feature__media img { object-position: 50% 35%; }

/* Leben: Kopf links, vier Formate als Karten rechts. Meta wie .tile__meta (Mono, Versalien). */
.community-leben__split { gap: 80px; }
.community-leben__grid { gap: 20px; }
.community-leben__meta { margin-bottom: 14px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.community-leben__grid .card__text { margin-bottom: 0; }

/* Stimmen: Kopf und großes Zitat im Bild-Text-Raster, darunter drei kurze in einer Reihe. */
.community-stimmen__lead .quote { padding-top: 0; border-top: 0; }
.community-stimmen__lead .quote__text { font-size: 30px; }
.community-stimmen__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 64px; }
.community-stimmen__row .quote { padding-top: 24px; }
.community-stimmen__row .quote__text { font-size: 20px; line-height: 1.35; }
.community-stimmen__row .quote__who { margin-top: 16px; }

.community-cta { padding-bottom: var(--fc-section-sm); }

@media (max-width: 991px) {
  .community-leben__split { gap: 48px; }
  .community-stimmen__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
}
@media (max-width: 767px) {
  .js .community-hero h1.hero-seq { transform: translateX(-40px); transition-duration: 700ms; }
  .community-kopf + * { margin-top: 36px; }
  .community-stimmen__lead .quote__text { font-size: 24px; }
  .community-stimmen__row { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 32px; }
  .community-stimmen__row .quote__text { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .js .community-hero h1.hero-seq { transform: none; transition: none; }
}

/* Fragen (Laurence 08.09., abends): Kopf links bleibt beim Scrollen stehen, Muster wie Über uns und
   Karriere (position: sticky, kein JS). Unter 991 einspaltig, dann kein sticky. */
.community-fragen .split__head { position: sticky; top: calc(var(--fc-header-h) + 56px); }
@media (max-width: 991px) { .community-fragen .split__head { position: static; } }
/* Mobil: Abstand zwischen Absender und nächster Linie (Prüfbericht 22.10.2026). */
@media (max-width: 767px) { .community-stimmen__row .quote { padding-bottom: 24px; } }


/* ===== css/pages/footer.css ===== */
/* Footer, ein Fragment für Start- und Unterseiten (sections/29-footer.html), seit 11.09.2026 nachmittags eine einzige Kaskade hier. Aufbau nach Linear/Coda (Mobbin): Marke links, vier Spalten rechts, Legal-Band unten; mobil zweispaltig. Alle Regeln mit body-Präfix, damit sie die Alt-Regeln in v3.css (Startseite) und v4.css (Unterseiten) überstimmen, die nicht angefasst werden. Schwarz statt Anthrazit seit 11.09.2026 (Laurence): Anthrazit gehört den Sektionen und CTA-Panels, Schwarz ist der Abschluss. Netzwerkkarte bleibt vollflächig (Laurence 11.09.). */
/* WebKit rundet Scrollpositionen auf ganze CSS-Pixel. Bei einer gebrochenen
   Seitenhoehe kann am Abschluss ein Geraetepixel des Canvas sichtbar bleiben.
   Der Canvas hinter dem weiterhin hellen Body folgt deshalb der Footer-Farbe. */
html { background-color: var(--fc-black); }

body .fc-footer {
  padding: 72px 0 32px;
  /* Karte bleibt (Laurence 11.09.). Die Textspalten liegen rechts, deshalb ein zweiter, waagerechter Verlauf: links unter der Marke bleibt die Karte sichtbar, unter den Spalten wird sie beruhigt. */
  background:
    linear-gradient(180deg, rgba(25,27,25,.85) 0%, rgba(25,27,25,.35) 45%, rgba(25,27,25,.75) 100%),
    linear-gradient(90deg, rgba(25,27,25,0) 0%, rgba(25,27,25,0) 26%, rgba(25,27,25,.7) 40%, rgba(25,27,25,.7) 100%),
    url("/assets/img/footer-netzwerk.webp") 50% 45% / 135% auto no-repeat var(--fc-black);
  color: var(--fc-white);
  border-top: 1px solid var(--fc-on-dark-line);
}
body .fc-footer a { text-decoration: none; }
body .fc-footer a:is(:hover, :focus-visible) { color: var(--fc-white); }
body .fc-footer a:focus-visible { outline-color: var(--fc-white); }

body .fc-footer__main {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr .9fr;
  grid-template-areas: "brand produkte unternehmen netzwerk" "kontakt produkte unternehmen netzwerk";
  gap: 32px 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--fc-on-dark-line);
}
body .fc-footer__brand { grid-area: brand; }
body .fc-footer__col--produkte { grid-area: produkte; }
body .fc-footer__col--unternehmen { grid-area: unternehmen; }
body .fc-footer__col--netzwerk { grid-area: netzwerk; }
body .fc-footer__contact { grid-area: kontakt; display: grid; align-content: start; justify-items: start; gap: 6px; font-style: normal; }
body .fc-footer__contact a, body .fc-footer__contact-row { display: inline-flex; align-items: center; gap: 10px; min-height: 28px; color: rgba(255,255,255,.86); font-size: 14px; line-height: 1.5; }
body .fc-footer__contact a, body .fc-footer__contact-row { align-items: flex-start; }
body .fc-footer__contact svg { flex: none; margin-top: 3px; color: var(--fc-on-dark-soft); }
body .fc-footer__brand { display: grid; align-content: start; justify-items: start; gap: 16px; }
body .fc-footer__brand a { display: inline-flex; }
body .fc-footer__brand img { width: 176px; height: auto; }
body .fc-footer__brand p { margin: 0; max-width: 26ch; color: var(--fc-on-dark-soft); font-size: 14px; line-height: 1.5; }

body .fc-footer__col { display: grid; align-content: start; justify-items: start; gap: 10px; font-style: normal; }
body .fc-footer__col strong { margin-bottom: 8px; color: var(--fc-white); font-family: var(--fc-font-display); font-size: 20px; font-weight: 500; letter-spacing: .06em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
body .fc-footer__col a, body .fc-footer__col span { color: rgba(255,255,255,.86); font-size: 14px; line-height: 1.5; }

body .fc-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 32px; padding-top: 24px; }
body .fc-footer__bottom p { margin: 0; }
body .fc-footer__bottom p, body .fc-footer__bottom a { color: var(--fc-on-dark-soft); font-size: 12px; line-height: 1.5; }
body .fc-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 24px; }

.fc-footer__sources { margin: 24px 0 0; color: var(--fc-on-dark-soft); }
.fc-footer__sources a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 991px) {
  body .fc-footer { padding-top: 56px; }
  body .fc-footer__main { grid-template-columns: 1fr 1fr; grid-template-areas: "brand brand" "produkte unternehmen" "netzwerk kontakt"; gap: 40px 32px; padding-bottom: 44px; }
  body .fc-footer__brand { display: flex; align-items: center; gap: 24px; }
  body .fc-footer__brand p { max-width: none; }
}

@media (max-width: 767px) {
  body .fc-footer {
    padding: 48px 0 28px;
    background:
      linear-gradient(180deg, rgba(25,27,25,.9) 0%, rgba(25,27,25,.7) 45%, rgba(25,27,25,.86) 100%),
      url("/assets/img/footer-netzwerk-1080.webp") 50% 45% / cover no-repeat var(--fc-black);
  }
  body .fc-footer__main { grid-template-columns: 1.25fr 1fr; gap: 28px 20px; padding-bottom: 32px; }
  body .fc-footer__brand { display: grid; gap: 12px; }
  body .fc-footer__brand img { width: 150px; }
  body .fc-footer__col { gap: 0; }
  body .fc-footer__col strong { margin-bottom: 4px; }
  body .fc-footer__col a, body .fc-footer__col span { min-height: 36px; display: inline-flex; align-items: center; }
  body .fc-footer__legal a { min-height: 36px; display: inline-flex; align-items: center; }
  body .fc-footer__main { grid-template-areas: "brand brand" "produkte unternehmen" "produkte netzwerk" "kontakt kontakt"; }
  body .fc-footer__contact { gap: 0; padding-top: 20px; border-top: 1px solid var(--fc-on-dark-line); }
  body .fc-footer__contact a, body .fc-footer__contact-row { min-height: 36px; }
  body .fc-footer__bottom { flex-direction: column; align-items: flex-start; gap: 4px; padding-top: 16px; }
}

@media (max-width: 479px) {
  body .fc-footer__main { gap: 24px 16px; }
}


/* ===== css/pages/geschaedigte.css ===== */
/* Geschädigte (sections/geschaedigte/): bestehende v4-Bausteine und Tokens, nur Raster und Abstände.
   Seit 11.09.2026 (Sichtprobe Laurence, Mobbin-Abgleich) nach dem Muster von Über uns: Foto-Hero mit Glasfläche,
   graue Aussage, Story-Raster mit stehender Überschrift, Anthrazit-Block mit Foto, heller Abschluss mit Porträt. */

/* Hero: Familie Über uns/Karriere, dunklere Glasfläche wie Karriere (11.09.). Motiv sitzt rechts, deshalb 62 % Schwerpunkt. */
.geschaedigte-hero { --fc-hero-glass: rgba(26, 81, 63, .46); }
.geschaedigte-hero .page-hero__media img { object-position: 62% 20%; }

/* Rolle: graue Cover-Fläche wie ueber-uns/02-wer-wir-sind, Haarlinie Anthrazit. */
.geschaedigte-rolle { background: var(--fc-hero); }
.geschaedigte-rolle .statement { border-left-color: var(--fc-gray-dark); }

/* Ihr Termin: Überschrift links bleibt stehen (sticky, kein JS), rechts die Schritte. Muster ueber-uns/03-geschichte. */
.geschaedigte-termin__head { align-self: stretch; }
.geschaedigte-termin__sticky { position: sticky; top: calc(var(--fc-header-h) + 56px); }
.geschaedigte-termin__sticky .fc-lead { margin-top: 24px; max-width: 30ch; }
/* Schritt: Titel, Text und Rolle links, die Zeit groß in Teko am rechten Rand (Mobbin: Trawelt). */
.geschaedigte-termin__schritte .rows__item.geschaedigte-schritt { display: grid; grid-template-columns: minmax(0, 1fr) 320px; /* feste Zahlenspalte: Textbreite in allen Zeilen gleich (Prüfbericht 22.10.) */ grid-template-rows: auto auto auto; column-gap: 48px; align-items: start; padding: 40px 0; }
.geschaedigte-termin__schritte .rows__item:first-child { padding-top: 8px; }
.geschaedigte-schritt__zeit { grid-column: 2; grid-row: 1 / span 3; justify-self: end; font-family: var(--fc-font-display); font-weight: 500; font-size: clamp(56px, 5.6vw, 84px); line-height: .9; white-space: nowrap; letter-spacing: 0; color: var(--fc-green-800); white-space: nowrap; font-variant-numeric: tabular-nums; }
.geschaedigte-schritt .rows__label { grid-column: 1; font-size: 26px; font-weight: 500; line-height: 1.25; }
.geschaedigte-schritt .rows__text { grid-column: 1; margin-top: 12px; max-width: 46ch; font-size: 17px; line-height: 1.65; }
.geschaedigte-schritt__wer { grid-column: 1; margin-top: 16px; font-size: 14px; font-weight: 600; letter-spacing: .02em; color: var(--fc-green-800); }

/* Vorbereitung: Anthrazit, Foto links, Liste rechts einspaltig. Raster .feature in v4.css (11.09.2026), hier nur der Ausschnitt. */
.geschaedigte-vorbereiten__media img { object-position: 68% 50%; }
.geschaedigte-vorbereiten__rows { margin-top: 32px; }
.geschaedigte-vorbereiten__rows .rows__item { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; padding: 14px 0; border-color: var(--fc-on-dark-line); }
.geschaedigte-vorbereiten__rows { border-color: var(--fc-on-dark-line); }
.geschaedigte-vorbereiten__rows .rows__label { position: relative; padding-left: 26px; }
/* Haken aus zwei Kanten, keine Grafik: Mint auf Anthrazit. */
.geschaedigte-vorbereiten__rows .rows__label::before { content: ""; position: absolute; left: 2px; top: .35em; width: 6px; height: 11px; border-right: 2px solid var(--fc-green-300); border-bottom: 2px solid var(--fc-green-300); transform: rotate(45deg); }

/* Fragen und Ansprechpartnerin: Porträt links kantig und stehend, rechts Akkordeon und Kontaktzeilen (Mobbin: Waka Waka). */
.geschaedigte-fragen__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: start; }
.geschaedigte-fragen__media { position: sticky; top: calc(var(--fc-header-h) + 56px); }
.geschaedigte-fragen__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: var(--fc-radius-media); }
.geschaedigte-fragen__name { margin-top: 16px; font-family: var(--fc-font-display); font-weight: 500; font-size: 26px; line-height: 1.1; letter-spacing: 0; }
.geschaedigte-fragen__name span { display: block; margin-top: 4px; font-family: var(--fc-font); font-size: 15px; font-weight: 500; letter-spacing: .03em; color: var(--fc-green-800); }
.geschaedigte-fragen__body > .fc-kicker + h2 { margin-top: 0; }
.geschaedigte-fragen__faq { margin-top: 32px; }
.geschaedigte-fragen__kontakt { margin-top: 48px; border-top: 0; }
.geschaedigte-fragen__kontakt .rows__item { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; padding: 14px 0; }
.geschaedigte-fragen__actions { margin-top: 32px; }

@media (max-width: 991px) {
  .geschaedigte-termin__sticky { position: static; }
  .geschaedigte-schritt__zeit { font-size: clamp(56px, 9vw, 88px); }
  .geschaedigte-fragen__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .geschaedigte-fragen__media { position: static; max-width: 420px; }
}
@media (max-width: 767px) {
  .geschaedigte-termin__schritte .rows__item.geschaedigte-schritt { grid-template-columns: minmax(0, 1fr); padding: 28px 0; }
  .geschaedigte-schritt__zeit { grid-column: 1; grid-row: 1; justify-self: start; margin-bottom: 12px; font-size: 56px; }
  .geschaedigte-schritt .rows__label { font-size: 22px; }
  .geschaedigte-vorbereiten__rows .rows__item, .geschaedigte-fragen__kontakt .rows__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .geschaedigte-fragen__kontakt { margin-top: 36px; }
}


/* ===== css/pages/home-footer.css ===== */
/* Light closing: white + translucent brand mint, exact Germany geography. */
.home-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--fc-green-950);
  background: var(--fc-white);
}
.home-footer::before {
  content: "";
  position: absolute;
  pointer-events: none;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at 76% 42%, rgba(95,255,167,.14), transparent 60%), linear-gradient(135deg, rgba(95,255,167,.025), rgba(42,121,85,.055));
}
.home-footer__layout { display: grid; grid-template-columns: 1fr 1.04fr; gap: 32px; align-items: center; padding-block: 66px 48px; }
.home-footer__copy { position: relative; z-index: 1; padding-block: 48px; }
.home-footer .home-footer__eyebrow { color: var(--fc-green-600); margin-bottom: 30px; font-size: 11px; letter-spacing: .15em; }
.home-footer h2 { font-family: var(--v3-font-display); font-size: clamp(44px, 4.7vw, 72px); line-height: 1.02; letter-spacing: 0; font-weight: 500; color: var(--fc-green-950); hyphens: none; }
.home-footer h2 em { color: var(--fc-green-600); font-weight: 400; font-style: normal; } /* Teko hat keinen Kursivschnitt; der v4-Reset greift auf der Startseite nicht (09.09.2026) */
.home-footer__lead { max-width: 30em; margin-top: 26px; color: var(--fc-gray-dark); font-size: 17px; line-height: 1.7; }
.home-footer__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 34px; }
.home-footer .home-footer__primary { background: var(--fc-green-800); color: var(--fc-white); border-color: var(--fc-green-800); gap: 28px; min-height: 56px; padding: 16px 24px; font-size: 14px; }
.home-footer .home-footer__primary:hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.home-footer__duration { color: #6b706d; font-size: 12px; }
.home-footer__phone { display: inline-flex; align-items: center; min-height: 44px; margin-top: 34px; color: var(--fc-green-950); font-size: 22px; letter-spacing: -.02em; text-underline-offset: 6px; }
.home-footer__phone:hover { text-decoration: underline; }
.home-footer__hours { color: #6b706d; font-size: 12px; }
.home-footer__visual { position: relative; min-width: 0; margin: 0; }
.home-footer__stage { position: relative; width: 100%; aspect-ratio: 600 / 780; max-height: 640px; }
.home-footer__three { position: absolute; inset: 0; opacity: 0; transition: opacity 700ms ease; }
.home-footer__three canvas { width: 100%; height: 100%; display: block; }
.home-footer__stage .home-footer__map { height: 100%; transition: opacity 500ms ease; }
.home-footer[data-footer-renderer="three"] .home-footer__three { opacity: 1; }
.home-footer[data-footer-renderer="three"] .home-footer__map { opacity: 0; }
.home-footer__map { display: block; width: 100%; height: auto; max-height: 640px; overflow: visible; }
.home-footer__route { fill: none; stroke: var(--fc-green-600); stroke-width: 1.05; opacity: .52; }
.home-footer__traveller { fill: var(--fc-green-800); stroke: var(--fc-white); stroke-width: .75; }
.home-footer__arrival { fill: none; stroke: var(--fc-green-600); stroke-width: 1; }
.home-footer__damage { fill: var(--fc-green-600); opacity: .7; }
.home-footer__halo { fill: rgba(42,121,85,.075); }
.home-footer__node { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 1.3; }
.home-footer__core { fill: var(--fc-green-800); }
.home-footer__city { fill: var(--fc-green-800); font-size: 11px; letter-spacing: .03em; font-family: var(--fc-font-body); paint-order: stroke; stroke: var(--fc-white); stroke-width: 3px; stroke-linejoin: round; }
.home-footer__caption { display: flex; align-items: center; justify-content: center; gap: 24px; padding-top: 12px; color: var(--fc-gray-dark); font-size: 11px; }
.home-footer__legend { display: inline-flex; gap: 8px; align-items: center; }
.home-footer__key { display: inline-block; flex: none; }
.home-footer__key--damage { width: 3px; height: 3px; border-radius: 50%; background: var(--fc-green-600); }
.home-footer__key--expert { width: 6px; height: 6px; border-radius: 50%; background: var(--fc-green-800); box-shadow: 0 0 0 4px rgba(42,121,85,.1); }
.home-footer__key--match { width: 18px; height: 9px; border-top: 1px solid var(--fc-green-600); border-radius: 50%; }
.home-footer__map-meta { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0 16px; margin-top: 12px; font-size: 10px; color: #6b706d; }
.home-footer__map-meta a, .home-footer__motion { display: inline-flex; align-items: center; min-height: 44px; color: inherit; }
.home-footer__motion { border: 0; background: transparent; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.home-footer__motion[hidden] { display: none; }
.home-footer a:focus-visible, .home-footer button:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 5px; }
@media (max-width: 991px) {
  .home-footer__layout { gap: 20px; padding-block: 48px 30px; }
  .home-footer h2 { font-size: 48px; }
  .home-footer__lead { font-size: 15px; }
  .home-footer__caption { gap: 18px; }
}
@media (max-width: 767px) {
  .home-footer__layout { grid-template-columns: 1fr; gap: 18px; padding-block: 64px 24px; }
  .home-footer__copy { padding: 0; }
  .home-footer h2 { font-size: clamp(42px, 7.5vw, 56px); }
  .home-footer .home-footer__eyebrow { margin-bottom: 24px; }
  .home-footer__lead { max-width: 32em; }
  .home-footer__visual { width: min(100%, 430px); justify-self: center; }
  .home-footer__map { max-height: 500px; }
  .home-footer__stage { max-height: 500px; }
  .home-footer__phone { margin-top: 24px; }
}
@media (max-width: 479px) {
  .home-footer h2 { font-size: 42px; }
  .home-footer .home-footer__primary { width: 100%; justify-content: space-between; }
  .home-footer__actions { align-items: stretch; }
  .home-footer__duration { text-align: center; }
}

/* Active closing: a single contact block; the map is used only above. */
.home-footer--contact .home-footer__layout { grid-template-columns: 1fr; padding-block: 96px; }
.home-footer--contact .home-footer__copy { width: 100%; max-width: 800px; margin-inline: auto; padding: 0; text-align: center; }
.home-footer--contact .home-footer__lead { margin-inline: auto; }
.home-footer--contact .home-footer__actions { align-items: center; }
@media (max-width: 767px) {
  .home-footer--contact .home-footer__layout { padding-block: 64px; }
}

/* Ruhige Netzwerklandschaft hinter dem abschliessenden Kontaktaufruf. */
.home-footer__connectivity { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; pointer-events: none; }
.home-footer--contact::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 40%, rgba(11,39,30,.96) 0%, rgba(11,39,30,.8) 29%, rgba(11,39,30,.12) 72%), linear-gradient(180deg, rgba(11,39,30,.25), transparent 70%, rgba(11,39,30,.35)); }
.home-footer__motion-toggle { position: absolute; right: var(--fc-edge); bottom: 20px; display: inline-flex; align-items: center; justify-content: center; color: var(--fc-on-dark-soft); background: transparent; border: 1px solid var(--fc-on-dark-line); border-radius: 50%; cursor: pointer; }
.home-footer__motion-toggle:hover { color: var(--fc-white); border-color: var(--fc-on-dark-soft); }
.home-footer__motion-toggle[hidden], .home-footer__play-icon { display: none; }
.home-footer__motion-toggle[aria-pressed="true"] .home-footer__pause-icon { display: none; }
.home-footer__motion-toggle[aria-pressed="true"] .home-footer__play-icon { display: block; }
@media (max-width: 767px) {
 .home-footer--contact::after { background: linear-gradient(180deg, rgba(11,39,30,.93), rgba(11,39,30,.8) 55%, rgba(11,39,30,.25)); }
}

/* Ruhige Filmflaeche hinter dem Statement direkt nach dem Hero. */
.home-ending { position: relative; isolation: isolate; overflow: clip; background: var(--fc-green-950); color: var(--fc-white); }
.home-ending__media { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.home-ending__media :is(img,video) { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-ending__video { opacity: 0; transition: opacity .6s ease; }
.home-ending.is-video-ready .home-ending__video { opacity: 1; }
.home-ending__media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(11,39,30,.5), rgba(11,39,30,.62) 45%, rgba(11,39,30,.8)), radial-gradient(ellipse at 50% 25%, rgba(11,39,30,.22), transparent 65%); }
body.home-page .home-ending > .home-footer { background: transparent; }
.home-footer--contact::after { content: none; }
.home-ending__motion { position: absolute; right: var(--fc-edge); bottom: 18px; display: inline-flex; align-items: center; justify-content: center; color: var(--fc-white); background: rgba(11,39,30,.45); border: 1px solid var(--fc-on-dark-line); border-radius: 50%; cursor: pointer; }
.home-ending__motion:hover { background: var(--fc-green-950); border-color: var(--fc-on-dark-soft); }
.home-ending__motion:focus-visible { outline: 2px solid var(--fc-white); outline-offset: 4px; }
.home-ending__motion[hidden], .home-ending__motion[aria-pressed="true"] .home-footer__pause-icon { display: none; }
.home-ending__motion[aria-pressed="true"] .home-footer__play-icon { display: block; }
@media (prefers-reduced-motion: reduce) { .home-ending__video { transition: none; } }

.home-ending { --fc-on-dark-soft: rgba(255,255,255,.88); }

/* Graphit-Variante: dasselbe Motiv als leiser Abschluss, ohne neue Mediendatei. */
.home-ending--graphite .home-ending__media :is(img,video) { filter: grayscale(1); }
.home-ending--graphite .home-ending__media::after { background: linear-gradient(180deg, var(--fc-gray-dark), rgba(57,61,63,.8) 22%, rgba(57,61,63,.6) 60%, rgba(57,61,63,.72)); }
.home-ending--graphite .fc-container { position: relative; }


/* ===== css/pages/home-globe.css ===== */
/* White cartographic hero. Scroll motion explicitly commissioned 09.09.2026. */
.home-globe { position: relative; background: var(--fc-white); isolation: isolate; }
.home-globe__stage { position: relative; height: calc(100svh - var(--fc-header-h)); min-height: 720px; background: var(--fc-white); overflow: clip; }
.home-globe.is-animated { height: calc(250svh - var(--fc-header-h)); }
.home-globe.is-animated .home-globe__stage { position: sticky; top: var(--fc-header-h); }
.home-globe__visual { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.home-globe__canvas { display: block; width: 100%; height: 100%; opacity: 0; }
.home-globe.is-ready .home-globe__canvas { opacity: 1; }
.home-globe__poster { position: absolute; width: min(72vw, 1040px); height: auto; right: -12%; top: 50%; transform: translateY(-50%); }
.home-globe.is-ready .home-globe__poster { visibility: hidden; }
.home-globe__veil { position: absolute; inset: 0; background: linear-gradient(90deg, var(--fc-white) 0%, rgba(255,255,255,.98) 22%, rgba(255,255,255,.80) 39%, rgba(255,255,255,0) 57%); }
.home-globe__local { position: absolute; inset: 0; opacity: 0; transform: scale(1.15); transform-origin: 72% 48%; }
.home-globe__local img { width: 100%; height: 100%; object-fit: cover; opacity: .6; }
.home-globe__copy, .home-globe__story { position: absolute; z-index: 2; top: 46%; left: var(--fc-edge); transform: translateY(-50%); width: 53%; max-width: 840px; }
.home-globe__copy .fc-kicker, .home-globe__story .fc-kicker { color: var(--fc-green-800); margin-bottom: 28px; }
.home-globe__copy h1 { color: var(--fc-black); margin: 0; font-weight: 500; letter-spacing: -.018em; }
.home-globe__copy h1 span, .home-globe__story h2 span { display: block; color: var(--fc-green-800); }
.home-globe__lead { max-width: 555px; color: var(--fc-gray-dark); margin: 28px 0 30px; }
.home-globe__copy .fc-actions { flex-wrap: wrap; gap: 12px; }
.home-globe__scope { display: flex; align-items: center; gap: 19px; text-transform: uppercase; letter-spacing: .12em; color: var(--fc-gray-dark); margin-top: 34px; }
.home-globe__scope span { color: var(--fc-green-800); }
.home-globe__story { visibility: hidden; opacity: 0; pointer-events: none; }
.home-globe__story h2 { font-weight: 500; color: var(--fc-black); margin: 0 0 26px; letter-spacing: -.015em; }
.home-globe__story p:last-child { max-width: 440px; color: var(--fc-gray-dark); }
.home-globe__label { position: absolute; color: var(--fc-green-800); padding: 13px 0 13px 22px; border-left: 1px solid var(--fc-green-800); font-weight: 500; white-space: nowrap; }
.home-globe__label span { display: block; color: var(--fc-muted); font-weight: 400; margin-top: 4px; }
.home-globe__label--initial { left: 73%; top: 28%; }
.home-globe__destination { position: absolute; left: 72%; top: 48%; display: flex; gap: 24px; align-items: center; transform: translate(-14px,-50%); opacity: 0; }
.home-globe__destination-pin { width: 16px; height: 16px; flex: none; background: var(--fc-green-800); border: 4px solid var(--fc-white); border-radius: 50%; box-shadow: 0 0 0 1px var(--fc-green-800), 0 0 0 12px rgba(26,81,63,.08); }
.home-globe__destination > div { padding: 22px 26px; background: var(--fc-white); border: 1px solid var(--fc-line); box-shadow: 0 12px 40px rgba(25,27,25,.07); }
.home-globe__destination img { display: block; height: auto; width: 150px; }
.home-globe__destination div > span { display: block; margin-top: 12px; color: var(--fc-muted); }
.home-globe__track { position: absolute; z-index: 2; left: var(--fc-edge); bottom: 36px; display: flex; align-items: center; gap: 16px; color: var(--fc-muted); text-transform: uppercase; letter-spacing: .09em; }
.home-globe__track-label { color: var(--fc-green-800); }
.home-globe__track-line { width: 100px; height: 1px; background: var(--fc-line-strong); }
.home-globe__track-line > span { display: block; width: 100%; height: 1px; background: var(--fc-green-800); transform: scaleX(0); transform-origin: left; }
.home-globe__skip { position: absolute; z-index: 3; right: var(--fc-edge); bottom: 28px; display: flex; gap: 18px; align-items: center; color: var(--fc-gray-dark); text-decoration: none; padding: 8px 0; }
.home-globe__skip:hover { color: var(--fc-green-800); }
.home-globe:not(.is-animated) .home-globe__track { display: none; }
@media (max-width: 991px) {
 .home-globe__stage { min-height: 790px; height: calc(100svh - var(--fc-header-h)); }
 .home-globe.is-animated { height: calc(220svh - var(--fc-header-h)); }
 .home-globe__copy, .home-globe__story { top: 48px; transform: none; width: calc(100% - 2 * var(--fc-edge)); max-width: 650px; }
 .home-globe__copy .fc-kicker { margin-bottom: 16px; }
 .home-globe__lead { max-width: 570px; margin: 20px 0 22px; }
 .home-globe__scope { margin-top: 22px; }
 .home-globe__veil { background: linear-gradient(180deg,var(--fc-white) 0%,rgba(255,255,255,.97) 30%,rgba(255,255,255,0) 61%); }
 .home-globe__poster { width: 84%; top: auto; bottom: -18%; right: -10%; transform: none; }
 .home-globe__label--initial { top: 65%; left: 64%; }
 .home-globe__destination { top: 70%; left: 52%; }
 .home-globe__story { top: 14%; }
 .home-globe__track { bottom: 30px; gap: 10px; }
 .home-globe__track-line { width: 44px; }
 .home-globe__skip { bottom: 72px; }
}
@media (max-width: 767px) {
 .home-globe__stage { min-height: 780px; }
 .home-globe__copy { top: 30px; }
 .home-globe__copy .fc-kicker { margin-bottom: 14px; }
 .home-globe__copy .fc-actions { gap: 10px; }
 .home-globe__copy .fc-button { padding: 12px 18px; }
 .home-globe__lead { max-width: 440px; }
 .home-globe__scope { margin-top: 20px; gap: 13px; }
 .home-globe__label--initial { left: 60%; }
 .home-globe__destination { left: 40%; top: 70%; gap: 17px; }
 .home-globe__destination > div { padding: 18px; }
 .home-globe__destination img { width: 128px; }
 .home-globe__track { bottom: 26px; }
 .home-globe__skip { bottom: 62px; }
}
@media (prefers-reduced-motion: reduce) {
 .home-globe.is-animated { height: auto; }
 .home-globe.is-animated .home-globe__stage { position: relative; top: auto; }
}


/* ===== css/pages/home-map-static.css ===== */
/* Reduced cartographic hero: static local SVG and regular document scrolling. */
.home-calm { position: relative; isolation: isolate; overflow: clip; background: var(--fc-white); color: var(--fc-black); padding: clamp(100px, 10vw, 152px) var(--fc-edge) 96px; min-height: min(820px, calc(100svh - var(--fc-header-h))); }
.home-calm__map { position: absolute; z-index: -1; inset: 0; pointer-events: none; overflow: hidden; }
.home-calm__map img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-calm__map::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,var(--fc-white) 18%,rgba(255,255,255,.98) 37%,rgba(255,255,255,.86) 47%,rgba(255,255,255,0) 67%); }
.home-calm__content { position: relative; width: 54%; max-width: 840px; }
.home-calm__content .fc-kicker { color: var(--fc-green-800); margin: 0 0 24px; }
.home-calm__content h1 { margin: 0; font-weight: 500; letter-spacing: -.018em; color: var(--fc-black); }
.home-calm__content h1 span { display: block; color: var(--fc-green-800); }
.home-calm__lead { max-width: 555px; margin: 28px 0 30px; color: var(--fc-gray-dark); }
.home-calm__content .fc-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.home-calm__scope { display: flex; gap: 18px; margin: 34px 0 0; text-transform: uppercase; letter-spacing: .12em; color: var(--fc-gray-dark); }
.home-calm__scope span { color: var(--fc-green-800); }
.home-calm__case { position: absolute; right: 6%; top: 49%; width: 250px; padding: 24px; background: var(--fc-white); border: 1px solid var(--fc-line); border-radius: 16px; box-shadow: 0 10px 32px rgba(25,27,25,.06); }
.home-calm__case > p { margin: 0 0 12px; color: var(--fc-green-800); text-transform: uppercase; letter-spacing: .07em; font-weight: 500; }
.home-calm__case > p span { color: var(--fc-muted); }
.home-calm__case h2 { margin: 0; color: var(--fc-black); font-weight: 500; }
.home-calm__case dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 16px; margin: 16px 0 0; border-top: 1px solid var(--fc-line); }
.home-calm__case dt { color: var(--fc-muted); }
.home-calm__case dd { color: var(--fc-gray-dark); margin: 6px 0 0; white-space: nowrap; }
@media (max-width: 991px) {
 .home-calm { padding-top: calc(var(--fc-header-h) + 48px); padding-bottom: 390px; min-height: 0; }
 .home-calm__content { width: 100%; max-width: 670px; }
 .home-calm__map { top: auto; height: 490px; }
 .home-calm__map img { width: 1100px; max-width: none; position: absolute; right: -15%; object-fit: contain; object-position: right bottom; }
 .home-calm__map::after { background: linear-gradient(180deg,var(--fc-white),rgba(255,255,255,0) 40%); }
 .home-calm__case { top: auto; bottom: 65px; right: 12%; }
}
@media (max-width: 767px) {
 .home-calm { padding-top: calc(var(--fc-header-h) + 36px); padding-bottom: 320px; }
 .home-calm__content .fc-kicker { margin-bottom: 16px; }
 .home-calm__lead { margin: 22px 0 24px; }
 .home-calm__content .fc-actions { gap: 10px; }
 .home-calm__content .fc-button { padding: 12px 18px; }
 .home-calm__scope { margin-top: 24px; }
 .home-calm__map { height: 370px; }
 .home-calm__map img { width: 820px; height: auto; right: -5%; bottom: -45px; }
 .home-calm__case { width: 220px; padding: 20px; right: var(--fc-edge); bottom: 44px; }
}

/* One local map scene, then a still Fairly mark. Content remains fully visible. */
.home-calm__camera { position: absolute; inset: 0; transform-origin: 0 0; }
.home-calm__map::after { z-index: 1; }
.home-calm__event { position: absolute; z-index: 2; left: 71.33%; top: 29.2%; width: 0; height: 0; }
.home-calm__pin { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border: 3px solid var(--fc-white); border-radius: 50%; background: var(--fc-green-800); box-shadow: 0 0 0 1px var(--fc-green-800); }
.home-calm__pulse { position: absolute; left: -15px; top: -15px; width: 30px; height: 30px; border: 1px solid var(--fc-green-800); background: rgba(26,81,63,.1); border-radius: 50%; opacity: 0; }
.home-calm__label { position: absolute; left: 0; bottom: 24px; transform: translateX(-50%); }
.home-calm__notice { position: absolute; bottom: 0; left: 50%; translate: -50% 0; opacity: 0; white-space: nowrap; background: var(--fc-white); padding: 12px 18px; border: 1px solid var(--fc-line); border-radius: 8px; color: var(--fc-green-800); box-shadow: 0 6px 22px rgba(25,27,25,.06); }
.home-calm__brand { background: rgba(255,255,255,.96); padding: 15px 20px; border: 1px solid var(--fc-line); border-radius: 8px; box-shadow: 0 6px 22px rgba(25,27,25,.06); }
.home-calm__brand img { position: static; display: block; width: 169px; height: 40px; max-width: none; object-fit: contain; }
@media (max-width: 767px) {
 .home-calm__brand img { width: 144px; height: auto; }
 .home-calm__brand { padding: 14px 18px; }
}

.js .home-calm:not(.map-scene-ready) .home-calm__event { visibility: hidden; }


/* Street-level camera rendered with Remotion / MapLibre. */
.home-calm__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 76% 48%; opacity: 0; }
.home-calm.has-map-film .home-calm__film { opacity: 1; }
.home-calm__camera { transform: none; }
.home-calm__event { left: 76%; top: 48%; visibility: hidden; }
.home-calm.map-scene-ready .home-calm__event { visibility: visible; }
.home-calm__pin { left: -7px; top: -7px; width: 14px; height: 14px; box-shadow: 0 0 0 1px var(--fc-green-800),0 3px 9px rgba(25,27,25,.08); }
.home-calm__label { width: 286px; bottom: 28px; }
.home-calm__notice { position: relative; bottom: auto; left: auto; translate: none; width: 286px; white-space: normal; padding: 22px 24px; background: rgba(255,255,255,.98); border-radius: 12px; box-shadow: 0 10px 40px rgba(25,27,25,.08); }
.home-calm__location { display: block; text-transform: uppercase; letter-spacing: .1em; color: var(--fc-muted); margin-bottom: 8px; }
.home-calm__notice strong { display: block; color: var(--fc-black); font-family: var(--fc-font-display); font-weight: 500; }
.home-calm__status { height: 0; opacity: 0; overflow: hidden; display: flex; align-items: center; gap: 9px; color: var(--fc-green-800); }
.home-calm__status svg { flex: none; }
.home-calm__brand { position: absolute; left: 0; top: 0; bottom: auto; translate: -50% -50%; opacity: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; transform-origin: center; }
.home-calm__brand img { width: 100%; height: auto; }
.home-calm__play { position: absolute; bottom: 38px; right: var(--fc-edge); display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; border: 0; background: none; color: var(--fc-gray-dark); font-family: var(--fc-font); cursor: pointer; }
.home-calm__play[hidden] { display: none; }
.home-calm__play:hover { color: var(--fc-green-800); }
.home-calm__play:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 5px; }
.home-calm__play-icon { width: 9px; height: 10px; border-left: 2px solid currentColor; border-right: 2px solid currentColor; }
.home-calm__play[data-state="paused"] .home-calm__play-icon,.home-calm__play[data-state="replay"] .home-calm__play-icon { border: 0; width: 10px; height: 10px; background: currentColor; clip-path: polygon(0 0,100% 50%,0 100%); }
.home-calm__credit { position: absolute; bottom: 16px; right: var(--fc-edge); color: var(--fc-muted); margin: 0; }
.home-calm__credit a { color: inherit; text-decoration: none; }
.home-calm__credit a:hover { text-decoration: underline; }
@media (max-width: 991px) { .home-calm__event { left: 52%; top: 77%; } .home-calm__film { object-position: 52% 77%; } }
@media (max-width: 767px) {
 .home-calm__label,.home-calm__notice { width: 260px; }
 .home-calm__notice { padding: 18px 20px; }
 .home-calm__brand { top: -32px; padding: 0; }
 .home-calm__brand img { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .home-calm__film { display: none; } .home-calm__play { display: none; } }

/* Poster and film use identical crops, including the mobile map anchor. */
.home-calm__camera picture { display: block; width: 100%; height: 100%; }
.home-calm__camera img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 76% 48%; }
@media (max-width: 991px) { .home-calm__camera img { object-position: 52% 77%; } }

/* Ruhige Zweispalten-Komposition, vertikal im ersten Bildschirm ausbalanciert. */
.home-calm { display: flex; align-items: center; }
.home-calm__content { width: 56%; max-width: 980px; }
.home-calm__lead { max-width: 610px; }
@media (max-width: 991px) { .home-calm { display: block; } .home-calm__content { width: 100%; } }


/* ===== css/pages/home-network-explorer.css ===== */
/* Originalkarte mit optionalen Ausschnitten; keine erfundenen Standortdaten. */
.home-network-explorer { padding-block: 104px; background: var(--fc-white); scroll-margin-top: 100px; }
.home-network-explorer__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: clamp(48px, 7vw, 110px); align-items: center; }
.home-network-explorer__figure { margin: 0; min-width: 0; }
.home-network-explorer__frame { position: relative; background: var(--fc-paper-soft); border: 1px solid var(--fc-line); border-radius: 8px; overflow: hidden; }
.home-network-explorer__map-heading { position: absolute; inset: 0 0 auto; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 62px; padding: 12px 22px; background: var(--fc-paper-soft); font-size: 11px; color: var(--fc-text-soft); }
.home-network-explorer__map-heading button { min-height: 36px; padding: 6px 9px; color: var(--fc-green-800); font-size: 11px; border: 1px solid var(--fc-line-strong); border-radius: 4px; background: var(--fc-white); }
.home-network-explorer__map { width: 100%; height: 660px; margin-block: 48px 35px; }
.home-network-explorer__map-note { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; gap: 20px; padding: 15px 22px; font-size: 10px; background: var(--fc-paper-soft); color: var(--fc-text-soft); }
.home-network-explorer__map-note span:last-child { font-family: var(--v3-font-mono); color: var(--fc-green-800); }
.home-network-explorer__navigation { margin-top: 22px; }
.home-network-explorer__navigation > p { color: var(--fc-text-soft); font-size: 12px; margin-bottom: 10px; }
.home-network-explorer__regions { display: flex; flex-wrap: wrap; gap: 6px; }
.home-network-explorer__regions button { min-height: 42px; padding: 9px 14px; border: 1px solid var(--fc-line-strong); border-radius: 4px; font-size: 12px; color: var(--fc-text-soft); background: var(--fc-white); transition: background .2s ease, border-color .2s ease, color .2s ease; }
.home-network-explorer__regions button:hover { border-color: var(--fc-green-800); color: var(--fc-green-800); }
.home-network-explorer__regions button[aria-pressed="true"] { color: var(--fc-white); border-color: var(--fc-green-800); background: var(--fc-green-800); }
.home-network-explorer button:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 3px; }
.home-network-explorer [hidden] { display: none; }
.home-network-explorer__caption { margin-top: 14px; color: var(--fc-text-soft); font-size: 10px; line-height: 1.6; }
.home-network-explorer__intro .fc-kicker { margin-bottom: 22px; }
.home-network-explorer__intro h2 { font-size: clamp(44px, 4.8vw, 68px); line-height: 1.02; }
.home-network-explorer__intro > p:last-child { max-width: 30em; margin-top: 25px; color: var(--fc-text-soft); font-size: 17px; line-height: 1.7; }
.home-network-explorer__total { display: flex; align-items: center; gap: 26px; margin-top: 36px; padding-block: 20px 24px; border-top: 1px solid var(--fc-line-strong); }
.home-network-explorer__total > span { color: var(--fc-green-800); font-family: var(--v3-font-display); font-size: 102px; line-height: 1; letter-spacing: -.045em; }
.home-network-explorer__total p { color: var(--fc-green-800); font-size: 16px; line-height: 1.5; }
.home-network-explorer__specialists { margin: 0; }
.home-network-explorer__specialists > div { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding-block: 15px; border-top: 1px solid var(--fc-line); }
.home-network-explorer__specialists dt { color: var(--fc-text-soft); font-size: 15px; }
.home-network-explorer__specialists dd { margin: 0; color: var(--fc-text); font-family: var(--v3-font-display); font-size: 32px; line-height: 1; }
.home-network-explorer__coordination { display: grid; grid-template-columns: 40px 1fr; gap: 18px; border-top: 1px solid var(--fc-line-strong); margin-top: 19px; padding-top: 26px; }
.home-network-explorer__symbol { color: var(--fc-green-800); padding-top: 5px; }
.home-network-explorer__symbol svg { fill: none; stroke: currentColor; stroke-width: 1.2; }
.home-network-explorer__coordination h3 { font-size: 27px; line-height: 1.14; }
.home-network-explorer__coordination p { color: var(--fc-text-soft); font-size: 13px; line-height: 1.7; margin-top: 12px; max-width: 29em; }
@media (max-width: 991px) {
  .home-network-explorer { padding-block: 76px; }
  .home-network-explorer__layout { gap: 38px; }
  .home-network-explorer__map { height: 550px; }
  .home-network-explorer__map-note span:last-child { display: none; }
  .home-network-explorer__total { gap: 18px; }
  .home-network-explorer__total > span { font-size: 84px; }
  .home-network-explorer__total p { font-size: 14px; }
  .home-network-explorer__intro > p:last-child { font-size: 15px; }
  .home-network-explorer__map-heading { padding-inline: 15px; font-size: 10px; }
}
@media (max-width: 767px) {
  .home-network-explorer { padding-block: 60px; }
  .home-network-explorer__layout { grid-template-columns: 1fr; gap: 30px; }
  .home-network-explorer__content { display: contents; }
  .home-network-explorer__intro { grid-row: 1; }
  .home-network-explorer__intro h2 { font-size: 48px; }
  .home-network-explorer__figure { grid-row: 2; }
  .home-network-explorer__map { height: 510px; }
  .home-network-explorer__map-heading { font-size: 11px; }
  .home-network-explorer__total { margin-top: 2px; padding-bottom: 0; }
  .home-network-explorer__specialists { margin-top: -10px; }
  .home-network-explorer__coordination { margin-top: -5px; }
  .home-network-explorer__regions button { flex: 1 1 auto; padding-inline: 11px; min-height: 44px; }
}
@media (max-width: 479px) {
  .home-network-explorer__map { height: 450px; }
  .home-network-explorer__intro h2 { font-size: 44px; }
  .home-network-explorer__regions button { font-size: 11px; padding-inline: 9px; }
  .home-network-explorer__map-note { padding-inline: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-network-explorer * { transition: none !important; }
}


/* ===== css/pages/home-network.css ===== */
/* Deutschland und Matching: eine gemeinsame SVG-Koordinatenfläche. */
.home-network { padding-block: 100px 112px; background: var(--fc-white); scroll-margin-top: 95px; }
.home-network__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding-bottom: 25px; border-bottom: 1px solid var(--fc-line); margin-bottom: 48px; }
.home-network__heading .fc-kicker { margin: 0; }
.home-network__eyebrow { color: var(--fc-text-soft); font-size: 13px; }
.home-network__layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 88px); align-items: center; }
.home-network__visual { position: relative; margin: 0; min-width: 0; padding: 24px 24px 20px; border-radius: 8px; background: var(--fc-paper-soft); overflow: hidden; }
.home-network__map-top { display: flex; justify-content: space-between; gap: 12px; color: var(--fc-green-800); font-size: 11px; letter-spacing: .025em; }
.home-network__map-top span:last-child { font-family: var(--v3-font-mono); }
.home-network__map { width: 100%; max-height: 620px; margin: 22px auto 16px; overflow: visible; }
.home-network__nodes { fill: var(--fc-green-600); opacity: .42; transition: opacity .7s ease; }
.home-network[data-stage="2"] .home-network__nodes, .home-network[data-stage="3"] .home-network__nodes { opacity: .28; }
.home-network__map-bottom { border-top: 1px solid var(--fc-line-strong); padding-top: 17px; }
.home-network__legend { display: flex; gap: 24px; color: var(--fc-green-950); font-size: 11px; }
.home-network__legend span { display: inline-flex; align-items: center; gap: 8px; }
.home-network__legend i { width: 6px; height: 6px; border-radius: 50%; background: var(--fc-green-600); }
.home-network__legend span:last-child i { width: 10px; height: 10px; background: transparent; border: 1.5px solid var(--fc-green-950); }
.home-network__map-bottom figcaption { margin-top: 12px; color: var(--fc-text-soft); font-size: 10px; line-height: 1.5; }
.home-network__route { fill: none; stroke: var(--fc-green-600); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.1s ease, opacity .3s ease; }
.home-network__route:not(:first-child) { opacity: .38; }
.home-network__expert-halo { fill: var(--fc-green-300); fill-opacity: .25; stroke: var(--fc-green-600); stroke-opacity: .22; }
.home-network__expert-dot { fill: var(--fc-green-800); stroke: var(--fc-white); stroke-width: 2; }
.home-network__expert-label-bg { fill: var(--fc-white); stroke: var(--fc-green-600); stroke-opacity: .25; }
.home-network__expert-label { fill: var(--fc-green-800); font-family: var(--fc-font-body); font-size: 12px; font-weight: 500; }
.home-network__experts > g { transition: opacity .6s ease; }
.home-network[data-example="0"][data-stage="3"] .home-network__route:not(:first-child) { opacity: 0; }
.home-network[data-example="0"][data-stage="3"] .home-network__experts > g:not(:first-child) { opacity: .15; }
.home-network__claim-cluster { fill: var(--fc-white); stroke: var(--fc-green-950); stroke-width: 1.4; display: none; }
.home-network[data-example="2"] .home-network__claim-cluster { display: block; }
.home-network__experts { opacity: 1; transition: opacity .6s ease; }
.home-network__claim-area { fill: var(--fc-green-300); opacity: .14; }
.home-network__claim-ring { fill: var(--fc-white); stroke: var(--fc-green-950); stroke-width: 1.8; }
.home-network__claim-core { fill: var(--fc-green-950); }
.home-network__claim-label-bg { fill: var(--fc-green-950); }
.home-network__claim-label { fill: var(--fc-white); font-family: var(--fc-font-body); font-size: 13px; font-weight: 500; }
.home-network__claim { opacity: 1; transition: opacity .4s ease; }
.home-network.is-enhanced[data-stage="0"] .home-network__claim { opacity: 0; }
.home-network.is-enhanced[data-stage="0"] .home-network__experts, .home-network.is-enhanced[data-stage="1"] .home-network__experts { opacity: 0; }
.home-network.is-enhanced[data-stage="0"] .home-network__route, .home-network.is-enhanced[data-stage="1"] .home-network__route { stroke-dashoffset: 1; opacity: 0; }
.home-network__content h2 { font-size: clamp(44px, 4.5vw, 64px); line-height: 1.03; letter-spacing: -.025em; }
.home-network__content h2 em { font-style: normal; color: var(--fc-green-800); font-weight: 400; }
.home-network__intro { margin-top: 25px; max-width: 31em; color: var(--fc-text-soft); font-size: 16px; line-height: 1.7; }
.home-network__example { margin-top: 34px; }
.home-network__example-top { display: flex; justify-content: space-between; gap: 16px; padding-top: 22px; border-top: 1px solid var(--fc-line-strong); color: var(--fc-green-800); font-family: var(--v3-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .045em; }
.home-network__example h3 { margin-top: 17px; font-family: var(--fc-font-body); font-size: 19px; font-weight: 500; line-height: 1.4; letter-spacing: -.025em; }
.home-network__example-copy { min-height: 48px; margin-top: 8px; color: var(--fc-text-soft); font-size: 13px; line-height: 1.65; }
.home-network__steps { margin-top: 21px; }
.home-network__steps li { display: grid; grid-template-columns: 22px 1fr 8px; gap: 13px; align-items: start; border-top: 1px solid var(--fc-line); padding-block: 15px; transition: opacity .5s ease; }
.home-network__step-number { padding-top: 3px; color: var(--fc-green-800); font-family: var(--v3-font-mono); font-size: 10px; }
.home-network__steps strong { display: block; font-size: 13px; line-height: 1.5; font-weight: 500; }
.home-network__steps p { margin-top: 4px; color: var(--fc-text-soft); font-size: 12px; line-height: 1.6; }
.home-network__step-state { width: 6px; height: 10px; margin-top: 5px; border-right: 1.5px solid var(--fc-green-800); border-bottom: 1.5px solid var(--fc-green-800); transform: rotate(40deg); opacity: 1; transition: opacity .3s ease; }
.home-network.is-enhanced .home-network__step-state { opacity: 0; }
.home-network.is-enhanced .home-network__steps .is-complete .home-network__step-state { opacity: 1; }
.home-network__controls { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid var(--fc-line-strong); padding-top: 19px; }
.home-network__controls[hidden] { display: none; }
.home-network__mobile-controls { display: none; }
.home-network__next { display: inline-flex; min-height: 44px; align-items: center; gap: 18px; padding: 10px 16px; background: var(--fc-green-800); color: var(--fc-white); border: 1px solid var(--fc-green-800); border-radius: 4px; font-size: 12px; transition: background .2s ease; }
.home-network__next:hover { background: var(--fc-green-950); }
.home-network__next:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 4px; }
.home-network__next svg { flex: none; }
.home-network__status { color: var(--fc-text-soft); font-size: 10px; text-align: right; }
.home-network__closing { margin-top: 29px; color: var(--fc-text-soft); font-size: 13px; line-height: 1.7; }
.home-network__closing strong { color: var(--fc-green-800); font-weight: 500; }
@media (max-width: 991px) {
  .home-network { padding-block: 72px; }
  .home-network__layout { gap: 32px; }
  .home-network__visual { padding: 18px 15px; }
  .home-network__content h2 { font-size: 46px; }
  .home-network__controls { flex-wrap: wrap; gap: 8px; }
}
@media (max-width: 767px) {
  .home-network { padding-block: 60px; }
  .home-network__heading { margin-bottom: 32px; padding-bottom: 20px; }
  .home-network__eyebrow { display: none; }
  .home-network__layout { grid-template-columns: 1fr; gap: 34px; }
  .home-network__content { display: contents; }
  .home-network__content h2 { grid-row: 1; font-size: 48px; }
  .home-network__intro { grid-row: 2; margin: -15px 0 0; font-size: 15px; }
  .home-network__visual { grid-row: 3; padding: 19px 22px; }
  .home-network__map { max-height: 415px; margin-block: 18px; }
  .home-network__example { grid-row: 4; margin-top: 0; }
  .home-network__closing { margin-top: -10px; }
  .home-network__example-copy { min-height: 0; }
  .home-network__controls { display: none; }
  .home-network__mobile-controls:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 19px; }
  .home-network__claim-label, .home-network__expert-label { font-size: 21px; }
  .home-network__claim-label-bg { x: -38px; width: 214px; }
  .home-network__expert-label-bg { x: -40px; y: -5px; width: 236px; height: 38px; }
}
@media (max-width: 479px) {
  .home-network__map { max-height: 350px; }
  .home-network__content h2 { font-size: 44px; }
  .home-network__map-top { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-network *, .home-network *::before, .home-network *::after { transition: none !important; }
}


/* ===== css/pages/home-palette.css ===== */
/* Startseite: Weiss und Anthrazit tragen die Inhalte; Gruen akzentuiert den bewegten Auftakt.
   Typografie und Abstaende bleiben in skala.css; alle Farben aus den Marken-Tokens. */
.home-page {
  --fc-copy: var(--fc-gray-dark);
  --v3-soft: var(--fc-paper-soft);
  --v3-canvas: var(--fc-paper-soft);
  --home-accent: var(--fc-green-800);
  --home-accent-hover: var(--fc-green-950);
  --v3-radius: 20px;
  background: var(--fc-white);
  color: var(--fc-black);
}
.home-page .fc-button--dark { background: var(--home-accent); border-color: var(--home-accent); color: var(--fc-white); }
.home-page .fc-button--dark:hover { background: var(--home-accent-hover); border-color: var(--home-accent-hover); }
.home-page .statement-section { background: var(--fc-green-950); color: var(--fc-white); }
.home-page .about-section { background: var(--fc-gray-dark); color: var(--fc-white); }
.home-page .statement-section::before, .home-page .statement-section::after,
.home-page .intent-section::before, .home-page .intent-section::after,
.home-page .home-footer::before { content: none; }
.home-page .statement-section__text,
.home-page .statement-section .scroll-text__word,
.home-page .about-section h2, .home-page .about-section h3,
.home-page .statement-fact dt, .home-page .about-section .fc-kicker { color: var(--fc-white); }
.home-page .statement-section__aside > p,
.home-page .statement-fact dd,
.home-page .about-section .feature-block__rows p { color: var(--fc-on-dark-soft); }
.home-page .statement-section__facts,
.home-page .about-section .feature-block__rows li { border-color: var(--fc-on-dark-line); }
.home-page .about-section .fc-button { background: var(--fc-white); border-color: var(--fc-white); color: var(--fc-green-950); }
.home-page .about-section .fc-button:hover { background: var(--fc-paper-soft); border-color: var(--fc-paper-soft); }
.home-page .about-section a:focus-visible { outline-color: var(--fc-white); }

.home-page .home-services, .home-page .trust-section,
.home-page .home-testimonials, .home-page .home-ways { background: var(--fc-white); }
.home-page .home-services__card, .home-page .home-services__event,
.home-page .home-ways .home-ways__card { background: var(--fc-paper-soft); border-color: var(--fc-line); }
.home-page .home-services__card:has(a:focus-visible),
.home-page .home-services__event:is(:hover, :focus-visible) { border-color: var(--fc-green-800); }
.home-page .home-services__card:has(.home-services__overview:is(:hover, :focus-visible)) { background: var(--fc-white); }
.home-page .home-services__event :is(h3,p) { color: var(--fc-gray-dark); }
.home-page .trust-section__logos li { background: var(--fc-paper-soft); border-color: var(--fc-line); }

.home-page .home-state-network {
  --fc-text-soft: var(--fc-on-dark-soft);
  --fc-line: var(--fc-on-dark-line);
  --fc-line-strong: rgba(255,255,255,.32);
  --network-land: #e3e6e4; /* Neutraler Linien-Ton aus styles.css; explizites sRGB fuer WebGL. */
  --network-land-active: #bfd7cc; /* Einsatzgebiet (Kumul) grün getönt, seit 22.10.2026; Weißmischung von #2a7955. */
  --network-land-side: #c9cdca;
  --network-boundary: #c9cdca;
  background: var(--fc-gray-dark);
  color: var(--fc-white);
}
.home-page .home-state-network :is(h2,h3,.fc-kicker,.home-state-network__eyebrow),
.home-page .home-state-network__steps strong,
.home-page .home-state-network__steps button > span,
.home-page .home-state-network__step-links a { color: var(--fc-white); }
.home-page .home-state-network__steps button[aria-pressed="true"] { background: rgba(255,255,255,.08); }
.home-page .home-state-network__steps button:hover { background: rgba(255,255,255,.12); }
.home-page .home-state-network__label-task { fill: var(--fc-gray-dark); }
.home-page .home-state-network__label-bg { stroke: var(--fc-gray-dark); }
.home-page .home-state-network__map-info > div { color: var(--fc-gray-dark); border-color: var(--fc-gray-dark); }
.home-page .home-state-network__node-halo { fill: rgba(26,81,63,.12); stroke: var(--fc-green-800); }
.home-page .home-state-network__node.is-fairly .home-state-network__node-core { fill: var(--fc-white); }
/* Legende seit 22.10.2026 als helle Leiste in Kartenfarbe, Zeichen wie auf der Karte (home-state-network.css). */
.home-page .home-state-network__key i.is-support::after { border-color: var(--fc-white); }
.home-page .home-state-network__service-link { background: var(--fc-white); color: var(--fc-green-950); }
.home-page .home-state-network__service-link:hover { background: var(--fc-paper-soft); }
.home-page .home-state-network :is(button,a,summary):focus-visible { outline-color: var(--fc-white); }

.home-page .intent-section { background: var(--fc-paper-soft); color: var(--fc-black); }
.home-page .intent-section__intro h2 { color: var(--fc-black); }
.home-page .intent-section .fc-kicker { color: var(--fc-green-800); }
.home-page .intent-section__intro > p:not(.fc-kicker),
.home-page .intent-section__result > p, .home-page .intent-section__result small { color: var(--fc-copy); }
.home-page .intent-section__result { border-color: var(--fc-line-strong); }
.home-page .intent-section__choice { color: var(--fc-gray-dark); border-color: var(--fc-line-strong); background: transparent; }
.home-page .intent-section__choice:is(:hover, :focus-visible) { color: var(--fc-green-950); border-color: var(--fc-green-800); background: var(--fc-white); }
.home-page .intent-section__choice.is-active,
.home-page .intent-section__choice.is-active:is(:hover, :focus-visible) { color: var(--fc-white); background: var(--fc-gray-dark); border-color: var(--fc-gray-dark); }
.home-page .intent-section__cta { background: var(--fc-green-800); color: var(--fc-white); }
.home-page .intent-section__cta:is(:hover, :focus-visible) { background: var(--fc-green-950); color: var(--fc-white); }
.home-page .home-ways .tile__media { border-radius: 20px 20px 0 0; }
.home-page .home-ways .home-ways__card .tile__foot { background: var(--fc-paper-soft); }

.home-page .vn-strip { background: var(--fc-paper-soft); }
.home-page .home-footer { background: var(--fc-white); color: var(--fc-green-950); }
.home-page .home-footer h2, .home-page .home-footer h2 em, .home-page .home-footer .home-footer__phone { color: var(--fc-green-950); }
.home-page .home-footer .home-footer__eyebrow { color: var(--fc-green-800); }
.home-page .home-footer .home-footer__lead, .home-page .home-footer__duration, .home-page .home-footer__hours { color: var(--fc-copy); }
.home-page .home-footer .home-footer__primary { background: var(--fc-green-800); color: var(--fc-white); border-color: var(--fc-green-800); }
.home-page .home-footer .home-footer__primary:hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.home-page .home-footer a:focus-visible { outline-color: var(--fc-green-800); }

/* Bestehende Kartenhero-Variante; der neue Globe-Hero ist separat gekapselt. */
.home-page .home-map-hero { background: var(--fc-white); color: var(--fc-black); }
.home-page .home-map-hero h1 { color: var(--fc-black); }
.home-page .home-map-hero h1 span, .home-page .home-map-hero .fc-kicker { color: var(--fc-green-800); }
.home-page .home-map-hero__lead, .home-page .home-map-hero__scope { color: var(--fc-copy); }
.home-page .home-map-hero__scope span { color: var(--fc-green-600); }
.home-page .home-map-hero__map::after { background: linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,.82) 30%, rgba(255,255,255,.3) 57%, rgba(255,255,255,0) 78%); }
.home-page .home-map-hero .fc-button--green { color: var(--fc-white); background: var(--fc-green-800); border-color: var(--fc-green-800); }
.home-page .home-map-hero .fc-button--green:hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.home-page .home-map-hero .fc-button--light { color: var(--fc-green-950); background: rgba(255,255,255,.78); border-color: var(--fc-line); }
.home-page .home-map-hero .fc-button--light:hover { background: var(--fc-white); border-color: var(--fc-green-800); }
.home-page .home-map-hero__legend { color: var(--fc-green-800); }
.home-page .home-map-case__panel { background: rgba(255,255,255,.97); box-shadow: 0 12px 36px rgba(11,39,30,.08), 0 1px 3px rgba(11,39,30,.04); border: 1px solid rgba(26,81,63,.16); }
.home-page .home-map-case__top { color: var(--fc-green-800); }
.home-page .home-map-case__top span:last-child { background: rgba(95,255,167,.2); }
.home-page .home-map-case h2 { color: var(--fc-green-950); }
.home-page .home-map-case dl { border-top: 1px solid var(--fc-line); }
.home-page .home-map-case dt { color: var(--fc-copy); }
.home-page .home-map-case dd { color: var(--fc-green-950); }
.home-page .home-map-case__pin { background: var(--fc-green-800); box-shadow: 0 0 0 3px var(--fc-white); }
.home-page .home-map-case__halo { border: 1px solid rgba(42,121,85,.28); background: rgba(95,255,167,.16); }
.home-page .home-map-case__leader path { stroke: var(--fc-green-600); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 991px) {
  .home-page .home-map-hero__map::after { background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.75) 44%, rgba(255,255,255,0) 74%); }
}

/* Kontaktabschluss und Footer bilden eine durchgehende Anthrazitflaeche. */
.home-page .home-footer--contact { background: var(--fc-gray-dark); color: var(--fc-white); }
.home-page .home-footer--contact :is(h2, h2 em, .home-footer__phone), .home-page .home-footer--contact .home-footer__eyebrow { color: var(--fc-white); }
.home-page .home-footer--contact :is(.home-footer__lead, .home-footer__duration, .home-footer__hours) { color: var(--fc-on-dark-soft); }
.home-page .home-footer--contact .home-footer__primary { background: var(--fc-white); border-color: var(--fc-white); color: var(--fc-green-950); }
.home-page .home-footer--contact .home-footer__primary:hover { background: var(--fc-paper-soft); border-color: var(--fc-paper-soft); }
.home-page .home-footer--contact :is(a,button):focus-visible { outline-color: var(--fc-white); }

/* Ruhige Leistungsuebersicht und konsistente gruene Aktionsflaechen. */
.home-page .home-services__list { border: 0; }
.home-page .home-services__row { border-bottom: 1px solid var(--fc-line); }
.home-page .home-services__row:hover { background: var(--fc-paper-soft); }
.home-page .home-ways .home-ways__card .tile__foot { background: var(--fc-green-800); color: var(--fc-white); }
.home-page .home-ways .home-ways__card .tile__foot:hover,
.home-page .home-ways .home-ways__card:focus-visible .tile__foot { background: var(--fc-white); color: var(--fc-black); }
.home-page .home-ways .home-ways__card .tile__foot:active { background: var(--fc-black); color: var(--fc-white); }
.home-page .intent-section__choice { background: var(--fc-green-800); border-color: var(--fc-green-800); color: var(--fc-white); }
.home-page .intent-section__choice:is(:hover,:focus-visible) { background: var(--fc-white); color: var(--fc-black); }
.home-page .intent-section__choice.is-active { background: var(--fc-black); border-color: var(--fc-black); color: var(--fc-white); }
.home-page .intent-section__cta:is(:hover,:focus-visible) { background: var(--fc-white); color: var(--fc-black); }
.statement-section__word { display: inline-block; white-space: nowrap; }
.js .statement-section__aside[data-reveal-after-cue] { transform: translateX(28px); transition: opacity .65s ease, transform .85s cubic-bezier(.22,1,.36,1); }
.js .statement-section__aside[data-reveal-after-cue].is-visible { transform: none; }
@media (prefers-reduced-motion: reduce) { .js .statement-section__aside[data-reveal-after-cue] { transform: none; opacity: 1; transition: none; } }

/* Anliegen: neutrale Auswahl, eine aktive Farbe und ein unveraenderlicher CTA. */
.home-page .intent-section__choice { background: var(--fc-white); color: var(--fc-gray-dark); border-color: var(--fc-line-strong); text-align: left; transform: none; box-shadow: none; }
.home-page .intent-section__choice:is(:hover,:focus-visible) { background: var(--fc-paper-soft); color: var(--fc-green-950); border-color: var(--fc-green-800); transform: none; }
.home-page .intent-section__choice.is-active,
.home-page .intent-section__choice.is-active:is(:hover,:focus-visible) { background: var(--fc-green-800); border-color: var(--fc-green-800); color: var(--fc-white); }
.home-page .intent-section__choice::before { content: ''; border: 1px solid currentColor; border-radius: 50%; opacity: .5; }
.home-page .intent-section__choice.is-active::before { background: var(--fc-white); box-shadow: inset 0 0 0 3px var(--fc-green-800); opacity: 1; }
.home-page .intent-section__result > p { color: var(--fc-gray-dark); text-transform: none; letter-spacing: 0; font-family: var(--fc-font-body); }
.home-page .intent-section__cta { background: var(--fc-green-800); color: var(--fc-white); text-decoration: none; }
.home-page .intent-section__cta:is(:hover,:focus-visible) { background: var(--fc-green-950); color: var(--fc-white); transform: none; }
.home-page .intent-section__cta:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 4px; }
.home-services__disclosure { border-bottom: 1px solid var(--fc-line); }
.home-services__disclosure summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; color: var(--fc-black); font-family: var(--fc-font-display); }
.home-services__disclosure summary::-webkit-details-marker { display: none; }
.home-services__disclosure summary:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 3px; }
.home-services__disclosure summary i { position: relative; flex: none; }
.home-services__disclosure summary i::before,.home-services__disclosure summary i::after { content: ''; position: absolute; background: currentColor; transition: transform .25s ease; }
.home-services__disclosure summary i::after { transform: rotate(90deg); }
.home-services__disclosure[open] summary i::after { transform: rotate(0deg); }
.home-services__answer { color: var(--fc-gray-dark); }
.home-services__answer a { display: inline-flex; align-items: center; color: var(--fc-green-800); text-underline-offset: 4px; }

/* Direkter Gespraechseinstieg: eine Handlung, keine vorgeschaltete Themenwahl. */
.home-page .intent-section--direct .intent-section__phone { color: var(--fc-gray-dark); text-decoration: none; text-underline-offset: 5px; }
.home-page .intent-section--direct .intent-section__phone:is(:hover,:focus-visible) { color: var(--fc-green-800); text-decoration: underline; }
.home-page .intent-section--direct .intent-section__phone:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 5px; }

/* Offene Zusatzleistungen: Typografie und Linien tragen die Hierarchie. */
.home-page .home-services__extras .home-services__row:hover { background: transparent; }
.home-page .home-services__extras .home-services__action { text-decoration: none; transition: transform .2s ease; }
.home-page .home-services__extras .home-services__row:is(:hover,:focus-visible) .home-services__action { transform: translate(2px,-2px); }
@media (prefers-reduced-motion: reduce) { .home-page .home-services__extras .home-services__action { transition: none; transform: none; } }

/* Karten behalten ihre Flaeche; nur der Linkbereich reagiert farblich. */
.home-page .home-ways .home-ways__card:is(:hover,:focus-visible) { background: var(--fc-paper-soft); border-color: var(--fc-line); }

.home-page .contact-person__name { color: var(--fc-black); font-family: var(--fc-font-display); }
.home-page .contact-person__role { color: var(--fc-copy); }

/* Mobil keine verzögerten Leerflächen oder seitlich einschiebenden Absätze. */
@media (max-width: 991px) {
  .js .home-page [data-reveal] { transform: none; transition: opacity .25s ease; transition-delay: 0s !important; }
  .js .home-page .statement-section__aside[data-reveal-after-cue] { opacity: 1; transform: none; transition: none; }
}

/* Werte-Band am Fuß der Statement-Sektion (Bastian 22.10.2026): fünf gleiche Spalten wie die Kennzahlen, kurzer Mint-Strich oben. */
.home-page .statement-section__values { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px 32px; margin: 32px 0 0; padding: 32px 0 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.home-page .statement-section__values li { color: var(--fc-white); font-family: var(--v3-font-display); font-size: clamp(22px, 1.9vw, 28px); font-weight: 500; line-height: 1.1; }
.home-page .statement-section__values li::before { display: block; width: 24px; height: 2px; margin-bottom: 14px; background: var(--fc-green-300); content: ""; }
@media (max-width: 991px) { .home-page .statement-section__values { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }


/* ===== css/pages/home-state-network.css ===== */
/* Räumliche Netzwerkansicht mit gleichwertigem SVG-Fallback und HTML-Bedienung. */
.home-state-network {
  /* Weißabstufungen des Marken-Grüns #2a7955: 14 / 24 / 30 / 46 Prozent. */
  --network-land: #e1ece7;
  --network-land-active: #ccdfd6;
  --network-land-side: #bfd7cc;
  --network-boundary: #9dc1b1;
  padding-block: 96px; background: transparent; scroll-margin-top: 95px;
}
.home-state-network__heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 64px; padding-bottom: 38px; }
.home-state-network__heading .fc-kicker { margin-bottom: 21px; }
.home-state-network__heading h2 { font-size: clamp(44px, 4.6vw, 66px); line-height: 1.02; }
.home-state-network__heading > p { max-width: 29em; color: var(--fc-text-soft); font-size: 17px; line-height: 1.7; }
.home-state-network__layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 70px); align-items: start; margin-top: 20px; border-top: 1px solid var(--fc-line); padding-top: 36px; }
.home-state-network__figure { position: sticky; top: 108px; align-self: start; margin: 0; min-width: 0; }
.home-state-network__canvas { position: relative; height: min(740px, calc(100svh - 140px)); min-height: 300px; background: transparent; transition: transform .9s cubic-bezier(.22, 1, .36, 1), opacity .9s ease; }
.home-state-network.is-map-ready:not(.is-map-visible) .home-state-network__canvas { transform: translate3d(0, 18px, 0) scale(.97); opacity: .7; }
.home-state-network__map, .home-state-network__fallback, .home-state-network__webgl { display: block; position: absolute; inset: 0; width: 100%; height: 100%; background: transparent; object-fit: contain; overflow: hidden; }
.home-state-network__webgl { pointer-events: none; overflow: visible; }
.home-state-network__webgl canvas { display: block; width: 100%; height: 100%; filter: drop-shadow(4px 10px 6px rgba(26, 81, 63, .08)) drop-shadow(16px 30px 20px rgba(26, 81, 63, .17)); }
.home-state-network__map { overflow: visible; }
.home-state-network__land { fill: var(--network-land); fill-rule: evenodd; stroke: var(--network-boundary); stroke-width: .6; vector-effect: non-scaling-stroke; transition: fill .65s ease; }
.home-state-network__land.is-involved { fill: var(--network-land-active); }
.home-state-network__land-side { fill: var(--network-land-side); stroke: var(--network-land-side); stroke-width: .6; }
.home-state-network.is-3d [data-network-geography] { visibility: hidden; }
.home-state-network__route { fill: none; stroke: var(--fc-green-800); stroke-width: 1.6; vector-effect: non-scaling-stroke; opacity: .85; transition: opacity .7s cubic-bezier(.22, 1, .36, 1) .16s; }
.home-state-network__route.is-coordination { stroke: var(--fc-green-600); stroke-dasharray: 4 5; stroke-width: 1.4; }
.home-state-network__route.is-case { stroke-width: .8; opacity: .4; }
.home-state-network__route.is-case.is-pending { opacity: 0; }
.home-state-network__route.is-pending { opacity: 0; transition: opacity .3s ease; }
.home-state-network__route.is-support { stroke-width: 2; opacity: 1; }
.home-state-network__route.is-support.is-pending { opacity: 0; }
.home-state-network__arrow { fill: var(--fc-green-800); }
.home-state-network__node { cursor: pointer; outline: none; opacity: 1; transition: opacity .65s cubic-bezier(.22, 1, .36, 1) .1s, visibility 0s; }
.home-state-network__node.is-pending { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility 0s linear .3s; }
.home-state-network__node:hover, .home-state-network__node:focus-visible { opacity: 1; }
.home-state-network__node-hit { fill: transparent; }
.home-state-network__node-halo { fill: rgba(95, 255, 167, .24); stroke: var(--fc-green-300); stroke-opacity: .4; stroke-width: .75; }
.home-state-network__node-ring { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 1.5; }
.home-state-network__node-core { fill: var(--fc-green-800); }
.home-state-network__claim-mark { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 1.8; }
.home-state-network__node:focus-visible .home-state-network__claim-mark { stroke: var(--fc-green-600); stroke-width: 3; }
.home-state-network__key { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; padding: 14px 0; color: var(--fc-text-soft); font-size: 11px; }
.home-state-network__key span { display: inline-flex; align-items: center; gap: 8px; }
.home-state-network__key i { display: block; width: 8px; height: 8px; border: 1.5px solid var(--fc-green-800); border-radius: 50%; }
.home-state-network__key i.is-expert { background: var(--fc-green-800); box-shadow: 0 0 0 3px rgba(42, 121, 85, .15); }
.home-state-network__key i.is-support { position: relative; width: 20px; height: 0; border: 0; border-top: 1.5px solid var(--fc-green-800); border-radius: 0; }
.home-state-network__key i.is-support::after { position: absolute; right: 0; top: -3.5px; content: ''; width: 5px; height: 5px; border-top: 1.5px solid var(--fc-green-800); border-right: 1.5px solid var(--fc-green-800); transform: rotate(45deg); }
.home-state-network__node.is-fairly .home-state-network__node-core { fill: var(--fc-green-300); }
.home-state-network__node.is-fairly .home-state-network__node-ring { fill: var(--fc-green-800); }
.home-state-network__node:focus-visible .home-state-network__node-halo { stroke-opacity: 1; stroke-width: 2; }
.home-state-network__stem, .home-state-network__leader { stroke: var(--fc-green-600); stroke-opacity: .45; stroke-width: 1; vector-effect: non-scaling-stroke; }
.home-state-network__label-bg { fill: var(--fc-white); fill-opacity: .95; stroke: var(--fc-line); stroke-width: .8; }
.home-state-network__node.is-active .home-state-network__label-bg { stroke: var(--fc-green-600); stroke-opacity: .6; }
.home-state-network__label-role { fill: var(--fc-green-950); font-family: var(--fc-font-body); font-size: 12px; font-weight: 500; }
.home-state-network__label-task { fill: var(--fc-text-soft); font-family: var(--fc-font-body); font-size: 10px; }
.home-state-network__panel { min-width: 0; padding-block: 12px 24px; }
.home-state-network__eyebrow { color: var(--fc-green-800); font-family: var(--v3-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.home-state-network__panel h3 { margin-top: 20px; font-size: 40px; line-height: 1.08; max-width: 13em; }
.home-state-network__panel-copy { margin-top: 18px; color: var(--fc-text-soft); font-size: 14px; line-height: 1.7; max-width: 30em; }
.home-state-network__steps { margin-top: 30px; padding: 0; list-style: none; border-bottom: 1px solid var(--fc-line); }
.home-state-network__steps li { display: flex; flex-direction: column; justify-content: center; min-height: clamp(220px, 32vh, 290px); border-top: 1px solid var(--fc-line); }
.home-state-network__steps button, .home-state-network__steps li:not(:has(button)) { display: grid; grid-template-columns: 27px 1fr; gap: 14px; width: 100%; padding: 28px 16px 28px 0; text-align: left; }
.home-state-network__steps button { border-radius: 0; transition: background .2s; }
.home-state-network__steps button[aria-pressed="true"] { background: rgba(42, 121, 85, .055); }
.home-state-network__steps button:hover { background: rgba(42, 121, 85, .035); }
.home-state-network__steps button > span, .home-state-network__steps li > span { padding-top: 3px; font-family: var(--v3-font-mono); font-size: 10px; color: var(--fc-green-600); text-align: center; }
.home-state-network__steps strong { display: block; color: var(--fc-green-950); font-size: 16px; font-weight: 500; }
.home-state-network__steps p { margin-top: 10px; color: var(--fc-text-soft); font-size: 14px; line-height: 1.7; }
.home-state-network__step-links { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 0 10px 22px 41px; }
.home-state-network__step-links a { display: inline-flex; align-items: center; min-height: 32px; color: var(--fc-green-800); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.home-state-network__steps li:not(:has(button)) .home-state-network__step-links { grid-column: 2; padding: 0; }
.home-state-network__service-link { display: inline-flex; align-items: center; min-height: 48px; margin-top: 26px; padding: 13px 17px; color: var(--fc-white); background: var(--fc-green-800); border-radius: 4px; font-size: 12px; line-height: 1.5; transition: background .2s; }
.home-state-network__service-link:hover { background: var(--fc-green-950); }
.home-state-network__map-info { position: absolute; bottom: 0; right: 0; width: min(280px, 100%); z-index: 2; pointer-events: none; }
.home-state-network__map-info summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-left: auto; cursor: pointer; list-style: none; color: var(--fc-text-soft); pointer-events: auto; }
.home-state-network__map-info summary::-webkit-details-marker { display: none; }
.home-state-network__map-info summary span { display: flex; align-items: center; justify-content: center; width: 17px; height: 17px; border: 1px solid var(--fc-line-strong); border-radius: 50%; font-size: 11px; }
.home-state-network__map-info > div { position: absolute; bottom: 44px; right: 0; width: 100%; padding: 16px; border: 1px solid var(--fc-line); border-radius: 4px; background: var(--fc-white); color: var(--fc-text-soft); font-size: 11px; line-height: 1.7; pointer-events: auto; }
.home-state-network__map-info p + p { margin-top: 9px; }
.home-state-network__map-info a { text-decoration: underline; text-underline-offset: 3px; }
.home-state-network button:focus-visible, .home-state-network a:focus-visible, .home-state-network summary:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 3px; }
.home-state-network [hidden] { display: none; }
@media (max-width: 991px) {
  .home-state-network { padding-block: 72px; }
  .home-state-network__heading { gap: 36px; }
  .home-state-network__heading > p { font-size: 15px; }
  .home-state-network__layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 26px; }
  .home-state-network__canvas { height: min(580px, calc(100svh - 140px)); }
  .home-state-network__panel h3 { font-size: 34px; }
}
@media (max-width: 767px) {
  .home-state-network { padding-block: 56px; }
  .home-state-network__heading { grid-template-columns: 1fr; gap: 24px; padding-bottom: 28px; }
  .home-state-network__heading h2 { font-size: 46px; }
  .home-state-network__layout { grid-template-columns: 1fr; gap: 8px; margin-top: 14px; padding-top: 24px; }
  .home-state-network__panel { padding-block: 14px 0; }
  .home-state-network__panel h3 { font-size: 34px; margin-top: 14px; }
}
@media (max-width: 479px) {
  .home-state-network__heading h2 { font-size: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-state-network * { transition: none !important; }
  .home-state-network.is-map-ready .home-state-network__canvas { transform: none; opacity: 1; }
  .home-state-network .home-state-network__figure { position: relative; top: auto; }
  .home-state-network__steps li { min-height: 0; }
}

/* Kleine, feste Einsatzmarker statt mehrfacher konzentrischer Ringe. */
.home-state-network__expert-mark { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 1.3; }
.home-state-network__route.is-case { stroke-width: 1; stroke-dasharray: 2 3; opacity: .35; }
.home-state-network__route.is-case.is-pending { opacity: 0; }
.home-page .home-state-network__key i.is-expert { border-radius: 2px; background: var(--fc-white); }

/* Unaufdringliche Verbindungen: keine Einsatzpfeile oder Logo-Plaketten. */
.home-page .home-state-network__route { stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; opacity: .68; }
.home-page .home-state-network__route.is-coordination { stroke: var(--fc-green-800); stroke-width: 1; stroke-dasharray: none; opacity: .38; }
.home-page .home-state-network__route.is-support { stroke-width: 2.4; opacity: .95; } /* Regionale Routen sind seit 22.10.2026 die Hauptaussage der Karte. */
.home-page .home-state-network__route.is-case { stroke-width: .8; stroke-dasharray: none; opacity: .32; }
.home-page .home-state-network__route.is-pending { opacity: 0; }
.home-page .home-state-network__key i.is-expert { border-radius: 50%; background: var(--fc-white); box-shadow: none; }
.home-page .home-state-network__key i.is-support::after { content: none; }
.home-page .home-state-network__node.is-fairly .home-state-network__node-core { fill: var(--fc-white); }

/* Mobil steht die Karte oben (skala.css), der Text scrollt darunter durch. */
@media (max-width: 991px) {
  .home-state-network.is-map-ready .home-state-network__canvas { transform: none; opacity: 1; transition: none; }
}
.home-page .home-state-network__expert-mark { fill: var(--fc-green-800); stroke: var(--fc-white); }

/* Karte seit 22.10.2026 (Bastian): eine Bildsprache für alle drei Schritte.
   Gefüllt = Experte am Standort, Ring = Schadenort, Bogen = Fahrt, gestrichelt = Innendienst Hamburg. */
.home-page .home-state-network__route.is-drive { stroke: var(--fc-green-800); stroke-width: 2.6; stroke-linecap: round; opacity: 1; stroke-dasharray: 1 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.1s cubic-bezier(.22, 1, .36, 1) .2s, opacity .25s ease; }
.home-page .home-state-network__route.is-drive.is-pending { opacity: 0; stroke-dashoffset: 1; transition: opacity .2s ease, stroke-dashoffset 0s linear .2s; }
.home-page .home-state-network__route.is-desk { stroke: var(--fc-green-600); stroke-width: 1.6; stroke-dasharray: 2 6; stroke-linecap: round; opacity: .9; transition: opacity .6s ease .5s; }
.home-page .home-state-network__route.is-desk.is-pending { opacity: 0; transition: opacity .2s ease; }
.home-page .home-state-network__claim-mark { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 2; }
.home-page .home-state-network__expert-mark { fill: var(--fc-green-800); stroke: var(--fc-white); stroke-width: 1.5; }
.home-state-network__specialist-ring { fill: none; stroke: var(--fc-green-800); stroke-width: 1.4; }
.home-state-network__tag { fill: var(--fc-green-950); font-family: var(--fc-font-body); font-size: 11.5px; font-weight: 500; paint-order: stroke; stroke: rgba(255, 255, 255, .92); stroke-width: 3.5px; stroke-linejoin: round; pointer-events: none; transition: opacity .3s ease; }
.home-state-network__tag.is-zone { fill: var(--fc-green-800); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; }
.home-state-network__tag.is-tag-hidden { opacity: 0; }
.home-page .home-state-network__land.is-involved { fill: var(--network-land-side); }
.home-page .home-state-network__key i.is-claim { background: var(--fc-white); }
.home-page .home-state-network__key i.is-expert { background: var(--fc-green-800); border-color: var(--fc-green-800); }
.home-page .home-state-network__key i.is-drive { width: 20px; height: 0; border: 0; border-top: 2.5px solid var(--fc-green-800); border-radius: 2px; }
.home-page .home-state-network__key i.is-desk { width: 20px; height: 0; border: 0; border-top: 2px dotted var(--fc-green-600); border-radius: 0; }
/* Einsatzgebiet (Kumul) deutlich eingefärbt, auch im 3D-Renderer (liest --network-land-active). */
/* Legende als helle Leiste in Kartenfarbe, damit die Zeichen genauso aussehen wie auf der Karte. */
.home-page .home-state-network__key { width: fit-content; margin: 8px auto 0; padding: 10px 20px; border-radius: 999px; background: var(--network-land); color: var(--fc-green-950); }
.home-page .home-state-network__key i.is-claim { border: 2px solid var(--fc-green-800); background: var(--fc-white); width: 10px; height: 10px; }
.home-page .home-state-network__key i.is-expert { width: 10px; height: 10px; border: 0; background: var(--fc-green-800); box-shadow: none; }


/* ===== css/pages/home.css ===== */
/* Startseite (sections/home/): nur Feinheiten, die Bausteine stehen in v4.css. */
.fc-header[data-home-header][data-scrolled="true"] { background: rgba(255,255,255,.96); border-bottom-color: var(--fc-line); box-shadow: 0 4px 20px rgba(25,27,25,.04); }
.fc-header[data-home-header][data-hidden="true"] { transform: none; }
/* Der Hero der Startseite ist .page-hero--split aus css/skala.css (seit 07.09.); das alte
   .page-hero--home mit festem Video ist entfernt. */

.home-intro { position: relative; z-index: 1; background: var(--fc-white); padding-block: var(--fc-section-lg) 96px; }
.home-intro__kicker { color: var(--fc-green-800); margin-bottom: 36px; }
.home-intro__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 72px; align-items: start; }
.home-intro__title { font-size: clamp(48px, 4.7vw, 68px); line-height: 1.08; }
.home-intro__line { display: block; }
.home-intro__accent { color: var(--fc-green-800); }
.home-intro__accent--last { font-style: normal; } /* Teko hat keinen Kursivschnitt */
.home-intro__title.is-scroll-color .home-intro__accent { color: color-mix(in srgb, var(--fc-green-800) calc(var(--tone-first, 0) * 100%), var(--fc-ink)); }
.home-intro__title.is-scroll-color .home-intro__accent--last { color: color-mix(in srgb, var(--fc-green-800) calc(var(--tone-last, 0) * 100%), var(--fc-ink)); }
.home-intro__body { padding-top: 5px; }
.home-intro__text { max-width: 38ch; color: var(--fc-copy); font-size: 18px; line-height: 1.65; }
.home-intro__links { margin-top: 28px; }
.home-intro__links .fc-link { text-decoration-color: var(--fc-line-strong); }

/* Fachgebiete: dieselbe Inhaltskante wie die benachbarten Live-Sektionen.
   Bereichslinks umfassen die Karte; Paketlinks liegen als eigene Ziele darüber. */
.home-services { padding-block: clamp(72px, 7vw, 104px); background: var(--fc-white); }
.home-services .home-services__stage { max-width: calc(var(--v3-container, 1240px) + var(--v3-gutter, 36px) * 2); padding-inline: var(--v3-gutter, 36px); }
.home-services__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 40px; }
.home-services__head .fc-kicker { margin-bottom: 18px; }
.home-services__head h2 { color: var(--fc-ink); }
.home-services__intro { max-width: 54ch; color: var(--fc-copy); font-size: 16px; line-height: 1.65; }
.home-services__grid { gap: 24px; }
.home-services__card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 32px; border: 1px solid var(--fc-line); border-radius: 16px; background: var(--fc-soft); box-shadow: none; transition: background-color 180ms ease, border-color 180ms ease; }
.home-services__overview { display: block; color: var(--fc-ink); text-decoration: none; }
.home-services__overview::after { position: absolute; inset: 0; border-radius: inherit; content: ""; }
.home-services__eyebrow { margin: 0 0 16px; color: var(--fc-green-800); font-family: var(--fc-font-mono); font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.home-services__card .card__title { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.12; color: var(--fc-ink); }
.home-services__card .card__text { margin: 18px 0 20px; color: var(--fc-copy); font-size: 15px; line-height: 1.65; }
.home-services__action { display: inline-block; flex-shrink: 0; color: var(--fc-green-800); font-size: 13px; font-weight: 500; line-height: 1.5; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.home-services__packages, .home-services__tandem { margin-top: auto; padding-top: 28px; }
.home-services__package { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; padding: 16px 0; border-top: 1px solid var(--fc-line-strong); color: var(--fc-ink); text-decoration: none; transition: background-color 180ms ease; }
.home-services__package:last-child { padding-bottom: 0; }
.home-services__package-title, .home-services__package-text { display: block; }
.home-services__package-title { font-size: 15px; font-weight: 500; }
.home-services__package-text { margin-top: 4px; color: var(--fc-copy); font-size: 13px; line-height: 1.5; }
.home-services__tandem h4 { margin: 0; padding-top: 20px; border-top: 1px solid var(--fc-line-strong); font-family: var(--fc-font); font-size: 15px; font-weight: 500; line-height: 1.5; }
.home-services__tandem p { max-width: 49ch; margin: 10px 0 0; color: var(--fc-copy); font-size: 14px; line-height: 1.65; }
.home-services__extras { margin-top: 48px; }
.home-services__extras-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.home-services__extras-head h3 { font-size: 28px; }
.home-services__extras-head p { color: var(--fc-copy); font-size: 14px; line-height: 1.6; }
.home-services__list { border-bottom: 1px solid var(--fc-line); }
.home-services__row { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.8fr) auto; align-items: center; gap: 32px; min-height: 82px; padding-block: 22px; border-top: 1px solid var(--fc-line); color: var(--fc-ink); text-decoration: none; transition: background-color 180ms ease; }
.home-services__row-title { font-family: var(--fc-font-display); font-size: 26px; line-height: 1.15; }
.home-services__row-text { max-width: 62ch; color: var(--fc-copy); font-size: 14px; line-height: 1.6; }
.home-services__event { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.8fr) auto; align-items: center; gap: 32px; margin-top: 32px; padding: 28px 32px; border: 1px solid var(--fc-line-green); border-radius: 12px; background: var(--fc-green-50); color: var(--fc-ink); text-decoration: none; transition: background-color 180ms ease; }
.home-services__event .home-services__eyebrow { margin-bottom: 8px; font-size: 10px; letter-spacing: .06em; }
.home-services__event h3 { font-size: 28px; }
.home-services__event > p { max-width: 53ch; color: var(--fc-copy); font-size: 14px; line-height: 1.6; }
.home-services__all { margin-top: 28px; }
.home-services__all .fc-link { min-height: 44px; text-decoration-color: var(--fc-line-strong); }
.home-services__overview:focus-visible { outline: none; }
.home-services__overview:focus-visible::after, .home-services__package:focus-visible, .home-services__row:focus-visible, .home-services__event:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 5px; }
/* Gemeinsame Textzeilen halten Titel, Aktionen und die untere Trennlinie bündig. */
@supports (grid-template-rows: subgrid) {
  .home-services__grid { row-gap: 0; }
  .home-services .home-services__card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
  .home-services__overview { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
  .home-services__overview > .home-services__action { justify-self: start; align-self: start; }
  .home-services__packages, .home-services__tandem { margin-top: 0; }
}
@media (hover: hover) {
  .home-services__card:has(.home-services__overview:hover), .home-services__card:has(.home-services__overview:focus-visible) { background: var(--fc-green-50); border-color: var(--fc-line-green-strong); }
  .home-services__package:hover, .home-services__row:hover { background: var(--fc-green-50); }
  .home-services__package:hover .home-services__package-title, .home-services__row:hover .home-services__row-title { color: var(--fc-green-800); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
  .home-services__event:hover { background: var(--fc-green-100); }
}

.home-facts .facts--big { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.home-story__title { max-width: 22ch; }
.home-story__rows { margin-top: 40px; }
.home-story__panel { padding: 40px; border-radius: var(--fc-radius-band); background: var(--fc-green-50); }
.home-story__stage { position: relative; overflow: hidden; border-radius: var(--fc-radius); background: var(--fc-white); aspect-ratio: 16 / 9; }
.home-story__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Labels sitzen auf den drei Ecken des Dreiecks (Ecken im Bild: 50 %/9.7 %, 24.8 %/84.3 %, 75 %/84.3 %). */
.home-story__label { position: absolute; z-index: 2; color: var(--fc-ink); font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.home-story__label--top { left: 50%; top: 9.7%; transform: translate(-50%, calc(-100% - 14px)); }
.home-story__label--left { left: 24.8%; top: 84.3%; transform: translate(-50%, 18px); }
.home-story__label--right { left: 75%; top: 84.3%; transform: translate(-50%, 18px); }
.js .home-story__label[data-reveal] { opacity: 0; }
.js .home-story__label[data-reveal].is-visible { opacity: 1; }
.js .home-story__label--top[data-reveal] { transform: translate(-50%, calc(-100% - 6px)); }
.js .home-story__label--top[data-reveal].is-visible { transform: translate(-50%, calc(-100% - 14px)); }
.js .home-story__label--left[data-reveal], .js .home-story__label--right[data-reveal] { transform: translate(-50%, 10px); }
.js .home-story__label--left[data-reveal].is-visible, .js .home-story__label--right[data-reveal].is-visible { transform: translate(-50%, 18px); }
.home-story__caption { margin-top: 12px; color: var(--fc-copy); font-size: 13px; text-align: center; }

.home-network { overflow: hidden; }
.home-network .fc-lead { margin-top: 20px; }
.home-network__facts { margin-top: 32px; }
.home-network__rows { margin-top: 32px; }
.home-network__side { display: grid; justify-items: end; }
.home-network__map { width: 100%; max-width: 480px; margin-right: -40px; }
.home-network__caption { width: 100%; max-width: 480px; margin: 8px -40px 0 0; color: var(--fc-muted); font-size: 12px; text-align: center; }

.home-logos__note { margin-top: 16px; }

.home-founder__portrait .ph { width: 240px; }
.home-founder__name { font-size: 28px; margin-top: 0; }
.home-founder__role { margin-top: 4px; color: var(--fc-copy); font-size: 17px; }
.home-founder__bio { margin-top: 20px; color: var(--fc-ink); }
.home-founder__link { margin-top: 24px; }

.home-intent .band { border-radius: 16px; }

.home-ways__title { max-width: 900px; }
.home-ways__tiles { margin-top: 48px; }

/* Onboarding-Vorlage in kompakter Kartengröße: Foto mit bogenförmigem Abschluss,
   weißer Kartenkörper, Fairly-Typografie und breite helle Aktion. */
.home-ways .home-ways__card { position: relative; min-width: 0; border: 1px solid var(--fc-line); border-radius: 28px; background: var(--fc-white); color: var(--fc-black); text-decoration: none; box-shadow: none; transition: border-color 220ms ease; }
.home-ways .home-ways__card:hover, .home-ways .home-ways__card:focus-visible { background: var(--fc-white); border-color: var(--fc-line-strong); }
.home-ways .home-ways__card .tile__media { flex: none; height: 220px; overflow: hidden; border-radius: 0 0 50% 50% / 0 0 12% 12%; }
.home-ways .home-ways__card .tile__media img { display: block; object-position: 50% 35%; transition: none; }
.home-ways .home-ways__card:hover .tile__media img { transform: none; }
.home-ways .home-ways__card .tile__body { align-items: center; padding: 24px; text-align: center; }
.home-ways .home-ways__card .tile__title { margin: 0; color: var(--fc-black); font-family: var(--fc-font-display); font-size: 30px; font-weight: 500; line-height: 1.05; letter-spacing: 0; }
.home-ways .home-ways__card .tile__text { max-width: 32ch; margin: 16px 0 24px; color: var(--fc-gray-dark); font-size: 15px; line-height: 1.55; }
.home-ways .home-ways__card .tile__foot { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: auto; padding: 12px 16px; border-radius: 12px; background: var(--fc-soft, #f6f7f6); color: var(--fc-black); font-family: var(--fc-font); font-size: 14px; font-weight: 500; line-height: 1.3; text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.home-ways .home-ways__card:focus-visible { outline: 3px solid var(--fc-green-800); outline-offset: 6px; }
.home-ways .home-ways__card:focus-visible .tile__foot,
.home-ways .home-ways__card .tile__foot:active { background: var(--fc-green-800); color: var(--fc-white); }
@media (hover: hover) and (pointer: fine) {
  .home-ways .home-ways__card .tile__foot:hover { background: var(--fc-green-800); color: var(--fc-white); }
}
@media (max-width: 991px) {
  .home-ways .home-ways__tiles { max-width: 440px; margin-inline: auto; gap: 24px; }
}
@media (max-width: 479px) {
  .home-ways .home-ways__card { border-radius: 24px; }
  .home-ways .home-ways__card .tile__body { padding: 24px 22px; }
  .home-ways .home-ways__card .tile__media { height: 200px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-ways .home-ways__card, .home-ways .home-ways__card .tile__foot { transition: none; }
}

.home-cta { padding-bottom: var(--fc-section-sm); }
@media (max-width: 991px) {
  .home-intro__grid { grid-template-columns: 1fr; gap: 32px; }
  .home-intro__text { max-width: 55ch; }
  .home-services__head { gap: 32px; }
  .home-services .home-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  .home-services__card { padding: 24px; }
  .home-services__extras-head { display: block; }
  .home-services__extras-head p { margin-top: 10px; }
  .home-services__row, .home-services__event { gap: 24px; }
  .home-services__event { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); padding: 24px; }
  .home-services__event > .home-services__action { grid-column: 2; }
  .home-network__side { justify-items: center; }
  .home-network__map, .home-network__caption { margin-right: 0; }
  .home-founder__portrait .ph { width: 200px; }
}
@media (max-width: 767px) {
  .page-hero--home { min-height: 0; clip-path: none; }
  .home-hero__office { position: absolute; height: 100%; }
  .home-intro { padding-block: 80px 48px; }
  .home-intro__kicker { margin-bottom: 24px; }
  .home-intro__title { font-size: clamp(38px, 10vw, 54px); }
  .home-intro__grid { gap: 28px; }
  .home-services__head { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-bottom: 28px; }
  .home-services__head h2 { font-size: clamp(36px, 9vw, 44px); }
  .home-services__head .fc-kicker { margin-bottom: 14px; }
  .home-services__intro { font-size: 15px; }
  .home-services .home-services__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .home-services .home-services__card { display: flex; grid-row: auto; padding: 24px; }
  .home-services__overview { display: block; grid-row: auto; }
  .home-services__card .card__title { font-size: clamp(30px, 7.8vw, 38px); }
  .home-services__card .card__text { margin-top: 16px; }
  .home-services__packages, .home-services__tandem { padding-top: 24px; }
  .home-services__extras { margin-top: 36px; }
  .home-services__extras-head { margin-bottom: 20px; }
  .home-services__row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; padding-block: 20px; }
  .home-services__row-title { font-size: 25px; }
  .home-services__row-text { grid-column: 1; }
  .home-services__row > .home-services__action { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .home-services__event { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 24px; padding: 24px; }
  .home-services__event > .home-services__action { grid-column: 1; }
  .home-services__all { margin-top: 20px; }
  .js .home-services [data-reveal] { opacity: 1; transform: none; transition: none; }
  .home-facts .facts--big { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .home-story__panel { padding: 24px; }
  .home-intro__text { font-size: 17px; }
  .home-ways__tiles { margin-top: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-hero--home { clip-path: none; }
  .home-hero__office { position: absolute; height: 100%; }
  .js .page-hero--home .hero-seq { opacity: 1; transform: none; transition: none; }
}

/* Die gemeinsame Farbverteilung der Live-Startseite steht in home-palette.css. */

/* Kundenstimmen: Porträts und Zitate im Stil der Startseite. */
.home-testimonials { padding-block: clamp(72px, 7vw, 104px); background: var(--fc-paper-tint); }
.home-testimonials__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); align-items: end; gap: 64px; margin-bottom: 48px; }
.home-testimonials__head .fc-kicker { margin-bottom: 18px; }
.home-testimonials__head h2 { font-size: clamp(40px, 4.2vw, 60px); line-height: 1.04; }
.home-testimonials__intro { max-width: 33em; color: var(--fc-gray-dark); font-size: 16px; }
.home-testimonials__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.home-testimonial { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.home-testimonial__portrait { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 3px; background: var(--fc-gray-dark); }
.home-testimonial__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-testimonial__body { display: flex; flex: 1; flex-direction: column; padding-top: 24px; }
.home-testimonial__topic { margin-bottom: 16px; color: var(--fc-green-800); font-family: var(--v3-font-mono); font-size: 10px; line-height: 1.5; letter-spacing: .05em; text-transform: uppercase; }
.home-testimonial blockquote { margin: 0 0 28px; color: var(--fc-black); font-family: var(--v3-font-display); font-weight: 500; font-size: clamp(28px, 2.4vw, 34px); line-height: 1.18; letter-spacing: 0; }
.home-testimonial figcaption { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--fc-line-strong); font-size: 12px; line-height: 1.5; }
.home-testimonial figcaption strong { display: block; font-weight: 500; }
.home-testimonial figcaption span { display: block; margin-top: 4px; color: var(--fc-gray-dark); }
@media (max-width: 991px) {
  .home-testimonials__head { gap: 36px; }
  .home-testimonials__grid { gap: 24px; }
  .home-testimonial blockquote { font-size: 25px; }
}
@media (max-width: 767px) {
  .home-testimonials { padding-block: 64px; }
  .home-testimonials__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 36px; }
  .home-testimonials__head h2 { font-size: 40px; }
  .home-testimonials__grid { grid-template-columns: 1fr; gap: 40px; }
  .home-testimonial { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); align-items: start; gap: 24px; }
  .home-testimonial__body { padding-top: 0; }
}
@media (max-width: 479px) {
  .home-testimonial { display: flex; gap: 0; }
  .home-testimonial__body { padding-top: 22px; }
  .home-testimonial blockquote { font-size: 28px; }
}

/* Fotos kantig wie auf den Unterseiten (08.09.2026, docs/design-radien-2026-09-08.md). v3.css setzt
   3 bis 6 px an rund zehn Stellen, dieser Override haengt sie an das Media-Token. Bleiben gerundet:
   .home-story__stage (Panel), .home-ways__card .tile__media (Bogenkante), Geraete-Mockup, Karte. */
.about-section .feature-block__media, .partner-section .feature-block__media, .feature-block__media, .home-testimonial__portrait { border-radius: var(--fc-radius-media); }

/* Kundenstimmen ohne Fotos (Bastian 22.10.2026): Karte mit Logo des Versicherers, Zitat und Absender. Muster Hex/Instrument auf Mobbin. */
.home-testimonial { padding: 32px; border: 1px solid var(--fc-line); border-radius: var(--fc-radius); background: var(--fc-white); }
.home-testimonial__logo { width: 168px; height: 56px; }
.home-testimonial__logo .ph { display: flex; align-items: center; justify-content: center; height: 100%; padding: 8px; border: 1px dashed var(--fc-line-strong); border-radius: 8px; background: var(--fc-soft); color: var(--fc-muted); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.home-testimonial__logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; object-position: left center; }
.home-testimonial .home-testimonial__body { padding-top: 28px; }
@media (max-width: 767px) { .home-testimonial { padding: 24px; } }

/* Referenzen und Stimmen mobil als ein Block (Laurence 26.10.): erst Aussage, dann Logos, Button am Ende;
   Logos ohne Kacheln; Stimmen zum Wischen wie die Produktkarten. */
@media (max-width: 991px) {
  .home-page .trust-section__grid { gap: 0; }
  .home-page .trust-section__content { display: contents; }
  .home-page .trust-section__logos { order: 1; margin-top: 32px; }
  .home-page .trust-section__grid > .trust-section__content .fc-button,
  .home-page .trust-section .fc-button { order: 2; justify-self: start; margin-top: 28px; }
}
@media (max-width: 767px) {
  .home-page .trust-section__logos { grid-template-columns: repeat(4, 1fr); gap: 4px 12px; }
  .home-page .trust-section .trust-section__logos li { aspect-ratio: 2 / 1; border: 0; border-radius: 0; background: none; }
  .home-page .trust-section__logos img { max-width: 92%; max-height: 62%; }
  .home-page .home-testimonials__head { margin-bottom: 24px; }
  .home-page .home-testimonials__grid { display: flex; gap: 12px; margin-inline: calc(var(--fc-edge) * -1); padding: 2px var(--fc-edge) 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-edge); overscroll-behavior-x: contain; scrollbar-width: none; }
  .home-page .home-testimonials__grid::-webkit-scrollbar { display: none; }
  .home-page .home-testimonial { display: flex; flex: 0 0 85%; scroll-snap-align: start; }
  .home-page .home-testimonial__logo { width: 120px; height: 40px; }
  .home-page .home-testimonial .home-testimonial__body { padding-top: 20px; }
  .home-page .home-testimonial blockquote { font-size: 24px; margin-bottom: 20px; }
}

/* Leistungen auf der Startseite seit 22.10.2026: drei Regulierungsstufen wie auf /produkte-und-services. */
.home-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-tier { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--fc-line); border-radius: 16px; background: var(--fc-white); color: var(--fc-ink); text-decoration: none; transition: border-color 200ms var(--fc-ease), background-color 200ms var(--fc-ease); }
.home-tier__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--fc-soft); }
.home-tier__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; transition: transform 600ms var(--fc-ease); }
.home-tier__body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 26px; }
.home-tier__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.home-tier__lines { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.home-tier__lines li { padding: 2px 9px; border: 1px solid var(--fc-line-green-strong); border-radius: 999px; color: var(--fc-green-800); font-family: var(--fc-font); font-size: 11px; letter-spacing: 0; text-transform: none; }
.home-tier h3 { margin-top: 18px; font-size: clamp(28px, 2.4vw, 36px); line-height: 1.05; color: var(--fc-ink); }
.home-tier__sub { margin-top: 6px; color: var(--fc-green-800); font-size: 15px; font-weight: 500; }
.home-tier__products { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--fc-line); color: var(--fc-copy); font-size: 14px; }
.home-tier__sub + .home-tier__products { margin-top: 22px; }
.home-tier:hover, .home-tier:focus-visible { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); }
.home-tier:hover .home-tier__media img { transform: scale(1.04); }
.home-tier:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 3px; }

.home-services__extras { margin-top: 56px; }
.home-services__extras-head { align-items: end; }
.home-services__extras-head h3 { font-size: clamp(28px, 2.6vw, 36px); }
.home-services__all { color: var(--fc-green-800); font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.home-services__list { border-bottom: 0; }
.home-services .home-services__row { position: relative; grid-template-columns: minmax(200px, .7fr) minmax(0, 1.8fr); border-top: 0; }
.home-services__row::before { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--fc-line-strong); content: ""; }

/* Bewegung beim Hereinscrollen, ruhig wie auf /produkte-und-services: Kachel gleitet kurz hoch, Bild zoomt leicht zurück,
   Zeilen blenden nacheinander ein. Rund 0,7 s. */
.js .home-tier[data-reveal] { transform: translateY(20px); transition: opacity 700ms ease, transform 700ms cubic-bezier(.22, 1, .36, 1), border-color 200ms var(--fc-ease), background-color 200ms var(--fc-ease); transition-delay: calc(var(--delay, 0) * 80ms), calc(var(--delay, 0) * 80ms), 0s, 0s; }
.js .home-tier[data-reveal] .home-tier__media img { transform: scale(1.04); transition: transform 900ms cubic-bezier(.22, 1, .36, 1) calc(var(--delay, 0) * 80ms); }
.js .home-tier[data-reveal].is-visible { transform: none; }
.js .home-tier[data-reveal].is-visible .home-tier__media img { transform: none; }
.js .home-tier[data-reveal].is-visible:hover .home-tier__media img { transform: scale(1.04); transition-delay: 0s; transition-duration: 600ms; }
.js .home-services .home-services__row[data-reveal] { transform: translateY(12px); transition-delay: calc(var(--delay, 0) * 80ms); }
.js .home-services .home-services__row[data-reveal].is-visible { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .home-tier[data-reveal], .js .home-tier[data-reveal] .home-tier__media img, .js .home-services .home-services__row[data-reveal] { transform: none; transition: none; }
}
@media (max-width: 991px) {
  .home-tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-tier:last-child { grid-column: 1 / -1; }
  .home-tier:last-child .home-tier__media { aspect-ratio: 21 / 9; }
}
@media (max-width: 767px) {
  /* Mobil zum Wischen (Laurence 26.10.): eine Karte, die nächste schaut rein. Kein JS. */
  .home-tiers { display: flex; gap: 12px; margin-inline: calc(var(--fc-edge) * -1); padding: 2px var(--fc-edge) 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-edge); overscroll-behavior-x: contain; scrollbar-width: none; }
  .home-tiers::-webkit-scrollbar { display: none; }
  .home-tier { flex: 0 0 82%; scroll-snap-align: start; }
  .home-tier:last-child { grid-column: auto; }
  .home-tier .home-tier__media, .home-tier:last-child .home-tier__media { aspect-ratio: 4 / 3; }
  .home-tier__body { padding: 18px 20px 20px; }
  .home-tier h3 { margin-top: 14px; font-size: 28px; }
  .home-page .home-services__extras { margin-top: 32px; }
  .home-page .home-services .home-services__row { padding-block: 16px; }
  .home-services .home-services__row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .home-services__extras-head { display: flex; flex-wrap: wrap; gap: 10px 24px; }
}

/* Kontakt mit Bastian (seit 26.10.2026, Muster TP Service „Über uns"): dunkles Band in Anthrazit, zentrierter Satz,
   der beim Scrollen Wort für Wort aufleuchtet (js/home-scroll-text.js), runder Avatar, ein Button. Kein Grünton. */
.home-contact { padding-block: clamp(80px, 9vw, 144px); background: var(--fc-gray-dark); color: var(--fc-white); }
.home-contact__inner { display: flex; flex-direction: column; align-items: center; max-width: 1000px; text-align: center; }
.home-contact .fc-kicker { margin-bottom: 28px; color: rgba(255, 255, 255, .6); }
.home-contact__quote { color: var(--fc-white); font-size: clamp(34px, 3.6vw, 54px); font-weight: 500; line-height: 1.16; text-wrap: balance; }
.home-contact__quote.is-scroll-text .scroll-text__word { color: rgba(255, 255, 255, .28); transition: color .35s cubic-bezier(.16, 1, .3, 1); }
.home-contact__quote.is-scroll-text .scroll-text__word.is-lit { color: var(--fc-white); }
.home-contact__after { display: flex; flex-direction: column; align-items: center; margin-top: 48px; }
.home-contact__person { display: inline-flex; align-items: center; gap: 16px; margin: 0; text-align: left; }
.home-contact__person img { flex: none; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; }
.home-contact__person > span { display: grid; gap: 2px; }
.home-contact__person strong { color: var(--fc-white); font-family: var(--v3-font-display); font-size: 24px; font-weight: 500; line-height: 1.05; }
.home-contact__person > span > span { color: rgba(255, 255, 255, .6); font-family: var(--fc-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.home-contact__button { display: inline-flex; align-items: center; min-height: 54px; margin-top: 36px; padding: 0 30px; border-radius: 999px; background: var(--fc-white); color: var(--fc-black); font-family: var(--v3-font-display); font-size: 22px; font-weight: 500; text-decoration: none; transition: background-color 200ms var(--fc-ease), color 200ms var(--fc-ease); }
.home-contact__button:hover, .home-contact__button:focus-visible { background: var(--fc-green-800); color: var(--fc-white); }
.home-contact__ways { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; margin: 24px 0 0; padding: 0; list-style: none; }
.home-contact__ways a { color: rgba(255, 255, 255, .72); font-size: 15px; text-decoration: none; }
.home-contact__ways a:hover, .home-contact__ways a:focus-visible { color: var(--fc-white); text-decoration: underline; text-underline-offset: 5px; }
.home-contact__after.is-waiting { opacity: 0; transform: translateY(16px); transition: opacity .5s linear, transform .85s cubic-bezier(.25, 1, .5, 1); }
.home-contact__after.is-waiting.is-visible { opacity: 1; transform: none; }
@media (max-width: 767px) {
  .home-contact { padding-block: 64px; }
  .home-contact .fc-kicker { margin-bottom: 20px; }
  .home-contact__quote { font-size: 30px; }
  .home-contact__after { margin-top: 36px; }
}

/* Wege (seit 22.10.2026): drei kompakte Karten, Bild 16:10, Text linksbündig, Textlink. */
.home-paths { padding-block: clamp(72px, 7vw, 112px); background: var(--fc-white); }
.home-paths__head { max-width: 860px; }
.home-paths__head .fc-kicker { margin-bottom: 18px; color: var(--fc-green-800); }
.home-paths__head h2 { font-size: clamp(38px, 3.6vw, 52px); line-height: 1.05; color: var(--fc-ink); }
.home-paths__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 44px; }
.home-path { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid rgba(25, 27, 25, .1); border-radius: 16px; background: var(--fc-white); color: var(--fc-ink); text-decoration: none; transition: border-color 200ms var(--fc-ease), background-color 200ms var(--fc-ease); }
.home-path__media { aspect-ratio: 16 / 10; overflow: hidden; background: #eef0ef; }
.home-path__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; transition: transform 600ms var(--fc-ease); }
.home-path__body { display: flex; flex: 1; flex-direction: column; padding: 22px 24px 24px; }
.home-path h3 { font-size: clamp(26px, 2.2vw, 32px); line-height: 1.05; color: var(--fc-ink); }
.home-path p { margin-top: 10px; color: var(--fc-copy); font-size: 15px; line-height: 1.55; }
.home-path__link { margin-top: auto; padding-top: 18px; color: #1a513f; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.home-path:hover, .home-path:focus-visible { border-color: rgba(26, 81, 63, .28); background: #f1f7f3; }
.home-path:hover .home-path__media img { transform: scale(1.04); }
.home-path:focus-visible { outline: 2px solid #1a513f; outline-offset: 3px; }
@media (max-width: 991px) { .home-paths__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-path:last-child { grid-column: 1 / -1; } .home-path:last-child .home-path__media { aspect-ratio: 21 / 9; } }
/* Mobil zum Wischen wie Produkte und Stimmen (Laurence 26.10.). */
@media (max-width: 767px) {
  .home-paths__grid { display: flex; gap: 12px; margin: 28px calc(var(--fc-gutter) * -1) 0; padding: 2px var(--fc-gutter) 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-gutter); overscroll-behavior-x: contain; scrollbar-width: none; }
  .home-paths__grid::-webkit-scrollbar { display: none; }
  .home-path { flex: 0 0 82%; min-width: 0; scroll-snap-align: start; }
  .home-path:last-child { grid-column: auto; }
  .home-path .home-path__media, .home-path:last-child .home-path__media { aspect-ratio: 4 / 3; }
}

/* Kopf-Blöcke wie auf den Unterseiten (v4.css, 22.10.2026): 5/7-Spalten, Lead unten bündig, feste Lesebreite. */
.home-services__head, .home-testimonials__head { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: end; }
.home-services__intro, .home-testimonials__intro, .home-testimonials__intro p { max-width: 56ch; margin: 0; }
@media (max-width: 991px) { .home-services__head, .home-testimonials__head { grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; } }

/* Buttons auf hellen Flächen wie auf den Unterseiten (v4.css, 22.10.2026): Outline, Hover füllt grün. */
.home-page :is(.trust-section, .home-paths, .home-services) :is(.fc-button--green, .fc-button--dark, .fc-button--light) { background: transparent; border: 1.5px solid #191b19; color: #191b19; }
.home-page :is(.trust-section, .home-paths, .home-services) :is(.fc-button--green, .fc-button--dark, .fc-button--light):is(:hover, :focus-visible) { background: #1a513f; border-color: #1a513f; color: #ffffff; }

/* „… und das haben wir noch zu bieten" (Laurence 26.10.2026): Am Desktop bleibt die Überschrift links stehen,
   rechts fahren die vier Zeilen beim Scrollen nacheinander ein. Mobil fahren die Zeilen ebenfalls ein. Ausgelöst
   per Reveal (.is-visible), nicht scroll-gekoppelt. */
@media (min-width: 992px) {
  .home-page .home-services__extras-head { position: sticky; top: calc(var(--fc-header-h) + 48px); align-self: start; }
}
.js .home-page .home-services .home-services__row[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .6s ease, transform .8s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--delay, 0) * 90ms); }
.js .home-page .home-services .home-services__row[data-reveal].is-visible { opacity: 1; transform: none; }
@media (max-width: 767px) {
  .js .home-page .home-services .home-services__row[data-reveal] { transform: translateY(20px); transition-delay: 0s; }
}
@media (prefers-reduced-motion: reduce) {
  .js .home-page .home-services .home-services__row[data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* Textlinks statt Buttons in den Sektionen (Laurence 26.10.2026, Muster Legacy): Buttons nur im Header, im Hero und
   im Abschluss mit Bastian. Dazwischen kleine fette Links. */
.home-page .home-textlink { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: none; color: var(--fc-green-800); font-family: var(--fc-font); font-size: 16px; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px; transition: color 200ms var(--fc-ease), text-underline-offset 200ms var(--fc-ease); }
.home-page .home-textlink:hover, .home-page .home-textlink:focus-visible { background: none; color: var(--fc-black); text-underline-offset: 4px; }
.home-page .home-textlink--on-dark { color: var(--fc-white); }
.home-page .home-textlink--on-dark:hover, .home-page .home-textlink--on-dark:focus-visible { background: none; color: var(--fc-white); opacity: .8; }
.home-page .home-state-network .home-state-network__service-link.home-textlink { min-height: 44px; padding: 0; background: none; color: var(--fc-white); }
/* Stimmen ohne eigene Überschrift direkt unter den Referenzen (Laurence 26.10.2026). */
.home-page main > .trust-section + .home-testimonials { padding-top: 0; }

/* „So läuft ein Auftrag“ (Laurence 26.10.2026): fünf Schritte, Optik wie .phases--num auf Partner werden
   (grüne Linie oben, große Ziffer), am Desktop nebeneinander, mobil untereinander mit Linie links. */
.home-ablauf { padding-block: var(--fc-section); background: var(--fc-paper-soft); }
.home-ablauf__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 64px; align-items: end; }
.home-ablauf__head .fc-kicker { margin-bottom: 18px; }
.home-ablauf__lead { max-width: 34em; color: var(--fc-copy); font-size: 17px; }
.home-ablauf__steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; margin: 56px 0 0; padding: 0; list-style: none; border-top: 2px solid var(--fc-green-800); }
.home-ablauf__step { display: flex; flex-direction: column; padding-top: 24px; }
.home-ablauf__n { color: var(--fc-green-800); font-family: var(--v3-font-display); font-size: clamp(56px, 5vw, 80px); font-weight: 500; line-height: .9; }
.home-ablauf__time { align-self: flex-start; margin-top: 20px; padding: 4px 12px; border: 1px solid var(--fc-green-800); border-radius: 999px; color: var(--fc-green-800); font-size: 13px; font-weight: 600; white-space: nowrap; }
.home-ablauf__title { margin-top: 16px; color: var(--fc-black); font-size: 18px; font-weight: 600; }
/* Schritte ohne Zeitangabe halten den Platz des Zeit-Etiketts frei, damit alle Titel auf einer Linie stehen. */
.home-ablauf__n + .home-ablauf__title { margin-top: calc(20px + 1.5 * 13px + 10px + 16px); }
.home-ablauf__text { margin-top: 6px; color: var(--fc-copy); font-size: 15px; line-height: 1.5; }
.js .home-ablauf__step[data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .8s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--delay, 0) * 110ms); }
.js .home-ablauf__step[data-reveal].is-visible { opacity: 1; transform: none; }
@media (max-width: 991px) {
  .home-ablauf__head { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .home-ablauf__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
}
@media (max-width: 767px) {
  .home-ablauf__steps { display: block; margin-top: 32px; border-top: 0; border-left: 2px solid var(--fc-green-800); }
  .home-ablauf__step { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 14px; padding: 0 0 28px 18px; }
  .home-ablauf__step:last-child { padding-bottom: 0; }
  .home-ablauf__n { grid-row: 1 / span 3; font-size: 40px; }
  .home-ablauf__time, .home-ablauf__title, .home-ablauf__text { grid-column: 2; }
  .home-ablauf__time { justify-self: start; margin-top: 0; margin-bottom: 8px; }
  .home-ablauf__title, .home-ablauf__n + .home-ablauf__title { margin-top: 0; }
  .js .home-ablauf__step[data-reveal] { transition-delay: 0s; }
}
@media (prefers-reduced-motion: reduce) {
  .js .home-ablauf__step[data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ===== FARB-TEST STARTSEITE (Laurence 26.10.2026) =========================================================
   Weniger dunkle Fläche: Bastians Abschnitt wird hell (zartes Fairly-Grün statt Anthrazit), der Ablauf bekommt
   ebenfalls das zarte Grün. Grüner Block oben, Netzwerk-Karte und Footer bleiben dunkel. Nur Startseite.
   Zurücksetzen: den Commit „test: lighter homepage…“ zurücknehmen (setzt auch data-nav in 27-home-intent.html zurück). */
.home-page { --fc-green-50: #f1f7f3; } /* Token aus styles.css, auf der Startseite sonst nicht geladen */
.home-page .home-ablauf { background: var(--fc-green-50); }
.home-page .home-contact { background: var(--fc-green-50); color: var(--fc-black); }
.home-page .home-contact .fc-kicker { color: var(--fc-green-800); }
.home-page .home-contact__quote { color: var(--fc-black); }
.home-page .home-contact__quote.is-scroll-text .scroll-text__word { color: rgba(25, 27, 25, .18); }
.home-page .home-contact__quote.is-scroll-text .scroll-text__word.is-lit { color: var(--fc-black); }
.home-page .home-contact__person strong { color: var(--fc-black); }
.home-page .home-contact__person > span > span { color: var(--fc-muted); }
.home-page .home-contact__button { background: var(--fc-green-800); color: var(--fc-white); }
.home-page .home-contact__button:hover, .home-page .home-contact__button:focus-visible { background: var(--fc-green-950); color: var(--fc-white); }
.home-page .home-contact__ways a { color: var(--fc-gray-dark); }
.home-page .home-contact__ways a:hover, .home-page .home-contact__ways a:focus-visible { color: var(--fc-green-800); }
/* ===== ENDE FARB-TEST ===== */

/* ===== KARTEN-TEST HELL (Laurence 26.10.2026) =============================================================
   Netzwerk-Karte auf Weiß statt Anthrazit, Deutschland im zarten Fairly-Grün, Punkte und Texte dunkel.
   Die Kartenfarben kommen über die --network-*-Variablen auch im WebGL-Renderer an (js/network-depth.js).
   Zurücksetzen: den Commit „test: light network map…“ zurücknehmen (setzt auch data-nav in 22e-… zurück). */
.home-page main .home-state-network {
  --fc-text-soft: var(--fc-gray-dark);
  --fc-line: #e3e6e4;
  --fc-line-strong: #c9cdca;
  --network-land: #e3efe8;
  --network-land-active: #bfd7cc;
  --network-land-side: #c9cdca;
  --network-boundary: #c9cdca;
  background: var(--fc-white);
  color: var(--fc-black);
}
.home-page main .home-state-network :is(h2, h3, .fc-kicker, .home-state-network__eyebrow),
.home-page main .home-state-network__steps strong,
.home-page main .home-state-network__step-links a { color: var(--fc-black); }
.home-page main .home-state-network .fc-kicker, .home-page main .home-state-network__eyebrow { color: var(--fc-green-800); }
.home-page main .home-state-network__heading > p, .home-page main .home-state-network__panel-copy, .home-page main .home-state-network__steps p { color: var(--fc-gray-dark); }
.home-page main .home-state-network__steps button > span { color: var(--fc-green-800); }
.home-page main .home-state-network__steps button[aria-pressed="true"] { background: var(--fc-green-50, #f1f7f3); }
.home-page main .home-state-network__steps button:hover { background: var(--fc-green-50, #f1f7f3); }
.home-page main .home-state-network .home-state-network__service-link.home-textlink { color: var(--fc-green-800); }
@media (max-width: 991px) {
  .home-page main .home-state-network__steps li { border-top-color: #e3e6e4; }
  .home-page main .home-state-network__steps li::before { background: var(--fc-green-800); }
  .home-page main .home-state-network__steps button[aria-pressed="true"] { background: none; }
}
/* ===== ENDE KARTEN-TEST ===== */


/* ===== css/pages/karriere.css ===== */
/* Karriere (sections/karriere/): nur Feinheiten, die Bausteine stehen in v4.css. Register Du. */

/* Kopf jeder Sektion: Kicker über der H2 links, Kontext rechts. Gleiches Muster und gleicher
   Abstand zum Inhalt wie auf Über uns, damit die Seiten nicht auseinanderlaufen. */
.karriere-kopf + * { margin-top: 56px; }
/* Der Lead füllt die rechte Spalte bis zum Containerrand, statt bei 34em abzubrechen (Laurence 08.09., Großbild). */
.karriere-kopf .split__body .fc-lead { max-width: none; }

/* Stellen: Bausteine .tiles--compact > .tile--compact in v4.css. */

/* Team-Block (02b-team): Bild oben bündig mit dem Kicker (Aon-Muster „Risk Capital", Laurence 08.09.).
   Seit der Textkürzung am Abend wieder 16:9: der Textblock ist rund 400 px hoch, das Bild endet damit
   knapp über dem Button, wie bei Aon (Bild und Text gleich hoch). 4:3 lief 90 px unter den Button.
   Gestreckt auf Textblockhöhe schnitt es bei 1280 die Gesichter am Rand ab. */
/* Seit 11.09.2026 Baustein .feature--wide (Gruppenfoto, 16:9), Raster liegt in v4.css. */

/* Benefits seit 22.10.2026 als Kartenraster (.numbers--cards in v4.css), Kopf oben wie bei den Stellen. */
@media (max-width: 991px) { .karriere-benefits-sec .numbers--3 { --numbers-cols: 2; } }

/* Stellen seit 22.10.2026: drei Bereiche plus Initiativ, eine Reihe zu viert. */
.karriere-stellen__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 991px) { .karriere-stellen__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .karriere-stellen__grid { grid-template-columns: minmax(0, 1fr); } }

/* Abschluss: Baustein .cta-panel--media in v4.css. */
.karriere-abschluss { padding-bottom: var(--fc-section-sm); }
/* Freigegebene Farbverfeinerung 11.09.: sattes Markengrün statt Anthrazit. */
.subpage-design .karriere-abschluss .cta-panel { background: var(--fc-green-800); }

@media (max-width: 991px) {
}
@media (max-width: 767px) {
  .karriere-kopf + * { margin-top: 36px; }
}
.karriere-hero .page-hero__media img { object-position: 50% 0; }
/* Dunklere Glasfläche innerhalb der bestehenden Foto-Hero-Familie; Motion bleibt gemeinsam. */
.karriere-hero { --fc-hero-glass: rgba(26, 81, 63, .46); }
/* Gruppenbild gerundet wie auf Ueber uns (08.09. spaet). */
.karriere-team { --fc-radius-media: var(--fc-radius); }
/* Mobil kompakt: Icon links, Text rechts, damit die neun Punkte keine lange Kartenstrecke werden. */
@media (max-width: 767px) {
  .karriere-benefits-sec .numbers--cards { gap: 10px; }
  .karriere-benefits-sec .numbers--cards .numbers__item { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; align-items: center; padding: 16px; }
  .karriere-benefits-sec .numbers--cards .numbers__n--icon { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; border-radius: 12px; }
  .karriere-benefits-sec .numbers--cards .numbers__titel { margin: 0; font-size: 16px; }
  .karriere-benefits-sec .numbers--cards .numbers__text { grid-column: 2; margin-top: 4px; }
  .karriere-benefits-sec .numbers--cards .numbers__titel:last-child { grid-row: 1 / span 2; }
}


/* ===== css/pages/kontakt.css ===== */
/* Kontakt: heller direkter Einstieg nach der gewählten Complex-Law-Referenz.
   Gemeinsame Bausteine: chooser, card, form. Größen in skala.css. */
.kontakt-thema { background: var(--fc-white); color: var(--fc-black); }
.kontakt-thema__head h1 span { color: var(--fc-green-800); }
.kontakt-thema__head .fc-kicker { color: var(--fc-green-800); }
.kontakt-thema__lead { color: var(--fc-copy); }
.kontakt-thema__quicklinks { display: none; }
.kontakt-chooser { grid-template-rows: auto 1fr; }
.kontakt-thema__head { grid-column: 1; grid-row: 1; }
.kontakt-thema__body { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
.kontakt-thema__details { border-top: 1px solid var(--fc-line); }
.kontakt-thema__wege { grid-column: 1; grid-row: 2; display: grid; }
.kontakt-thema__weg { display: grid; border-top: 1px solid var(--fc-line); }
.kontakt-thema__weg-title { color: var(--fc-green-800); font-weight: 500; }
.kontakt-thema__weg-text { color: var(--fc-copy); }
.kontakt-thema__weg-text a { color: var(--fc-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.kontakt-thema__weg-text a:hover { color: var(--fc-green-800); }
.kontakt-thema .kontakt-thema__card { display: grid; background: var(--fc-soft); border-color: var(--fc-line); box-shadow: none; }
.kontakt-thema :is(.form__input, .form__select, .form__textarea) { background: var(--fc-white); border-color: var(--fc-line-strong); }
.kontakt-thema :is(.form__input, .form__select, .form__textarea):focus-visible { border-color: var(--fc-green-800); }
.kontakt-thema .form__field.is-invalid :is(.form__input, .form__select, .form__textarea) { border-color: var(--fc-black); }
.kontakt-thema__card .form__row:has(> [hidden]) { grid-template-columns: minmax(0, 1fr); }

.kontakt-danach__steps { margin-top: 40px; }

.kontakt-faq .rows__item { display: block; }
.kontakt-faq .rows__text { display: block; margin-top: 6px; }

.kontakt-cta { padding-bottom: var(--fc-section-sm); }

/* Ausleitung unten: gleicher Kachel-Baustein wie auf Über uns. */
.kontakt-weiter__tiles { margin-top: 48px; }

@media (max-width: 991px) {
  .kontakt-chooser { grid-template-rows: none; }
  .kontakt-thema__quicklinks { display: flex; }
  .kontakt-thema__head, .kontakt-thema__body, .kontakt-thema__wege { grid-column: auto; grid-row: auto; }
}

@media (max-width: 767px) {
  .kontakt-weiter__tiles { margin-top: 32px; }
}


/* ===== css/pages/leistung.css ===== */
/* Leistungsfamilie: redaktioneller Split nach Mobbin/Instrument, Fairly-Tokens. */
.leistung-hero, .leistung-overview-hero-unused { padding: calc(var(--fc-header-h) + 36px) 0 80px; background: var(--fc-white); }
.leistung-breadcrumb { margin-bottom: 52px; color: var(--fc-muted); font-size: 12px; }
.leistung-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px 12px; list-style: none; padding: 0; }
.leistung-breadcrumb li + li::before { content: "/"; margin-right: 12px; color: var(--fc-muted); }
.leistung-breadcrumb a:hover { color: var(--fc-green-800); text-decoration: underline; }
.leistung-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.leistung-hero__copy { min-width: 0; }
.leistung-hero h1 { font-size: clamp(44px, 4.5vw, 70px); line-height: 1.04; overflow-wrap: anywhere; hyphens: auto; margin-bottom: 28px; }
.leistung-hero__copy .fc-kicker { max-width: 36em; }
.leistung-hero__copy .fc-actions { margin-top: 32px; gap: 20px 28px; }
.leistung-hero__media { position: relative; margin: 0; min-width: 0; }
.leistung-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--fc-radius-media); }
.leistung-section .split__body > .fc-copy, .leistung-section .split__body > .rows, .leistung-section .split__body > .steps, .leistung-section .split__body > .fc-actions { margin-top: 28px; }
.leistung-section .rows__item { padding-block: 22px; }
.leistung-section .compare-wrap { margin-top: 40px; }
.leistung-section .compare caption { caption-side: bottom; text-align: left; border-top: 1px solid var(--fc-line); padding: 14px 16px; font-size: 13px; color: var(--fc-muted); }
.leistung-section .compare { width: 100%; table-layout: fixed; }
.leistung-section .compare th, .leistung-section .compare td { overflow-wrap: anywhere; hyphens: auto; }
.leistung-section .compare thead th:first-child { width: 40%; }
.leistung-section .split--9-11 > .split__head { position: sticky; top: calc(var(--fc-header-h) + 56px); align-self: start; }
.leistung-section__heading { margin-bottom: 44px; }
.leistung-section__heading h2 { max-width: 18em; }
.leistung-related__rail { margin-top: 40px; }
@media (max-width: 991px) {
  .leistung-section .split--9-11 > .split__head { position: static; }
  .leistung-hero, .leistung-overview-hero-unused { padding-bottom: 56px; }
  .leistung-hero__grid { gap: 32px; }
}
@media (max-width: 767px) {
  .leistung-hero, .leistung-overview-hero-unused { padding-top: calc(var(--fc-header-h) + 24px); padding-bottom: 40px; }
  .leistung-breadcrumb { margin-bottom: 32px; font-size: 11px; }
  .leistung-hero h1 { font-size: clamp(40px, 9vw, 60px); }
  .leistung-hero__media img { aspect-ratio: 4 / 3; }
  .leistung-section__heading { margin-bottom: 28px; }
  .leistung-section .compare { min-width: 560px; }
  .leistung-section .compare th, .leistung-section .compare td { padding: 14px 12px; font-size: 14px; }
  .leistung-section .compare thead th:first-child { width: 38%; }
  .leistung-section .compare thead th { font-size: 11px; }
  .leistung-section .compare th:first-child { position: sticky; left: 0; z-index: 1; border-right: 1px solid var(--fc-line); background: var(--fc-white); }
  .leistung-section .compare thead th:first-child { background: var(--fc-soft); }
  /* Die Caption wiederholt nur die H2 darueber und wuerde beim Seitwaertsscrollen abgeschnitten. */
  .leistung-section .compare caption { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
}

.leistung-hero__media img[src="/assets/img/leistung-grossschaden.webp"] { object-position: left center; }

/* Seitenkopf Leistungen laeuft seit 07.09. ueber .page-hero--split. */
.page-hero--split .leistung-breadcrumb { margin-bottom: 22px; }

/* Komplex- und Grossschaden (07.09.2026): die Seite nutzt drei Bausteine, die auf den anderen
   Leistungsseiten nicht vorkommen. Nur Abstaende und Rasterbreiten, keine neuen Farben. */
.leistung-section .cols { margin-top: 44px; }
.leistung-tandem__note { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--fc-line); }
.leistung-ablauf .phases { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 44px; }
.leistung-berichte__lead { margin-top: -20px; margin-bottom: 44px; }
.leistung-berichte .steps { margin-top: 0; }
.leistung-berichte__rows { margin-top: 56px; }
.leistung-berichte__rows .rows__text { max-width: 62ch; }
.leistung-section .rows--stations .rows__text { max-width: 66ch; }

@media (max-width: 991px) {
  .leistung-ablauf .phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .leistung-ablauf .phases { grid-template-columns: minmax(0, 1fr); }
  .leistung-tandem__note { margin-top: 32px; padding-top: 24px; }
  .leistung-berichte__rows { margin-top: 40px; }
}


/* ===== css/pages/leistungen.css ===== */
/* Übersichtsseite /produkte-und-services (sections/leistungen-uebersicht/).
   Bento-Raster, Entscheidung Laurence 11.09.2026, docs/leistungen-katalog-2026-09-11.md. Kacheln aus scripts/render.mjs (productBento).
   Struktur wie die Navigation: Frequenzregulierung (mit AR Compact/Complete) und Großschaden je 6/12 mit Foto, Kumul 4/12 dunkel mit Foto, ergänzende Leistungen als Zeilen in einer hellen 8/12-Kachel. Detailseiten: leistung.css. */

.catalog-bento__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 40px; }
.catalog-bento__heading h2 { max-width: 14em; }
.catalog-bento__heading .fc-lead { max-width: 44ch; font-size: 16px; line-height: 1.65; }

.catalog-bento__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.bento { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: var(--fc-radius); color: var(--fc-ink); text-decoration: none; scroll-margin-top: calc(var(--fc-header-h) + 24px); transition: background-color 180ms var(--fc-ease), border-color 180ms var(--fc-ease); }
.bento--span-4 { grid-column: span 4; }
.bento--span-6 { grid-column: span 6; }
.bento--span-8 { grid-column: span 8; }

.bento__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 28px; }
.bento__meta { display: flex; gap: 14px; margin: 0 0 18px; color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.bento__nr { font-variant-numeric: tabular-nums; }
.bento__title { font-size: clamp(28px, 2.6vw, 38px); line-height: 1.08; }
/* Kopfzeile der Kachel: Schadenhöhe links, Sparten-Labels rechts (Bastian 22.10.2026). */
.bento__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; width: 100%; margin-bottom: 18px; }
.bento__head .bento__meta { margin: 0; }
.bento__lines { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.bento__lines li { padding: 3px 10px; border: 1px solid var(--fc-line-green-strong); border-radius: 999px; color: var(--fc-green-800); font-size: 12px; font-weight: 500; line-height: 1.4; }
.bento--dark .bento__lines li { border-color: var(--fc-on-dark-line); color: var(--fc-green-300); }
.bento__sub { margin-top: 6px; color: var(--fc-green-800); font-size: 15px; font-weight: 500; line-height: 1.4; }
.bento--dark .bento__sub { color: var(--fc-green-300); }
.bento__text { max-width: 44ch; margin-top: 12px; color: var(--fc-copy); font-size: 15px; line-height: 1.6; }
.bento__facts { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--fc-line); }
.bento__facts dt { color: var(--fc-muted); font-family: var(--fc-font-mono); font-size: 10px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.bento__facts dd { margin: 3px 0 0; font-size: 14px; font-weight: 500; line-height: 1.4; font-variant-numeric: tabular-nums; }
.bento__packages { display: grid; gap: 0; width: 100%; margin: 20px 0 0; }
.bento__packages div { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--fc-line); }
.bento__packages dt { font-size: 15px; font-weight: 500; }
.bento__packages dd { margin: 0; color: var(--fc-copy); font-size: 14px; line-height: 1.5; }
/* Ergänzende Leistungen: Zeilen wie „Weitere Leistungen" auf der Startseite, die Kachel selbst ist kein Link. */
.bento--rows .bento__body { padding-bottom: 8px; }
.bento__list { display: flex; flex: 1; flex-direction: column; width: 100%; margin-top: 20px; }
.bento__row { display: grid; flex: 1; grid-template-columns: minmax(160px, .6fr) minmax(0, 1.6fr); grid-template-areas: "title text"; align-items: center; gap: 24px; padding-block: 18px; border-top: 1px solid var(--fc-line); color: var(--fc-ink); text-decoration: none; }
.bento__row-title { grid-area: title; }
.bento__row-text { grid-area: text; }
.bento__row-title { font-family: var(--fc-font-display); font-size: 24px; line-height: 1.15; transition: color 180ms var(--fc-ease); }
.bento__row-text { color: var(--fc-copy); font-size: 14px; line-height: 1.6; }
.bento__row:hover .bento__row-title, .bento__row:focus-visible .bento__row-title { color: var(--fc-green-800); }
.bento--rows:hover { border-color: var(--fc-line); background: var(--fc-soft); }
.bento__foot { margin-top: auto; padding-top: 24px; color: var(--fc-green-800); font-size: 14px; font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* Foto-Kacheln: Bild oben, Text auf Weiß darunter, wie die Fachgebiete-Karten der Startseite (kein Text auf Foto, Regel 3). */
.bento--photo { border: 1px solid var(--fc-line); background: var(--fc-white); }
.bento__media { aspect-ratio: 3 / 2; overflow: hidden; } /* Seitenverhältnis statt fester Höhe, damit Köpfe nicht abgeschnitten werden (Laurence 11.09.) */
.bento--span-8 .bento__media { aspect-ratio: 2 / 1; }
.bento--dark .bento__media { aspect-ratio: 4 / 3; }
.bento__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform 400ms var(--fc-ease); }
.bento:hover .bento__media img { transform: scale(1.03); }
.bento--photo:hover, .bento--photo:focus-visible { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); }

/* Dunkle Kachel (Kumul): Foto oben, Markengrün darunter, Mint-Fuß. */
.bento--dark { background: var(--fc-green-950); color: var(--fc-white); }
.bento--dark .bento__title { color: var(--fc-white); }
.bento--dark .bento__text { color: var(--fc-on-dark-soft); }
.bento--dark .bento__meta, .bento--dark .bento__facts dt { color: rgba(255,255,255,.55); }
.bento--dark .bento__facts { border-top-color: var(--fc-on-dark-line); }
.bento--dark .bento__facts dd { color: var(--fc-white); }
.bento--dark .bento__foot { color: var(--fc-green-300); }
.bento--dark:hover, .bento--dark:focus-visible { background: var(--fc-green-800); }

/* Helle Textkacheln (Bausteine). */
.bento--soft { border: 1px solid var(--fc-line); background: var(--fc-soft); }
.bento--soft .bento__title { font-size: 28px; }
.bento--soft:not(.bento--rows):hover, .bento--soft:not(.bento--rows):focus-visible { border-color: var(--fc-line-green-strong); background: var(--fc-green-50); }

.bento:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 4px; }

@media (max-width: 991px) {
  .catalog-bento__heading { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .catalog-bento__grid { gap: 16px; }
  .bento--span-4, .bento--span-6, .bento--span-8 { grid-column: span 6; }
  .bento--wide-md { grid-column: span 12; }
  .bento__media, .bento--span-8 .bento__media, .bento--dark .bento__media { aspect-ratio: 16 / 9; }
  .bento__body { padding: 24px; }
}
@media (max-width: 767px) {
  .bento--span-4, .bento--span-6, .bento--span-8 { grid-column: span 12; }
  .bento__row { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "text"; row-gap: 6px; }
  .bento__media, .bento--span-8 .bento__media, .bento--dark .bento__media { aspect-ratio: 3 / 2; }
  .bento__title, .bento--soft .bento__title { font-size: 26px; }
}

/* Entscheidung Compact oder Complete: dunkler Block, die Stationen-Zeilen aus v4.css auf Dunkel. */
.catalog-decision { scroll-margin-top: calc(var(--fc-header-h) + 24px); }
.catalog-decision .split { align-items: start; }
.catalog-decision .fc-lead { margin-block: 24px 28px; }
.catalog-decision .fc-link { color: var(--fc-white); }
.catalog-decision__rows { border-bottom-color: var(--fc-on-dark-line); }
.catalog-decision__rows .rows__item { border-top-color: var(--fc-on-dark-line); padding: 24px 0; }
.catalog-decision__rows .rows__item:first-child { border-top: 0; padding-top: 6px; }
.catalog-decision__rows .rows__label { color: var(--fc-white); font-family: var(--fc-font-display); font-size: 26px; font-weight: 400; letter-spacing: -.01em; line-height: 1.15; }
.catalog-decision__rows .rows__text { max-width: 52ch; color: var(--fc-on-dark-soft); }

.catalog-decision :focus-visible { outline: 2px solid var(--fc-white); outline-offset: 5px; }

@media (max-width: 767px) {
  .catalog-decision__rows .rows__label { font-size: 22px; }
}

/* Einblenden der Kacheln seit 22.10.2026: eine ruhige Bewegung (Laurence: nicht übertreiben).
   Kachel gleitet kurz hoch und blendet ein, das Bild zoomt ganz leicht zurück. Rund 0,7 s, leicht gestaffelt. */
.js .bento[data-reveal] { transform: translateY(20px); transition: opacity 700ms ease, transform 700ms cubic-bezier(.22, 1, .36, 1), background-color 180ms var(--fc-ease), border-color 180ms var(--fc-ease); transition-delay: calc(var(--delay, 0) * 80ms), calc(var(--delay, 0) * 80ms), 0s, 0s; }
.js .bento[data-reveal] .bento__media img { transform: scale(1.04); transition: transform 900ms cubic-bezier(.22, 1, .36, 1) calc(var(--delay, 0) * 80ms); }
.js .bento[data-reveal].is-visible { transform: none; }
.js .bento[data-reveal].is-visible .bento__media img { transform: none; }
.js .bento[data-reveal].is-visible:hover .bento__media img { transform: scale(1.03); transition-delay: 0s; transition-duration: 400ms; }
@media (prefers-reduced-motion: reduce) {
  .js .bento[data-reveal], .js .bento[data-reveal] .bento__media img { transform: none; opacity: 1; transition: none; }
}


/* ===== css/pages/navigation.css ===== */
/* ==========================================================================
   Header und Navigation: eine Quelle für Startseite (v3) und Unterseiten (v4).
   Diese Datei wird von beiden Templates zuletzt geladen und schlägt deshalb
   die Header-Blöcke in v3.css und v4.css. Vorbild Aon (07.09.2026):
   feste weiße Leiste, links drei große Punkte, rechts die kleinen Ziele.
   ========================================================================== */

.fc-header {
  --fc-nav-sans: "Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fc-nav-serif: "Teko", "Work Sans", system-ui, sans-serif;
  --fc-nav-mono: var(--fc-nav-sans);
  --fc-nav-max: 1440px;
  --fc-nav-gutter: clamp(20px, 2.6vw, 36px);
  --fc-nav-pad: clamp(10px, 1vw, 14px);
  --fc-nav-h: 76px;
  position: fixed;
  z-index: 100;
  /* 1px ueber den Viewport gezogen: Safari zeigt sonst bei manchen Scroll-Staenden
     eine weisse Haarlinie ueber der festen Leiste (Laurence, 11.09.2026). */
  top: -1px;
  padding-top: 1px;
  left: 0;
  width: 100%;
  border-bottom: 1px solid var(--fc-line, #e3e6e4);
  background: #ffffff;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transform: none;
  color: #191b19;
  font-family: var(--fc-nav-sans);
}
.fc-header__inner {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: calc(var(--fc-nav-max) + (var(--fc-nav-gutter) * 2));
  min-height: var(--fc-nav-h);
  margin-inline: auto;
  padding: 0 var(--fc-nav-gutter);
  gap: clamp(20px, 2.6vw, 40px);
}
.fc-header .fc-header__brand { display: flex; align-items: center; flex: none; justify-self: start; line-height: 0; }
.fc-header .fc-header__brand img { width: 124px; height: auto; }
.fc-header .fc-header__logo--white { display: none; }

/* --- Navigation ------------------------------------------------------- */
.fc-header .fc-nav { display: flex; align-items: stretch; flex: 1; min-width: 0; margin: 0; }
.fc-header .fc-nav__list { display: flex; align-items: stretch; gap: 0; }
.fc-header .fc-nav__list--primary { margin-right: auto; gap: 4px; }
.fc-header .fc-nav__list--secondary { gap: 2px; margin-left: clamp(14px, 1.8vw, 24px); padding-left: clamp(14px, 1.8vw, 24px); position: relative; align-items: center; }
.fc-header .fc-nav__list--secondary::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 20px;
  margin-top: -10px; background: var(--fc-line, #e3e6e4);
}
.fc-header .fc-nav__item { position: static; display: flex; }

.fc-header .fc-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: var(--fc-nav-h);
  padding-inline: var(--fc-nav-pad);
  border-radius: 0;
  background: transparent;
  color: #191b19;
  font-size: 15px;
  font-weight: 500;
  transition: color 150ms ease;
}
.fc-header .fc-nav__link--sm { min-height: 40px; padding-inline: 10px; color: var(--fc-copy, #393d3f); font-size: 14px; font-weight: 400; }
.fc-header .fc-nav__link::after {
  content: "";
  position: absolute;
  left: var(--fc-nav-pad);
  right: var(--fc-nav-pad);
  bottom: calc(50% - 17px);
  height: 2px;
  background: var(--fc-green-600, #2a7955);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 160ms ease;
}
.fc-header .fc-nav__link--sm::after { left: 10px; right: 10px; bottom: calc(50% - 14px); height: 1px; }
.fc-header .fc-nav__link:is(:hover, :focus-visible),
.fc-header .fc-nav__item.is-open .fc-nav__toggle { color: var(--fc-green-800, #1a513f); }
.fc-header .fc-nav__link:is(:hover, :focus-visible)::after,
.fc-header .fc-nav__link[aria-current="page"]::after,
.fc-header .fc-nav__item.is-open .fc-nav__toggle::after { transform: scaleX(1); }
.fc-header .fc-nav__link:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
.fc-header .fc-nav__toggle svg { width: 12px; height: 12px; transition: transform 150ms ease; }
.fc-header .fc-nav__item.is-open .fc-nav__toggle svg { transform: rotate(180deg); }

/* --- Mega-Menü -------------------------------------------------------- */
.fc-header .fc-nav__menu--mega {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100vh - var(--fc-nav-h));
  overflow-y: auto;
  border-top: 1px solid var(--fc-line, #e3e6e4);
  border-bottom: 1px solid var(--fc-line, #e3e6e4);
  border-radius: 0;
  background: #ffffff;
  box-shadow: 0 24px 48px -28px rgba(25, 27, 25, 0.28);
  color: #191b19;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 150ms ease, transform 150ms ease;
}
.fc-header .fc-nav__item.is-open .fc-nav__menu--mega { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.fc-header .fc-nav__menu--mega > .fc-container {
  width: 100%;
  max-width: calc(var(--fc-nav-max) + (var(--fc-nav-gutter) * 2));
  margin-inline: auto;
  padding-inline: var(--fc-nav-gutter);
}
.fc-header .fc-nav__mega {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 0 clamp(40px, 5vw, 80px);
  padding: 52px 0 44px;
  align-items: start;
}
.fc-header .fc-nav__lead { padding-right: clamp(24px, 3vw, 48px); border-right: 1px solid var(--fc-line, #e3e6e4); }
.fc-header .fc-nav__lead h2 {
  margin: 0;
  font-family: var(--fc-nav-serif);
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #191b19;
}
.fc-header .fc-nav__lead p { margin: 14px 0 0; max-width: 30ch; color: var(--fc-copy, #393d3f); font-size: 15px; line-height: 1.55; }
.fc-header .fc-nav__lead-link { margin-top: 20px; }
.fc-header .fc-nav__lead-link a { color: #191b19; font-size: 14px; font-weight: 500; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 6px; transition: color 150ms ease, text-decoration-color 150ms ease; }
.fc-header .fc-nav__lead-link a:hover { color: var(--fc-green-800, #1a513f); text-decoration-color: currentColor; }

.fc-header .fc-nav__col { display: grid; grid-template-columns: 1fr; align-content: start; gap: 2px; }
.fc-header .fc-nav__col-title {
  display: block;
  padding: 0 0 14px;
  border: 0;
  color: var(--fc-green-600, #2a7955);
  font-family: var(--fc-nav-mono);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.fc-header .fc-nav__col > a:not(.fc-nav__col-title) {
  display: grid;
  gap: 4px;
  padding: 12px 0;
  border: 0;
  border-radius: 8px;
}
.fc-header .fc-nav__col > a:not(.fc-nav__col-title):hover strong { color: var(--fc-green-800, #1a513f); }
.fc-header .fc-nav__col > a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.fc-header .fc-nav__menu--mega strong {
  color: #191b19;
  font-family: var(--fc-nav-serif);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  transition: color 150ms ease;
}
.fc-header .fc-nav__menu--mega small { max-width: 34em; color: var(--fc-copy, #393d3f); font-size: 13px; line-height: 1.5; }

/* Spalte mit Vorschaubildern (Aon-Muster, Screenshot 4) */
.fc-header .fc-nav__col--media > a:not(.fc-nav__col-title) { grid-template-columns: 128px minmax(0, 1fr); align-items: center; gap: 18px; }
.fc-header .fc-nav__col--media img { width: 128px; height: 86px; object-fit: cover; border-radius: var(--fc-radius-media); }
.fc-header .fc-nav__col--media span { display: grid; gap: 4px; }


/* --- Aktionen --------------------------------------------------------- */
.fc-header__actions { display: flex; align-items: center; gap: 4px; flex: none; }
/* CTA identisch in beiden Systemen: v3 kennt kein .fc-button--green. */
.fc-header .fc-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  border: 1px solid var(--fc-green-800, #1a513f);
  border-radius: 999px;
  background: var(--fc-green-800, #1a513f);
  color: #ffffff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transition: background-color 180ms ease, border-color 180ms ease;
}
.fc-header .fc-header__cta:hover,
.fc-header .fc-header__cta:focus-visible { background: var(--fc-green-950, #0b271e); border-color: var(--fc-green-950, #0b271e); transform: none; }
.fc-header .fc-header__burger span { background: #191b19; }

/* --- Mobile ----------------------------------------------------------- */
/* Eine Lesespalte, zwei native Untermenüs, dauerhaft sichtbare Hauptziele. */
.fc-mobile-nav { display: flex; flex-direction: column; position: fixed; z-index: 99; width: 100%; border: 0; border-top: 1px solid var(--fc-line); border-radius: 0; box-shadow: none; background: var(--fc-white); color: var(--fc-ink); overflow: hidden; overscroll-behavior: contain; }
.fc-mobile-nav[hidden] { display: none; }
.fc-mobile-nav__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.fc-mobile-nav__label { color: var(--fc-muted); font-family: var(--fc-font); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.fc-mobile-nav__group { border-bottom: 1px solid var(--fc-line); }
.fc-mobile-nav .fc-mobile-nav__row { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0; border: 0; border-bottom: 1px solid var(--fc-line); border-radius: 0; color: var(--fc-ink); font-family: var(--fc-font-display); font-weight: 500; letter-spacing: 0; text-decoration: none; text-align: left; list-style: none; cursor: pointer; }
.fc-mobile-nav__group > .fc-mobile-nav__row { border-bottom: 0; }
.fc-mobile-nav__row::-webkit-details-marker { display: none; }
.fc-mobile-nav__row::marker { content: ""; }
.fc-mobile-nav__row i { position: relative; flex: none; }
.fc-mobile-nav__row i::before, .fc-mobile-nav__row i::after { content: ""; position: absolute; background: currentColor; }
.fc-mobile-nav__row i::after { transition: transform 180ms ease; }
.fc-mobile-nav__group[open] > summary i::after { transform: rotate(90deg); }
.fc-mobile-nav__group[open] > summary, .fc-mobile-nav__group.is-current > summary { color: var(--fc-green-800); }
.fc-mobile-nav .fc-mobile-nav__links a { justify-content: flex-start; margin: 0; border: 0; border-radius: 0; color: var(--fc-muted); font-family: var(--fc-font); font-weight: 400; text-decoration: none; }
.fc-mobile-nav a[aria-current="page"] { color: var(--fc-green-800); background: var(--fc-green-50); }
.fc-mobile-nav .fc-mobile-nav__help { display: flex; flex-wrap: wrap; justify-content: space-between; border: 0; border-radius: 0; color: var(--fc-ink); font-family: var(--fc-font); text-decoration: none; }
.fc-mobile-nav .fc-mobile-nav__help span { color: var(--fc-muted); font-family: var(--fc-font); text-align: left; }
.fc-mobile-nav__footer { flex: none; border-top: 1px solid var(--fc-line); background: var(--fc-white); }
.fc-mobile-nav a.fc-mobile-nav__cta { display: flex; justify-content: center; border: 1px solid var(--fc-green-800); border-radius: 999px; background: var(--fc-green-800); color: var(--fc-white); font-family: var(--fc-font-display); text-align: center; text-decoration: none; }
.fc-mobile-nav a.fc-mobile-nav__phone { justify-content: center; border: 0; border-radius: 0; color: var(--fc-muted); font-family: var(--fc-font); font-weight: 400; text-decoration: none; }
.fc-mobile-nav :is(a, summary):focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: -2px; }
.fc-mobile-nav :is(.fc-mobile-nav__row, .fc-mobile-nav__links a):hover { background: var(--fc-green-50); color: var(--fc-green-800); }
.fc-mobile-nav a.fc-mobile-nav__cta:is(:hover, :focus-visible) { background: var(--fc-green-950); border-color: var(--fc-green-950); color: var(--fc-white); }
.fc-header .fc-header__burger { position: relative; }
.fc-header .fc-header__burger span { position: absolute; left: 50%; top: 50%; margin: 0; transform: translate(-50%, -4px); }
.fc-header .fc-header__burger span:last-child { transform: translate(-50%, 3px); }
.fc-header .fc-header__burger[aria-expanded="true"] span:first-child { transform: translate(-50%, -50%) rotate(45deg); }
.fc-header .fc-header__burger[aria-expanded="true"] span:last-child { transform: translate(-50%, -50%) rotate(-45deg); }
html[data-menu-open="1"] .fc-header .fc-header__cta { display: none; }
@media (prefers-reduced-motion: reduce) {
  .fc-mobile-nav__row i::after, .fc-header .fc-header__burger span { transition: none; }
}

@media (max-width: 991px) {
  .fc-header { --fc-nav-h: 64px; }
  .fc-header .fc-header__brand img { width: 112px; }
  .fc-header .fc-nav { display: none; }
  .fc-header .fc-header__actions { margin-left: auto; }
  .fc-header__inner { gap: 16px; }
  .fc-mobile-nav { inset: 64px 0 0; min-height: calc(100svh - 64px); }
}
@media (max-width: 479px) {
  .fc-header .fc-header__cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fc-header .fc-nav__link::after,
  .fc-header .fc-nav__menu--mega { transition: none; }
}

/* --- Test 08.09.2026 spaet: Header transparent ueber dunklen Sektionen ------------------
   js/header-theme.js setzt data-theme aus der Sektion unter der Leiste (data-nav="light|dark").
   Ueber einer dunklen Sektion: keine Flaeche, weisse Schrift, weisses Logo, weisser CTA.
   Sobald ein Menue offen ist, bleibt die Leiste weiss (Mega-Menue und Mobile-Nav sind weiss). */
.fc-header { transition: background-color 300ms ease, border-color 300ms ease, color 300ms ease; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) {
  background: var(--fc-header-bg, rgba(25, 27, 25, .38)); /* Sektionsflaeche; ueber dem Hero-Foto Glas-Ton */
  border-color: rgba(255, 255, 255, .16);
  color: #ffffff;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-header__logo--color { display: none; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-header__logo--white { display: block; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-nav__link { color: rgba(255, 255, 255, .88); }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-nav__link:is(:hover, :focus-visible) { color: #ffffff; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-nav__link:is(:hover, :focus-visible)::after,
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-nav__link.is-current::after { background: #ffffff; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-nav__list--secondary::before { background: rgba(255, 255, 255, .28); }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-header__cta { background: #ffffff; color: var(--fc-green-950, #0b271e); border-color: #ffffff; }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-header__cta:is(:hover, :focus-visible) { background: var(--fc-line); border-color: var(--fc-line); color: var(--fc-green-950, #0b271e); }
.fc-header[data-theme="dark"]:not(:has(.is-open)) .fc-header__burger span { background: #ffffff; }

/* Auch helle graue Sektionen fuehren ihre Flaeche in der Leiste fort. */
.fc-header[data-theme="light"]:not(:has(.is-open)) { background: var(--fc-header-bg, var(--fc-white)); }

/* Über Video-Sektionen (data-nav-bg) durchscheinend mit Weichzeichner, damit der Ton zum Bild darunter passt (26.10.2026). */
.fc-header[data-glass] { -webkit-backdrop-filter: blur(18px) saturate(1.15); backdrop-filter: blur(18px) saturate(1.15); }


/* ===== css/pages/partner-werden.css ===== */
/* Partner werden (sections/partner-werden/): nur Feinheiten, die Bausteine stehen in v4.css. Register Sie.
   Entscheidungsseite, nicht Kennenlern-Seite: Netzwerk in Zahlen Anthrazit, Aufnahme mit Ziffern, Abschluss Gruen-800
   ohne Formular (11.09.2026). Farbleiter seit 11.09.2026 abends: Hero dunkel, weiss, Anthrazit, weiss, weiss, soft, weiss, Anthrazit, weiss, Gruen-800
   (Farbe = Funktion: weiss lesen, soft einordnen, Anthrazit Anker, Gruen Handlung; nie zwei Dunkel und nie drei Weiss nebeneinander). */

.partner-werden-hero .page-hero__media img { object-position: 50% 35%; }

/* Netzwerk in Zahlen: Anthrazit, vier Spalten unter dem Kopf. */
.partner-werden-zahlen__grid { margin-top: 56px; }

/* Voraussetzungen (11.09.2026): Kopf links bleibt beim Scrollen stehen (wie Karriere-Benefits), rechts 2x2 mit Ziffern.
   Unter 991 einspaltig, dann kein sticky. */
.partner-werden-voraussetzungen__aussage { position: sticky; top: calc(var(--fc-header-h) + 56px); }
.partner-werden-voraussetzungen__grid { gap: 48px 56px; }
.partner-werden-voraussetzungen__grid .numbers__titel { margin-top: 16px; }

.partner-werden-matching .rows--stations { margin-top: 28px; }
/* Bilder auf Zeilenhoehe (11.09.2026, Raster .feature in v4.css): Hochformat-Slot, Fokus rechts der Mitte, damit Person und Motiv im Bild bleiben. */
.partner-werden-augenhoehe .feature__media img { object-position: 65% 50%; }
.partner-werden-matching .feature__media img { object-position: 58% 50%; }

/* Was Sie bekommen (11.09.2026): Icon-Reihe an senkrechten Haarlinien statt Karten. */
.partner-werden-leistungen__grid { margin-top: 48px; }
.partner-werden-leistungen__grid .numbers__n--icon { color: var(--fc-ink); }
.partner-werden-leistungen__kondition { margin-top: 48px; }
.partner-werden-leistungen__kondition .rows__item { padding: 16px 0; gap: 24px; }

.partner-werden-ablauf__phases { margin-top: 40px; }

/* Zitat 5/7 wie der .split-Kopf darueber (eine linke Kante), Bild 16:9 statt fester 300px, Slot bleibt fuer Video C2 (11.09.2026). */
.partner-werden-stimme__quote { margin-top: 40px; padding: 40px 0; border-bottom: 1px solid var(--fc-on-dark-line); border-top-color: var(--fc-on-dark-line); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; }
/* Stimme auf Anthrazit (11.09.2026 abends): Zitat weiss, Zeile darunter gedaempft. Seitenbezogen, bis v4.css eine .sec--dark .quote-Regel hat. */
.partner-werden-stimme .quote__text, .partner-werden-stimme .quote__who strong { color: var(--fc-white); }
.partner-werden-stimme .quote__who { color: var(--fc-on-dark-soft); }
.partner-werden-stimme__quote .quote__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--fc-radius-media); }

/* Fragen (11.09.2026): Akkordeon rechts, Kopf links sticky wie auf Community. */
.partner-werden-fragen .split__head { position: sticky; top: calc(var(--fc-header-h) + 56px); }
/* Abschluss (11.09.2026): randlose Flaeche in Gruen-800, Foto links, Zitat und Weg rechts. Kein .cta-panel. */
.partner-werden-abschluss { background: var(--fc-green-800); }
.partner-werden-abschluss__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 96px; align-items: center; }
.partner-werden-abschluss__media img { display: block; width: 100%; max-width: 480px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: var(--fc-radius-media); }
.partner-werden-abschluss__quote { max-width: 22ch; font-size: clamp(26px, 2.4vw, 34px); font-weight: 400; line-height: 1.3; letter-spacing: -.01em; }
.partner-werden-abschluss__body .fc-kicker + .partner-werden-abschluss__quote { margin-top: 20px; }
.partner-werden-abschluss__who { margin-top: 20px; color: var(--fc-on-dark-soft); font-size: 14px; }
.partner-werden-abschluss__who strong { color: var(--fc-white); font-weight: 500; }
.partner-werden-abschluss__weg { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--fc-on-dark-line); }
.partner-werden-abschluss__weg .fc-lead { max-width: 44ch; }
.partner-werden-abschluss__actions { margin-top: 28px; align-items: center; }
.partner-werden-abschluss__mail, .partner-werden-abschluss__mail:hover { color: var(--fc-white); }

@media (max-width: 991px) {
  /* Sticky-Köpfe nur auf Desktop, einspaltig liefen sie über die Liste (Prüfbericht 22.10.2026). */
  .partner-werden-voraussetzungen__aussage, .partner-werden-fragen .split__head { position: static; }
  .partner-werden-abschluss__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .partner-werden-abschluss__media img { max-width: 360px; }
}

@media (max-width: 767px) {
  .partner-werden-zahlen__grid { margin-top: 36px; }
  .partner-werden-voraussetzungen__grid { gap: 32px; }
  .partner-werden-leistungen__grid { margin-top: 36px; }
  .partner-werden-stimme__quote { padding: 24px 0; gap: 32px; }
  .partner-werden-stimme__quote .quote__media img { height: auto; aspect-ratio: 4 / 3; }
  .partner-werden-abschluss__quote { max-width: none; }
}
/* Abstand H2 → Lead wie überall (Prüfbericht 22.10.2026). */
.partner-werden-voraussetzungen__aussage .fc-lead { margin-top: 20px; }


/* ===== css/pages/ueber-uns.css ===== */
/* Über uns: bestehende v4-Bausteine und Design-Tokens; nur Raster und Abstände. */
/* Wer wir sind: Aussage-Band, Baustein .statement in v4.css. */

/* Unsere Geschichte: Überschrift links bleibt stehen, Fließtext rechts scrollt (position: sticky, kein JS). */
.ueber-uns-story__head { align-self: stretch; }
.ueber-uns-story__head h2 { position: sticky; top: calc(var(--fc-header-h) + 56px); }
.ueber-uns-story__body > * + * { margin-top: 20px; }
.ueber-uns-story__body .fc-copy { max-width: 62ch; }
.ueber-uns-story__ph { margin-top: 32px; }
/* Stationen: Jahr und Titel als Zeilenlabel, Text darunter (Baustein .rows--stations). Haarlinien ziehen mit data-reveal="lines". */
.ueber-uns-story__stations { margin-top: 40px; }
.ueber-uns-story__stations .rows__item { padding: 24px 0; }
.ueber-uns-story__stations .rows__text { max-width: 62ch; font-size: 17px; line-height: 1.65; }

/* Team: eine Ebene. Neun gleich grosse Karten, drei Spalten, drei Reihen.
   Fallen die Beispielprofile weg, bleiben sechs und damit zwei volle Reihen. */
.ueber-uns-team__people { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 32px; margin-top: 56px; scroll-margin-top: calc(var(--fc-header-h) + 20px); }
.ueber-uns-team__person { min-width: 0; scroll-margin-top: calc(var(--fc-header-h) + 20px); }
.ueber-uns-team__person .ph { aspect-ratio: 1; border-radius: var(--fc-radius-media); }
/* Kartenname in der Textschrift, nicht in der Display-Serife: Instrument Serif hat keinen 500er-Schnitt. */
.ueber-uns-team__person .people__name { font-family: var(--fc-font); font-size: 19px; font-weight: 500; line-height: 1.4; letter-spacing: 0; }
.ueber-uns-team__person .people__role { color: var(--fc-green-800); line-height: 1.6; overflow-wrap: anywhere; }
.ueber-uns-team__person .people__text { max-width: 38ch; }
/* Team-Fotos und Gruppenbild gerundet (Laurence 08.09. spaet, Ausnahme von Bau-Regel 10 "Fotos kantig"): Kartenradius 20. */
.ueber-uns-team, .ueber-uns-teil { --fc-radius-media: var(--fc-radius); }
.ueber-uns-wer { background: var(--fc-hero); } /* graue Cover-Flaeche, Haarlinie der Aussage bleibt Guide-Gruen-800 aus v4 */
.ueber-uns-wer .statement { border-left-color: var(--fc-gray-dark); }

/* Teil von Fairly werden: Teamfoto links, Text und Karriere-Button rechts. Baustein .feature--wide
   (Gruppenfoto, halbe Breite, 16:9), Raster liegt in v4.css (11.09.2026). */

/* Wege zur Zusammenarbeit */
.ueber-uns-wege__title { max-width: 22ch; }
.ueber-uns-wege__tiles { margin-top: 48px; }

/* Inaktive Entwürfe (05-buero, 06-arbeitsweise, 07-cta) behalten ihre Regeln, falls sie zurückkommen. */
.ueber-uns-arbeitsweise__cols { margin-top: 48px; }
.ueber-uns-arbeitsweise__cols > div { padding-top: 20px; border-top: 1px solid var(--fc-line-strong); }
.ueber-uns-buero__photos { margin-top: 48px; }
.ueber-uns-buero__caption { margin-top: 12px; }
.ueber-uns-buero__address { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--fc-line); font-size: 15px; line-height: 1.7; }
.ueber-uns-buero__address span { color: var(--fc-copy); }
.ueber-uns-cta { padding-top: 0; padding-bottom: var(--fc-section-sm); }
/* Abschluss-Panel in Anthrazit statt Gruen-Verlauf (Laurence 08.09. spaet): die Seite laeuft auf Grau und Anthrazit,
   Gruen bleibt dem Button vorbehalten. Ringe bleiben, nur als leise weisse Kontur. */
.ueber-uns-cta .cta-panel { --fc-ring: rgba(255, 255, 255, .10); background: var(--fc-gray-dark); }

/* Team als dunkler Akzent-Block (09.09.2026): Bastians Porträts sind schwarz-grün. */
.sec--dark.ueber-uns-team .people__name, .sec--dark.ueber-uns-team .people__link { color: var(--fc-white); }
.sec--dark.ueber-uns-team .people__link:hover, .sec--dark.ueber-uns-team .people__link:focus-visible { color: var(--fc-green-300); }
.sec--dark.ueber-uns-team .ueber-uns-team__person .people__role { color: var(--fc-green-300); }
.sec--dark.ueber-uns-team .people__text { color: var(--fc-on-dark-soft); }
.sec--dark.ueber-uns-team .people__in { color: var(--fc-on-dark-soft); }
.sec--dark.ueber-uns-team .people__link:hover .people__in, .sec--dark.ueber-uns-team .people__link:focus-visible .people__in { color: var(--fc-green-300); }

@media (max-width: 991px) {
  .ueber-uns-team__people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 24px; }
}
@media (max-width: 767px) {
  .ueber-uns-story__head h2 { position: static; }
  .ueber-uns-team__people, .ueber-uns-buero__photos, .ueber-uns-arbeitsweise__cols, .ueber-uns-wege__tiles { margin-top: 32px; }
  .ueber-uns-story__stations { margin-top: 28px; }
  .ueber-uns-buero__address { flex-direction: column; align-items: start; gap: 16px; }
  .ueber-uns-team__person .people__name { font-size: 17px; }
}
@media (max-width: 479px) {
  .ueber-uns-team__people { grid-template-columns: minmax(0, 1fr); }
}

/* Bastian 09.09.: Teko + Work Sans sind die bestaetigte Richtung.
   Seitenweite Tokens erfassen auch Navigation und Footer. Skala in skala.css. */
.ueber-uns-page {
  --fc-font-display: "Teko", "Work Sans", system-ui, sans-serif;
  --fc-font-mono: var(--fc-font);
}
.ueber-uns-page .fc-header {
  --fc-nav-serif: var(--fc-font-display);
  --fc-nav-mono: var(--fc-font);
}
.ueber-uns-page h1 { font-weight: 500; letter-spacing: 0; }
.ueber-uns-page h2, .ueber-uns-page h3 { font-weight: 400; letter-spacing: 0; }
.ueber-uns-page h1 em, .ueber-uns-page h2 em, .ueber-uns-page h3 em { font-style: normal; }
.ueber-uns-page .fc-kicker, .ueber-uns-page .fc-header .fc-nav__col-title,
.ueber-uns-page .fc-footer__grid strong { font-weight: 600; }
.ueber-uns-page .fc-header .fc-nav__link,
.ueber-uns-page .fc-header .fc-header__cta,
.ueber-uns-page .fc-mobile-nav > a,
.ueber-uns-page .fc-button {
  font-family: var(--fc-font-display);
  font-weight: 500;
  letter-spacing: .02em;
}
.ueber-uns-page .fc-mobile-nav > a span { font-family: var(--fc-font); font-weight: 400; letter-spacing: 0; }
.ueber-uns-page .fc-header .fc-nav__lead h2 { font-weight: 400; letter-spacing: 0; }
.ueber-uns-page .fc-header .fc-nav__menu--mega strong { font-weight: 500; letter-spacing: 0; }
.ueber-uns-page .ueber-uns-team__person .people__name {
  font-family: var(--fc-font-display);
  font-weight: 500;
  letter-spacing: 0;
}
.ueber-uns-page .ueber-uns-team .fc-kicker { color: var(--fc-green-300); }
.ueber-uns-page .ueber-uns-team__person .people__role { font-weight: 500; letter-spacing: .03em; }
.ueber-uns-page .ueber-uns-story__stations .rows__label { font-weight: 600; letter-spacing: 0; }
/* Neutrale Folgeflaeche schliesst die grauen Wege und das Anthrazit-Panel zusammen. */
.ueber-uns-page .ueber-uns-cta { background: var(--fc-soft); }
/* Mobil: Hero-Fläche in der Farbe des Panels, damit zwischen Foto und Textfläche kein dunkler Streifen bleibt (Prüfbericht 22.10.2026). */
@media (max-width: 991px) { .ueber-uns-hero.page-hero--bleed { background: var(--fc-green-800); } }

/* Werte-Anriss (22.10.2026): Kopf links, die fünf Kernwerte rechts als verlinkte Zeilen mit Nummer und kleiner Zeichnung. */
.ueber-uns-werte__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.ueber-uns-werte__head .fc-kicker { margin-bottom: 18px; }
.ueber-uns-werte__head .fc-lead { max-width: 36ch; margin-top: 20px; }
.ueber-uns-werte__head .fc-actions { margin-top: 28px; }
.ueber-uns-werte__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--fc-line); }
.ueber-uns-werte__row { display: grid; grid-template-columns: 48px 72px minmax(0, 1fr); align-items: center; gap: 20px; padding: 14px 0; border-top: 1px solid var(--fc-line); color: var(--fc-ink); text-decoration: none; transition: background-color 180ms var(--fc-ease); }
.ueber-uns-werte__nr { color: var(--fc-green-800); font-family: var(--fc-font-display); font-size: 32px; line-height: 1; }
.ueber-uns-werte__row img { width: 72px; height: 54px; object-fit: contain; mix-blend-mode: multiply; }
.ueber-uns-werte__name { font-family: var(--fc-font-display); font-size: 26px; line-height: 1.1; }
.ueber-uns-werte__row:hover .ueber-uns-werte__name, .ueber-uns-werte__row:focus-visible .ueber-uns-werte__name { color: var(--fc-green-800); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
@media (max-width: 991px) { .ueber-uns-werte__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 479px) { .ueber-uns-werte__row { grid-template-columns: 36px 56px minmax(0, 1fr); gap: 14px; } .ueber-uns-werte__row img { width: 56px; height: 42px; } .ueber-uns-werte__name { font-size: 22px; } }
/* Einblenden: Zeilen nacheinander, die Linie zeichnet sich von links (ruhig, ca. 1 s, Laurence 22.10.). */
.ueber-uns-werte__list > li { position: relative; }
.ueber-uns-werte__row { border-top-color: transparent; }
.ueber-uns-werte__list > li::before { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--fc-line); content: ""; transform-origin: left; }
.js .ueber-uns-werte__list > li[data-reveal] { transform: translateY(10px); transition: opacity 500ms ease, transform 600ms var(--fc-ease); transition-delay: calc(var(--delay, 0) * 90ms); }
.js .ueber-uns-werte__list > li[data-reveal]::before { transform: scaleX(0); transition: transform 700ms var(--fc-ease); transition-delay: calc(var(--delay, 0) * 90ms); }
.js .ueber-uns-werte__list > li[data-reveal].is-visible { transform: none; }
.js .ueber-uns-werte__list > li[data-reveal].is-visible::before { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .js .ueber-uns-werte__list > li[data-reveal], .js .ueber-uns-werte__list > li[data-reveal]::before { transform: none; transition: none; } }


/* ===== css/pages/werte.css ===== */
/* Kodex seit 22.10.2026: Hero wie Über uns (.page-hero--bleed), Kernwerte als nummerierte Karten, Abschluss als .cta-panel. */
.werte-miteinander { background: var(--fc-gray-dark); color: var(--fc-white); }
.werte-miteinander :is(h2,h3) { color: var(--fc-white); }
.werte-miteinander :is(.fc-lead,.fc-copy,.fc-kicker) { color: var(--fc-on-dark-soft); }
.werte-miteinander__grid { display: grid; }
.werte-commitment { border-top: 1px solid var(--fc-on-dark-line); }
.werte-commitment__icon { stroke: var(--fc-white); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.werte-commitment a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.werte-qualitaet { background: var(--fc-green-950); color: var(--fc-white); }
.werte-qualitaet :is(h2,h3,.facts__num) { color: var(--fc-white); }
.werte-qualitaet :is(.fc-lead,.facts__label,.fc-kicker) { color: var(--fc-on-dark-soft); }
.werte-qualitaet__layout { align-items: center; }
.werte-qualitaet__zahlen .facts__item { border: 0; }
.werte-qualitaet__zahlen .facts__num, .werte-proof__title { font-family: var(--fc-font-display); font-weight: 400; }
.werte-proof__title { text-wrap: balance; }

/* Kernwerte: Kopf links und stehend, fünf Zeilen rechts (Muster Sana „Shared values", Über uns „Unsere Geschichte"). */
.werte-values { background: var(--fc-white); }
.werte-values__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 80px; align-items: start; }
.werte-values__heading { position: sticky; top: calc(var(--fc-header-h) + 48px); }
.werte-values__heading .fc-kicker { margin-bottom: 18px; color: var(--fc-green-800); }
.werte-values__heading .fc-lead { max-width: 32ch; margin-top: 20px; }
.werte-values__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--fc-line); }
.werte-value { display: grid; grid-template-columns: 112px minmax(0, 1fr); grid-template-areas: "top title" "top text"; column-gap: 40px; padding: 36px 0; border-top: 1px solid var(--fc-line); }
.werte-value__top { grid-area: top; display: flex; flex-direction: column; gap: 14px; }
.werte-value__nr { color: var(--fc-green-800); font-family: var(--fc-font-display); font-size: 48px; font-weight: 500; line-height: 1; }
.werte-value__art { width: 96px; height: 72px; }
.werte-illustration { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.werte-value h3 { grid-area: title; font-size: 30px; line-height: 1.1; text-wrap: balance; }
.werte-value > .fc-copy { grid-area: text; max-width: 60ch; margin-top: 12px; font-size: 17px; line-height: 1.65; }
@media (max-width: 991px) {
  .werte-values__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .werte-values__heading { position: static; }
  .werte-value { grid-template-columns: 88px minmax(0, 1fr); grid-template-areas: "top title" "top text"; }
  }
@media (max-width: 767px) {
  .werte-value { grid-template-columns: minmax(0, 1fr); grid-template-areas: "top" "title" "text"; padding: 28px 0; }
  .werte-value__top { flex-direction: row; align-items: center; justify-content: space-between; margin-bottom: 16px; }
  .werte-value__nr { font-size: 40px; }
  .werte-value h3 { font-size: 28px; }
}
