.clients-section{padding:65px 0 80px;background:var(--ink)}.clients-heading{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;align-items:baseline}.clients-heading h2{font:400 12px/1.5 "Manrope",system-ui,sans-serif;letter-spacing:2px;text-transform:uppercase;margin:0;color:var(--paper)}.clients-heading p{font-size:14px;color:#bdb9b2;margin:0}.clients-grid{list-style:none;padding:30px 0 10px;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 32px}.client-logo{height:160px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;min-width:0}.client-art{display:block;width:100%;max-width:180px;height:65px;overflow:hidden;filter:brightness(0) invert(1)}.client-forum .client-art,.client-fuego .client-art,.client-sport .client-art,.client-kolbiko .client-art{filter:url(#logo-white)}.client-buzz .client-art{max-width:125px}.client-forum .client-art{max-width:145px}.client-fuego .client-art{max-width:150px}.client-kolbiko .client-art{max-width:205px}.client-name{font-size:11px;letter-spacing:.35px;color:#bdb9b2;text-align:center;line-height:1.4}.client-logo{animation:client-arrive linear both;animation-timeline:view();animation-range:entry 0% entry 85%}@keyframes client-arrive{from{opacity:.15;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:950px){.clients-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 30px}}@media(max-width:600px){.clients-section{padding:45px 0 55px}.clients-heading{display:block}.clients-heading p{margin-top:12px}.clients-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 25px;padding-top:25px}.client-logo{height:135px;gap:16px}.client-art{max-width:150px;height:55px}.client-name{font-size:10px}}@media(prefers-reduced-motion:reduce){.client-logo{animation:none}}
.clients-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.client-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;width:100%;height:100%;position:relative;border-radius:6px}.client-external{position:absolute;right:8px;top:15px;font-size:15px;color:var(--orange);opacity:0;transition:opacity .2s}.client-link:hover .client-external,.client-link:focus-visible .client-external{opacity:1}.client-link:hover .client-name{color:var(--paper)}.client-deni .client-art,.client-dds .client-art{filter:url(#logo-white)}.client-certus .client-art{filter:url(#logo-certus);max-width:155px}.client-dds .client-art{max-width:160px;height:80px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.clients-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-link{gap:16px}.client-external{opacity:1;top:4px;right:0}.client-dds .client-art{height:65px}}

/* Give the detailed ministry wordmark comparable visual weight. */
.client-mnr .client-art{max-width:230px;height:80px}
@media(max-width:700px){.client-mnr .client-art{max-width:180px;height:65px}}

.client-fixit .client-art{filter:url(#logo-white);max-width:180px}.client-sportvision .client-art{max-width:205px}.client-helvetica .client-art{max-width:205px}.client-buzz .client-art{max-width:160px;height:75px}

/* Preserve the crest cutouts and render the motorcycle wordmark in solid white. */
.client-sportvision .client-art{filter:url(#logo-white)}
.client-najkmoto .client-art{filter:url(#logo-solid-white);max-width:190px;height:70px}

/* Keep original logo dimensions while avoiding low-resolution CSS filter surfaces. */
.client-forum .client-art,.client-sportvision .client-art,.client-najkmoto .client-art,.client-buzz .client-art{filter:none;color:#fff}
.client-mrhotdog .client-art{max-width:180px;object-fit:contain}

/* Reflective client gallery, with a centred card and receding side panels. */
.clients-grid.clients-stream{position:relative;display:block;height:520px;margin:25px -3vw 0;padding:0;overflow:hidden;touch-action:pan-y;cursor:grab;isolation:isolate;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.clients-stream::before{content:"";position:absolute;inset:30% 5% 0;background:radial-gradient(ellipse at 50% 60%,#ff630019,transparent 65%);pointer-events:none}
.clients-stream:active{cursor:grabbing}.clients-stream:focus-visible{outline:2px solid var(--orange);outline-offset:-4px}
.clients-stream .client-logo{box-sizing:border-box;position:absolute;left:50%;top:36%;width:220px;height:280px;padding:28px;background:linear-gradient(150deg,#38312d,#181818 65%);border:1px solid #ffffff25;border-radius:10px;box-shadow:0 12px 30px #0006;animation:none;will-change:transform,opacity;user-select:none;-webkit-box-reflect:below 12px linear-gradient(transparent 35%,#0003)}
.clients-stream .client-link{gap:0}.clients-stream .client-art{flex-shrink:0;max-width:100%;object-fit:contain}.clients-stream .client-external{top:0;right:0}
.clients-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;color:#bdb9b2;font-size:11px;letter-spacing:1.5px;text-transform:uppercase}
.clients-controls>div{display:flex;gap:20px;align-items:center}.clients-controls button{border:1px solid #ffffff40;background:transparent;color:var(--paper);width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:20px}.clients-controls button:hover{background:var(--orange);color:#242323}.clients-controls button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}.clients-controls output{min-width:60px;text-align:center}
@media(max-width:650px){.clients-grid.clients-stream{height:420px;margin-inline:-20px}.clients-stream .client-logo{width:180px;height:230px;padding:22px}.clients-controls{letter-spacing:.6px}.clients-controls>div{gap:10px}}
@media(prefers-reduced-motion:reduce){.clients-stream .client-logo{will-change:auto}}

/* Warm liquid-glass roster, coordinated with the service panels. */
.clients-stream .client-logo{--client-tint:55,51,47;background:linear-gradient(125deg,rgba(var(--client-tint),.8),rgba(var(--client-tint),.58) 48%,rgba(var(--client-tint),.74));border:1px solid #ffffff60;border-radius:24px;backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);box-shadow:inset 0 2px 2px #ffffff80,inset 2px 0 3px #ffffff30,inset -2px -3px 5px #ffffff25,0 20px 40px -14px #0008}
.clients-stream .client-logo:nth-child(3n+2){--client-tint:119,72,46}.clients-stream .client-logo:nth-child(3n){--client-tint:177,67,26}
.clients-stream .client-logo::before{content:"";position:absolute;inset:5px;border:1px solid #ffffff25;border-radius:19px;pointer-events:none}
.clients-stream .client-logo::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(118deg,transparent 5%,#ffffff16 20%,transparent 42%,#ffffff08 82%,transparent);pointer-events:none}
@media(max-width:650px){.clients-controls>span{max-width:125px;line-height:1.6}}

/* Self-contained SVGs avoid cross-document filter failures in mobile browsers. */
.clients-stream .client-art.portable-logo,.client-logo .client-art.portable-logo{filter:none;-webkit-filter:none}

/* Render logo artwork at 3x its display size before compositing moving cards. */
.clients-stream .portable-logo{position:relative;overflow:visible}
.clients-stream .portable-logo .logo-detail{position:absolute;left:0;top:0;width:300%;height:300%;max-width:none;object-fit:contain;transform:scale(.3333333333);transform-origin:0 0;backface-visibility:hidden}

/* Keep arrow taps reliable on touchscreens: avoid double-tap zoom and give them a 44px target. */
.clients-controls button{min-width:44px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}

.clients-stream.is-dragging{cursor:grabbing}
.clients-stream .logo-detail{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}

/* Embla uses a normal flex track; its own drag engine owns all slide movement. */
/* Keep Embla track and slide offsets in the same coordinate space at the loop boundary. */
.clients-viewport{position:relative;overflow-x:auto;overflow-y:hidden;touch-action:pan-y pinch-zoom;margin:25px -3vw 0;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.clients-viewport.embla-ready{overflow:hidden}
.clients-viewport:active{cursor:grabbing}
.clients-viewport:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.clients-grid.clients-stream.clients-track{display:flex;position:relative;gap:0;height:auto;min-height:460px;margin:0;padding:30px 0 150px;overflow:visible;mask-image:none;isolation:auto;touch-action:pan-y pinch-zoom}
.clients-track::before{display:none}
.clients-stream.clients-track .client-logo{position:relative;flex:0 0 220px;min-width:0;left:auto;top:auto;height:280px;margin:0 24px 0 0;opacity:1;animation:none;will-change:auto}
@media(max-width:650px){.clients-viewport{margin-inline:-20px}.clients-grid.clients-stream.clients-track{gap:0;min-height:370px;padding:24px 0 116px}.clients-stream.clients-track .client-logo{flex-basis:180px;height:230px;margin-right:18px}}

/* Make the brand artwork part of the card's touch surface, including Safari.
   Nested overflow on logo wrappers must not claim a separate pan gesture. */
.clients-track .client-logo,.clients-track .client-link{touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.clients-track .client-art,.clients-track .client-art *,.clients-track .client-external{pointer-events:none;touch-action:pan-y pinch-zoom;-webkit-user-drag:none;-webkit-touch-callout:none}
