/* ==========================================================================
   RedVivienda · tokens.css
   Variables de diseño: color, tipografía, espaciado, radios, sombras y capas.
   Único punto donde se definen valores primitivos. El resto de hojas
   consume exclusivamente estas variables.
   ========================================================================== */

:root {
  /* --- Marca ------------------------------------------------------------
     Azul claro: el azul se lee como seguridad y confianza —lo que pide un
     portal que además guarda un fichero de morosos— y los tonos claros lo
     alejan de la frialdad del azul corporativo oscuro.
     ---------------------------------------------------------------------- */
  --c-brand-900: #0A3A57;
  --c-brand-800: #0E4F74;
  --c-brand-700: #14658F;   /* enlaces y estados activos */
  --c-brand-600: #1B7CAD;   /* color de acción principal */
  --c-brand-500: #2E95C8;
  --c-brand-400: #5FB2DC;
  --c-brand-200: #AEDBF0;
  --c-brand-100: #DCEEF9;
  --c-brand-050: #F0F8FD;

  /* --- Neutros ---------------------------------------------------------- */
  --c-ink-900: #14181B;
  --c-ink-800: #1E252A;
  --c-ink-700: #333C44;
  --c-ink-600: #4B555E;
  --c-ink-500: #67717A;
  --c-ink-400: #8B949C;
  --c-ink-300: #B4BCC3;
  --c-ink-200: #DFE4E8;
  --c-ink-100: #EDF1F3;
  --c-ink-050: #F6F8F9;
  --c-white: #FFFFFF;

  /* --- Semánticos ------------------------------------------------------- */
  --c-line: #DFE4E8;
  --c-line-soft: #EDF1F3;
  --c-surface: #FFFFFF;
  --c-surface-alt: #F6F8F9;
  --c-accent: #D6533C;      /* favoritos, bajadas de precio */
  --c-sky: #C3E6F7;         /* banda de búsqueda de portada */
  --c-sea: #86D6E8;         /* mar del mapa: la cartografía del IGN acaba en
                               la costa y el fondo lo pone la hoja de estilo */
  --c-sky-dark: #A2D6EE;
  --c-link: #14658F;        /* enlaces de acción en bloques editoriales */
  --c-accent-soft: #FCEEEB;
  --c-warn: #C98200;
  --c-warn-soft: #FFF6E3;
  --c-info: #2C64C4;
  --c-info-soft: #EDF3FD;

  /* --- Certificado energético ------------------------------------------- */
  --c-cee-a: #00975B;
  --c-cee-b: #4CAE33;
  --c-cee-c: #9CC800;
  --c-cee-d: #F2D200;
  --c-cee-e: #EFA300;
  --c-cee-f: #E36F14;
  --c-cee-g: #D6202A;

  /* --- Tipografía ------------------------------------------------------- */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;
  --fs-3xs: 10.5px;
  --fs-2xs: 11.5px;
  --fs-xs: 12.5px;
  --fs-sm: 13.5px;
  --fs-md: 15px;
  --fs-lg: 17px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 30px;
  --fs-4xl: 40px;
  --fs-5xl: 50px;
  --lh-tight: 1.2;
  --lh-snug: 1.35;
  --lh-base: 1.55;

  /* --- Espaciado (escala de 4) ------------------------------------------ */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 20px; --s-6: 24px; --s-8: 32px; --s-10: 40px;
  --s-12: 48px; --s-16: 64px; --s-20: 80px;

  /* --- Formas ----------------------------------------------------------- */
  --r-xs: 6px; --r-sm: 8px; --r-md: 10px; --r-lg: 14px; --r-xl: 20px;
  --r-2xl: 26px;
  --r-pill: 999px;

  /* --- Sombras ---------------------------------------------------------- */
  --sh-xs: 0 1px 2px rgba(20, 24, 27, .06);
  --sh-sm: 0 1px 2px rgba(20, 24, 27, .06), 0 4px 12px rgba(20, 24, 27, .06);
  --sh-md: 0 2px 6px rgba(20, 24, 27, .06), 0 12px 28px rgba(20, 24, 27, .10);
  --sh-lg: 0 8px 20px rgba(20, 24, 27, .10), 0 28px 60px rgba(20, 24, 27, .16);

  /* --- Medidas ---------------------------------------------------------- */
  --w-page: 1680px;
  --h-header: 62px;
  --w-sidebar: 264px;

  /* --- Capas ------------------------------------------------------------ */
  --z-sticky: 40;
  --z-header: 60;
  --z-dropdown: 70;
  --z-overlay: 100;
  --z-toast: 120;

  /* --- Transiciones ----------------------------------------------------- */
  --t-fast: .12s ease;
  --t-base: .18s ease;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 0s; --t-base: 0s; }
  html { scroll-behavior: auto !important; }
}
