/* MAFARED · Fase 4 | Accesibilidad, correcciones móviles y estabilidad */
:root { color-scheme: light; }
html { min-width: 320px; scroll-padding-top: var(--mafared-header-height, 88px); }
body { min-width: 320px; overflow-x: clip; }
.salto-contenido { position:fixed; z-index:10000; top:8px; left:12px; transform:translateY(-180%); background:#fff; color:#003b70; border:2px solid #0877cb; padding:12px 18px; border-radius:10px; font-weight:800; box-shadow:0 10px 30px #001b3666; }
.salto-contenido:focus { transform:translateY(0); }
:where(a,button,input,select,summary):focus-visible { outline:3px solid #22a9fb; outline-offset:3px; }
.lista-contacto a { color:#e2e8f0; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.lista-contacto a:hover,.lista-contacto a:focus-visible { color:#fff; }
img { max-width:100%; }
.mapa-footer iframe { display:block; }
/* El movimiento respeta a las personas que lo han desactivado. */
@media (prefers-reduced-motion:reduce) {
  .animar-scroll,.animar-scroll.visible,[data-reveal],.reveal-preparado { opacity:1!important; transform:none!important; }
  .track-marcas { animation:none!important; }
  .btn-whatsapp-flotante { animation:none!important; }
}
/* Consolidación de vistas intermedias (tabletas pequeñas y celulares). */
@media (max-width: 860px) {
  header .menunavegacion:not(.menu-abierto) { display:none!important; }
  .menunavegacion.menu-abierto { max-height:calc(100dvh - var(--mafared-header-height, 76px) - 20px); overflow-y:auto; overscroll-behavior:contain; }
  .contenedor-footer,.contenedor-banner,.contenedor-historia,.contenedor-infra { width:100%; }
  .contenedor-historia { gap:30px; }
  .grid-infra { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .card-infra { padding:25px 20px; }
}
@media (max-width: 600px) {
  .seccion-footer { padding-top:52px; }
  .footer-grid { gap:30px; }
  .mapa-footer { height:230px; }
  .lista-contacto { overflow-wrap:anywhere; }
  .stats-historia { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;text-align:center; }
  .numero-stat { font-size:clamp(1.4rem,5.5vw,2rem); }
  .texto-stat { font-size:.76rem; }
  .seccion-historia,.seccion-infraestructura { padding:55px 0; }
  .texto-historia h2,.contenedor-infra h2 { font-size:clamp(1.7rem,7vw,2.25rem); }
  .grid-infra { grid-template-columns:1fr; gap:14px; }
  .card-infra { padding:25px 20px; }
  .banner-servicios h1,.banner-nosotros h1 { font-size:clamp(2rem,9vw,2.8rem); overflow-wrap:normal; }
  .contenedor-servicios { width:100%; }
  .grid-servicios { grid-template-columns:1fr!important; }
  .tarjeta-servicio { min-width:0; }
  .modal-fase3 .fase3-detalle-panel { overscroll-behavior:contain; }
}
@media (max-width:360px) {
  .contenidoBienvenida h1 { font-size:2.3rem; }
  .botonesBienvenida a { overflow-wrap:anywhere; }
  .filtros-productos .btn-filtro { min-height:44px; }
  .catalogo-panel { padding-inline:11px; }
  .texto-presentacion h2 { font-size:1.9rem; }
}
