/* One continuous brand strip, with consistent frames and original proportions. */
.client-carousel{margin:32px auto 0;max-width:1100px}
.client-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;list-style:none;padding:12px 0;margin:0}
.client-track::-webkit-scrollbar{display:none}
.client-logo{flex:0 0 160px;min-width:0;height:96px;display:flex;align-items:center;justify-content:center;padding:14px;border-radius:10px;background:#fff;scroll-snap-align:start;box-sizing:border-box}
.client-logo img{display:block;width:132px;height:64px;object-fit:contain;object-position:center;filter:grayscale(1);transition:filter .2s ease}
.client-logo:hover img{filter:grayscale(0)}
.client-logo span{font-size:16px;color:#24375a;font-weight:600;overflow-wrap:anywhere}
.client-logo.is-dark{background:#102042}
.client-track:focus-visible{outline:2px solid #028bdc;outline-offset:4px}
.client-caption{font-size:13px;color:#526380;margin:24px 0 0}
.client-viewport{overflow:hidden;width:100%}
.client-viewport .client-track{overflow:visible;scroll-snap-type:none;will-change:transform;animation-timing-function:linear;animation-iteration-count:infinite;animation-play-state:paused}
.client-logo[hidden]{display:none}
@keyframes client-continuous{from{transform:translateX(0)}to{transform:translateX(var(--client-distance))}}
@media(max-width:550px){.client-track{gap:16px}.client-logo{flex-basis:144px;height:88px;padding:12px}.client-logo img{width:120px;height:60px}.client-carousel{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.client-viewport .client-track{animation-play-state:paused!important}.client-logo img{transition:none}}
