/* ==========================================================================
   fortizb · tokens.css
   Sistema de diseño: paleta, tipografía, espaciado y movimiento.
   Única fuente de verdad visual. No escribir colores sueltos en otras hojas.
   ========================================================================== */

:root {
  /* --- Paleta de marca -------------------------------------------------- */
  --c-navy: #001023;        /* Azul marino profundo · fondo principal      */
  --c-gray: #a6a6a6;        /* Gris del logotipo · identidad y detalles    */
  --c-white: #ffffff;       /* Blanco · contraste y énfasis                */
  --c-black: #000000;       /* Negro · bordes y separadores                */
  --c-light: #d9dde3;       /* Gris claro · texto secundario               */

  /* --- Superficies derivadas del azul marino ---------------------------- */
  --surface-0: var(--c-navy);
  --surface-1: #00172e;     /* tarjetas y paneles                          */
  --surface-2: #001f3a;     /* tarjetas en hover, campos de formulario     */
  --surface-3: #00294a;     /* elemento elevado puntual                    */

  /* Gris claro al 20%: fondo de apoyo para bloques de texto destacados.   */
  --surface-highlight: rgba(217, 221, 227, 0.2);

  /* --- Líneas y separadores --------------------------------------------- */
  --line: rgba(166, 166, 166, 0.16);
  --line-strong: rgba(166, 166, 166, 0.34);
  --line-hair: rgba(0, 0, 0, 0.55);   /* negro azulado, separadores sutiles */
  --grid-line: rgba(166, 166, 166, 0.07);

  /* --- Texto ------------------------------------------------------------- */
  --text-primary: var(--c-white);
  --text-body: var(--c-light);
  --text-muted: var(--c-gray);
  --text-inverse: var(--c-navy);

  /* --- Estados -----------------------------------------------------------
     Derivados únicamente de la paleta de marca: el foco usa blanco (máximo
     contraste sobre el azul) y el error se apoya en el gris claro junto a un
     marcador "!"; nunca solo en el color. */
  --focus-ring: var(--c-white);
  --state-error: var(--c-light);
  --state-error-line: var(--c-gray);

  /* --- Tipografía -------------------------------------------------------- */
  --font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue",
    Arial, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Roboto Mono",
    Menlo, Consolas, monospace;

  --fs-display: clamp(2.4rem, 1.1rem + 4.6vw, 4.125rem);
  --fs-h2: clamp(1.85rem, 1.2rem + 2.3vw, 2.85rem);
  --fs-h3: clamp(1.1rem, 1rem + 0.35vw, 1.25rem);
  --fs-lead: clamp(1.02rem, 0.98rem + 0.28vw, 1.18rem);
  --fs-body: 1rem;
  --fs-sm: 0.9rem;
  --fs-xs: 0.78rem;

  --lh-tight: 1.08;
  --lh-snug: 1.25;
  --lh-body: 1.7;

  --ls-tight: -0.03em;
  --ls-eyebrow: 0.18em;

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

  /* --- Espaciado --------------------------------------------------------- */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 2.75rem;
  --sp-8: 4rem;
  --sp-9: 6rem;

  --section-py: clamp(4.5rem, 3rem + 7vw, 9rem);
  --gutter: clamp(1.25rem, 0.6rem + 3vw, 2.5rem);
  --gap-grid: clamp(1rem, 0.6rem + 1.4vw, 1.5rem);

  /* --- Estructura -------------------------------------------------------- */
  --container: 1200px;
  --container-narrow: 720px;
  --header-h: 74px;

  /* --- Bordes y elevación ------------------------------------------------ */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-pill: 999px;

  --shadow-card: 0 1px 0 0 var(--line-hair) inset, 0 12px 32px -24px rgba(0, 0, 0, 0.9);
  --shadow-raised: 0 1px 0 0 rgba(255, 255, 255, 0.04) inset,
    0 18px 44px -28px rgba(0, 0, 0, 0.95);

  /* --- Movimiento -------------------------------------------------------- */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 140ms;
  --dur: 240ms;
  --dur-slow: 520ms;
}

@media (max-width: 860px) {
  :root {
    --header-h: 64px;
  }
}
