/* DSRZ HQ: base compartida. Tipografías WOFF2 propias, tokens VDS v2.0 y reglas mínimas.
   Los WOFF2 se generan con tools/fonts/build.sh. Solo se publican los pesos que usa el sitio. */

@font-face { font-family:'Space Grotesk'; font-weight:500; font-style:normal; font-display:swap; src:url('/fonts/SpaceGrotesk-500.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-weight:600; font-style:normal; font-display:swap; src:url('/fonts/SpaceGrotesk-600.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-weight:700; font-style:normal; font-display:swap; src:url('/fonts/SpaceGrotesk-700.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:400; font-style:normal; font-display:swap; src:url('/fonts/Inter-400.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:500; font-style:normal; font-display:swap; src:url('/fonts/Inter-500.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:600; font-style:normal; font-display:swap; src:url('/fonts/Inter-600.woff2') format('woff2'); }
@font-face { font-family:'Source Serif 4'; font-weight:400; font-style:normal; font-display:swap; src:url('/fonts/SourceSerif4-400.woff2') format('woff2'); }
@font-face { font-family:'Source Serif 4'; font-weight:400; font-style:italic; font-display:swap; src:url('/fonts/SourceSerif4-400-italic.woff2') format('woff2'); }

:root {
  --obsidian:      #111111;
  --white:         #FFFFFF;
  --momentum-blue: #2563EB;
  --deep-navy:     #0F172A;
  --slate-700: #374151; --slate-500: #6B7280; --slate-300: #D1D5DB; --slate-100: #F3F4F6;
  --fg-1: var(--obsidian);  --fg-2: var(--slate-700); --fg-3: var(--slate-500);
  /* Texto secundario sobre Obsidian y Deep Navy. Slate-500 no alcanza 4.5:1 sobre fondos oscuros. */
  --on-dark-2: rgba(255,255,255,0.72);
  --line-1: var(--slate-300); --line-on-dark: rgba(255,255,255,0.15);
  --accent: var(--momentum-blue); --accent-hover: #1D4ED8; --accent-press: #1E40AF;
  --font-display: 'Space Grotesk','Helvetica Neue',Arial,sans-serif;
  --font-ui:      'Inter','Helvetica Neue',Arial,sans-serif;
  --font-serif:   'Source Serif 4',Georgia,'Times New Roman',serif;
  --ease-standard: cubic-bezier(0.4,0.0,0.2,1);
  --ease-out: cubic-bezier(0.0,0.0,0.2,1);
  --dur: 200ms; --dur-fast: 120ms; --dur-slow: 360ms;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
button { font-family: var(--font-ui); cursor: pointer; }
.hidden, [hidden] { display: none !important; }
.sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--momentum-blue); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
