.psbm { position: relative; overflow: hidden; }
.psbm__track { display: flex; flex-wrap: nowrap; width: max-content; will-change: transform; transform: translate3d(0,0,0); }
.psbm__seq { display: flex; flex-wrap: nowrap; flex-shrink: 0; }

/* Animation linéaire et infinie basée sur une translation EXACTE en pixels */
.psbm__track--animate {
    animation: psbm-scroll var(--psbm-duration, 40000ms) linear infinite;
    animation-play-state: paused; /* démarrée en JS une fois les dimensions stables */
}

@keyframes psbm-scroll {
    0%   { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(calc(-1 * var(--psbm-shift, 0px)), 0, 0); }
}

.psbm__item {
    flex: 0 0 auto;                /* empêche le rétrécissement des items */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 28px;               /* espace horizontal entre logos */
    height: 72px;                  /* hauteur harmonisée */
}

.psbm__item img {
    max-height: 56px;
    width: auto;
    height: auto;
    display: block;
    transition: transform .2s ease, filter .2s ease, opacity .2s ease;
}

.psbm__item:hover img { transform: scale(1.05); }

.psbm__name { font-size: 14px; white-space: nowrap; }

/* Petits écrans */
@media (max-width: 576px) {
    .psbm__item { padding: 0 16px; height: 64px; }
    .psbm__item img { max-height: 48px; }
}

/* Accessibilité : respect des préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
    .psbm__track--animate { animation: none; transform: none; }
}