/* ============================================================================
   MCLeut · Startseite  (home.css)
   ----------------------------------------------------------------------------
   Seiten-lokal: nur Home-Spezifika. Farben/Typo/Komponenten kommen aus
   tokens.css + base.css (beide bleiben unangetastet). Verlinkt in <head> NACH
   base.css. Mechaniken adaptiert von /ki/ und /mockups/holding/:
     - kräftigeres, gestaffeltes Scroll-Reveal (Stagger via home.js)
     - „Vertrauen"-Banderole (.band*, initBands aus home.js)
     - interaktiver Themen-Hub (Hover-Reveal + Orbit-Connectoren)
     - verbundener Prozess-Stepper, ausbalancierte Raster (keine Einzel-Waise)
   ============================================================================ */

/* ----------------------------------------------------------------------------
   1. Scroll-Reveal (stärker + gestaffelt, Muster aus /holding/)
   Überschreibt base.css `.js .reveal` (home.css liegt nach base.css). ui.js
   setzt weiterhin EINMALIG `is-visible`; den transition-delay je Gruppe setzt
   home.js (initRevealStagger).
   ---------------------------------------------------------------------------- */
/* Reveal-mit-Scale (KI-Niveau, 01.07.): base.css `.reveal` liefert weiterhin Fade + Rise
   (transform: translateY(18px)); HIER kommt nur der zarte Scale über die eigenständige
   `scale`-Property dazu (kein zweites translate, kein doppelter Versatz). `transform` bleibt
   in der Transition, damit die base-Bewegung weich mitläuft. Stagger via home.js. */
.js .reveal { opacity: 0; scale: .985;
              transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1), scale .7s cubic-bezier(.22, .61, .36, 1); }
.js .reveal.is-visible { opacity: 1; scale: 1; }
/* Orbit-Container: kein Container-Scale (absolute Kacheln + eigene hubSettle/hubDraw-Staffelung). */
.js .hub.reveal { scale: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; scale: none; transition: none; } }

/* ----------------------------------------------------------------------------
   1b. Anker-Offset gegen den Sticky-Header (base.css .site-header = 64px, top:0).
   Ohne diesen Offset verdeckt der Header die angesprungene Sektion (z. B. „Charity").
   ---------------------------------------------------------------------------- */
#vorteile, #vergleich, #leistungen, #tools, #ablauf, #faq, #charity, #bewertungen, #ueber { scroll-margin-top: 80px; }

/* ----------------------------------------------------------------------------
   2. Hero (Feinheiten; Markup nutzt base.css .hero-split/.hero-figure)
   ---------------------------------------------------------------------------- */
.home-hero { padding-block: clamp(2.5rem, 5vw, 4.25rem); }   /* getrimmt: nächste Sektion schaut an (5.1) */
.home-hero h1 { font-size: var(--fs-display); margin-bottom: var(--space-5); }
.home-hero .lead { font-size: var(--fs-lead); color: var(--text-muted); max-width: 52ch; }

/* Hero-Typografie (5.2): fette Kernphrase + EIN hervorgehobenes Wort „Klarheit" (blau, fett)
   mit oranger Wellen-Linie. Die Welle nutzt die geteilte Swipe-Primitive (.u-swipe, base.css). */
.home-hero__title { letter-spacing: var(--tracking-tight); }
.home-hero__key { font-weight: var(--fw-bold); color: var(--text); }
.home-hero__rest { color: var(--text); font-weight: var(--fw-medium); }
.home-hero__accent { position: relative; display: inline-block; color: var(--primary); font-weight: var(--fw-semibold); }
.home-hero__accent--word { font-weight: var(--fw-bold); --u-swipe-delay: 0.5s; }   /* Lade-Draw wie das Original (~.55s) */
.home-hero__wave { bottom: -0.12em; }   /* Feinjustage der u-swipe__line am Hero-Wort */
.home-hero__cue { display: inline-flex; align-items: center; gap: var(--space-2); margin-top: var(--space-6);
                  color: var(--text-soft); font-size: var(--fs-small); font-weight: var(--fw-medium); }
.home-hero__cue svg { width: 18px; height: 18px; }
@media (prefers-reduced-motion: no-preference) {
  .home-hero__cue svg { animation: cueBob 1.8s ease-in-out infinite; }
}
@keyframes cueBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(4px); } }

/* Skip-Link: nur bei Tastatur-Fokus sichtbar (A11y / agentischer Zugriffsbaum) */
.skip-link { position: absolute; left: 8px; top: -48px; z-index: 1000; padding: 10px 16px;
             background: var(--primary); color: #fff; border-radius: 8px; font-weight: var(--fw-semibold);
             text-decoration: none; transition: top 0.15s ease; }
.skip-link:focus { top: 8px; outline: 2px solid #fff; outline-offset: 2px; }

/* ----------------------------------------------------------------------------
   3. „Vertrauen"-Banderole (Laufleiste; adaptiv per home.js initBands befüllt)
   CSS 1:1 aus /mockups/holding/. Inhalt = belegbare Wert-Chips; echte Siegel
   (ProvenExpert/IHK/Presse) sind §34d-gated und werden später in home.js ergänzt.
   ---------------------------------------------------------------------------- */
.band-section { padding-block: var(--section-y-sm); }
.band__label { display: block; text-align: center; font-size: var(--fs-eyebrow); letter-spacing: 0.18em;
               /* #5F6B7E = 5,4:1 auf Weiss (WCAG AA); --text-soft #7A879B waere nur 3,65:1 */
               text-transform: uppercase; color: #5F6B7E; font-weight: var(--fw-semibold); margin-bottom: var(--space-5); }
.band { overflow: hidden;
        -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
        mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); }
.band__inner { display: flex; width: max-content; will-change: transform; animation: bandScroll 40s linear infinite; }
.band__group { display: flex; align-items: center; }
.band__group > * { flex: 0 0 auto; margin: 0 var(--space-6); }
.band__group img { height: 52px; width: auto; display: block; object-fit: contain; transition: transform 0.2s ease; }
.band__group img:hover { transform: translateY(-4px) scale(1.06); }
.band:hover .band__inner { animation-play-state: paused; }
@keyframes bandScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .band__inner { animation: none; } .band__group + .band__group { display: none; } }

/* Wort-/Wert-Marken als Chips (kein erfundenes Siegel, §34d-sicher) */
.band-chip { display: inline-flex; align-items: center; gap: var(--space-2); white-space: nowrap;
             color: var(--text-muted); font-weight: var(--fw-semibold); font-size: 0.95rem; letter-spacing: 0.01em; }
.band-chip svg { width: 18px; height: 18px; color: var(--primary); flex: none; }

/* Qualifikations-Banderole: Siegel laufen als ruhige weiße Karten (statt statischer Reihe) */
.band--seals .band__group > * { margin: 0 var(--space-4); }
.band--seals .band__group img { height: 80px; width: auto; padding: var(--space-3) var(--space-5);
  background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft); filter: grayscale(0.12); opacity: 0.96; }
.band--seals .band__group img:hover { filter: none; opacity: 1; }

/* Partner-Logos praesenter: groesser + mehr Abstand (Christopher 07/2026) */
.band--logos .band__group > * { margin: 0 2.75rem; }
.band--logos .band__group img { height: 72px; }

/* ----------------------------------------------------------------------------
   4. Ausbalancierte Raster (kein auto-fit → keine Einzel-Waise)
   4 Karten: 1 (mobil) / 2 (Tablet) / 4 (breit). Nie 3-spaltig ⇒ kein 3+1.
   ---------------------------------------------------------------------------- */
.home-grid-4 { display: grid; gap: var(--space-6); grid-template-columns: 1fr; }
@media (min-width: 600px) { .home-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .home-grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* 4b. Problem-Sektion: 3 Pain-Point-Karten (1 / 2 / 3, kein Waisen-Risiko bei 3 Items) */
.problem-grid { display: grid; gap: var(--space-6); grid-template-columns: 1fr; }
@media (min-width: 700px) { .problem-grid { grid-template-columns: repeat(3, 1fr); } }
.home-problem__bridge { margin: var(--space-8) auto 0; max-width: 60ch; text-align: center;
  color: var(--text); font-weight: var(--fw-medium); }

/* ----------------------------------------------------------------------------
   5. Interaktiver Themen-Hub (5 Themen)  — ersetzt das alte 5er-auto-fit-Grid
   Progressive Enhancement:
     · Basis = barrierefreie Tile-Links, ausbalanciert (3 oben + 2 unten zentriert)
     · Desktop ≥ 940px = Orbit: zentraler Kern + 5 Kacheln drumherum + Connector-SVG
   Hover-Mechanik adaptiert von /holding/ .hero-tile (Lift + Akzent + Pfeil-Reveal).
   ---------------------------------------------------------------------------- */
.hub { position: relative; }
.hub-core { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2);
            text-align: center; padding: var(--space-6); border-radius: var(--radius-lg);
            background: var(--primary); color: #fff; box-shadow: var(--shadow-card); }
/* Neutrales Profil-/Personen-Symbol (eigene Illustration, Orange/Blau) – „MCLeut" ohne Toggle direkt sichtbar */
.hub-core__avatar { display: block; width: clamp(56px, 12vw, 72px); }
.hub-core__avatar svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 2px 6px rgba(10, 25, 48, 0.28)); }
.hub-core__brand { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.6rem, 4vw, 2.1rem);
                   letter-spacing: var(--tracking-tight); line-height: 1; color: #fff; }
.hub-core__title { font-size: var(--fs-small); font-weight: var(--fw-medium); color: var(--accent-100);
                   line-height: var(--lh-snug); max-width: 24ch; }

/* Tile-Grid (Basis, alle Breiten < 940px) */
.hub-grid { display: grid; gap: var(--space-5); grid-template-columns: 1fr; margin-top: var(--space-8); }
@media (min-width: 600px) {
  .hub-grid { grid-template-columns: repeat(6, 1fr); }
  .hub-tile { grid-column: span 2; }
  .hub-tile:nth-child(4) { grid-column: 2 / 4; }   /* vorletzte: zentriert */
  .hub-tile:nth-child(5) { grid-column: 4 / 6; }   /* letzte: zentriert → kein lonely Element */
}

.hub-tile { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit;
            background: var(--surface); border: var(--card-border); border-radius: var(--card-radius);
            padding: var(--card-pad); box-shadow: var(--card-shadow);
            transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.hub-tile:hover, .hub-tile:focus-visible { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: var(--primary-200); }
.hub-tile:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.hub-tile .icon-badge { transition: background var(--transition), color var(--transition); }
.hub-tile:hover .icon-badge { background: var(--accent-soft); color: var(--accent-strong); }
.hub-tile h3 { margin-bottom: var(--space-2); font-size: var(--fs-h3); }
.hub-tile p { color: var(--text-muted); margin: 0; }
.hub-tile__more { margin-top: auto; padding-top: var(--space-4); color: var(--primary); font-weight: var(--fw-semibold);
                  font-size: var(--fs-small); display: inline-flex; align-items: center; gap: var(--space-2); }
.hub-tile__more svg { width: 16px; height: 16px; transition: transform var(--transition); }
.hub-tile:hover .hub-tile__more { color: var(--accent-strong); }
.hub-tile:hover .hub-tile__more svg { transform: translateX(4px); }

/* Connector-SVG (nur Desktop sichtbar) */
.hub-wires { display: none; }

/* Desktop-Orbit (ab 1000px: darunter würde das 3-Spalten-Raster + große Gaps den
   rechten Kachel-Rand über den Container schieben → H-Scroll; bis 1000px flaches Raster). */
@media (min-width: 1000px) {
  .hub { min-height: 560px; }
  .hub-core { position: absolute; inset: 0; margin: auto; width: 244px; height: 208px; z-index: 2; }
  .hub-wires { display: block; position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
  .hub-wires line { stroke: var(--primary); stroke-width: 1.4; opacity: 0.28; transition: stroke var(--transition), opacity var(--transition); }
  .hub-wires circle { fill: var(--primary); opacity: 0.5; }

  .hub-grid { position: relative; z-index: 1; margin-top: 0; min-height: 560px;
              grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr;
              align-items: center; gap: var(--space-6) var(--space-10);
              grid-template-areas:
                "t1 .  t2"
                "t3 .  t4"
                ".  t5 ."; }
  .hub-tile { grid-column: auto; max-width: 300px; }
  .hub-tile:nth-child(1) { grid-area: t1; justify-self: start; }
  .hub-tile:nth-child(2) { grid-area: t2; justify-self: end; }
  .hub-tile:nth-child(3) { grid-area: t3; justify-self: start; }
  .hub-tile:nth-child(4) { grid-area: t4; justify-self: end; }
  .hub-tile:nth-child(5) { grid-area: t5; justify-self: center; }

  /* Connector hervorheben, wenn die zugehörige Kachel gehovert wird (:has, progressive) */
  .hub:has(.hub-tile:nth-child(1):hover) .hub-wires .w1,
  .hub:has(.hub-tile:nth-child(2):hover) .hub-wires .w2,
  .hub:has(.hub-tile:nth-child(3):hover) .hub-wires .w3,
  .hub:has(.hub-tile:nth-child(4):hover) .hub-wires .w4,
  .hub:has(.hub-tile:nth-child(5):hover) .hub-wires .w5 { stroke: var(--accent-strong); opacity: 0.9; stroke-width: 2; }
}

/* 6. Prozess: alter .home-flow-Stepper entfernt → ersetzt durch .path-Timeline (Block 16). */

/* ----------------------------------------------------------------------------
   7. FAQ (native <details>, aus altem Inline-<style> migriert)
   ---------------------------------------------------------------------------- */
.home-faq { max-width: 760px; }
.home-faq__item { border-bottom: 1px solid var(--border); }
.home-faq__q { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: var(--space-4);
               padding: var(--space-4) 0; font-weight: var(--fw-semibold); color: var(--text); }
.home-faq__q::-webkit-details-marker { display: none; }
.home-faq__q::after { content: "+"; color: var(--accent-strong); font-weight: var(--fw-bold); }
.home-faq__item[open] .home-faq__q::after { content: "\2212"; }
.home-faq__a { margin: 0 0 var(--space-4); color: var(--text-muted); max-width: 68ch; }
.home-faq__note { margin: var(--space-6) 0 0; font-size: var(--fs-small); color: var(--text-soft); }

/* ----------------------------------------------------------------------------
   8. Logo (Header + Footer) — Header-Muster wie /ki/
   ---------------------------------------------------------------------------- */
.site-header__brand { display: inline-flex; align-items: center; gap: var(--space-2); }
.site-header__brand img { height: 34px; width: auto; display: block; }
.site-footer__copy { display: inline-flex; align-items: center; gap: var(--space-2); }
.site-footer__logo { height: 24px; width: auto; display: block; opacity: 0.92; }

/* ----------------------------------------------------------------------------
   9. Bildband (Pixabay, personenfrei) — Muster aus /mockups/holding/
   ---------------------------------------------------------------------------- */
.home-photoband { margin: 0; }
.home-photoband__frame { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border-strong);
                         box-shadow: var(--shadow-card); aspect-ratio: 16 / 9; max-height: 460px;
                         /* max-height+aspect-ratio ergeben eine feste Breite < Figure-Breite; ohne
                            margin-inline:auto blieb der Frame als Block-Element linksbuendig haengen,
                            waehrend die Caption (text-align:center) ueber die volle Breite zentrierte. */
                         margin-inline: auto; }
.home-photoband__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.home-photoband figcaption { margin-top: var(--space-3); text-align: center; color: var(--text-muted); font-size: var(--fs-small); }

/* Duotone-Variante: dezenter Marken-Verlauf legt das Foto ruhiger ins Layout ein */
.home-photoband--duotone .home-photoband__frame { position: relative; }
/* Aufgehellt (S5): nur noch ein zarter Marken-Wash statt dunkler Navy-Multiply, damit
   das helle, offene Bild hell bleibt (helles Blau → dezenter Gold-/Hellorange-Akzent). */
.home-photoband--duotone .home-photoband__frame::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(170deg, rgba(18, 63, 122, 0.06), rgba(234, 122, 37, 0.05)); mix-blend-mode: multiply; }
.home-photoband--duotone .home-photoband__frame img { filter: saturate(1.02); }
.home-photoband--duotone figcaption { color: var(--text); font-weight: var(--fw-medium); }

/* ----------------------------------------------------------------------------
   9b. Werkzeuge-Platzhalter (Ziel der Vermögens-Kachel; Tool-Übersicht folgt)
   ---------------------------------------------------------------------------- */
.home-tools .tools-placeholder { text-align: center; max-width: 640px; margin-inline: auto;
  background: var(--surface); border: 1px dashed var(--border-strong); border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: var(--shadow-soft); }
.tools-placeholder__badge { display: inline-block; margin-bottom: var(--space-3); padding: 0.3rem 0.85rem;
  border-radius: var(--radius-pill); background: var(--accent-soft); color: var(--accent-strong);
  font-size: var(--fs-eyebrow); font-weight: var(--fw-semibold); letter-spacing: 0.06em; text-transform: uppercase; }
.home-tools .tools-placeholder p { color: var(--text-muted); margin: 0 0 var(--space-5); }

/* ----------------------------------------------------------------------------
   10. CTA mit dezentem Bild-Hintergrund — Muster ki-techbg (opazitätsarm + Maske)
   ---------------------------------------------------------------------------- */
.home-cta { position: relative; overflow: hidden; }
.home-cta > .container { position: relative; z-index: 1; }
.home-cta::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("/assets/img/home-cta-bg.webp") center / cover no-repeat; opacity: 0.08;
  -webkit-mask-image: radial-gradient(ellipse 92% 86% at 50% 50%, #000 30%, transparent 100%);
  mask-image: radial-gradient(ellipse 92% 86% at 50% 50%, #000 30%, transparent 100%);
}

/* ----------------------------------------------------------------------------
   11. Aufbau-Motion (CSS-getrieben, reduced-motion-sicher)
   Hero-Entrance läuft beim Laden (reine CSS-Animation, auch ohne JS).
   Hub-Aufbau läuft beim Scrollen, getriggert von `.hub.is-visible` (ui.js).
   Vor-Animationszustände nur unter (prefers-reduced-motion: no-preference)
   -> reduced-motion zeigt alles statisch; Hub-Hidden zusätzlich nur unter .js.
   ---------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  /* Hero baut sich beim Laden gestaffelt auf */
  .home-hero .hero-copy > *,
  .home-hero .hero-figure { animation: homeRise 0.7s cubic-bezier(.16, 1, .3, 1) both; }
  .home-hero .hero-copy > *:nth-child(1) { animation-delay: 0.05s; }
  .home-hero .hero-copy > *:nth-child(2) { animation-delay: 0.13s; }
  .home-hero .hero-copy > *:nth-child(3) { animation-delay: 0.21s; }
  .home-hero .hero-copy > *:nth-child(4) { animation-delay: 0.29s; }
  .home-hero .hero-copy > *:nth-child(5) { animation-delay: 0.37s; }
  .home-hero .hero-figure { animation-delay: 0.22s; }

  /* Hub fügt sich beim Scrollen zusammen (nur mit JS, da is-visible aus ui.js) */
  .js .hub-wires line { stroke-dasharray: 1; stroke-dashoffset: 1; }
  .js .hub.is-visible .hub-wires line { animation: hubDraw 0.75s ease 0.15s forwards; }
  /* hub-core (Profil-Symbol + „MCLeut") bleibt direkt sichtbar — kein eigener Pop/Gate (S6) */
  .js .hub-tile { opacity: 0; }
  .js .hub.is-visible .hub-tile { animation: hubSettle 0.6s cubic-bezier(.16, 1, .3, 1) both; }
  .js .hub.is-visible .hub-tile:nth-child(1) { animation-delay: 0.10s; }
  .js .hub.is-visible .hub-tile:nth-child(2) { animation-delay: 0.18s; }
  .js .hub.is-visible .hub-tile:nth-child(3) { animation-delay: 0.26s; }
  .js .hub.is-visible .hub-tile:nth-child(4) { animation-delay: 0.34s; }
  .js .hub.is-visible .hub-tile:nth-child(5) { animation-delay: 0.42s; }
}
@keyframes homeRise  { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes hubSettle { from { opacity: 0; transform: scale(.9) translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes hubDraw   { to { stroke-dashoffset: 0; } }

/* Hero-Trust-Punkte sauber untereinander statt 2+1-Umbruch (Kevin R14; identisch zu /holding/) */
.chip-row { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.chip-row .chip { border: 0; background: transparent; padding: 0; color: var(--text); }
.chip-row .chip svg { color: var(--accent-strong); }
/* ----------------------------------------------------------------------------
   12. Header-Navigation: Lösungen-Dropdown (5.9, additiv, home-only)
   Desktop öffnet per :hover UND :focus-within (CSS) + Klick-Toggle (ui.js).
   Mobil (≤860px) = Akkordeon im bestehenden Off-canvas (0fr→1fr).
   ---------------------------------------------------------------------------- */
.nav-group { position: relative; display: flex; align-items: center; }
.nav-group__btn { display: inline-flex; align-items: center; gap: var(--space-1); background: none; border: 0;
  padding: 0; margin: 0; font-family: inherit; color: var(--text-muted); font-weight: var(--fw-medium);
  font-size: 0.95rem; line-height: 1.6; cursor: pointer; transition: color var(--transition-fast); }
.nav-group__btn:hover, .nav-group:focus-within .nav-group__btn, .nav-group__btn[aria-expanded="true"] { color: var(--text); }
.nav-group__chev { width: 16px; height: 16px; flex: none; transition: transform var(--transition-fast); }
.nav-group:hover .nav-group__chev, .nav-group__btn[aria-expanded="true"] .nav-group__chev { transform: rotate(180deg); }

@media (min-width: 861px) {
  .nav-dropdown { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%) translateY(-6px);
    min-width: 248px; display: flex; flex-direction: column; gap: 2px; padding: var(--space-2);
    border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--border-strong);
    box-shadow: var(--shadow-card); opacity: 0; visibility: hidden; pointer-events: none; z-index: 60;
    transition: opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast); }
  .nav-group::after { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 12px; }  /* Hover-Brücke */
  .nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown, .nav-group__btn[aria-expanded="true"] + .nav-dropdown {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
  .nav-dropdown a { padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); color: var(--text-muted);
    font-size: 0.92rem; font-weight: var(--fw-medium); white-space: nowrap; }
  .nav-dropdown a:hover, .nav-dropdown a:focus-visible { background: var(--primary-50); color: var(--primary); }
}
@media (max-width: 860px) {
  .nav-group { flex-direction: column; align-items: stretch; }
  .nav-group__btn { justify-content: space-between; width: 100%; padding: var(--space-3) 0;
    border-bottom: 1px solid var(--border); color: var(--text); font-size: 1rem; }
  .nav-dropdown { display: grid; grid-template-rows: 0fr; overflow: hidden; transition: grid-template-rows var(--transition); }
  .nav-group__btn[aria-expanded="true"] + .nav-dropdown { grid-template-rows: 1fr; }
  .nav-dropdown > * { min-height: 0; }
  .nav-dropdown a { padding: var(--space-3) 0 var(--space-3) var(--space-4); border-bottom: 1px solid var(--border);
    color: var(--text-muted); font-size: 0.95rem; }
}
/* Ein einziges Grid-Kind (.nav-dropdown__inner), damit 0fr->1fr die volle Hoehe
   animiert: mit 4 direkten Links lagen Zeile 2-4 in impliziten auto-Rows und
   standen beim ersten Oeffnen gestaucht uebereinander (T40, Meeting 04.07.). */
.nav-dropdown__inner { display: flex; flex-direction: column; min-height: 0; }
@media (min-width: 861px) { .nav-dropdown__inner { gap: 2px; } }
@media (prefers-reduced-motion: reduce) { .nav-dropdown, .nav-group__chev { transition: none; } }

/* ----------------------------------------------------------------------------
   13. Trust: Zertifikats-Siegel (runde weiße Karten) + Versicherer-Laufband (5.3)
   ---------------------------------------------------------------------------- */
.trust-seals .band__label { margin-bottom: var(--space-6); }
.seal-row { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center;
  align-items: center; gap: var(--space-6) var(--space-8); }
.seal { display: grid; place-items: center; width: clamp(78px, 16vw, 108px); height: clamp(78px, 16vw, 108px);
  padding: var(--space-3); border-radius: var(--radius-pill); background: var(--surface);
  border: 1px solid var(--border-strong); box-shadow: var(--shadow-soft); }
.seal img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
  filter: grayscale(0.15); opacity: 0.95; transition: filter var(--transition-fast), opacity var(--transition-fast); }
.seal:hover img { filter: none; opacity: 1; }
.trust-insurers__note { margin-top: var(--space-4); text-align: center; color: var(--text-soft);
  font-size: var(--fs-small); max-width: 64ch; margin-inline: auto; }

/* ----------------------------------------------------------------------------
   14. Vergleich (S6): visuelle Gegenüberstellung „getrennt vs. verbunden" (kein Toggle)
   Zwei SVG-Karten nebeneinander (Desktop), mobil untereinander vergleichbar.
   ---------------------------------------------------------------------------- */
.cmp2 { display: grid; gap: var(--space-6); grid-template-columns: 1fr; max-width: 940px; margin-inline: auto; }
@media (min-width: 760px) { .cmp2 { grid-template-columns: 1fr 1fr; gap: var(--space-8); } }
.cmp2-card { margin: 0; display: flex; flex-direction: column; gap: var(--space-4);
  background: var(--surface); border: var(--card-border); border-radius: var(--card-radius);
  padding: var(--card-pad); box-shadow: var(--card-shadow); }
.cmp2-card--connected { border-color: var(--primary-200); }
.cmp2-card__head { display: flex; flex-direction: column; gap: 2px; text-align: center; }
.cmp2-card__tag { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-h3); color: var(--primary); }
.cmp2-card__tag--muted { color: var(--text-soft); }
.cmp2-card__sub { font-size: var(--fs-small); color: var(--text-muted); }
.cmp2-svg { width: 100%; height: auto; display: block; }
/* Interaktive Themen-Knoten (Christopher 07/2026): Hover/Focus -> anheben + Rahmen orange, Klick -> Zielseite */
.cmp2-svg a.cmp2-node { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: transform .18s ease; }
.cmp2-svg a.cmp2-node:hover, .cmp2-svg a.cmp2-node:focus-visible { transform: translateY(-3px); outline: none; }
.cmp2-node:not(.cmp2-node--hub):hover rect, .cmp2-node:not(.cmp2-node--hub):focus-visible rect { stroke: var(--accent-strong); stroke-width: 2.4; }
@media (prefers-reduced-motion: reduce) { .cmp2-svg a.cmp2-node { transition: none; } }
.compare-note { margin: var(--space-6) auto 0; max-width: 62ch; text-align: center; font-size: var(--fs-small); color: var(--text-soft); }

/* Vergleich "Andere Anbieter" vs. "MCLeut" (Rudolph-Vorbild, 6 Kategorien) */
.cmp3 { display: grid; gap: var(--space-5); grid-template-columns: 1fr; max-width: 960px; margin-inline: auto; }
@media (min-width: 760px) { .cmp3 { grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: start; } }
.cmp3-card { display: flex; flex-direction: column; gap: var(--space-5); border-radius: var(--card-radius); padding: var(--card-pad); }
.cmp3-card--muted { background: var(--bg-soft, #f4f6f9); border: 1px dashed var(--border-strong); }
.cmp3-card--accent { background: var(--surface); border: 2px solid var(--accent-strong); box-shadow: var(--card-shadow); }
@media (max-width: 759px) { .cmp3-card--accent { order: -1; } }
.cmp3-card__tag { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-h3); }
.cmp3-card--muted .cmp3-card__tag { color: var(--text-soft); }
.cmp3-card--accent .cmp3-card__tag { color: var(--accent-strong); }
.cmp3-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.cmp3-row { display: flex; gap: var(--space-3); align-items: flex-start; }
.cmp3-mark { flex: none; width: 24px; height: 24px; border-radius: 999px; display: grid; place-items: center; margin-top: 1px; }
.cmp3-mark svg { width: 14px; height: 14px; }
.cmp3-mark--x { background: var(--border-strong); color: var(--text-soft); }
.cmp3-mark--check { background: #E3F3E8; color: #1E9E5A; } /* gruener Haken (Christopher 07/2026) */
.cmp3-body { display: flex; flex-direction: column; gap: 2px; }
.cmp3-cat { font-size: var(--fs-eyebrow); letter-spacing: 0.12em; text-transform: uppercase; font-weight: var(--fw-semibold); color: var(--text-soft); }
.cmp3-card--accent .cmp3-cat { color: var(--accent-strong); }
.cmp3-txt { color: var(--text); font-size: 0.98rem; line-height: 1.45; }
.cmp3-card--muted .cmp3-txt { color: var(--text-muted); }
.cmp3-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-3); margin-top: var(--space-10); }
.cmp3-links__label { font-size: var(--fs-small); color: var(--text-soft); font-weight: var(--fw-semibold); }
.cmp3-links a { display: inline-flex; align-items: center; font-size: 0.95rem; font-weight: var(--fw-semibold); color: var(--primary); text-decoration: none; padding: 6px 14px; border: 1px solid var(--border-strong); border-radius: 999px; transition: border-color var(--transition-fast), color var(--transition-fast); }
.cmp3-links a:hover { color: var(--accent-strong); border-color: var(--accent-strong); }

/* 15. Struktur-Mini-Diagramm entfernt (S6 25.06.): redundant zum aufgewerteten Hub
   und zum neuen visuellen Vergleich; Toggle („Hebel zum Schalten") fällt damit weg. */

/* ----------------------------------------------------------------------------
   16. Prozess-Weg (5.6): Timeline mit scroll-gefüllter Mittellinie (home.js initProcessFill)
   ---------------------------------------------------------------------------- */
.path { position: relative; max-width: 920px; margin-inline: auto; }
.path__line, .path__fill { position: absolute; top: 0; bottom: 0; width: 3px; left: 21px; border-radius: 3px; }
.path__line { background: linear-gradient(180deg, rgba(18,63,122,.06), rgba(18,63,122,.18) 50%, rgba(18,63,122,.06)); }
.path__fill { background: linear-gradient(180deg, var(--primary), var(--accent)); transform-origin: top; transform: scaleY(0); will-change: transform; }
.path__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-10); }
.path__step { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: var(--space-5); align-items: start; }
.path__num { position: relative; z-index: 2; width: 44px; height: 44px; border-radius: var(--radius-pill);
  display: flex; align-items: center; justify-content: center; background: #fff; color: var(--primary);
  border: 2px solid var(--primary); font-weight: var(--fw-bold); box-shadow: var(--shadow-soft); }
.path__card { background: var(--surface); border: var(--card-border); border-radius: var(--card-radius);
  padding: var(--card-pad); box-shadow: var(--card-shadow); overflow: hidden; }
/* Bild-Streifen oben in jeder Prozess-Karte (Pixabay, personenfrei) — Kevin R5: „Ablauf visualisieren".
   Blutet bis an die Kartenkanten (negativer Rand = -card-pad), oben abgerundet, schlanker Banner. */
.path__media { display: block; margin: calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) var(--space-4);
  aspect-ratio: 8 / 3; overflow: hidden; background: var(--bg-subtle); }
.path__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 880px) {
  /* Desktop-Zickzack: ungerade Karten sind rechtsbündig -> Bild trotzdem volle Kartenbreite (block). */
  .path__step:nth-child(odd) .path__media { text-align: initial; }
}
.path__ic { display: inline-flex; width: 38px; height: 38px; border-radius: var(--radius-md); margin-bottom: var(--space-3);
  align-items: center; justify-content: center; background: var(--primary-50); color: var(--primary); }
.path__ic svg { width: 20px; height: 20px; }
.path__card h3 { margin: 0 0 var(--space-1); font-size: var(--fs-h3); }
.path__card p { margin: 0; color: var(--text-muted); }
@media (min-width: 880px) {
  .path__line, .path__fill { left: 50%; transform: translateX(-50%); }
  .path__fill { transform: translateX(-50%) scaleY(0); }
  .path__steps { gap: var(--space-12); }
  .path__step { grid-template-columns: 1fr 44px 1fr; align-items: center; }
  .path__num { grid-column: 2; }
  .path__card { grid-column: 3; }
  .path__step:nth-child(odd) .path__card { grid-column: 1; text-align: right; }
  .path__step:nth-child(odd) .path__ic { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) { .path__fill { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) and (min-width: 880px) { .path__fill { transform: translateX(-50%) scaleY(1); } }

/* ----------------------------------------------------------------------------
   17. Footer-Ausbau + Social (5.10; base.css .site-footer bleibt unangetastet)
   ---------------------------------------------------------------------------- */
.site-footer__top { display: grid; gap: var(--space-8); grid-template-columns: 1fr; padding-bottom: var(--space-6);
  margin-bottom: var(--space-6); border-bottom: 1px solid var(--border-dark); }
@media (min-width: 760px) { .site-footer__top { grid-template-columns: 1.4fr 1fr; align-items: start; } }
.site-footer__brandcol { max-width: 42ch; }
.site-footer__about { margin: var(--space-3) 0 var(--space-4); color: rgba(231,236,244,0.62); }
.site-footer__social { list-style: none; display: flex; gap: var(--space-3); margin: 0; padding: 0; }
.site-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: var(--radius-pill); border: 1px solid var(--border-dark); color: rgba(231,236,244,0.78);
  transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast); }
.site-footer__social a:hover { color: #fff; border-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.06); }
.site-footer__social svg { width: 20px; height: 20px; }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: var(--space-5); align-content: start; }
@media (min-width: 760px) { .site-footer__legal { justify-content: flex-end; } }
.site-footer__note { margin: 0; color: rgba(231,236,244,0.5); font-size: var(--fs-small); line-height: 1.6; max-width: 92ch; }

/* ============================================================================
   Etappe 4 (2. Feedback-Runde) – Mainpage-Revisionen
   ============================================================================ */

/* M-R2: Partner-Banderole (Wortmarken). Technologie-Partner-Band (S5 25.06.) entfernt
   → nur noch ein Finanzpartner-Band; .band/.band__inner kommen aus Block 3 oben. */
.home-partner { color: var(--text-muted); font-weight: var(--fw-semibold); font-size: 1.05rem;
                letter-spacing: 0.01em; white-space: nowrap; }
.home-partners__note { margin: var(--space-5) auto 0; max-width: 66ch; text-align: center;
                       font-size: var(--fs-small); color: var(--text-soft); }

/* M-R4: Engagement-Sektion im Holding-„soz-hero"-Muster (Bild + Haltung + neutrale Themen) */
.home-engage .soz-hero { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 820px) { .home-engage .soz-hero { grid-template-columns: 1.05fr 0.95fr; } }
.home-engage .soz-hero__media { border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-card); border: 1px solid var(--border-strong); aspect-ratio: 16 / 10; }
.home-engage .soz-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* M-R5: Vergleich großzügiger über die volle Feldbreite (Struktur-Diagramm entfernt) */

/* ============================================================================
   18. KI-Niveau-Politur (01.07.): Motion/Interaktion von /ki/ uebertragen.
   Nur home-scoped; base.css/tokens.css/ui.js unangetastet. Alles reduced-motion-sicher.
   ============================================================================ */

/* 18a. Ambientes Hero-Punktraster (nur fine-pointer/Desktop; JS: initHeroDots).
   Liegt hinter dem Hero-Inhalt und reagiert dezent auf den Cursor (blaue Punkte in Nähe). */
.home-hero { position: relative; }
.home-hero > .container { position: relative; z-index: 1; }
.home-hero__dots { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%;
  pointer-events: none; display: none;
  -webkit-mask-image: radial-gradient(ellipse 80% 76% at 50% 42%, #000 52%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 76% at 50% 42%, #000 52%, transparent 100%); }
@media (pointer: fine) and (min-width: 768px) {
  @media (prefers-reduced-motion: no-preference) { .home-hero__dots { display: block; } }
}

/* 18b. Draw-in gezeichneter SVG-Pfade (JS: initScrollDraw -> .is-drawn).
   Genutzt für die verbundenen Fäden im Vergleich (Chaos -> Ordnung baut sich auf). */
@media (prefers-reduced-motion: no-preference) {
  /* Robust: Fäden sind standardmäßig VOLL sichtbar (dashoffset 0). Der Hidden->Sichtbar-
     Verlauf lebt NUR in der Keyframe (homeDraw). Feuert der Scroll-Observer nicht oder
     läuft die Animation nicht, bleiben alle Verbindungslinien (inkl. Holding) sichtbar. */
  .js .reveal-draw .draw-line { stroke-dasharray: 1; }
  .js .reveal-draw.is-drawn .draw-line { animation: homeDraw 1s ease both; }
  .js .reveal-draw.is-drawn .draw-line:nth-child(2) { animation-delay: .12s; }
  .js .reveal-draw.is-drawn .draw-line:nth-child(3) { animation-delay: .24s; }
  .js .reveal-draw.is-drawn .draw-line:nth-child(4) { animation-delay: .36s; }
  .js .reveal-draw.is-drawn .draw-line:nth-child(5) { animation-delay: .48s; }
}
@keyframes homeDraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }

/* 18c. Karten-Politur: Icon-Badge färbt bei Hover (wie Hub-Kacheln; Kevin 26.06.) */
.home-grid-4 .card .icon-badge { transition: background var(--transition), color var(--transition); }
.home-grid-4 .card:hover .icon-badge, .home-grid-4 .card:focus-within .icon-badge {
  background: var(--accent-soft); color: var(--accent-strong); }

/* 18d. FAQ: Antwort blendet beim Aufklappen sanft ein (reduced-motion: aus) */
@media (prefers-reduced-motion: no-preference) {
  .home-faq__item[open] .home-faq__a { animation: faqReveal .3s cubic-bezier(.16, 1, .3, 1) both; }
}
@keyframes faqReveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* 18e. Partner-Wortmarken: dezenter Kontrast-Wechsel bei Hover der Leiste */
.home-partner { transition: color var(--transition-fast); }
.band__group:hover .home-partner { color: var(--text); }

/* ----------------------------------------------------------------------------
   19. Dunkle Blau-Sektionen (Rudolph-Orientierung 02.07.): nutzt base.css
   .section--dark (bg var(--bg-dark) = primary-900), hier auf primary-800
   angehoben, damit der Footer (900) der dunkelste Ton bleibt. .lead/.eyebrow/
   .compare-note/.btn--ghost nutzen feste Farb-Tokens statt currentColor und
   brauchen darum eigene Overrides fuer ausreichenden Kontrast.
   ---------------------------------------------------------------------------- */
.home-dark { background: var(--primary-800); }
.home-dark .eyebrow { color: var(--accent); }
.home-dark .lead { color: rgba(231, 236, 244, .78); }
.home-dark .compare-note { color: rgba(231, 236, 244, .55); }
.home-dark .btn--ghost { border-color: rgba(255, 255, 255, .35); color: #fff; }
.home-dark .btn--ghost:hover { border-color: #fff; color: #fff; }

/* 19b. Team-Sektion: Portraet + Kurzvita (dunkel), Foto ist ~quadratisch (696x633) */
.home-team .team-split { display: grid; gap: var(--space-10); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 880px) { .home-team .team-split { grid-template-columns: .85fr 1.15fr; gap: var(--space-16); } }
.team-portrait { margin: 0; border-radius: var(--radius-lg); overflow: hidden; max-width: 420px;
  border: 1px solid rgba(255, 255, 255, .14); box-shadow: var(--shadow-card);
  aspect-ratio: 696 / 633; background: var(--primary-900); }
.team-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.home-team .team-copy p:not(.lead) { color: rgba(231, 236, 244, .82); }
.team-facts { list-style: none; margin: var(--space-5) 0 0; padding: 0; display: grid; gap: var(--space-3); }
.team-facts li { display: flex; align-items: center; gap: var(--space-3); color: rgba(231, 236, 244, .88); }
.team-facts svg { width: 18px; height: 18px; color: var(--accent); flex: none; }

/* 19c. CTA-Checkmark-Zeile unter den Haupt-CTAs (Hero, Team, Abschluss-CTA) */
.cta-checks { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5);
  margin: var(--space-4) 0 0; padding: 0; font-size: var(--fs-small); color: var(--text-muted); }
.cta-checks li { display: inline-flex; align-items: center; gap: var(--space-2); }
.cta-checks svg { width: 15px; height: 15px; color: var(--accent-strong); flex: none; }
.home-dark .cta-checks, .cta-checks--onblue { color: rgba(255, 255, 255, .85); }
.home-dark .cta-checks svg, .cta-checks--onblue svg { color: var(--accent); }
.cta .cta-checks { justify-content: center; }
