/* KWCS sponsor logo garden — tiered sponsor logos, largest tier first.
   Each tier is a centred, wrapping row of white tiles; the tier modifier sets
   the tile and logo size, so a short tier of presenting partners reads bigger
   than a long row of community supporters. */

.sponsor-garden {
  position: relative;
  padding: 100px 80px;
}

.sponsor-garden--cream { background: var(--cream); }
.sponsor-garden--warm-white { background: var(--warm-white); }
.sponsor-garden--white { background: white; }

.sponsor-garden .section-header { margin-bottom: 56px; }

.sponsor-garden-tiers {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  gap: 56px;
}

/* Tier name between two short gold rules, echoing the section eyebrow. */
.sponsor-tier-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 24px;
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--navy);
}

.sponsor-tier-label::before,
.sponsor-tier-label::after {
  content: '';
  width: 28px;
  height: 3px;
  border-radius: 2px;
  background: var(--gold);
}

.sponsor-tier-logos {
  --tile-w: 200px;
  --tile-h: 112px;
  --logo-h: 60px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sponsor-tier--feature .sponsor-tier-logos { --tile-w: 320px; --tile-h: 180px; --logo-h: 116px; gap: 24px; }
.sponsor-tier--large .sponsor-tier-logos { --tile-w: 250px; --tile-h: 140px; --logo-h: 84px; }
.sponsor-tier--small .sponsor-tier-logos { --tile-w: 156px; --tile-h: 88px; --logo-h: 44px; gap: 14px; }

.sponsor-tier-logos > li {
  margin: 0;
  padding: 0;
}

.sponsor-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--tile-w);
  height: var(--tile-h);
  padding: 16px 22px;
  background: white;
  border-radius: 18px;
  box-shadow: 0 10px 28px -18px rgba(20, 55, 107, 0.45);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* On a white band the tiles need an edge rather than relying on the shadow. */
.sponsor-garden--white .sponsor-logo { box-shadow: 0 0 0 1.5px var(--navy-tint); }

a.sponsor-logo:hover,
a.sponsor-logo:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px -18px rgba(20, 55, 107, 0.55);
}

.sponsor-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: var(--logo-h);
  object-fit: contain;
}

/* Text fallback for a sponsor with no logo file yet. */
.sponsor-logo-text {
  font-family: 'Chewy', cursive;
  font-size: calc(var(--logo-h) * 0.4);
  line-height: 1.1;
  text-align: center;
  color: var(--navy);
}

@media (max-width: 1024px) {
  .sponsor-garden { padding: 72px 32px; }
  .sponsor-garden-tiers { gap: 44px; }
}

@media (max-width: 768px) {
  .sponsor-garden { padding: 56px 20px; }

  /* Two tiles to a row (one for feature), sized off the column rather than a
     fixed width so they never overflow a phone screen. */
  .sponsor-tier-logos { --tile-h: 88px; --logo-h: 48px; gap: 12px; }
  .sponsor-tier-logos > li { flex: 0 1 calc(50% - 6px); }
  .sponsor-logo { width: 100%; padding: 12px 16px; border-radius: 14px; }
  .sponsor-tier--feature .sponsor-tier-logos { --tile-h: 140px; --logo-h: 90px; gap: 14px; }
  .sponsor-tier--feature .sponsor-tier-logos > li { flex-basis: 100%; }
  .sponsor-tier--small .sponsor-tier-logos { --tile-h: 72px; --logo-h: 36px; }
  .sponsor-tier--small .sponsor-tier-logos > li { flex-basis: calc(33.333% - 8px); }
}
