/* ============================================================
   SITE-WIDE MOBILE LAYOUT STABILITY FIXES
   Prevents CLS / layout bouncing caused by translate animations
   ============================================================ */

/* On mobile: strip the vertical translation from scroll-reveal.
   Elements still fade in but no longer shift upward, which
   eliminates the "layout bouncing" on scroll. */
@media (max-width: 768px) {
  .r {
    transform: none !important;
    will-change: opacity;
  }
  .r.v {
    transform: none !important;
  }

  /* Override heroFadeUp on all pages — fade only, no slide */
  @keyframes heroFadeUp {
    from { opacity: 0; }
    to   { opacity: 1; }
  }

  /* Override any slideUp / slide-up variants used in hero sections */
  @keyframes slideUp {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
  @keyframes slide-up {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
  @keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
}

/* Trust bar: reserve the full height before logos load so the
   section doesn't jump when the marquee initialises */
.trust-bar {
  min-height: 100px;
}
@media (max-width: 768px) {
  .trust-bar {
    min-height: 80px;
  }
}

/* Prevent images from causing CLS by constraining their
   container dimensions at the CSS level */
.proof__logo {
  overflow: hidden;
}
.proof__logo img {
  display: block;
}

/* Article badge images */
.article-card__badge-img {
  display: block;
  width: 100%;
  height: auto;
}
