/* ==========================================================================
   Zerbetto Tech Hub — Design Tokens
   Single source of truth for color, type, spacing, motion and elevation.
   Values here are the CSS-side defaults; data/settings.json can override
   the theme colors at runtime via JS (see js/app.js applyTheme()).
   ========================================================================== */

:root {
  /* ---- Brand color ---- */
  --color-primary: #0a3d91;
  --color-primary-dark: #062a66;
  --color-accent: #2e78ff;
  --color-accent-soft: #eaf1ff;
  /* Sampled directly from the client's logo artwork, used everywhere the
     wordmark appears so "Zerbetto Gianfranco S.r.l." reads in one color. */
  --color-brand-text: #0b1e45;

  /* ---- Neutrals ---- */
  --color-ink: #0b1220;
  --color-ink-soft: #4a5468;
  --color-ink-faint: #8892a4;
  --color-surface: #ffffff;
  --color-surface-alt: #f8f9fc;
  --color-background: #f5f7fb;
  --color-border: #e6e9f2;
  --color-border-strong: #d6dbe8;

  /* ---- Semantic ---- */
  --color-success: #1aa37a;
  --color-warning: #e8862e;
  --color-danger: #d9455f;

  /* ---- Surfaces / glass ---- */
  --glass-bg: rgba(255, 255, 255, 0.68);
  --glass-border: rgba(255, 255, 255, 0.45);
  --glass-blur: 20px;
  --overlay-scrim: rgba(6, 12, 28, 0.55);

  /* ---- Typography ---- */
  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;

  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-base: 1rem;
  --fs-md: 1.125rem;
  --fs-lg: 1.375rem;
  --fs-xl: 1.75rem;
  --fs-2xl: 2.25rem;
  --fs-3xl: 3rem;
  --fs-4xl: 3.75rem;

  --lh-tight: 1.1;
  --lh-snug: 1.3;
  --lh-normal: 1.55;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* ---- Spacing scale (4px base) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;

  /* ---- Radius ---- */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-xl: 28px;
  --radius-pill: 999px;

  /* ---- Elevation (soft, diffuse) ---- */
  --shadow-xs: 0 1px 2px rgba(10, 20, 45, 0.04);
  --shadow-sm: 0 2px 8px rgba(10, 20, 45, 0.06);
  --shadow-md: 0 8px 24px rgba(10, 20, 45, 0.08);
  --shadow-lg: 0 16px 48px rgba(10, 20, 45, 0.12);
  --shadow-xl: 0 24px 64px rgba(10, 20, 45, 0.16);
  --shadow-focus: 0 0 0 4px rgba(46, 120, 255, 0.18);

  /* ---- Motion ---- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast: 160ms;
  --dur-base: 280ms;
  --dur-slow: 480ms;
  --dur-slower: 900ms;

  /* ---- Layout ---- */
  --container-max: 1280px;
  --header-height: 72px;
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
  --z-gate: 500;
}
