/* ============================================================
   RANDORI-PRO · Hapkido „High End"
   Additive Politur-Schicht. Ergänzt tokens.css + hapkido.css und
   die geteilte bold-v3.css (Progress, Glas-Header, [data-rv]-Reveals,
   Kicker-Linien, Button-Glanz). Seitenspezifische Deltas: ruhige
   Hover-Lifts, die Count-up-Steuerung und das EINE Signatur-Element
   (Kreis-Prinzip) auf dem Dunkelrot von Sektion 2.

   Stimmung 4 „Traditionell & Ruhig" → bewusst langsame, fließende,
   meditative Taktung. Kein Tempo, kein Knall. Respektiert
   prefers-reduced-motion. Aktiv ausschließlich unter body.bv3.hap.
   ============================================================ */

:root { --hap-ease-calm: cubic-bezier(0.22, 0.61, 0.36, 1); }

/* ── Ruhige Hover-Lifts (reine Zustandswechsel, immer aktiv) ── */
.bv3.hap .hap-hero__media { transition: box-shadow 600ms var(--ease-standard); }
.bv3.hap .hap-hero__media:hover { box-shadow: 0 50px 120px -54px rgba(45,26,18,0.66); }
.bv3.hap .hap-block,
.bv3.hap .hap-for { transition: border-color 320ms var(--ease-standard), transform 560ms var(--hap-ease-calm), box-shadow 560ms var(--ease-standard); }
.bv3.hap .hap-block:hover,
.bv3.hap .hap-for:hover { border-color: var(--rp-rot-akzent); transform: translateY(-4px); box-shadow: 0 28px 60px -36px rgba(45,26,18,0.42); }
.bv3.hap .hap-loc__card { transition: box-shadow 560ms var(--ease-standard), transform 560ms var(--hap-ease-calm); }
.bv3.hap .hap-loc__card:hover { transform: translateY(-4px); box-shadow: 0 50px 120px -56px rgba(45,26,18,0.6); }

/* ── FAQ · Frage färbt sich bei Hover ──────────────────────── */
.bv3.hap .b-q__btn h3 { transition: color 220ms var(--ease-standard); }
.bv3.hap .b-q__btn:hover h3 { color: var(--rp-rot-akzent); }
.bv3.hap .b-faq--light .b-q__btn:hover h3 { color: var(--rp-rot-anker); }

/* ── Signatur „Kreis-Prinzip" · Grundzustand IMMER sichtbar ───
   Ohne JS / reduced motion: Pfad voll gezeichnet (JS füllt das
   stroke-dasharray nicht), Prinzipien aktiv, Pfeil-Punkt verborgen.
   Mit JS startet der Pfad zusammengezogen und zeichnet sich
   scroll-getrieben. */
.hap-circle__dot { opacity: 0; }
.hap-princ.is-on { border-color: rgba(220,13,29,0.5); background: rgba(220,13,29,0.07); }

@media (prefers-reduced-motion: no-preference) {

  /* Reveals bewusst langsamer & weicher als der Bold-Standard */
  .bv3.hap [data-rv] { transition: opacity 1100ms var(--hap-ease-calm), transform 1100ms var(--hap-ease-calm); transform: translateY(26px); }

  /* JS-gesteuert: erst wenn .is-armed gesetzt ist, zieht sich der
     Pfad zusammen — sonst bliebe er bei deaktiviertem JS leer. */
  .bv3.hap.js-motion .hap-circle.is-armed .hap-circle__dot { opacity: 1; }

  /* Count-up-Kennzahlen · „über"/„rund"-Präfix & Suffix folgen der Zahl */
  .bv3.hap [data-rv] .hap-stat__n .pre,
  .bv3.hap [data-rv] .hap-stat__n .suf { opacity: 0; transition: opacity 700ms var(--ease-standard) 1000ms; }
  .bv3.hap [data-rv].is-in .hap-stat__n .pre,
  .bv3.hap [data-rv].is-in .hap-stat__n .suf { opacity: 1; }
}
