.block-logos {
    padding: 80px var(--wp--custom--section--x);
    text-align: center;
}
.block-logos.fondo-white-04{
    background-color: var(--wp--preset--color--white-04);
    color: var(--wp--preset--color--black);
}
.block-logos.fondo-white-02{
    background-color: var(--wp--preset--color--white-02);
    color: var(--wp--preset--color--black);
}
.block-logos.fondo-black{
    background-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--white);
}
.block-logos.fondo-main-blue{
    background-color: var(--wp--preset--color--main--blue);
    color: var(--wp--preset--color--white);
}

.block-logos .texto-logotipo {
    margin: 0 0 35px 0;
}

.block-logos .logos-carousel {
    max-width: 1600px;
    margin: 0 auto;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}

.block-logos .swiper-wrapper {
    display: flex;
    align-items: center;
}

.block-logos .swiper-slide {
    width: auto;
    flex-shrink: 0;
    padding: 0 30px;
}

.block-logos .swiper-slide img {
    max-height: 28px;
    width: auto;
    object-fit: contain;
    border-radius: 0;
}
.texto-logotipo p {
    margin: 0;
}
@media (max-width: 920px) {
    .block-logos {
        padding: 64px var(--wp--custom--section--x-mobile);
    }

    .block-logos .swiper-slide img {
        max-height: 25px;
    }

    .logo-item img {
        height: 30px;
    }
}

/* Animación de logos con desplazamiento continuo */
:root {
    --marquee-duration: 30s; /* Duración predeterminada, se ajustará con JavaScript */
    --marquee-shift: 50%;    /* Desplazamiento por ciclo; el JS lo fija en píxeles (ancho de una tanda) */
}

.logos-marquee-container {
    width: 100%;
    overflow: hidden;
    position: relative;
    margin: 20px 0;
}

.logos-marquee-track {
    display: flex;
    width: max-content;
    animation: scroll-logos var(--marquee-duration) linear infinite;
}

.logo-item {
    flex-shrink: 0;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Altura fija para igualar visualmente logos de distinto tamaño/proporción
   (los SVG escalan sin pérdida). El ancho se ajusta a la proporción de cada
   uno; max-width evita que un logotipo muy apaisado se dispare. Ajusta el
   valor de height a tu gusto. */
.logo-item img {
    height: 40px;
    max-width: 150px;
    width: auto;
    object-fit: contain;
    border-radius: 0;
}

@keyframes scroll-logos {
    0% {
        transform: translateX(0);
    }
    100% {
        /* Se desplaza exactamente una tanda de logos. Con 2 tandas equivale al
           -50% de siempre; en pantallas anchas el JS añade más copias y fija
           --marquee-shift en píxeles. El bucle sigue siendo continuo porque
           todas las tandas son idénticas. */
        transform: translateX(calc(-1 * var(--marquee-shift)));
    }
}

/* Pausar la animación al pasar el ratón por encima (opcional) */
.logos-marquee-container:hover .logos-marquee-track {
    animation-play-state: paused;
}

/* Logos estáticos en escritorio (campo ACF "estatico_desktop"): a partir de
   1025px se detiene el desplazamiento y los logos se reparten fijos. En tablet
   y móvil (≤1024px) se mantiene la animación continua. */
@media (min-width: 1025px) {
    .block-logos.is-estatico-desktop .logos-marquee-container {
        display: flex;
        justify-content: center;
    }

    .block-logos.is-estatico-desktop .logos-marquee-track {
        width: 80%;
        flex-wrap: nowrap;
        justify-content: space-between;
        animation: none;
        transform: none;
    }

    .block-logos.is-estatico-desktop .logo-item--dupe {
        display: none;
    }
}
