/* ===================================================
   Sponsors / Tech Marquee Section
=================================================== */

/* --- Design Tokens --- */
:root {
  --marquee-bg: #035472;
  --marquee-icon-color: rgba(255, 255, 255, 0.85);
  --marquee-label-color: rgba(255, 255, 255, 0.55);
  --marquee-icon-size: 2.25rem;
  --marquee-label-size: 0.75rem;
  --marquee-gap: 3.5rem;
  --marquee-speed: 30s;
  --marquee-padding-block: 2.5rem;
}

/* --- Section --- */
.sponsors-section {
  background-color: var(--marquee-bg);
  padding-block: var(--marquee-padding-block);
  margin-bottom: 1em;
  overflow: hidden;
  position: relative;
}

/* Fade masks on edges */
.sponsors-section::before,
.sponsors-section::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 80px;
  z-index: 2;
  pointer-events: none;
}
.sponsors-section::before {
  left: 0;
  background: linear-gradient(to right, var(--marquee-bg), transparent);
}
.sponsors-section::after {
  right: 0;
  background: linear-gradient(to left, var(--marquee-bg), transparent);
}

/* --- Marquee Container --- */
.marquee {
  width: 100%;
  overflow: hidden;
}

/* --- Scrolling Track --- */
.marquee-track {
  display: flex;
  align-items: center;
  gap: var(--marquee-gap);
  width: max-content;
  animation: marquee-scroll var(--marquee-speed) linear infinite;
}

.marquee-track:hover {
  animation-play-state: paused;
}

/* --- Individual Item --- */
.marquee-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  cursor: default;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.marquee-item:hover {
  transform: scale(1.15);
}

.marquee-item i {
  font-size: var(--marquee-icon-size);
  color: var(--marquee-icon-color);
  transition: color 0.3s ease;
}

.marquee-item:hover i {
  color: #ffffff;
}

.marquee-item span {
  font-family: "Montserrat", sans-serif;
  font-size: var(--marquee-label-size);
  font-weight: 500;
  color: var(--marquee-label-color);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: color 0.3s ease;
}

.marquee-item:hover span {
  color: rgba(255, 255, 255, 0.9);
}

/* --- Keyframes --- */
@keyframes marquee-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* --- Responsive --- */
@media screen and (max-width: 600px) {
  :root {
    --marquee-icon-size: 1.75rem;
    --marquee-gap: 2.5rem;
    --marquee-speed: 20s;
    --marquee-padding-block: 1.75rem;
  }

  .sponsors-section::before,
  .sponsors-section::after {
    width: 40px;
  }
}

@media screen and (min-width: 1200px) {
  :root {
    --marquee-icon-size: 2.5rem;
    --marquee-label-size: 0.8rem;
    --marquee-gap: 4.5rem;
    --marquee-speed: 35s;
    --marquee-padding-block: 3rem;
  }

  .sponsors-section::before,
  .sponsors-section::after {
    width: 120px;
  }
}
