/* ── Fix crítico: overflow horizontal en mobile ──────────────
   Algún elemento decorativo (formas/badges con right:-Npx) sobresale
   del viewport y agranda el ancho del documento → toda la página
   queda desplazable hacia los lados, cortando contenido en ambos
   bordes (Noticias, Biblioteca y potencialmente otras páginas). */
html, body { overflow-x: hidden !important; max-width: 100vw !important; }
#root { overflow-x: hidden !important; }
/* Bug real (iOS Safari): paneles off-canvas (menú, fichas de socios, drawers
   de eventos/empleos) usan position:fixed;inset:0 + transform en el hijo
   para deslizar. Un hijo trasladado fuera de su caja SIGUE ensanchando el
   viewport scrollable en iOS aunque html/body tengan overflow-x:hidden.
   El fix real es clipar en el propio contenedor fixed. */
.mnav, .ev-drawer, .emp-drawer, .pf-platinum, .pf-premium, .pf-estandar, .pf-modal-wrap, .lib-modal {
  overflow: hidden !important;
}

/* ── Noticias + Biblioteca — afinado mobile ─────────────────── */
@media(max-width:640px){
  .tagmore__menu{ right:-1rem; max-width:calc(100vw - 3rem); }
  .media-strip{ flex-direction:column; align-items:stretch; gap:.75rem; padding:1rem 1.1rem; }
  .media-strip__text{ flex-direction:row; align-items:center; justify-content:space-between; }
  .media-strip__topics{ order:3; }
  .media-strip__btn{ width:100%; justify-content:center; }
  .lib-viewer__path{ flex-wrap:wrap; row-gap:.3rem; }
  .lib-viewer__grid-h{ flex-wrap:wrap; row-gap:.3rem; }
}
@media(max-width:480px){
  .tagbar .tagchip{ font-size:.75rem; padding:.4rem .7rem; }
  .lib-tree__search{ padding:.55rem .65rem; }
  .lib-folder__row{ gap:.2rem; }
  .lib-folder__name{ font-size:.78rem; }
  .lib-folder__count{ margin-right:0; }
  .news-searchbar{ padding:.9rem 1rem; }
}
/* Fix definitivo: alineación de "Más noticias" idéntica a la barra de
   búsqueda de abajo — cero inset heredado, sin importar breakpoint. */
.news-head{ padding:0 !important; margin-left:0 !important; width:100%; text-align:left !important; display:block !important; }
.news-head > div{ margin:0 !important; padding:0 !important; text-align:left !important; }
.news-head .eyebrow{ margin:0 !important; padding:0 !important; justify-content:flex-start !important; }
.news-head h2{ margin-left:0 !important; padding-left:0 !important; text-align:left !important; }
.news-head .news-count{ display:block; margin-top:.35rem; text-align:left !important; }
