/* Big 5 ENERGY Design Tokens v2 - Mobile-first */

:root {
  /* Brand colors */
  --color-primary: #2D6B68;
  --color-primary-dark: #1F4F4D;
  --color-primary-light: #4A8783;
  --color-primary-bg: #F0F7F6;
  --color-primary-border: #D0E8E6;

  /* Division accents (per tag e bordi piccoli, mai riempimenti ampi) */
  --color-div-permitting: #2D6B68;
  --color-div-electrical: #1B4A6B;
  --color-div-safety: #B8541B;
  --color-div-legal: #5C4A8B;
  --color-div-financial: #1D5E3D;

  /* Text */
  --color-text-heading: #061B31;
  --color-text-body: #425466;
  --color-text-muted: #5A636E;
  --color-text-inverse: #FFFFFF;

  /* Surfaces */
  --color-surface: #FFFFFF;
  --color-surface-alt: #F8F9FB;
  --color-surface-dark: #0A1F35;
  --color-border: #E8EAF0;
  --color-border-strong: #CBD5E1;

  /* Status */
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-error: #EF4444;

  /* Typography stack
     Font custom (Satoshi, General Sans) sono fallback aspirazionali.
     System stack garantisce rendering immediato senza fetch esterni.
     Per self-hosting v2: aggiungere @font-face in base.css. */
  --font-sans: 'Satoshi', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display: 'General Sans', 'Satoshi', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Monaco, 'Cascadia Code', Consolas, monospace;

  /* Font sizes mobile-first (xs/sm default) */
  --fs-display: 36px;
  --fs-h1: 28px;
  --fs-h2: 24px;
  --fs-h3: 20px;
  --fs-h4: 18px;
  --fs-body-lg: 16px;
  --fs-body: 15px;
  --fs-caption: 13px;
  --fs-label: 11px;

  /* Line heights */
  --lh-tight: 1.1;
  --lh-snug: 1.3;
  --lh-normal: 1.5;
  --lh-relaxed: 1.6;

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

  /* Borders */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 12px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(6, 27, 49, 0.04);
  --shadow-md: 0 4px 12px rgba(6, 27, 49, 0.06);
  --shadow-lg: 0 8px 24px rgba(6, 27, 49, 0.10);
  --shadow-xl: 0 16px 40px rgba(6, 27, 49, 0.14);

  /* Layout */
  --container-max: 1200px;
  --container-max-2xl: 1320px;
  --navbar-height: 64px;

  /* Breakpoints (token leggibili, le @media usano valori espliciti) */
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;
  --bp-2xl: 1536px;

  /* Motion */
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 400ms;
  --easing-out: cubic-bezier(0.16, 1, 0.3, 1);
  --easing-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

/* Tablet portrait e oltre */
@media (min-width: 768px) {
  :root {
    --fs-display: 48px;
    --fs-h1: 36px;
    --fs-h2: 32px;
    --fs-h3: 22px;
    --fs-h4: 19px;
    --fs-body-lg: 17px;
    --fs-body: 16px;
  }
}

/* Tablet landscape e laptop */
@media (min-width: 1024px) {
  :root {
    --fs-display: 56px;
    --fs-h1: 42px;
    --fs-h2: 36px;
    --fs-h3: 24px;
  }
}

/* Desktop standard */
@media (min-width: 1280px) {
  :root {
    --fs-display: 64px;
    --fs-h1: 48px;
    --fs-h2: 40px;
  }
}

/* Rispetto preferenze utente per riduzione movimento */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration-base: 0ms;
    --duration-slow: 0ms;
  }
}
