/* =============================================================
   DESIGN TOKENS — TenSolve
   Paleta editorial/legal. Rojo para urgencia, azul oscuro para
   confianza legal. OFF-WHITE como base (no blanco puro).
   ============================================================= */

:root {
  /* ---------- Colores ---------- */
  --bg:         #FAFAFA;       /* off-white — más cálido que #FFF */
  --bg-alt:     #F2F2F0;       /* secciones alternativas */
  --bg-dark:    #0A0A0A;       /* secciones invertidas */
  --bg-dark-2:  #111111;       /* tarjetas dentro de sección dark */

  --text:       #0A0A0A;       /* casi negro — más suave que #000 */
  --text-muted: #5A5A5A;       /* texto secundario */
  --text-light: #8A8A8A;       /* placeholders, metadata */
  --text-inv:   #F5F5F0;       /* texto sobre fondo oscuro */

  --accent:     #5985d6;       /* rojo editorial — CTA, warnings, cifras de pérdida */
  --accent-dark:#1e5fd8;       /* hover del accent */
  --secondary:  #1D3557;       /* azul oscuro legal — confianza, documentación */
  --secondary-light: #2E4D7B;  /* hover del secondary */
  --success:    #06D6A0;       /* verde neón — actas válidas, éxito */
  --success-dark: #04A880;

  --border:     #E0E0E0;       /* gris claro — bordes suaves */
  --border-dark:#2A2A2A;       /* bordes en fondo oscuro */

  /* ---------- Tipografía ---------- */
  /* Decisión: Space Grotesk para display (personalidad editorial),
     DM Sans para body (legible, neutro), JetBrains Mono para
     elementos técnicos/legales. */
  --font-display: 'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --font-body:    'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', 'Courier New', monospace;

  /* ---------- Escala tipográfica (clamp = fluid) ---------- */
  --text-xs:   0.75rem;   /* 12px */
  --text-sm:   0.875rem;  /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg:   1.125rem;  /* 18px */
  --text-xl:   1.25rem;   /* 20px */
  --text-2xl:  1.5rem;    /* 24px */
  --text-3xl:  1.875rem;  /* 30px */
  --text-4xl:  2.25rem;   /* 36px */
  --text-5xl:  clamp(2.5rem, 5vw, 3.75rem);   /* 40–60px */
  --text-6xl:  clamp(3rem, 7vw, 5.5rem);      /* 48–88px */
  --text-hero: clamp(3.5rem, 9vw, 7rem);      /* 56–112px — BRUTAL */

  /* ---------- Pesos ---------- */
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold: 600;
  --weight-bold:    700;
  --weight-black:   800;

  /* ---------- Espaciado (base 8px) ---------- */
  --space-1:  0.5rem;    /* 8px */
  --space-2:  1rem;      /* 16px */
  --space-3:  1.5rem;    /* 24px */
  --space-4:  2rem;      /* 32px */
  --space-5:  3rem;      /* 48px */
  --space-6:  4rem;      /* 64px */
  --space-7:  6rem;      /* 96px */
  --space-8:  8rem;      /* 128px */

  /* ---------- Layout ---------- */
  --container:      1200px;
  --container-wide: 1400px;
  --container-narrow: 800px;
  --gutter:    clamp(1.25rem, 4vw, 2.5rem);
  --radius-sm: 4px;
  --radius:    8px;
  --radius-lg: 16px;

  /* ---------- Sombras ---------- */
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow:     0 4px 16px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
  --shadow-lg:  0 12px 40px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.06);
  --shadow-xl:  0 24px 64px rgba(0,0,0,0.16), 0 8px 24px rgba(0,0,0,0.08);
  --shadow-accent: 0 8px 32px rgba(60, 57, 230, 0.24);
  --shadow-secondary: 0 8px 32px rgba(29, 53, 87, 0.24);

  /* ---------- Transiciones ---------- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);
  --ease:     cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast:   150ms;
  --duration:        250ms;
  --duration-slow:   400ms;

  /* ---------- Z-index scale ---------- */
  --z-below:   -1;
  --z-base:     0;
  --z-raised:  10;
  --z-overlay: 20;
  --z-dropdown:30;
  --z-sticky:  40;
  --z-modal:   50;
  --z-toast:   60;
}
