html { scroll-behavior: smooth; }
body { font-family: 'Open Sans', sans-serif; color: #27272c; }

/* ── Logo carousel ── */
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(var(--marquee-shift, -50%)); }
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 32s linear infinite;
}
.marquee-track:hover { animation-play-state: paused; }

/* ── Hero entrance ── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-up      { animation: fadeInUp 0.7s ease-out both; }
.fade-up.d1   { animation-delay: 120ms; }
.fade-up.d2   { animation-delay: 270ms; }
.fade-up.d3   { animation-delay: 420ms; }

/* ── Testimonial slide container keeps height stable ── */
.testimonial-wrap { position: relative; min-height: 280px; }
@media (min-width: 768px) { .testimonial-wrap { min-height: 370px; } }
.testimonial-slide {
  position: absolute;
  inset: 0;
  width: 100%;
}
