/* ==========================================================================
   pages.css — page-specific overrides (kept small; most styling is shared)
   ========================================================================== */

/* Home: program preview cards */
.program-card { display: grid; gap: var(--space-3); }
.program-card .ph { aspect-ratio: 16 / 9; }
.program-card h3 { font-family: var(--font-display); text-transform: uppercase; font-size: var(--fs-24); }

/* Category page: big 5K focal */
.big-5k { font-family: var(--font-display); font-size: clamp(6rem, 26vw, 20rem); line-height: 0.8; color: var(--color-teal); text-transform: uppercase; }

/* Sustainability jersey block */
.jersey-block { position: relative; }
.jersey-block .ph { aspect-ratio: 4 / 5; }

/* Gallery */
.gallery-filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-6); }
.gallery-filter { padding: 0.5em 1em; border: 1px solid var(--color-line-strong); color: var(--color-paper); font-weight: 600; font-size: var(--fs-14); font-family: var(--font-kicker); letter-spacing: 0.06em; }
.gallery-filter[aria-pressed="true"] { background: var(--color-teal); color: #fff; border-color: var(--color-teal); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.gallery-grid .ph { aspect-ratio: 1 / 1; }
.gallery-item.is-hidden { display: none; }
@media (max-width: 767px) { .gallery-grid { grid-template-columns: 1fr 1fr; } }

/* News cards */
.news-card { display: flex; flex-direction: column; gap: var(--space-2); }
.news-card time { font-family: var(--font-kicker); letter-spacing: 0.08em; color: var(--color-teal); font-size: var(--fs-14); }
.news-card h3 { font-size: var(--fs-24); font-weight: 700; }

/* Contact cards */
.contact-card h3 { font-family: var(--font-kicker); letter-spacing: 0.08em; font-size: var(--fs-18); margin-bottom: var(--space-2); }

/* Road-to-event schedule list */
.rte-info { display: grid; gap: var(--space-2); }
.rte-info dt { font-family: var(--font-kicker); letter-spacing: 0.08em; color: var(--color-teal); }
.rte-info dd { color: var(--color-muted-on-ink); }

/* Info definition list (city / race pack) */
.info-list { display: grid; gap: var(--space-4); }
.info-list > div { display: grid; grid-template-columns: 30px 1fr; gap: var(--space-3); align-items: start; }
.info-list svg { width: 24px; height: 24px; color: var(--color-teal); margin-top: 2px; }
.info-list dt { font-family: var(--font-kicker); letter-spacing: 0.06em; color: var(--color-muted-on-ink); font-size: var(--fs-14); }
.info-list dd { font-weight: 600; font-size: var(--fs-18); }

/* What's on race day grid */
.wo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.wo-item { padding: var(--space-4); border: 1px solid var(--color-line); background: var(--color-ink-soft); display: grid; gap: var(--space-2); }
.wo-item svg { width: 30px; height: 30px; color: var(--color-teal); }
.wo-item h3 { font-family: var(--font-kicker); letter-spacing: 0.06em; font-size: var(--fs-18); }
@media (max-width: 767px) { .wo-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 374px) { .wo-grid { grid-template-columns: 1fr; } }
