:root {
  --marquee-width: 80vw;
  --marquee-height: 20vh;
  --marquee-elements-displayed: 7;
  --marquee-gap: 1rem;
  --marquee-element-width: calc(
    (var(--marquee-width) - (var(--marquee-gap) * (var(--marquee-elements-displayed) - 1)))
    / var(--marquee-elements-displayed)
  );
  /* Make sure this is set by JS to your 'total' number of logos */
  /* For example, var(--marquee-elements): 29; */
  /* Adjust duration based on ALL elements, not just displayed */
  --marquee-animation-duration: calc(var(--marquee-elements) * 3s); /* UPDATED! */
}

.marquee {
  width: var(--marquee-width);
  height: var(--marquee-height);
  background-color: #060606;
  overflow: hidden;
  position: relative;
}

.marquee::before,
.marquee::after {
  position: absolute;
  top: 0;
  width: 5rem;
  height: 100%;
  content: "";
  z-index: 2;
}

.marquee::before {
  left: 0;
  background: linear-gradient(to right, #060606 0%, transparent 100%);
}

.marquee::after {
  right: 0;
  background: linear-gradient(to left, #060606 0%, transparent 100%);
}

.marquee-content {
  list-style: none;
  height: 100%;
  display: flex;
  gap: var(--marquee-gap);
  animation: scrolling var(--marquee-animation-duration) linear infinite;
}

@keyframes scrolling {
  0% {
    transform: translateX(0);
  }
  100% {
    /* THIS IS THE KEY CHANGE: Scroll by the width of ALL original elements (total logos) */
    transform: translateX(calc(-1 * (var(--marquee-element-width) + var(--marquee-gap)) * var(--marquee-elements))); /* UPDATED! */
  }
}

.marquee-content li {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: var(--marquee-element-width);
  height: 100%;
}

.marquee-content li img {
  max-height: 80%;
  max-width: 100%;
  object-fit: contain;
  filter: grayscale(1);
  transition: filter 0.3s ease;
}

.marquee-content li img:hover {
  filter: grayscale(0);
}