/* ==========================================================================
   Bowling & Leagues page styles — extends tokens.css + site.css.
   Never redefines palette hexes; only composes existing variables.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Rate cards — base recipe (.rate-card, .price-lg size, .rate-when schedule
   line) is shared in site.css; only page-specific spacing/chips live here.
   -------------------------------------------------------------------------- */

.rate-card .price-lg { margin-bottom: var(--space-4); }
.rate-card .chip-price {
  position: absolute;
  top: var(--space-5);
  right: var(--space-5);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transform: rotate(2deg);
}
.rate-card dl { margin: 0; }

.rate-note {
  text-align: center;
  max-width: none;
  margin: var(--space-6) auto 0;
  font-size: var(--text-small);
}
.rate-note .num { font-size: inherit; }

/* League-bowler discount band */
.discount-card {
  margin-top: var(--space-7);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--space-6);
  align-items: center;
}
@media (max-width: 820px) { .discount-card { grid-template-columns: 1fr; } }
.discount-card .badge-felt { margin-bottom: var(--space-3); }
.discount-card dl { margin: 0; }

/* --------------------------------------------------------------------------
   Extreme Bowl — After Dark room
   -------------------------------------------------------------------------- */

.banner-strip { display: block; }
.banner-strip img {
  width: 100%;
  height: auto;
  max-height: 200px;
  object-fit: cover;
  display: block;
}

/* --------------------------------------------------------------------------
   League board — 18 leagues by day
   -------------------------------------------------------------------------- */

.league-board {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7) var(--space-8);
  align-items: start;
}
@media (max-width: 820px) { .league-board { grid-template-columns: 1fr; gap: var(--space-7); } }

.league-day { border-top: 3px solid var(--amber); padding-top: var(--space-4); }
.league-day__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-2);
}
.league-day__head h3 { margin: 0; }
.league-day__count {
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: var(--text-eyebrow);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--felt);
  white-space: nowrap;
}

.league-row {
  display: grid;
  grid-template-columns: 6.25rem 1fr;
  gap: var(--space-2) var(--space-4);
  padding-block: var(--space-4);
  border-bottom: 1px dashed rgba(51,38,28,.3);
}
.league-row:last-child { border-bottom: 0; }
.league-row__time {
  font-family: var(--font-mono);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: 0.9375rem;
  padding-top: 2px;
  white-space: nowrap;
}
.league-row__name { margin: 0 0 2px; }
.league-row__meta {
  display: block;
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.03em;
  opacity: .85;
  margin-bottom: var(--space-2);
}
.league-row__tags { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* League type tags — all pairs AA at this size per design-system table */
.tag {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--radius-chip);
}
.tag--mixed   { background: var(--felt); color: var(--btn-label); }
.tag--youth   { background: var(--amber); color: var(--ink); }
.tag--ladies  { background: var(--ketchup); color: var(--btn-label); }
.tag--mens    { background: var(--ink); color: var(--btn-label); }
.tag--scratch { background: var(--action-red); color: var(--btn-label); }
.tag--start {
  background: transparent;
  color: var(--ink);
  border: 1.5px dashed rgba(51,38,28,.55);
  font-family: var(--font-mono);
}

@media (max-width: 480px) {
  .league-row { grid-template-columns: 1fr; }
  .league-row__time { padding-top: 0; }
}

/* --------------------------------------------------------------------------
   Tournaments
   -------------------------------------------------------------------------- */

.poster-flyer { max-width: 440px; margin-inline: auto; }
.poster-flyer img { width: 100%; height: auto; }

.tournament-copy .card { margin-top: var(--space-6); }

/* --------------------------------------------------------------------------
   Around the house (live scoring + pro shop)
   -------------------------------------------------------------------------- */

.house-card { display: flex; flex-direction: column; }
.house-card .photo-frame { margin-bottom: var(--space-5); }
.house-card .btn { align-self: flex-start; margin-top: auto; }
.house-card p { margin-bottom: var(--space-5); }

/* --------------------------------------------------------------------------
   Join-a-league form
   -------------------------------------------------------------------------- */

.join-split { align-items: start; }
.join-copy .fact-row dd { text-align: right; }
.join-card { padding-top: var(--space-7); }
