/* ── Sponsors page: logo grid ──────────────────────────────────────────────── */

.sponsor-tier {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: center;
  justify-content: center;
  margin: 0.75rem 0 2.5rem;
}

.sponsor-entry {
  text-align: center;
}

.sponsor-entry img {
  display: block;
  margin: 0 auto 0.5rem;
  width: auto;
  height: auto;
  object-fit: contain;
}

.sponsor-entry p {
  font-size: 0.85rem;
  margin: 0;
}

/* Tier-based logo sizes: larger tiers get more real estate */
.sponsor-tier--platinum .sponsor-entry img {
  max-height: 120px;
  max-width: 300px;
}

.sponsor-tier--gold .sponsor-entry img {
  max-height: 90px;
  max-width: 240px;
}

.sponsor-tier--silver .sponsor-entry img {
  max-height: 70px;
  max-width: 190px;
}

.sponsor-tier--bronze .sponsor-entry img {
  max-height: 56px;
  max-width: 160px;
}

.sponsor-tier--friends-of-the-fair .sponsor-entry img {
  max-height: 44px;
  max-width: 140px;
}

/* ── Homepage sponsor carousel ─────────────────────────────────────────────── */

.home-sponsors {
  padding: 1.25rem 1rem 1.75rem;
  background: var(--gray-50, #f9fafb);
  margin-top: 2.5rem;
  border-top: 1px solid var(--gray-200, #e5e7eb);
  /* Theme's .content applies max-width: 895px to direct children.
     Override so the sponsor strip fills the full container width. */
  max-width: 100%;
  width: 100%;
}

.home-sponsors .container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
}

.home-sponsors__label {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gray-500, #6b7280);
  margin: 0 0 0.75rem;
}

.sponsor-carousel {
  overflow: hidden;
}

.sponsor-carousel__track {
  display: flex;
  align-items: center;
  /* transition injected by JS */
}

.sponsor-carousel__item {
  box-sizing: border-box;
  padding: 0.25rem 0.75rem;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* width set per-item by JS */
}

.sponsor-carousel__item img {
  max-height: 64px;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

/* Reduced motion: collapse to a static centred grid, hide JS-appended clones */
@media (prefers-reduced-motion: reduce) {
  .sponsor-carousel__track {
    flex-wrap: wrap;
    justify-content: center;
  }

  .sponsor-carousel__item[aria-hidden="true"] {
    display: none;
  }
}

/* ── Carousel dot indicators ───────────────────────────────────────────────── */

.sponsor-carousel__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  width: 100%;
  min-height: 1.25rem;  /* reserve space so footer links don't jump */
}

.sponsor-carousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gray-300, #d1d5db);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.sponsor-carousel__dot:hover {
  background: var(--primary-400, #60a5fa);
  transform: scale(1.2);
}

.sponsor-carousel__dot.is-active {
  background: var(--primary-600, #2563eb);
  transform: scale(1.2);
}

/* ── Shared footer links under sponsor sections ────────────────────────────── */

.sponsor-footer-links {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.9rem;
}

.sponsor-footer-links a + a::before {
  content: " · ";
  color: var(--gray-400, #9ca3af);
}
