/* Contenedor de filas */
.module.partners .logos-row{
  overflow: hidden;
  width: 100%;
  margin-block: 1.25rem; /* separa filas */
}

/* Carril (track) que se desplaza; --dur: duración; --gap: separación; --h: alto logos */
.module.partners .marquee{
  display: flex;
  width: max-content;           /* ancho según contenido */
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: var(--dur, 40s);
}

.module.partners .group{
  display: flex;
  align-items: center;
  gap: var(--gap, 4rem);
  padding-inline: var(--gap, 4rem); /* margen interno para que el loop sea suave */
}

.module.partners .logo img{
  height: var(--h, 64px);
  width: auto;
  object-fit: contain;
  display: block;
}

/* Direcciones */
.module.partners .logos-row--ltr .marquee{ animation-name: marquee-left; }
.module.partners .logos-row--rtl .marquee{ animation-name: marquee-right; }

/* Pausa opcional al hover (remové si no la querés) */
.module.partners .marquee:hover{ animation-play-state: paused; }

/* Keyframes: movemos exactamente la mitad porque hay 2 copias (group + group[aria-hidden]) */
@keyframes marquee-left{
  from{ transform: translateX(0); }
  to  { transform: translateX(-50%); }
}
@keyframes marquee-right{
  from{ transform: translateX(-50%); }
  to  { transform: translateX(0); }
}

/* Responsivo: achicamos logos y gap */
@media (max-width: 1024px){
  .module.partners .marquee{ animation-duration: calc(var(--dur, 40s) * 0.85); }
  .module.partners .logo img{ height: 56px; }
  .module.partners .group{ gap: 3rem; padding-inline: 3rem; }
}
@media (max-width: 640px){
  .module.partners .logo img{ height: 44px; }
  .module.partners .group{ gap: 2rem; padding-inline: 2rem; }
}
