/* « Écouter » (2026-10-31) : les lecteurs d'écoute des artistes en carrousel de façades (partials/artist_players, ecouter.js).
   Une façade visible à la fois sur téléphone, deux sur écran moyen, trois sur grand écran ; défilement au doigt (scroll-snap),
   aux flèches et au clavier. Jetons seulement. */
.splayers__sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.splayers__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.splayers__nav { display: flex; gap: var(--space-2); }
.splayers__nav[hidden] { display: none; }
.splayers__arrow {
    width: 40px; height: 40px; border-radius: var(--radius-pill); border: 1px solid var(--color-border-strong);
    background: var(--color-surface); color: var(--color-ink); font-size: 1.4rem; line-height: 1; cursor: pointer;
}
.splayers__arrow:hover:not(:disabled) { border-color: var(--color-accent); color: var(--color-accent-text); }
.splayers__arrow:disabled { opacity: 0.35; cursor: default; }
.splayers__track {
    list-style: none; margin: var(--space-3) 0 0; padding: 0 0 var(--space-2);
    display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: var(--space-3);
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain;
    scrollbar-width: thin;
}
.splayers__track:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
@media (min-width: 700px) { .splayers__track { grid-auto-columns: calc((100% - var(--space-3)) / 2); } }
@media (min-width: 1100px) { .splayers__track { grid-auto-columns: calc((100% - 2 * var(--space-3)) / 3); } }
@media (prefers-reduced-motion: reduce) { .splayers__track { scroll-behavior: auto; } }
.splayer {
    scroll-snap-align: start; display: flex; flex-direction: column; gap: var(--space-2); min-width: 0;
    padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface);
}
.splayer__facade { display: flex; flex-direction: column; gap: var(--space-2); }
.splayer__facade[hidden] { display: none; }
.splayer__play {
    display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: var(--space-3); row-gap: 2px; width: 100%;
    min-height: 72px; padding: var(--space-3); text-align: left; font: inherit; cursor: pointer;
    border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-surface-2); color: var(--color-ink);
}
a.splayer__play { text-decoration: none; }
.splayer__play:hover, .splayer__play:focus-visible { border-color: var(--color-accent); }
.splayer__play:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.splayer__logo { width: 40px; height: 40px; grid-row: span 2; fill: currentColor; color: var(--color-accent); }
.splayer__text { font-weight: 600; }
.splayer__label { grid-column: 2; color: var(--color-text-2); }
.splayer__note { margin: 0; }
.splayer__frame iframe { display: block; width: 100%; border: 0; border-radius: var(--radius-sm); }
.splayer__frame--video iframe { aspect-ratio: 16 / 9; height: auto; }
.splayer__foot { margin: auto 0 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.splayer__close { font: inherit; background: none; border: 0; padding: 0; color: var(--color-accent-text); text-decoration: underline; cursor: pointer; }
.splayer__close[hidden] { display: none; }
