/* Marquee ticker — horizontal scroll loop for slogans / strips */

.marquee-ticker {
  aspect-ratio: var(--marquee-ticker-ratio, 892 / 264.76);
  height: auto;
  overflow: hidden;
  background: var(--marquee-ticker-bg, #fff);
}

.marquee-ticker__viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: var(--marquee-ticker-bg, #fff);
}

.marquee-ticker__track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  width: max-content;
  height: 100%;
  animation: marquee-ticker-scroll var(--marquee-ticker-duration, 19.2s) linear infinite;
  will-change: transform;
}

.marquee-ticker__img {
  display: block;
  flex: 0 0 auto;
  height: calc(100% * var(--marquee-ticker-img-scale, 3.9));
  width: auto;
  max-width: none;
  object-fit: contain;
  object-position: left center;
}

.marquee-ticker__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes marquee-ticker-scroll {
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .marquee-ticker__track {
    animation: none;
    transform: translateX(0);
  }

  .marquee-ticker__viewport {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .marquee-ticker__viewport::-webkit-scrollbar {
    display: none;
  }
}
