/* =========================================================================
   variables.css — Design tokens de Alcanalytics
   Fuente de verdad: Manual de marca. Colores, degradado, tipografía, espaciado,
   contenedores, radios, sombras, movimiento, z-index y breakpoints.
   ========================================================================= */

:root {
  color-scheme: light;

  /* ---- Constantes de marca (idénticas en ambos temas) ---- */
  --color-cyan: #4ABEDD;      /* Azul cian */
  --color-deep-blue: #054070; /* Azul profundo */
  --color-black: #000000;
  --color-white: #FFFFFF;

  /* Degradado corporativo (izquierda→derecha) */
  --gradient-brand: linear-gradient(90deg, #0872BB 0%, #4ABEDD 100%);
  --gradient-brand-135: linear-gradient(135deg, #0872BB 0%, #4ABEDD 100%);
  --gradient-deep: linear-gradient(135deg, #054070 0%, #0872BB 100%);

  /* ---- Tokens de color TEMÁTICOS (modo claro por defecto) ----
     --color-primary  = acento de texto/iconos (adapta contraste por tema)
     --color-primary-strong = relleno de botones (mantiene texto blanco legible) */
  --color-primary: #0872BB;
  --color-primary-strong: #0872BB;

  --color-ink: #0B1F33;        /* Texto principal */
  --color-ink-soft: #33475B;   /* Texto secundario */
  --color-muted: #5E7286;      /* Texto auxiliar */
  --color-line: #E2E9F0;       /* Bordes suaves */

  --body-bg: #FFFFFF;
  --header-bg: rgba(255, 255, 255, 0.9);
  --color-surface: #FFFFFF;
  --color-surface-2: #F4F8FB;  /* Fondo alterno */
  --color-surface-3: #EAF2F8;  /* Fondo azul muy claro (chips/iconos) */

  /* Bloques de código: fijos y oscuros en ambos temas */
  --code-bg: #0B1F33;
  --code-text: #EAF2F8;

  /* ---- Colores sobre fondo oscuro (footer, hero degradado): iguales ---- */
  --color-on-dark: #FFFFFF;
  --color-on-dark-soft: rgba(255, 255, 255, 0.78);
  --color-on-dark-muted: rgba(255, 255, 255, 0.60);
  --color-line-dark: rgba(255, 255, 255, 0.16);

  /* ---- Mega menú (temático) ---- */
  --mega-bg: #FFFFFF;
  --mega-text: #0B1F33;
  --mega-muted: #5E7286;
  --mega-border: #E2E9F0;
  --mega-hover: #F3F8FC;
  --mega-shadow: 0 24px 60px rgba(5, 64, 112, 0.16);

  /* ---- Colores funcionales (uso mínimo) ---- */
  --color-success: #1E8E5A;
  --color-warning: #B9770B;
  --color-error: #C0392B;

  /* ---- Tipografía ---- */
  --font-heading: "Montserrat", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

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

  /* Escala tipográfica fluida (clamp) según el sistema del prompt */
  --fs-h1: clamp(2.5rem, 1.6rem + 4.2vw, 5.5rem);   /* 40 → 88 px */
  --fs-h2: clamp(2rem, 1.4rem + 2.6vw, 4rem);        /* 32 → 64 px */
  --fs-h3: clamp(1.5rem, 1.2rem + 1.1vw, 2.375rem);  /* 24 → 38 px */
  --fs-h4: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --fs-lead: clamp(1.1875rem, 1.05rem + 0.55vw, 1.5rem); /* 19 → 24 px */
  --fs-body: clamp(1rem, 0.97rem + 0.15vw, 1.125rem);    /* 16 → 18 px */
  --fs-small: clamp(0.8125rem, 0.78rem + 0.12vw, 0.9375rem); /* 13 → 15 px */

  --lh-tight: 1.08;
  --lh-heading: 1.15;
  --lh-snug: 1.35;
  --lh-body: 1.65;

  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.08em;

  /* ---- Espaciado (escala 4px) ---- */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;
  --space-5xl: 8rem;

  /* Ritmo vertical de sección (fluido) */
  --section-y: clamp(3.5rem, 2.5rem + 4vw, 7rem);

  /* ---- Contenedores ---- */
  --container-max: 1320px;      /* general 1280–1440 */
  --container-wide: 1440px;
  --container-reading: 760px;   /* lectura 720–820 */
  --gutter: clamp(1.25rem, 0.9rem + 1.6vw, 2.5rem); /* márgenes móvil 20–24 → desktop */

  /* ---- Radios ---- */
  --radius-xs: 8px;
  --radius-sm: 12px;   /* botones mínimo */
  --radius-md: 16px;   /* tarjetas */
  --radius-lg: 24px;
  --radius-xl: 32px;   /* grandes contenedores */
  --radius-pill: 999px;

  /* ---- Bordes ---- */
  --border-width: 1px;
  --border-soft: 1px solid var(--color-line);

  /* ---- Sombras (suaves, baja opacidad) ---- */
  --shadow-xs: 0 1px 2px rgba(5, 64, 112, 0.06);
  --shadow-sm: 0 4px 16px rgba(5, 64, 112, 0.07);
  --shadow-md: 0 12px 32px rgba(5, 64, 112, 0.10);
  --shadow-lg: 0 24px 60px rgba(5, 64, 112, 0.14);
  --shadow-focus: 0 0 0 3px rgba(8, 114, 187, 0.35);

  /* ---- Movimiento ---- */
  --dur-fast: 140ms;
  --dur-base: 240ms;
  --dur-slow: 480ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* ---- z-index ---- */
  --z-base: 1;
  --z-raised: 10;
  --z-sticky: 100;
  --z-header: 500;
  --z-dropdown: 600;
  --z-overlay: 800;
  --z-modal: 1000;
  --z-toast: 1200;
  --z-loader: 2000;   /* pantalla de espera: por encima de todo, banner incluido */

  /* ---- Breakpoints (referencia; se usan en media queries) ---- */
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;

  /* ---- Header ---- */
  --header-h: 76px;
}

/* =========================================================================
   MODO OSCURO — sobrescribe únicamente los tokens temáticos.
   Elegante y tecnológico, sin negros puros (tonos azul-noche suaves).
   El tema efectivo lo fija un script en <head> (data-theme), sin parpadeo.
   ========================================================================= */
:root[data-theme="dark"] {
  color-scheme: dark;

  /* Acento de texto/icono más luminoso para contraste AA sobre fondo oscuro */
  --color-primary: #57BEE8;
  --color-primary-strong: #0872BB; /* relleno de botón: texto blanco legible */

  --color-ink: #EAF2F9;        /* Texto principal */
  --color-ink-soft: #B6C4D2;   /* Texto secundario */
  --color-muted: #8496A8;      /* Texto auxiliar */
  --color-line: #26333F;       /* Bordes */

  --body-bg: #0B1119;          /* Fondo página (azul noche suave) */
  --header-bg: rgba(11, 17, 25, 0.82);
  --color-surface: #131C28;    /* Tarjetas/superficies elevadas */
  --color-surface-2: #0F1720;  /* Fondo alterno de sección */
  --color-surface-3: #172434;  /* Chips/iconos */

  /* Sombras más profundas en oscuro */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 12px 32px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.55);

  /* Mega menú en oscuro */
  --mega-bg: #111B27;
  --mega-text: #F4F7FA;
  --mega-muted: #A8B3C0;
  --mega-border: #293747;
  --mega-hover: #192737;
  --mega-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

/* Transición suave al cambiar de tema (respeta reduce-motion) */
@media (prefers-reduced-motion: no-preference) {
  html.theme-ready,
  html.theme-ready body,
  html.theme-ready .site-header,
  html.theme-ready .card,
  html.theme-ready .cap-group,
  html.theme-ready .form-control,
  html.theme-ready .nav-dropdown,
  html.theme-ready .mega-panel,
  html.theme-ready .post-card,
  html.theme-ready .featured-post {
    transition: background-color var(--dur-base) var(--ease-out),
      border-color var(--dur-base) var(--ease-out),
      color var(--dur-base) var(--ease-out);
  }
}
