/* tokens.css — design system variables.
   Source of truth: ../../design.md §2, §3.2, §4.1, §4.2, §9.3.
*/

:root {
  /* Colors — finanzfluss.de palette (extracted 2026-06-21): white background,
     deep-navy text/borders, blue accent, light-blue soft surface. Token names
     kept (paper/ink/coral) so the whole system maps 1:1. */
  --color-paper:        #FFFFFF;  /* white — main background */
  --color-paper-soft:   #EDF0FC;  /* light blue — alternating sections / soft fills */
  --color-white:        #FFFFFF;  /* cards (lifted by border + shadow) */
  --color-pink:         #4D6BDD;  /* legacy token → mapped to accent blue */
  --color-pink-soft:    #EDF0FC;  /* legacy token → mapped to light blue */
  --color-ink:          #15284B;  /* deep navy — text, borders, shadows */
  --color-ink-soft:     #3C4A66;  /* secondary navy text */
  --color-ink-mute:     #5B6982;  /* labels/meta — ~4.7:1 on white */
  /* Accent — finanzfluss blue. As a FILL it carries WHITE text (white-on-blue
     ~4.7:1); as accent-coloured TEXT it reads on white (~4.7:1) too. "deep" =
     darker blue for hover; "soft" = light blue for chips/rows. */
  --color-coral:        #4D6BDD;  /* blue — accent */
  --color-coral-deep:   #3A55C0;  /* darker blue — hover + accent text */
  --color-coral-soft:   #EDF0FC;  /* light blue — chips / soft fills */
  --color-success:      #2E7D5B;
  --color-warning:      #C77B3C;
  --color-error:        #B85450;
  --color-border-soft:  #DCE2F0;
  --color-border-ink:   #15284B;

  /* Hard offset shadows — now navy (--color-ink) instead of black, softer and
     on-brand with the finanzfluss navy. */
  --shadow-hard-sm:   3px 3px 0 0 var(--color-ink);
  --shadow-hard-md:   5px 5px 0 0 var(--color-ink);
  --shadow-hard-lg:   7px 7px 0 0 var(--color-ink);
  --shadow-soft-sm:   0 1px 2px rgba(21, 40, 75, 0.08);

  /* Type scale — Outfit everywhere (the finanzfluss typeface). */
  --font-display: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body:    'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'Outfit', ui-monospace, 'Cascadia Mono', Consolas, monospace;

  --font-size-xs:   0.75rem;
  --font-size-sm:   0.875rem;
  --font-size-base: 1rem;
  --font-size-lg:   1.125rem;
  --font-size-xl:   1.5rem;
  --font-size-2xl:  2.25rem;
  --font-size-3xl:  3rem;
  --font-size-4xl:  4.5rem;
  --font-size-5xl:  5.5rem;

  /* Hero display sizes — fluid clamp() so titles auto-fit between 360px and
     1440px+ viewports without 3-step breakpoint cascades. (Pick3-Lessons §1c.) */
  --hero-display-size: clamp(2.5rem, 6.5vw + 0.5rem, 6rem);       /* 40px → 96px */
  --hero-sub-size:     clamp(1.25rem, 1.4vw + 0.75rem, 1.625rem); /* 20px → 26px */

  --line-height-tight:  1.05;
  --line-height-snug:   1.2;
  --line-height-normal: 1.5;
  --line-height-loose:  1.65;

  /* Layout */
  --max-width-content: 68ch;
  --max-width-wide:    1120px;
  --max-width-full:    1320px;

  /* Spacing scale */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Motion tokens */
  --motion-duration-instant: 80ms;
  --motion-duration-fast:    120ms;
  --motion-duration-base:    200ms;
  --motion-duration-slow:    320ms;
  --motion-duration-reveal:  500ms;
  --motion-duration-flip:    280ms;

  --motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --motion-ease-entrance: cubic-bezier(0.0, 0, 0.2, 1);
  --motion-ease-exit:     cubic-bezier(0.4, 0, 1, 1);
  --motion-ease-flip:     cubic-bezier(0.6, 0, 0.3, 1);

  /* Header height */
  --site-header-h:        64px;
  --site-header-h-desktop: 80px;
}

@media (min-width: 1024px) {
  :root {
    --site-header-h: 80px;
  }
}
