/* Shared logo loop: clip on every OS, including always-visible scrollbars. */
.partner-logos.logo-marquee {
  display: block;
  overflow: hidden;
  min-width: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.partner-logos.logo-marquee::-webkit-scrollbar { display: none; }
.partner-logos.logo-marquee .partner-logo-track {
  display: flex;
  width: max-content;
  gap: 0;
  animation: logo-loop var(--logo-duration, 120s) linear infinite;
  /* Override the page-wide reduced-motion duration only for these requested loops. */
  animation-duration: var(--logo-duration, 120s) !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal;
  animation-play-state: running;
  will-change: transform;
}
.partner-logos.logo-marquee.partner-logos--reverse .partner-logo-track { animation-direction: reverse; }
.partner-logos.logo-marquee:hover .partner-logo-track,
.partner-logos.logo-marquee:focus-within .partner-logo-track { animation-play-state: running; }
.partner-logos.logo-marquee .partner-logo-list {
  display: flex;
  flex: 0 0 auto;
  width: max-content;
  align-items: center;
  margin: 0;
}
.partner-logos.logo-marquee .partner-logo { flex: 0 0 auto; }
.partner-banners .partner-logos.logo-marquee .partner-logo--featured {
  width: clamp(216px, 24vw, 288px);
  height: 120px;
}
@media (max-width: 680px) {
  .partner-banners .partner-logos.logo-marquee .partner-logo--featured { width: 216px; height: 96px; }
}
@keyframes logo-loop {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-1 * var(--logo-distance)), 0, 0); }
}
