/* Lightweight carousel: scroll-snap + JS for prev/next and opacity */
.carousel-viewport {
  overflow: hidden;
  position: relative;
}
.carousel-track {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.carousel-track::-webkit-scrollbar {
  display: none;
}
.carousel-track .carousel-slide {
  scroll-snap-align: start;
  flex-shrink: 0;
  opacity: 0.3;
  transition: opacity 0.2s ease;
}
.carousel-track .carousel-slide.is-visible {
  opacity: 1;
}

/* Client logos: reveal one by one as they load */
[data-client-logos] .client-logo {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.4s ease-out, transform 0.4s ease-out;
}
[data-client-logos] .client-logo.revealed {
  opacity: 1;
  transform: translateY(0);
}
