/* tokens.css - company-registration-austria.com
 *
 * Every value here is MEASURED from drafts/design-harvest/deriskpartners.io/, not chosen by eye.
 * The contract is DESIGN.md. Do not add a value that is not in that file, and do not change one
 * here without changing it there: DESIGN.md is the single source of visual truth.
 *
 * Three traps recorded in DESIGN.md that this file already accounts for:
 *  1. The reference's own declared custom properties (--theme-primary-color: #3270F5, PT Serif) are
 *     page-builder defaults that its real design overrides. The MEASURED values below are authoritative.
 *  2. Every measured button radius is 0. Only text inputs carry a radius.
 *  3. The footer is white with black text, not inverse. The CTA band is the only inverse surface.
 */

:root {
  /* ---- Colour. The hairline is the design: #000 carries a border weight of 34,065
     against a background weight of 4,823 in the harvest. Rules, not boxes. ---- */
  --bg:              #ffffff;
  --surface:         #fafafa;
  --ink:             #1a1a1a;
  --ink-strong:      #000000;
  --muted:           #6b7280;
  /* AUSTRIA'S OWN PALETTE, 2026-09-18, replacing the reference's blue #0380ff.
     `references/design-archetypes.md` §3 sets Austria's accent to the flag red and makes a secondary
     "heritage" colour MANDATORY, because Austria, Monaco and Switzerland all fly red and white and
     this batch builds all three. Monaco takes azure, so Austria takes Habsburg gold.
     Contrast measured on white, not assumed:
       #ED2939  4.22:1  large text and UI only  -> the display italic, rules, markers
       #C4121F  6.08:1  passes for body text    -> links at reading size
       #B8912B  2.95:1  decorative only         -> the kicker rule, secondary markers
     The rule also says: never the flag as a background, and keep the greys COOL. Both are honoured;
     --muted #6b7280 is already a cool grey. */
  --accent:          #ED2939;
  --accent-ink:      #C4121F;
  --heritage:        #B8912B;
  --accent-contrast: #ffffff;
  --rule:            #000000;
  --rule-soft:       #e5e7eb;
  --error:           #fe0000;

  /* ---- Type. Self-hosted, see output/fonts/fonts.css. No third-party font may be
     linked: /cookie-policy/ publishes that everything is served from this domain. ---- */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-text:    "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Display is weight 300 with negative tracking and line-height at or just above 1.0.
     A heavier weight or looser tracking loses the reference's look entirely. */
  /* Top end 92px, measured off the reference. The BOTTOM end is set by the longest German compound
     this site prints: at 44px on a 390px screen "Zweigniederlassung" cannot fit on one line and
     broke as "Zweigniederlassun / g". 33px fits it whole. */
  --t-display:      clamp(2.0625rem, 8.5vw, 5.75rem);
  --t-display-lh:   1.02;
  --t-display-ls:   -0.03em;
  --t-h2:           clamp(2.125rem, 4vw, 3.5rem);
  --t-h2-lh:        1.0;
  --t-h2-ls:        -0.025em;
  --t-h3:           clamp(1.625rem, 2.6vw, 2.6875rem);
  --t-h3-lh:        1.06;
  --t-h3-ls:        -0.02em;
  --t-h4:           1.375rem;
  --t-h4-lh:        1.2;
  --t-lede:         1.25rem;
  --t-lede-lh:      1.5;
  --t-body:         1.0625rem;
  --t-body-lh:      1.65;
  --t-small:        0.9375rem;
  --t-small-lh:     1.55;
  --t-label:        0.75rem;
  --t-label-lh:     1.2;
  --t-label-ls:     0.14em;

  /* ---- Space. Measured base 4px; 74 percent of values are multiples of 4. ---- */
  --u:   4px;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 120px;          /* the measured desktop section rhythm */
  --section-y: 80px;
  --section-y-mobile: 72px;

  /* ---- Shape. The reference has exactly one shadow. We use none. ---- */
  --radius:       0;
  --radius-input: 3px;
  --shadow:       none;
  --rule-weight:  1px;

  /* ---- Motion. Measured: 0.4s ease dominant (128 uses), colour 0.2s, background 0.3s. ---- */
  --t-fast: .2s ease;
  --t-base: .3s ease;
  --t-slow: .4s ease;

  /* ---- Layout. Measured containers 1320 and 1280 dominant, 1600 for full bleed. ---- */
  --container:      1320px;
  --container-wide: 1600px;
  /* 46rem was ~62 characters: a fine measure and a bad column. It sat at no particular fraction of
     the 1320px grid, so a prose section ended 584px short of a card section and the right edge of
     the page jumped between them. 55rem is ~74 characters, still inside the comfortable band, and
     it reads as a decision. Measured against the reference 2026-09-18. */
  --container-prose: 55rem;     /* our own: the reference has no long-form page */
  --gutter:         24px;
  --header-h:       72px;
}

@media (max-width: 767px) {
  :root {
    --gutter:    16px;
    --header-h:  64px;
    --section-y: var(--section-y-mobile);
  }
}

/* The reference has no dark mode and this is a light editorial system.
   Respect a reduced-motion request rather than inventing a dark theme. */
@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 0s; --t-base: 0s; --t-slow: 0s; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
