/* ============================================================
   RANDORI PRO · Standort Lübars v2 „High End" — Politur-Schicht
   Additiv zu tokens.css + standort.css + luebars.css und zur
   geteilten v3-Schicht (standort-v3.css: Progress, Glas-Header,
   [data-rv]-Reveals, Kicker-Linien, Button-Glanz, Pfadlinie,
   FAQ-Politur, Trainer-Porträt-Hover). Hier nur die Community-
   Sektionen (c-*) plus die Lübars-Signatur. Keine neuen Farben,
   Schriften oder Komponenten. Aktiv ausschließlich unter body.v3.
   Alle Animationen respektieren prefers-reduced-motion.
   ============================================================ */

/* ── Glasleiste in warmem Dunkelrot (Community: nie Kühlschwarz) ── */
.v3 .s-header.is-scrolled { background: rgba(45, 8, 14, 0.74); }

/* ── Hero · sanfte Parallax (JS gleitet .c-hero__bg mit Faktor 0.14 nach).
   Bleed nach oben verhindert Kanten; das Overlay wandert vom Bild auf die
   Sektion und bleibt damit ortsfest. ── */
.v3 .c-hero__bg { will-change: transform; top: -14%; }
.v3 .c-hero__bg::after { display: none; }
.v3 .c-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(58,12,18,0.30) 0%, rgba(58,12,18,0.10) 26%, rgba(58,12,18,0.62) 72%, rgba(45,8,14,0.92) 100%), linear-gradient(90deg, rgba(58,12,18,0.55) 0%, rgba(58,12,18,0.10) 46%, transparent 70%); }
@media (max-width: 900px) { .v3 .c-hero::after { background: linear-gradient(180deg, rgba(58,12,18,0.32) 0%, rgba(58,12,18,0.20) 30%, rgba(45,8,14,0.94) 100%); } }

/* ── Stimmen · echte Google-Zitate mit Symbolfoto ───────────── */
.v3 .c-voice__q { font-size: clamp(20px, 2.6vw, 34px); }
.c-voice__stars { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; }
.c-voice__stars .st { color: var(--rp-rot-akzent); font-size: 15px; letter-spacing: 3px; }
.c-voice__stars .src { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rp-grau-muted); }
.c-voice__cap { position: absolute; left: 10px; bottom: 10px; z-index: 2; font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-anker); background: rgba(255,255,255,0.85); padding: 5px 10px; border-radius: 999px; }

/* ── Karten · sanfte Hover-Lifts (Community) ───────────────── */
.v3 .c-feature { transition: transform 600ms var(--v3-ease), box-shadow 600ms var(--ease-standard); }
.v3 .c-feature:hover { transform: translateY(-6px); box-shadow: 0 32px 64px -32px rgba(45, 8, 14, 0.55); }
.v3 .c-hood__media { transition: box-shadow 500ms var(--ease-standard); }
.v3 .c-hood__media:hover { box-shadow: 0 40px 100px -44px rgba(109, 23, 35, 0.6); }

/* ── Testimonial-Karussell · Pfeile mit weichem Lift ───────── */
.v3 .c-voices__arrow { transition: background 220ms, border-color 220ms, color 220ms, transform 220ms var(--v3-ease); }
.v3 .c-voices__arrow:hover { transform: translateY(-2px); }

/* ── Platzhalter-Porträts · ruhiger, lesbarer Kontrast ─────── */
.v3 .c-voice__portrait--ph span,
.v3 .s-trainer__portrait--ph span { box-shadow: 0 6px 18px -10px rgba(45, 8, 14, 0.5); }

/* ============================================================
   MOTION — nur bei prefers-reduced-motion: no-preference
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {

  /* Hero-Entrance · gestaffeltes Aufsteigen */
  .v3 .c-welcome { animation: lb-rise 800ms var(--v3-ease) 120ms backwards; }
  .v3 .c-hero .s-kicker { animation: lb-rise 900ms var(--v3-ease) 300ms backwards; }
  .v3 .c-hero .s-kicker::before { animation: lb-line 800ms var(--v3-ease) 660ms backwards; }
  .v3 .c-hero__h1 { animation: lb-rise 1000ms var(--v3-ease) 420ms backwards; }
  .v3 .c-hero__row { animation: lb-rise 1000ms var(--v3-ease) 600ms backwards; }

  /* ── SIGNATUR · „Eine Schule, in der man sich kennt" ──────────
     Die Community-Signatur dieser Seite: der Schriftzug blendet ein
     und das Wort „kennt" leuchtet einmalig warm auf. (Die Avatare
     davor sind im Oktober 2026 entfallen.)
     Kein Loop — eine einzige Geste beim Laden. */
  .v3 .c-welcome__txt { animation: lb-fade 700ms var(--ease-standard) 720ms backwards; }
  .v3 .c-welcome__txt b { animation: lb-glow 1400ms var(--ease-standard) 1180ms backwards; }

  @keyframes lb-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes lb-fade { from { opacity: 0; } to { opacity: 1; } }
  @keyframes lb-line { from { width: 0; } }
  /* „kennt" leuchtet einmalig von Weiß auf Beige zurück */
  @keyframes lb-glow {
    0%   { color: #fff; }
    28%  { color: #fff; }
    64%  { color: var(--rp-beige); }
    100% { color: var(--rp-beige); }
  }

  /* ── Nachbarschaft · Porträt setzt sich beim Reveal sanft (endlich) ──
     Begleitet die „zweites Wohnzimmer"-Erzählung, läuft genau einmal. */
  .v3 [data-rv].c-hood__media img { transform: scale(1.05); transition: transform 1000ms var(--v3-ease); }
  .v3 [data-rv].c-hood__media.is-in img { transform: scale(1); }

  /* ── Schlüsselwörter · warme Unterstreichung zieht sich einmalig ──
     „zuhause" im Hero nach der Entrance, „jeder gesehen wird" in den
     Kennzahlen beim Scroll-Reveal (Klasse u-line-in aus luebars-v3.js). */
  .v3 .c-hero__h1 em { background: linear-gradient(var(--rp-beige), var(--rp-beige)) no-repeat left 96% / 100% 3px; padding-bottom: 3px; animation: lb-underline 700ms var(--v3-ease) 1450ms backwards; }
  .v3 .c-stat__h em { background: linear-gradient(var(--rp-beige), var(--rp-beige)) no-repeat left 98% / 0% 3px; padding-bottom: 3px; transition: background-size 800ms var(--v3-ease) 260ms; }
  .v3 .c-stat__h.u-line-in em { background-size: 100% 3px; }
  @keyframes lb-underline { from { background-size: 0% 3px; } }
}

/* ============================================================
   REVIEW-POLISH (Phase 2) · ausschließlich Lübars-scoped Overrides.
   Geteilte Dateien (standort.css/-v3) bleiben unangetastet.
   ============================================================ */

/* G6 · CTA-Microcopy „Kostenlos & unverbindlich" direkt unter den Buttons */
.s-cta-micro { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.82); margin: 2px 0 0; }
.s-final__micro { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rp-beige); margin: 20px 0 0; }

/* G3 · Sektions-Rhythmus auf eine fluide Skala vereinheitlichen
   (identisch zu den c-*-Community-Sektionen: clamp(96px,12vw,150px)) —
   ersetzt die festen 150/160px + den harten 90px-Sprung bei ≤900px. */
.v3 .s-trainers,
.v3 .s-steps--luebars,
.v3 .s-facts,
.v3 .s-faq--warm,
.v3 .s-others--light {
  padding-top: clamp(96px, 12vw, 150px);
  padding-bottom: clamp(96px, 12vw, 150px);
}

/* G5 · Hero-Fokus auf Eingang & Schild des echten Lübars-Gebäudes
   (53% statt 46% kompensiert den -14%-Parallax-Bleed) */
.v3 .c-hero__bg img { object-position: center 53%; }

/* G4 · Scroll-Reveals von 850ms auf ~380ms straffen; Button-Glanz-Sweep aus
   (reines Lift/Aufhellen bleibt). Hero-Parallax kehrt bewusst sanft zurück
   (Faktor 0.14, ortsfestes Overlay — siehe oben + luebars-v3.js). */
.v3 [data-rv] { transition-duration: 380ms; }
.v3 .s-btn::before { display: none; }

/* Fakten · Label/Wert auf sehr schmalen Screens stapeln statt fixe 130px-Spalte */
@media (max-width: 480px) {
  .s-facts__item { grid-template-columns: 1fr; gap: 6px; }
}

/* Stimmen-Dots · größere Touch-Trefferfläche (≥44px), Optik unverändert */
.c-voices__dot { position: relative; }
.c-voices__dot::after { content: ""; position: absolute; inset: -18px; }
/* Die 45-px-Flächen lagen bei gap: 10px (aus luebars.css) fast vollständig
   übereinander — gemessen blieben je Punkt nur 19–25 px übrig, weil die
   Nachbarn sich gegenseitig zurechtschneiden. Der aktive Punkt skaliert
   zudem per transform, das ::after skaliert mit (45 → 56 px). 42 px Abstand
   hält auch dann alle Trefferflächen überlappungsfrei bei ≥45 px. */
.c-voices__dots { gap: 42px; }
/* polish.css setzt für :focus-visible global border-radius: 2px — das machte
   den Punkt bei Tastaturbedienung eckig. */
.c-voices__dot:focus-visible { border-radius: 999px; }
