/* TCEQ violations — CTA gate + clean list reveal */

/* CTA that gates the leaderboard — generous negative space before it's opened. */
.ww-cta { text-align: center; padding: 90px 0 100px; }
.ww-cta-btn {
  display: inline-block;
  margin-top: 24px;
  background: var(--accent);
  color: #fff;
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
  padding: 16px 30px;
  border-radius: 8px;
  box-shadow: 0 8px 30px rgba(226,59,43,0.45);
  transition: transform 0.15s ease, background 0.15s ease;
}
.ww-cta-btn:hover { background: #c9301f; transform: translateY(-2px) scale(1.02); }
.ww-cta-sub { color: var(--muted); font-size: 0.95rem; margin-top: 22px; max-width: 46ch; margin-left: auto; margin-right: auto; }
.ww-cta-sub strong { color: var(--amber); }

/* Pre-reveal heading block — centered with room to breathe. */
#hall-of-shame { padding-top: 80px; padding-bottom: 80px; }
#hall-of-shame .kicker { text-align: center; margin-bottom: 22px; }
#hall-of-shame h2 { text-align: center; max-width: 22ch; margin-left: auto; margin-right: auto; margin-bottom: 22px; }
#hall-of-shame .ww-sub { text-align: center; max-width: 60ch; margin-left: auto; margin-right: auto; }

/* Hidden until revealed; then fades up cleanly. */
.ww-gated { display: none; }
.ww-gated.revealed { display: block; animation: ggFadeUp 0.5s ease both; }
@keyframes ggFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ---- Olympic-style staggered podium (worst = tallest, center) ---- */
.ww-podium {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 16px;
  margin: 10px 0 28px;
}
.ww-podium .slot {
  flex: 1 1 0;
  max-width: 300px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px 8px 0 0;
  padding: 20px 16px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.ww-podium .slot .medal { font-size: 1.6rem; }
.ww-podium .slot .aquifer { font-weight: 800; font-size: 0.95rem; margin-top: 8px; color: var(--amber); line-height: 1.2; }
.ww-podium .slot .city { font-weight: 700; font-size: 1.1rem; margin-top: 4px; }
.ww-podium .slot .count { color: var(--accent); font-weight: 800; font-size: 2rem; margin-top: 6px; line-height: 1; }
.ww-podium .slot .lbl { color: var(--muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 14px; }
.ww-podium .slot .plinth {
  margin-top: 12px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 1.3rem; color: var(--bg);
  border-radius: 4px 4px 0 0;
}
/* #1 center & tallest, #2 left, #3 right */
.ww-podium .slot.place-1 { order: 2; }
.ww-podium .slot.place-2 { order: 1; }
.ww-podium .slot.place-3 { order: 3; }
.ww-podium .slot.place-1 { border-color: var(--amber); }
.ww-podium .slot.place-1 .plinth { height: 92px; background: var(--amber); }
.ww-podium .slot.place-2 .plinth { height: 62px; background: #c9ccd1; }
.ww-podium .slot.place-3 .plinth { height: 40px; background: #cd7f32; }
@media (max-width: 600px) {
  .ww-podium { flex-direction: column; align-items: stretch; }
  .ww-podium .slot { max-width: none; order: 0 !important; border-radius: 8px; }
  .ww-podium .slot .plinth { height: 28px !important; border-radius: 4px; }
}
