/* =========================================
   CLIENTS — faixa de logos com marquee infinito
   ========================================= */

.clients {
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 3rem 0;
  text-align: center;
  overflow: hidden;
}

.clients-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin: 0 auto 4rem;
  padding: 0 1.5rem;
}

.clients-bar {
  width: 56px;
  height: 4px;
  border-radius: 2px;
  background: var(--gradient-thermal);
}

.clients-intro {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-ink);
  max-width: 720px;
  margin: 0;
}

.clients-intro span {
  color: var(--color-accent);
  font-weight: 600;
}

.clients-slider {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  overflow: hidden;
  position: relative;
  /* Degradê sutil apenas nos extremos (5%) para efeito de borda infinita verdadeira */
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}

/* Trilha única e larga (max-content); a metade B é cópia da A, então
   deslizar -50% recria exatamente o estado inicial → loop invisível.
   Espaçamento via margin-right por logo (periódico), NÃO via gap: assim
   cada item — inclusive o último de cada metade — tem a mesma folga, e o
   deslize -50% cai exatamente no início. */
.clients-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  flex-shrink: 0;
  will-change: transform;
  animation: marquee 40s linear infinite;
}

/* Tamanho moderado das logos: 36px de altura — em cores originais */
.clients-track img {
  height: 36px;
  width: auto;
  max-width: 150px;
  margin-right: 4.5rem; /* folga periódica (ver .clients-track) */
  object-fit: contain;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}

.clients-track img:hover {
  transform: scale(1.08);
}

/* Logo branca do Eudmarco: inverte para ficar visível (escura) sobre o fundo claro.
   O seletor de atributo/classe já tem especificidade maior que .clients-track img. */
.clients-track img[alt="Eudmarco"],
.clients-track img.logo-white-bg {
  filter: invert(1);
}

/* Pausa ao passar o mouse */
.clients-slider:hover .clients-track {
  animation-play-state: paused;
}

/* Desliza exatamente metade da trilha (a metade B é cópia da A),
   por isso -50% recria o estado inicial de forma imperceptível. */
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Acessibilidade: quem pede menos movimento não vê o marquee rolar.
   Mantém !important de propósito, para garantir a parada do movimento. */
@media (prefers-reduced-motion: reduce) {
  .clients-track { animation: none !important; transform: none !important; }
}

/* Responsivo */
@media (max-width: 768px) {
  .clients {
    padding: 2.5rem 0;
  }
  .clients-head {
    margin-bottom: 2.25rem;
  }
  .clients-track img {
    height: 28px;
    max-width: 110px;
    margin-right: 3rem;
  }
}
