/* ===========================================================================
   LEVIORA · Design Tokens
   Alle Marken-Entscheidungen an einer Stelle. Eine Farbe ändern = eine Zeile.
   Kontraste geprüft gegen WCAG 2.1 AA (siehe Kommentare).
   ========================================================================= */

:root {
  /* ---- Gold -------------------------------------------------------------
     Marken-Gold ist eine FLÄCHE, nie Textfarbe auf Hell.
     Auf Gold steht immer --ink. Ausnahmslos.                              */
  --gold:            #DD9E1D;   /* Ink darauf .............. 8,01:1  AA ✓ */
  --gold-champagne:  #E8C877;   /* auf --ink .............. 11,91:1  AA ✓ */
  --gold-sand:       #F5E7C4;   /* Kartenflächen, Hover ....... dekorativ */
  --gold-deep:       #7A5410;   /* TEXT-Gold auf Hell: Weiß 6,77:1 · Creme 6,38:1
                                   · Sand 5,51:1 ......... alle  AA ✓ */
  --gold-line:       #E8D9B4;   /* Trenner, Rahmen ............ dekorativ */

  /* ---- Basis ------------------------------------------------------------ */
  --ink:             #101010;   /* auf --cream ............ 17,70:1  AA ✓ */
  --graphite:        #4A4A4A;   /* auf --cream ............. 8,36:1  AA ✓ */
  --cream:           #FBF8F1;   /* Grundfläche, nicht reines Weiß         */
  --paper:           #FFFFFF;   /* Karten auf Creme                       */

  /* ---- Status ----------------------------------------------------------- */
  --success:         #2F6B4F;   /* auf Weiß ................ 5,90:1  AA ✓ */
  --error:           #A32020;   /* auf Weiß ................ 6,50:1  AA ✓ */

  /* ---- Semantische Zuweisungen ----------------------------------------- */
  --bg:              var(--cream);
  --text:            var(--ink);
  --text-muted:      var(--graphite);
  --link:            var(--gold-deep);
  --focus:           var(--gold-deep);

  /* ---- Typografie ------------------------------------------------------- */
  --font-display: "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --font-body:    "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --fs-h1:      clamp(2.25rem, 5.5vw, 4.5rem);   /* mobil kleiner: sonst 4 Zeilen */
  --fs-h2:      clamp(2rem, 3.5vw, 3rem);
  --fs-h3:      clamp(1.25rem, 1.8vw, 1.5rem);
  --fs-kicker:  0.9375rem;   /* 15px — uppercase + gesperrt braucht Größe */
  --fs-body:    1.125rem;      /* 18px — nie kleiner (Zielgruppe 65+)      */
  --fs-lead:    1.25rem;
  --fs-btn:     1rem;
  --fs-small:   0.9375rem;     /* 15px — Untergrenze für Legal             */

  --lh-h1: 1.14;  --lh-h2: 1.2;   --lh-h3: 1.35;
  --lh-body: 1.7; --lh-lead: 1.65;

  --measure: 68ch;             /* max. Zeilenlänge                         */

  /* ---- Raster & Abstände ------------------------------------------------ */
  --wrap:      1200px;
  --wrap-nar:  860px;
  --gutter:    clamp(1.25rem, 4vw, 3rem);

  --s-1: .25rem; --s-2: .5rem;  --s-3: .75rem; --s-4: 1rem;
  --s-5: 1.5rem; --s-6: 2rem;   --s-7: 3rem;   --s-8: 4rem;
  --s-9: clamp(4rem, 9vw, 7rem);   /* Sektions-Innenabstand vertikal       */

  /* ---- Form ------------------------------------------------------------- */
  --r-sm: 8px; --r-md: 14px; --r-lg: 24px; --r-pill: 999px;
  --tap: 48px;                 /* Mindestgröße klickbarer Ziele            */

  --shadow-sm: 0 1px 2px rgba(16,16,16,.06), 0 2px 8px rgba(16,16,16,.05);
  --shadow-md: 0 4px 12px rgba(16,16,16,.07), 0 12px 32px rgba(16,16,16,.07);
  --shadow-lg: 0 8px 24px rgba(16,16,16,.09), 0 24px 64px rgba(16,16,16,.10);
  --shadow-gold: 0 8px 28px rgba(221,158,29,.28);

  /* ---- Bewegung --------------------------------------------------------- */
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --t-fast: 160ms; --t-base: 280ms; --t-slow: 600ms;
  --feather-float: 7s;
}

/* Bewegung ist eine Zutat, keine Bedingung: alles muss auch still funktionieren. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
