:root {
  --logo-size: 160px;
  --logo-height: 60px;
  --logo-gap: 4rem;
  --logo-opacity: 0.7;
  --transition-speed: 0.3s;
  --page-gutter: 1rem;
}

.company-carousel-track {
  display: flex;
  align-items: center;
  width: fit-content;
  will-change: transform;
  transition: none;
}

.company-carousel-container {
  width: 100%;
  overflow: hidden;
}

.company-carousel-container:hover .company-carousel-track {
  animation-play-state: paused;
}

.company-logo-item {
  flex-shrink: 0;
  margin-right: var(--logo-gap);
  opacity: var(--logo-opacity);
  transition: opacity var(--transition-speed) ease, transform var(--transition-speed) ease;
  min-width: var(--logo-size);
}

.company-logo-item:hover {
  opacity: 1;
  transform: scale(1.05);
}

.company-logo-wrapper {
  height: var(--logo-height);
  width: var(--logo-size);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
}

.company-logo-img {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transition: filter var(--transition-speed) ease;
}

.company-logo-item:hover .company-logo-img {
  filter: brightness(0) invert(1) sepia(1) hue-rotate(42deg) saturate(5) brightness(1.2);
}

@media (max-width: 768px) {
  :root {
    --logo-size: 120px;
    --logo-height: 50px;
    --logo-gap: 2.5rem;
  }

  .company-carousel-section {
    padding-left: 0;
    padding-right: 0;
  }

  .company-carousel-container {
    width: 100vw;
    margin-inline: calc(-1 * var(--page-gutter));
  }
}

@media (max-width: 480px) {
  :root {
    --logo-size: 100px;
    --logo-height: 40px;
    --logo-gap: 2rem;
  }
}