/* ==========================================================================
   Bar News - bandeau defilant continu (seamless marquee)
   ========================================================================== */

.barnews {
  --barnews-bg: #111111;
  --barnews-color: #ffffff;
  --barnews-sep-color: #f2a900;
  --barnews-icon-color: #f2a900;
  --barnews-font-size: 14px;
  --barnews-font-weight: 600;
  --barnews-padding: 10px;
  --barnews-gap: 48px;

  position: relative;
  width: 100%;
  background: var(--barnews-bg);
  color: var(--barnews-color);
  padding: var(--barnews-padding) 0;
  overflow: hidden;
  z-index: 5;
}

.barnews--sticky {
  position: sticky;
  top: 0;
  z-index: 1000;
}

.barnews-viewport {
  width: 100%;
  overflow: hidden;
}

.barnews-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  /* meme espacement entre les groupes qu'a l'interieur d'un groupe :
     c'est ce qui rend la boucle parfaitement invisible */
  column-gap: var(--barnews-step, var(--barnews-gap));
}

/* L'animation n'est activee qu'une fois la distance calculee par le JS */
.barnews-track.is-running {
  animation-name: barnews-scroll;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: var(--barnews-duration, 30s);
}

.barnews[data-direction="right"] .barnews-track.is-running {
  animation-direction: reverse;
}

@keyframes barnews-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(calc(-1 * var(--barnews-distance, 0px)), 0, 0);
  }
}

.barnews-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  flex: 0 0 auto;
  column-gap: var(--barnews-step, var(--barnews-gap));
}

/* Avec separateur, chaque "pas" vaut la moitie de l'espacement demande :
   item <-> separateur <-> item = --barnews-gap au total. */
.barnews--hassep {
  --barnews-step: calc(var(--barnews-gap) / 2);
}

.barnews-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: var(--barnews-font-size);
  font-weight: var(--barnews-font-weight);
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.barnews--upper .barnews-item {
  text-transform: uppercase;
}

.barnews-text {
  white-space: nowrap;
}

.barnews-icon {
  display: inline-flex;
  align-items: center;
  color: var(--barnews-icon-color);
  flex: 0 0 auto;
}

.barnews-icon svg {
  width: calc(var(--barnews-font-size) + 4px);
  height: calc(var(--barnews-font-size) + 4px);
  display: block;
}

.barnews-sep {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  color: var(--barnews-sep-color);
  font-size: var(--barnews-font-size);
  line-height: 1;
  opacity: 0.9;
  user-select: none;
}

/* Pause au survol */
.barnews--pause:hover .barnews-track.is-running,
.barnews--pause:focus-within .barnews-track.is-running {
  animation-play-state: paused;
}

/* Degrades sur les bords (optionnel, retirer si non desire) */
.barnews-viewport {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 24px,
    #000 calc(100% - 24px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 24px,
    #000 calc(100% - 24px),
    transparent 100%
  );
}

/* Liens eventuels dans les textes */
.barnews a {
  color: inherit;
  text-decoration: underline;
}

.barnews a:hover {
  opacity: 0.8;
}

/* Accessibilite : pas d'animation si l'utilisateur la refuse */
@media (prefers-reduced-motion: reduce) {
  .barnews-track.is-running {
    animation: none !important;
  }
  .barnews-viewport {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

@media (max-width: 767px) {
  .barnews {
    --barnews-gap: 32px;
  }
}
