.customer-logos {
  --customer-logo-gap: clamp(.8rem, 1.8vw, 1.35rem);
  overflow: hidden;
  padding-block: clamp(4.5rem, 8vw, 7.5rem);
  border-block: 1px solid rgba(31, 52, 72, .12);
  background: #f7f8f5;
}

.customer-logos__header {
  margin-bottom: clamp(2.2rem, 4vw, 3.5rem);
}

.customer-logos__eyebrow {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 1rem;
  color: #006600;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.25;
  text-transform: uppercase;
}

.customer-logos__eyebrow::before {
  width: 2rem;
  height: 1px;
  background: currentColor;
  content: "";
}

.customer-logos h2 {
  max-width: 18ch;
  margin: 0;
  color: #203449;
  font-family: var(--font-head);
  font-size: min(clamp(2.25rem, 4vw, 4rem), clamp(1.7rem, 3vw, 2.85rem));
  font-weight: 400;
  line-height: 1.05;
}

.customer-logos__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4rem, #000 calc(100% - 4rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4rem, #000 calc(100% - 4rem), transparent);
}

.customer-logos__track {
  display: flex;
  width: max-content;
  animation: customer-logos-scroll 64s linear infinite;
  animation-play-state: paused;
  will-change: transform;
}

.customer-logos--ready .customer-logos__track { animation-play-state: running; }

.customer-logos__viewport:hover .customer-logos__track,
.customer-logos__viewport:focus-within .customer-logos__track {
  animation-play-state: paused;
}

.customer-logos__group {
  display: flex;
  flex: none;
  gap: var(--customer-logo-gap);
  margin: 0;
  padding: 0 var(--customer-logo-gap) 0 0;
  list-style: none;
}

.customer-logos__item {
  display: grid;
  width: clamp(9.5rem, 14vw, 12rem);
  height: clamp(5.5rem, 8vw, 7rem);
  flex: none;
  place-items: center;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(31, 52, 72, .12);
  border-radius: 1rem;
  background: #fff;
}

.customer-logos__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  min-height: 0;
  min-width: 0;
}

.customer-logos__item > span { text-align: center; color: #203449; font-weight: 700; }

.customer-logos__item--compact img {
  width: 82%;
  height: 82%;
  transform: translateY(-.12rem);
}

@keyframes customer-logos-scroll {
  to { transform: translateX(-50%); }
}

@media (max-width: 48rem) {
  .customer-logos { padding-block: 4rem; }
  .customer-logos__header { margin-bottom: 2rem; }
  .customer-logos h2 { font-size: min(clamp(2.1rem, 10vw, 2.8rem), clamp(1.7rem, 3vw, 2.85rem)); }
  .customer-logos__viewport {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent);
  }
  .customer-logos__item { width: 9rem; height: 5.25rem; padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .customer-logos__viewport {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
    scrollbar-width: thin;
  }
  .customer-logos__track { animation: none; }
  .customer-logos__group[aria-hidden="true"] { display: none; }
}
