/* beats-koppelingen.css: the Koppelingen wall on the product page (spec 09, 2026-11-01). Four rows of system names, each a strip that drifts
   sideways without end (koppelingen.js moves it, faster while the visitor scrolls, the other way on a scroll up) behind a soft fade at both edges.
   The marks are the single path brand icons of Simple Icons (CC0, see vendor/LICENSES.md) drawn in the ink of the theme; a system without a
   free mark is set as a wordmark in the site type. No boxes, no borders, no colour but ink, and kobalt under the pointer. Reduced motion or a
   static page (html.beats-static): the strips wrap into plain rows inside the content width and nothing moves. Cap 16 KB (MAP amendment 3). */
.koppel{overflow:hidden;padding:var(--section-y) 0}
.koppel .lead{max-width:44rem}
.koppel .lead .eyebrow{margin:0 0 18px}
.koppel .lead .koppel-line{max-width:36ch;margin:16px auto 0;font:400 clamp(1.05rem,1.3vw,1.25rem)/1.4 var(--font-sans);color:var(--grafiet);text-wrap:pretty}
.koppel-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,3.2vh,36px)}
.koppel-row{min-width:0}
.koppel-cat{width:min(var(--wrap),100% - 2 * var(--gutter));margin:0 auto 12px;font:500 12px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--grafiet)}
.koppel-strip{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000)}
.koppel-track{--kg:clamp(40px,4.5vw,64px);display:flex;gap:var(--kg);width:max-content;margin:0;padding:6px 0;list-style:none;will-change:transform}
.koppel-item{display:inline-flex;align-items:center;gap:12px;flex:none;font:600 clamp(16px,1.3vw,19px)/1 var(--font-sans);letter-spacing:-.015em;white-space:nowrap;color:var(--inkt);transition:color .25s}
.koppel-item svg{flex:none;width:1.45em;height:1.45em;fill:currentColor}
.koppel-item--wm{font-weight:700;letter-spacing:-.025em}
.koppel-item:hover{color:var(--kobalt-text)}
.koppel-foot{width:min(var(--wrap),100% - 2 * var(--gutter));margin:clamp(36px,5vh,56px) auto 0;text-align:center;font:400 clamp(1rem,1.15vw,1.125rem)/1.4 var(--font-sans);color:var(--grafiet)}

@media (max-width:759px){
  .koppel-rows{gap:22px}
  .koppel-cat{margin-bottom:10px;font-size:11px}
  .koppel-track{--kg:32px}
  .koppel-item{gap:9px;font-size:15px}
}

/* reduced motion and the static page: every name in view, nothing moves, no fade */
@media (prefers-reduced-motion:reduce){
  .koppel-strip{-webkit-mask-image:none;mask-image:none}
  .koppel-track{flex-wrap:wrap;width:min(var(--wrap),100% - 2 * var(--gutter));margin:0 auto;gap:16px 36px;transform:none}
}
.beats-static .koppel-strip{-webkit-mask-image:none;mask-image:none}
.beats-static .koppel-track{flex-wrap:wrap;width:min(var(--wrap),100% - 2 * var(--gutter));margin:0 auto;gap:16px 36px}
