/* Partner logo strips, client marquee, scroll reveal */

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .marquee-track { animation: none !important; }
}

/* Client marquee */
.clients-section {
  padding: 3.5rem 0;
  background: #fff;
  border-top: 1px solid var(--gray-200);
  border-bottom: 1px solid var(--gray-200);
  overflow: hidden;
}
.clients-label {
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gray-500);
  margin-bottom: 1.75rem;
}
.marquee-wrap {
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 42s linear infinite;
  gap: 2.5rem;
  align-items: center;
}
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.client-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4.5rem;
  min-width: 9rem;
  padding: 0 1.25rem;
  border-radius: 0.5rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  flex-shrink: 0;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.client-logo:hover {
  border-color: rgba(232, 119, 34, 0.35);
  box-shadow: 0 4px 16px rgba(11, 37, 69, 0.06);
}
.client-logo img,
.client-logo svg,
.client-logo picture img {
  height: 3.75rem;
  max-height: 3.75rem;
  max-width: 9rem;
  width: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.75;
  transition: filter 0.25s, opacity 0.25s;
}
.client-logo--brand img,
.client-logo--brand picture img {
  filter: none;
  opacity: 1;
}
.client-logo:hover img,
.client-logo:hover svg,
.client-logo:hover picture img {
  filter: grayscale(0);
  opacity: 1;
}
.client-logo--brand:hover img,
.client-logo--brand:hover picture img {
  filter: none;
  opacity: 1;
}

/* Partner strips */
.partners-section {
  padding: 4rem 0;
  background: var(--gray-50);
  border-top: 1px solid var(--gray-200);
}
.partners-block + .partners-block {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid var(--gray-200);
}
.partners-label {
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 0.5rem;
}
.partners-sub {
  text-align: center;
  font-size: 0.875rem;
  color: var(--gray-500);
  margin-bottom: 2rem;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}
.partners-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.25rem 2rem;
  max-width: 64rem;
  margin: 0 auto;
}
.partner-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4.5rem;
  padding: 0 0.75rem;
  min-width: 7rem;
}
.partner-logo img,
.partner-logo svg,
.partner-logo picture img {
  height: 3.75rem;
  max-height: 3.75rem;
  max-width: 10rem;
  width: auto;
  object-fit: contain;
  opacity: 0.88;
  transition: opacity 0.25s, transform 0.25s;
}
.partner-logo:hover img,
.partner-logo:hover svg,
.partner-logo:hover picture img {
  opacity: 1;
  transform: scale(1.04);
}
/* Logos supplied on dark backgrounds */
.partner-logo--pill {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 0.5rem;
  padding: 0.4rem 0.85rem;
  height: auto;
  min-height: 4.5rem;
}
.partner-logo--pill img,
.partner-logo--pill picture img {
  opacity: 1;
}

