/** Testimonials — dual-row marquee cards. */
.section.testimonials {
  padding-block: clamp(3rem, 7vh, 5rem);
  background: var(--color-bg);
  overflow: hidden;
}

.testimonials__header-wrap {
  max-width: 720px;
  margin-bottom: clamp(2rem, 4vw, 3rem);
  text-align: center;
}

.testimonials .section-heading {
  margin-bottom: 0;
}

.testimonials .section-heading__lead {
  margin-top: var(--space-4);
  font-size: var(--fs-md);
  color: var(--color-text-muted);
}

.testimonials-marquee {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    #000 12%,
    #000 88%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    #000 12%,
    #000 88%,
    transparent 100%
  );
}

.testimonials-marquee__row {
  overflow: hidden;
  width: 100%;
}

.testimonials-marquee__row--secondary {
  padding-inline-start: clamp(2.5rem, 10vw, 7rem);
}

.testimonials-marquee__track {
  display: flex;
  width: max-content;
  gap: var(--space-5);
  animation: testimonials-marquee-scroll 55s linear infinite;
  will-change: transform;
}

.testimonials-marquee__row--secondary .testimonials-marquee__track {
  animation-duration: 62s;
  animation-direction: reverse;
}

.testimonials-marquee__group {
  display: flex;
  flex-shrink: 0;
  gap: var(--space-5);
  padding-inline-end: var(--space-5);
}

.testimonial-card {
  flex: 0 0 auto;
  width: min(22rem, 78vw);
  margin: 0;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  border: 1px solid rgba(220, 232, 240, 0.9);
  border-radius: 1.5rem;
  background: var(--color-bg);
  box-shadow: 0 6px 24px rgba(34, 58, 72, 0.06);
  text-align: left;
}

.testimonial-card__quote-icon {
  display: block;
  margin-bottom: var(--space-4);
  color: var(--color-secondary);
  opacity: 0.85;
}

.testimonial-card__text {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-style: normal;
  font-weight: 400;
  line-height: 1.65;
  color: var(--color-text);
}

.testimonial-card__text p {
  margin: 0;
}

.testimonial-card__text p + p {
  margin-top: var(--space-3);
}

.testimonial-card__footer {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(220, 232, 240, 0.75);
}

.testimonial-card__avatar img {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  object-fit: cover;
}

.testimonial-card__meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.testimonial-card__name {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-dark);
}

.testimonial-card__role {
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

.testimonial-card__rating {
  margin-top: 0.15rem;
}

.testimonial-card__rating .rating {
  gap: 1px;
}

.testimonial-card__rating .rating__star .icon {
  width: 12px;
  height: 12px;
}

.testimonial-card__rating .rating__star.is-filled {
  color: var(--color-primary);
}

.testimonials-marquee:hover .testimonials-marquee__track {
  animation-play-state: paused;
}

@keyframes testimonials-marquee-scroll {
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .testimonials-marquee__track {
    animation: none;
    flex-wrap: wrap;
    width: 100%;
    max-width: 72rem;
    margin-inline: auto;
    padding-inline: var(--space-5);
    justify-content: center;
  }

  .testimonials-marquee__group[aria-hidden='true'] {
    display: none;
  }

  .testimonials-marquee__row--secondary {
    padding-inline-start: 0;
  }

  .testimonials-marquee {
    mask-image: none;
    -webkit-mask-image: none;
  }
}
