/* Shares the homepage's section background, type tokens and blue accent. */
.partners-section { min-height: 100vh; min-height: 100svh; overflow: hidden; }
.partners-header { padding-bottom: 96px; }
.partners-heading {
  max-width: 1000px; color: #000;
  font-family: var(--_typography---font-primary, "Helvetica Now Display", "Helvetica Neue", Helvetica, Arial, sans-serif);
  font-size: clamp(40px, 6vw, 84px); letter-spacing: -.025em;
}
.partners-subtitle { max-width: 520px; margin-top: 20px; }
.partners-rows { padding-bottom: 100px; display: grid; gap: 28px; }
.partner-loop {
  --partner-height: 56px; --partner-max-width: 156px; --partner-gap: 32px; --partner-frame: 180px;
  position: relative; overflow: hidden; padding: 18px 0;
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.partner-loop__track { display: flex; width: max-content; will-change: transform; }
.partner-loop__sequence {
  display: flex; align-items: center; justify-content: space-around; min-width: 100vw; gap: var(--partner-gap); flex-shrink: 0;
  list-style: none; padding: 0 var(--partner-gap) 0 0; margin: 0;
}
.partner-loop__item { flex: none; margin: 0; padding: 0; }
.partner-loop__logo {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: var(--partner-frame); height: 80px;
  opacity: 1; filter: brightness(0);
  transition: transform .3s ease, filter .3s ease;
}
.partner-loop__mark {
  position: relative; display: block; overflow: hidden;
  transform: scale(var(--logo-scale, 1));
  height: min(var(--partner-height), calc(var(--partner-max-width) / var(--logo-ratio)));
  width: min(var(--partner-max-width), calc(var(--partner-height) * var(--logo-ratio)));
  opacity: 1; filter: brightness(0);
  transition: transform .3s ease, opacity .3s ease, filter .3s ease;
}
.partner-loop__logo img {
  position: absolute; width: var(--image-width); height: var(--image-height); max-width: none;
  left: var(--image-left); top: var(--image-top);
}
.partner-loop__logo:focus-visible { outline: 2px solid #000; outline-offset: 6px; }
/* Use the white Vidro mark as a mask, leaving its black matte transparent. */
.partner-loop__logo--matte img {
  mask-image: url("../images/partners/vidro.png");
  -webkit-mask-image: url("../images/partners/vidro.png");
  mask-mode: luminance;
  mask-size: 100% 100%;
  -webkit-mask-size: 100% 100%;
}
.partner-loop__item:hover .partner-loop__logo {
  transform: scale(1.06); opacity: 1; filter: brightness(0) drop-shadow(0 0 5px #0072de35);
}
@media (max-width: 767px) {
  .partners-header { padding-top: 64px; padding-bottom: 56px; }
  .partners-heading { font-size: clamp(36px, 8vw, 54px); }
  .partners-subtitle { margin-top: 16px; }
  .partners-rows { gap: 16px; padding-bottom: 64px; }
  .partner-loop { --partner-height: 42px; --partner-max-width: 108px; --partner-gap: 24px; --partner-frame: 128px; }
}
@media (prefers-reduced-motion: reduce) {
  .partner-loop { overflow-x: auto; mask-image: none; -webkit-mask-image: none; }
  .partner-loop__track { transform: none !important; will-change: auto; }
  .partner-loop__sequence.is-copy { display: none; }
  .partner-loop__logo { transition: none; }
  .partner-loop__item:hover .partner-loop__logo { transform: none; }
}
