/* ============================================================
   Factor Partido · Performance & Core Web Vitals Layer v1
   Ajustes seguros de CLS, lazy rendering y móvil.
   ============================================================ */

:root{
  --fp-safe-scroll-margin:86px;
}

/* Evita saltos visuales en multimedia */
img,
video,
iframe{
  max-width:100%;
}

img{
  height:auto;
}

/* Reduce CLS en iframes embebidos */
iframe{
  background:rgba(255,255,255,.025);
  border-radius:inherit;
}

/* Render diferido seguro para bloques repetitivos debajo del fold */
.news-card-full,
.fp-blog-card,
.fp-li-card,
.fp-mib-card,
.fp-live-intel-signal,
.fp-live-ticker-card,
.card,
.post-card,
.match-card,
.analysis-card{
  content-visibility:auto;
  contain-intrinsic-size:280px;
}

/* Secciones largas: el navegador puede saltarse pintura inicial fuera de pantalla */
.fp-ci-hub,
.fp-trust-authority,
.fp-factor-pulse-pro,
.fp-live-intel-panel,
.fp-mib-board,
.section,
.fp-livehub-section{
  content-visibility:auto;
  contain-intrinsic-size:560px;
}

/* Evita que anclas queden ocultas por barras superiores */
[id]{
  scroll-margin-top:var(--fp-safe-scroll-margin);
}

/* Imágenes que aún no cargan */
img[data-fp-lazy="1"]{
  opacity:.001;
  transition:opacity .22s ease;
}

img[data-fp-loaded="1"]{
  opacity:1;
}

/* Apariencia de espacios de anuncio/reserva sin generar saltos bruscos */
.adsbygoogle,
.fp-ad-slot,
[data-ad-slot]{
  min-height:90px;
  display:block;
}

/* Evita jank de animaciones intensas si el usuario prefiere menos movimiento */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}

/* Ajustes finos móvil */
@media(max-width:760px){
  :root{
    --fp-safe-scroll-margin:118px;
  }

  .news-card-full,
  .fp-blog-card,
  .fp-li-card,
  .fp-mib-card,
  .match-card,
  .analysis-card{
    contain-intrinsic-size:240px;
  }

  iframe{
    min-height:220px;
  }

  .adsbygoogle,
  .fp-ad-slot,
  [data-ad-slot]{
    min-height:76px;
  }
}
