.snap-opus-marquee {
  --snap-marquee-bg: #f3f7f5;
  --snap-marquee-text: #17211d;
  --snap-marquee-accent: #176b52;
  --snap-marquee-control-bg: #fff;
  --snap-marquee-gap: 38px;
  --snap-marquee-pad: 18px;
  --snap-marquee-fade: 56px;
  --snap-marquee-shift: -500px;
  --snap-marquee-duration: 8s;
  align-items: center;
  background: var(--snap-marquee-bg);
  color: var(--snap-marquee-text);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-inline-size: 0;
  overflow: hidden;
  position: relative;
}

.snap-opus-marquee[data-palette="dark"] {
  --snap-marquee-bg: #17211d;
  --snap-marquee-text: #f4f7f5;
  --snap-marquee-accent: #8de2c5;
  --snap-marquee-control-bg: #26332d;
}

.snap-opus-marquee__viewport { min-inline-size: 0; padding-block: var(--snap-marquee-pad); }
.snap-opus-marquee__track { inline-size: 100%; }
.snap-opus-marquee__list {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem var(--snap-marquee-gap);
  list-style: none;
  margin: 0;
  padding: 0 var(--snap-marquee-gap);
}
.snap-opus-marquee__item {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  font: 650 .95rem/1.2 system-ui, sans-serif;
  gap: .62rem;
  overflow-wrap: anywhere;
  white-space: normal;
}
.snap-opus-marquee__eyebrow {
  border: 1px solid color-mix(in srgb, var(--snap-marquee-accent) 48%, transparent);
  border-radius: 999px;
  color: var(--snap-marquee-accent);
  font-size: .72em;
  font-weight: 750;
  letter-spacing: .07em;
  padding: .26em .58em;
  text-transform: uppercase;
}
.snap-opus-marquee__link { color: inherit; text-decoration: none; }
.snap-opus-marquee__link:hover { text-decoration: underline; }
.snap-opus-marquee__link:focus-visible,
.snap-opus-marquee__control:focus-visible { outline: 3px solid var(--snap-marquee-accent); outline-offset: 3px; }
.snap-opus-marquee__separator {
  align-items: center;
  color: var(--snap-marquee-accent);
  display: inline-flex;
  inline-size: 1rem;
  justify-content: center;
  margin-inline-start: calc(var(--snap-marquee-gap) - .62rem);
}
.snap-opus-marquee[data-separator="dot"] .snap-opus-marquee__separator::before { background: currentColor; border-radius: 50%; content: ""; block-size: .38rem; inline-size: .38rem; }
.snap-opus-marquee[data-separator="line"] .snap-opus-marquee__separator::before { background: currentColor; content: ""; block-size: 1px; inline-size: 1rem; }
.snap-opus-marquee[data-separator="slash"] .snap-opus-marquee__separator::before { content: "/"; font-size: 1.2em; font-weight: 400; }
.snap-opus-marquee__control {
  align-self: stretch;
  appearance: none;
  background: var(--snap-marquee-control-bg);
  border: 0;
  border-inline-start: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  color: inherit;
  cursor: pointer;
  display: none;
  font: 700 .76rem/1 system-ui, sans-serif;
  letter-spacing: .025em;
  min-block-size: 44px;
  min-inline-size: 7.6rem;
  padding-inline: 1rem;
  position: relative;
  z-index: 3;
}
.snap-opus-marquee__control:hover { color: var(--snap-marquee-accent); }
.snap-opus-marquee__status { block-size: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); inline-size: 1px; overflow: hidden; position: absolute; white-space: nowrap; }
.snap-opus-marquee-empty { border: 1px dashed #9aa5a0; color: #4c5a54; padding: 1rem; }

.snap-opus-marquee.is-enhanced .snap-opus-marquee__viewport { overflow: hidden; }
.snap-opus-marquee.is-enhanced .snap-opus-marquee__track {
  align-items: center;
  display: flex;
  inline-size: max-content;
  will-change: transform;
}
.snap-opus-marquee.is-enhanced .snap-opus-marquee__list { flex-wrap: nowrap; padding-inline-end: 0; }
.snap-opus-marquee.is-enhanced .snap-opus-marquee__item {
  white-space: nowrap;
  will-change: transform;
}
.snap-opus-marquee.is-enhanced .snap-opus-marquee__control { display: block; }
.snap-opus-marquee.is-enhanced[data-edge-fade="yes"] .snap-opus-marquee__viewport {
  mask-image: linear-gradient(to right, transparent, #000 var(--snap-marquee-fade), #000 calc(100% - var(--snap-marquee-fade)), transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--snap-marquee-fade), #000 calc(100% - var(--snap-marquee-fade)), transparent);
}
/* L'item survolé se fige localement (compense le décalage du bandeau
   par une contre-translation) pendant que les autres continuent : le
   JS écrit le transform, ceci n'est qu'un repère visuel de l'ancrage. */
.snap-opus-marquee.is-enhanced .snap-opus-marquee__item.is-magnet-held {
  position: relative;
  z-index: 4;
}

@media (prefers-color-scheme: dark) {
  .snap-opus-marquee[data-palette="auto"] {
    --snap-marquee-bg: #17211d;
    --snap-marquee-text: #f4f7f5;
    --snap-marquee-accent: #8de2c5;
    --snap-marquee-control-bg: #26332d;
  }
}
@media (max-width: 767px) {
  .snap-opus-marquee { grid-template-columns: minmax(0, 1fr); }
  .snap-opus-marquee__control {
    border-block-start: 1px solid color-mix(in srgb, currentColor 16%, transparent);
    border-inline-start: 0;
    inline-size: 100%;
  }
  .snap-opus-marquee__item { font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  .snap-opus-marquee { display: block; }
  .snap-opus-marquee__viewport { mask-image: none !important; -webkit-mask-image: none !important; overflow: visible !important; }
  .snap-opus-marquee__track { animation: none !important; display: block !important; inline-size: auto !important; transform: none !important; will-change: auto !important; }
  .snap-opus-marquee__list { flex-wrap: wrap !important; padding-inline-end: var(--snap-marquee-gap) !important; white-space: normal; }
  .snap-opus-marquee__control { display: none !important; }
  .snap-opus-marquee__clone { display: none !important; }
}
@media (forced-colors: active) {
  .snap-opus-marquee { border: 1px solid CanvasText; }
  .snap-opus-marquee__eyebrow { border-color: Highlight; color: Highlight; }
  .snap-opus-marquee__separator { color: CanvasText; }
}
.elementor-widget.elementor-widget-snap-opus-marquee { min-inline-size: 0; }
