/* ==========================================================================
   Reset — normalizaciones mínimas sobre Bootstrap.
   El reboot de Bootstrap ya resuelve box-sizing, márgenes de headings/
   párrafos, tipografía base, etc. Aquí solo lo que Bootstrap NO cubre.
   ========================================================================== */

/* Scroll suave entre anclas de la misma página (Fase 6.3, plan §4.3/D8:
   SERVICIOS y POLÍTICAS son anclas de la Landing). Se desactiva bajo
   prefers-reduced-motion más abajo.

   La compensación del header fijo va aquí, como `scroll-padding-top` en
   `html`, y NO como `scroll-margin-top` en cada sección ancla (revertido
   en la Fase 6.3 — CLAUDE.md, trampas conocidas). `scroll-padding-top`
   cubre TODA operación de scroll del documento: anclas, `scrollIntoView()`
   y, sobre todo, el desplazamiento automático del navegador cuando un
   usuario de teclado tabula hacia un elemento que queda bajo el borde
   superior del viewport. Con `scroll-margin-top` aislado en tres
   secciones, ese elemento enfocado por teclado queda tapado por el
   header fijo — es el fallo del criterio WCAG 2.2 §2.4.11 (Focus Not
   Obscured). Nunca las dos propiedades a la vez: los offsets se suman. */
html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--aq-header-height);
}

/* Bootstrap no fuerza que imágenes y SVG respeten el ancho de su contenedor
   fuera de la utilidad .img-fluid; lo dejamos como comportamiento base. */
img,
svg {
	display: block;
	max-width: 100%;
}

/* Foco visible — ÚNICO mecanismo del sitio, sin overrides por componente
   ni por color de fondo (auditoría 7.3, Fase 7).

   DEFECTO CORREGIDO: el anillo dorado (--aq-gold) que había acá antes
   medía 2.88:1 sobre --aq-gray-panel y 2.94:1 sobre --aq-beige — por
   debajo del mínimo 3:1 que exige WCAG 1.4.11/2.4.11 para indicadores de
   foco. Pasaba sobre fondo blanco (3.28:1) pero el campo de formulario
   real ya usa --aq-gray-panel, no blanco (ver form-field.css). Verificado
   tabulando con eventos de teclado reales (no `.focus()`) y leyendo
   `getComputedStyle` en el momento del foco.

   Solución: anillo de DOS colores (negro + blanco) en vez de uno solo.
   Ninguno de los dos alcanza 3:1 contra sí mismo obviamente, pero al
   menos uno de los dos SIEMPRE lo alcanza contra cualquier fondo del
   sitio, porque son los dos extremos de luminancia. Verificado con la
   fórmula de contraste de WCAG contra los tres temas de banda + el panel
   de formulario + el botón dorado (el caso más ajustado, 3.28:1 con el
   anillo blanco — con margen, no al límite):

     claro (blanco)              → anillo negro 20.26:1
     oscuro (--black-deep)       → anillo blanco 20.26:1
     beige                       → anillo negro 18.15:1
     gray-panel (form)           → anillo negro 17.79:1
     botón primario (--gold-light) → anillo negro 10.49:1

   Por eso ya no hace falta el override que tenía `.aq-btn-primary`
   (buttons.css) para evitar dorado-sobre-dorado: el anillo global ya
   funciona ahí sin overrides.

   Implementación con `box-shadow` en vez de `outline` doble porque
   `box-shadow` apila sus capas en un orden definido por spec (la primera
   listada queda arriba): dos capas sólidas de radios distintos, la de
   adentro más chica, arman el anillo de dos colores sin superponerse.
   El `outline` transparente que queda no es decorativo: en Windows High
   Contrast Mode (`forced-colors`) los navegadores ignoran `box-shadow`
   pero SÍ dibujan un `outline` no-`none` con el color del sistema — sin
   él, el foco desaparecería por completo en ese modo. */
:focus-visible {
	outline: var(--aq-border-width) solid transparent;
	outline-offset: 2px;
	box-shadow:
		0 0 0 2px var(--aq-black-deep),
		0 0 0 4px var(--aq-white);
}

/* Respeta la preferencia de movimiento reducido en cualquier transición o
   animación que se agregue más adelante (header, menú móvil, Fase 6). */
@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;
	}
}
