/* Base técnica para /web: reset, idiomas, accesibilidad y movimiento reducido. SIN DISEÑO.
   Los tokens (:root) se llenan con la marca (marca.json / manual) y todo lo visual se escribe desde cero para cada sitio. */

:root {
  /* Llenar con la marca: */
  --fondo: ; --fondo-2: ; --texto: ; --texto-2: ; --acento: ; --linea: ;
  --titulos: ; --cuerpo: ;
  --gutter: clamp(16px, 4vw, 56px);
  --max: 1440px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, video, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, figure, dl, dd, blockquote { margin: 0; }

/* Lenis (scroll suave) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* Idiomas: solo se ve el activo (agregar los pares que use el sitio) */
html[data-lang="es"] [lang="en"], html[data-lang="en"] [lang="es"] { display: none !important; }

/* Accesibilidad */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 8px; top: -60px; z-index: 200; padding: 10px 14px; background: var(--texto); color: var(--fondo); }
.saltar:focus { top: 8px; }
:focus-visible { outline: 2px solid var(--acento); outline-offset: 3px; }

/* Movimiento reducido: sin animaciones para quien lo pide en su sistema */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
