/*
  DDSYS — Design tokens
  Fuente única de verdad para color, tipografía, espaciado, radios,
  sombras y movimiento. Ningún componente define un valor "suelto":
  todo se lee desde acá. Si el sistema evoluciona (por ejemplo, la
  Fase 2 con fotografía real), este archivo es el único lugar que
  debería necesitar cambios de fondo.
*/

:root {
  /* Color — marca */
  --color-brand: #577AE1;
  --color-brand-hover: #4569CC;
  --color-brand-ink: #152A56;
  --color-brand-ink-dark: #0E1B38;
  --color-accent: #E8A23D;
  --color-accent-bg: #FBF0DD;
  --color-accent-text: #8A5A12;

  /*
    Rampa tonal de azul de marca. Ningún componente debería volver a
    definir un tono de azul "suelto" (ver Hero Design Review, punto 8):
    todo derivado de #577AE1 se lee desde acá, del más claro (100) al
    más oscuro (900). 500 es el azul institucional, no negociable.
  */
  --blue-100: #EEF2FC;
  --blue-200: #C9D4F5;
  --blue-300: #A3B7ED;
  --blue-400: #7C97EA;
  --blue-500: #577AE1;
  --blue-600: #4569CC;
  --blue-700: #33509E;
  --blue-800: #223870;
  --blue-900: #152A56;

  /* Color — superficies */
  --surface-page: #FFFFFF;
  --surface-alt: #F5F7FC;
  --surface-dark: #0E1B38;
  --surface-card: #FFFFFF;
  --surface-card-border: #E4E8F2;

  /* Color — texto */
  --text-primary: #141B2E;
  --text-secondary: #4A5578;
  --text-muted: #8890AC;
  --text-on-dark-primary: #F5F7FC;
  --text-on-dark-secondary: #A9B3D6;
  /* Antes #7C8AB0 (contraste ~4.97:1, al límite de WCAG AA).
     #96A3C9 da ~6.8:1 sobre --surface-dark, con margen real. */
  --text-on-dark-muted: #96A3C9;
  --text-on-brand: #FFFFFF;

  /* Color — estados semánticos */
  --color-success: #2E9E6D;
  --color-warning: #D98B2B;
  --color-error: #C24444;

  /* Tipografía — familias */
  --font-display: "Space Grotesk", "Segoe UI", sans-serif;
  --font-body: "Inter", "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", "Courier New", monospace;

  /* Tipografía — escala (desktop) */
  --text-h1: 4rem;       /* 64px */
  --text-h2: 2.5rem;     /* 40px */
  --text-h3: 1.5rem;     /* 24px */
  --text-body-lg: 1.1875rem; /* 19px */
  --text-body: 1rem;     /* 16px */
  --text-micro: 0.8125rem;   /* 13px */
  --text-button: 0.9375rem; /* 15px */
  --text-data: 3rem;     /* 48px */

  /* Tipografía — escala (mobile), consumida vía clamp en los componentes */
  --text-h1-mobile: 2.375rem; /* 38px */
  --text-h2-mobile: 1.75rem;  /* 28px */

  /* Tipografía — pesos (solo dos por familia, ver Design System) */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  /* Espaciado — escala base 8px */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem;  /* 8px */
  --space-3: 0.75rem; /* 12px */
  --space-4: 1rem;    /* 16px */
  --space-6: 1.5rem;  /* 24px */
  --space-8: 2rem;    /* 32px */
  --space-10: 2.5rem; /* 40px — salto deliberado entre subtítulo y CTA */
  --space-12: 3rem;   /* 48px */
  --space-16: 4rem;   /* 64px */
  --space-24: 6rem;   /* 96px */
  --space-32: 8rem;   /* 128px */
  --space-40: 10rem;  /* 160px */

  /* Radios */
  --radius-control: 8px;
  --radius-card: 12px;
  --radius-card-lg: 16px;
  --radius-pill: 999px;

  /* Sombras */
  --shadow-card: 0 1px 2px rgba(20, 27, 46, 0.04);
  --shadow-card-hover: 0 8px 24px rgba(20, 27, 46, 0.08);
  --shadow-button-hover: 0 4px 12px rgba(87, 122, 225, 0.25);
  --shadow-button-hover-on-dark: 0 4px 12px rgba(87, 122, 225, 0.35);
  --shadow-cluster: 0 40px 80px rgba(87, 122, 225, 0.15);

  /* Movimiento */
  --ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-signature: cubic-bezier(0.34, 1.56, 0.64, 1);
  --duration-micro: 150ms;
  --duration-state: 250ms;
  --duration-reveal: 500ms;
  --duration-signature: 900ms;

  /* Layout */
  --container-max: 1200px;
  --container-padding: var(--space-16); /* 64px desktop */
  --navbar-height: 80px;
}

@media (max-width: 768px) {
  :root {
    --container-padding: var(--space-4); /* 16px mobile, con margen extra en el layout */
  }
}
