/* A seamless, readable client strip. Motion is opt-in after controls initialise. */
.client-logo-marquee{--logo-width:260px;--logo-height:184px;--logo-gap:14px;min-width:0}
.client-logo-controls{display:flex;justify-content:flex-end;margin-bottom:14px}
.client-logo-toggle{background:transparent;color:inherit;border:1px solid currentColor;padding:9px 15px;font:inherit;font-size:12px;line-height:1.4;cursor:pointer}
.client-logo-viewport{overflow-x:auto;overscroll-behavior-x:contain;border-block:1px solid var(--line,#deded9);padding-block:14px}
.client-logo-track{display:flex;width:max-content;max-width:none}
.client-logo-group{display:flex;gap:var(--logo-gap);padding-right:var(--logo-gap);flex:none}
.client-logo-tile{flex:0 0 var(--logo-width);width:var(--logo-width);height:var(--logo-height);display:grid;place-items:center;background:#fff;border:1px solid var(--line,#deded9);padding:16px}
.client-logo-tile img{width:224px!important;height:224px!important;max-width:100%;max-height:100%;object-fit:contain;display:block}
.client-logo-group[aria-hidden=true]{display:none}
.client-logo-marquee.is-ready .client-logo-viewport{overflow:hidden}
.client-logo-marquee.is-ready .client-logo-group[aria-hidden=true]{display:flex}
.client-logo-marquee.is-ready .client-logo-track{animation:client-logo-scroll var(--logo-duration,90s) linear infinite;will-change:transform}
.client-logo-marquee[data-paused=true] .client-logo-track,.client-logo-viewport:hover .client-logo-track,.client-logo-viewport:focus-within .client-logo-track{animation-play-state:paused}
@keyframes client-logo-scroll{to{transform:translateX(-50%)}}
@media(max-width:600px){.client-logo-marquee{--logo-width:230px;--logo-height:160px;--logo-gap:12px}.client-logo-tile{padding:12px}.client-logo-tile img{width:200px!important;height:200px!important}}
@media(prefers-reduced-motion:reduce){.client-logo-marquee.is-ready .client-logo-track{animation:none;will-change:auto}.client-logo-marquee.is-ready .client-logo-group[aria-hidden=true]{display:none}.client-logo-marquee.is-ready .client-logo-viewport{overflow-x:auto}.client-logo-controls{display:none}}

/* Crop windows remove canvas padding while preserving each complete original mark. */
.client-logo-crop{position:relative;display:block;overflow:hidden;flex:none;aspect-ratio:var(--logo-aspect);width:min(100%,224px,calc(128px * var(--logo-aspect)))}
.client-logo-crop img{position:absolute;left:var(--crop-left);top:var(--crop-top);width:var(--crop-width)!important;height:var(--crop-height)!important;max-width:none!important;max-height:none!important;object-fit:fill;display:block}
.client-grid>div{padding:18px;min-width:0;min-height:156px}
.client-grid .client-logo-crop{width:min(100%,224px,calc(112px * var(--logo-aspect)))}
@media(max-width:600px){.client-logo-crop{width:min(100%,200px,calc(120px * var(--logo-aspect)))}.client-grid>div{padding:14px;min-height:140px}.client-grid .client-logo-crop{width:min(100%,200px,calc(100px * var(--logo-aspect)))}}

.client-logos-21{--logo-duration:105s}.client-logos-8{--logo-duration:40s}
