/* Partner logos marquee — above footer, header-width, edge fades */
.partners-marquee {
  --pm-height: 48px;
  --pm-gap: 3.5rem;
  --pm-pad-y: 1.75rem;
  --pm-bg: #fff;
  --pm-fade: #fff;
  margin-top: 3rem;
  padding: var(--pm-pad-y) 0;
  background: var(--pm-bg);
  font-family: "Inter", system-ui, -apple-system, sans-serif;
}

.partners-marquee + .site-footer {
  margin-top: 0;
}

.partners-marquee__shell {
  position: relative;
  width: min(var(--page-max, 1200px), calc(100% - var(--page-gutter, 2.5rem)));
  margin: 0 auto;
}

.partners-marquee__viewport {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000 8%,
    #000 92%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000 8%,
    #000 92%,
    transparent 100%
  );
}

.partners-marquee__fade {
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(2.5rem, 8%, 5rem);
  z-index: 2;
  pointer-events: none;
}

.partners-marquee__fade--left {
  left: 0;
  background: linear-gradient(90deg, var(--pm-fade) 0%, transparent 100%);
}

.partners-marquee__fade--right {
  right: 0;
  background: linear-gradient(270deg, var(--pm-fade) 0%, transparent 100%);
}

.partners-marquee__track {
  display: flex;
  width: max-content;
  align-items: center;
  animation: partners-marquee-scroll var(--partners-duration, 40s) linear infinite;
  will-change: transform;
}

.partners-marquee__group {
  display: flex;
  align-items: center;
  gap: var(--pm-gap);
  list-style: none;
  margin: 0;
  padding: 0 var(--pm-gap) 0 0;
  flex-shrink: 0;
}

.partners-marquee__item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--pm-height);
}

.partners-marquee__item img {
  display: block;
  height: var(--pm-height);
  width: auto;
  max-width: 180px;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.72;
  transition: filter 0.25s ease, opacity 0.25s ease;
}

.partners-marquee__item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

@keyframes partners-marquee-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners-marquee__track {
    animation: none;
  }

  .partners-marquee__viewport {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .partners-marquee__fade {
    display: none;
  }

  .partners-marquee__track {
    width: 100%;
  }

  .partners-marquee__group[aria-hidden="true"] {
    display: none;
  }

  .partners-marquee__group {
    flex-wrap: wrap;
    justify-content: center;
    padding: 0;
    gap: 1.5rem 2.5rem;
    width: 100%;
  }
}

@media (max-width: 992px) {
  .partners-marquee {
    --pm-height: 40px;
    --pm-gap: 2.5rem;
    --pm-pad-y: 1.35rem;
    margin-top: 2.25rem;
  }
}

@media (max-width: 640px) {
  .partners-marquee {
    --pm-height: 36px;
    --pm-gap: 2rem;
  }

  .partners-marquee__item img {
    max-width: 140px;
  }
}
