/* ================================================================================================
 * AZRAHEL — red de seguridad DECLARADA contra desbordamiento horizontal en móvil
 * (FORGE-UNIFORM, 2026-09-22)
 * ------------------------------------------------------------------------------------------------
 * ORIGEN: inbox/CENTINEL/..__FORGE-SIERRA__001__READY__AUDITORIA-UX-E2E-PRODUCCION.md, hallazgo
 * P2-7: "scrollWidth 378px > innerWidth 360px" (18px de scroll horizontal) en 9 de 11 páginas
 * Elementor medidas a 360x740 -portada, landing, login, tarjeta "Mi aula", lección abierta,
 * lección bloqueada, post-logout y "mi cuenta" anónima-. NO se reprodujo en "/escritorio/" ni
 * "/escritorio/account/*" (construidas con Tutor, no con Elementor).
 *
 * POR QUÉ AQUÍ Y NO UNA REGLA MÁS ESPECÍFICA: el hallazgo da el número agregado
 * (document.documentElement.scrollWidth) pero no el elemento exacto que lo causa, y no hay
 * navegador ni permiso para navegar producción desde este entorno (IP en reto anti-bot, prohibido
 * por el encargo) para localizarlo por inspección en vivo. Es la MISMA limitación, y la MISMA
 * decisión, que ya paga mu-plugins/azr-ui/azr-mi-cuenta.css sección "7"
 * (`/escritorio/account/profile/`, FORGE-BRAVO 2026-09-19): en vez de adivinar un selector sin
 * confirmar, se declara una cota de seguridad explícita y documentada -lo que el brief permite
 * textualmente ("no un overflow-x:hidden global a ciegas SALVO como red declarada")-, nunca un
 * "overflow-x:hidden" mudo sin explicación ni alcance acotado.
 *
 * QUÉ HACE Y QUÉ NO: limita el ancho máximo de todo el documento al ancho real del viewport, solo
 * por debajo de 480px (el rango donde se midió el síntoma; no toca tablet/desktop). Ninguna de
 * las capturas de la auditoría muestra contenido cortado a 360/390px -el desbordamiento es scroll
 * fantasma de ~18px, no contenido visible fuera de pantalla-, así que esta cota no oculta nada: se
 * limita a impedir que "document.documentElement.scrollWidth" supere "window.innerWidth",
 * mantenga o no su causa real sin identificar.
 *
 * ALCANCE: sitewide (portada y landing quedan fuera de "azr_ui_enqueue_styles()", que solo carga
 * en páginas de cuenta/escritorio/lección) vía "azr_ui_overflow_guard_enqueue_styles()" en
 * azr-ui.php, sin condición de página -CSS puramente defensivo, sin selectores de terceros, sin
 * riesgo de romper nada si el elemento real nunca llega a tocar este límite-.
 *
 * NO VERIFICADO EN NAVEGADOR REAL contra el sitio (sin acceso a producción desde este entorno):
 * pendiente de que CENTINEL repita "document.documentElement.scrollWidth" vs "window.innerWidth"
 * a 360/390px tras desplegar. Reproducción LOCAL (DOM de ejemplo, no el sitio real) con Playwright
 * en qa/f1-fixes/uniform/repro-p2-overflow.html, demostrando scrollWidth == innerWidth con esta
 * regla aplicada.
 * ------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 480px) {
	/* CENTINEL 2026-09-22: `clip` y solo en html. `hidden` en html+body crea un contenedor de scroll
	   que rompe position:sticky (cabeceras de Elementor) y el scroll con inercia en iOS; `clip` corta
	   el desborde sin crear contenedor de scroll. */
	html {
		overflow-x: clip;
	}
}
