/* Events system: announcement strip, cards, filters and event pages.
   Uses only the shared tokens and existing component patterns. */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Announcement strip: no dismissal, no animation; wraps at 320px. */
.event-strip { background: var(--court-navy); color: var(--cream); font-size: .875rem; line-height: 1.4; }
.event-strip .container { padding-block: calc(var(--space) * 2); }
.event-strip-link { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space) calc(var(--space) * 2); min-height: 24px; color: var(--cream); text-decoration: none; font-weight: 600; text-align: center; transition: none; }
.event-strip-link:hover { color: var(--ball-yellow); text-decoration: underline; }
.event-strip-link:focus-visible { outline: 3px solid var(--ball-yellow); outline-offset: 2px; }
.event-strip-item { white-space: nowrap; }
@media (max-width: 360px) { .event-strip-item { white-space: normal; } }

/* Cards */
.event-grid { display: grid; gap: calc(var(--space) * 5); margin-top: calc(var(--space) * 6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .event-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.event-card { display: flex; flex-direction: column; align-items: flex-start; gap: calc(var(--space) * 5); min-width: 0; background: var(--cream); color: var(--court-navy); border: 2px solid var(--court-navy); border-radius: calc(var(--radius) * 1.5); padding: calc(var(--space) * 6); box-shadow: 0 6px 0 var(--serve-coral); }
.event-card[hidden] { display: none; }
/* A lone public event fills the grid; multiple events keep the breakpoints above. */
.event-grid > .event-card:only-child { grid-column: 1 / -1; }
.event-card h2, .event-card h3 { font-size: 1.75rem; margin: 0; overflow-wrap: anywhere; }
.event-card p { margin: 0; overflow-wrap: anywhere; }
.event-card-location { font-weight: 600; }
.event-card-price { color: var(--navy-soft); }
.event-card-details { display: grid; gap: calc(var(--space) * 4); min-width: 0; width: 100%; }
.event-card-meta { display: grid; gap: calc(var(--space) * 2); }
.event-card-action { display: grid; justify-items: start; gap: calc(var(--space) * 3); margin-top: auto; max-width: 100%; }
.event-card .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; white-space: normal; font-size: 1rem; transition: none; animation: none; }
.event-card .badge, .event-card .sticker { font-size: .875rem; transform: none; }
.event-card-date { position: relative; flex: 0 0 auto; font-family: var(--heading); font-weight: 700; }
.event-date-parts { display: flex; flex-wrap: wrap; align-items: baseline; gap: calc(var(--space) * 2); text-transform: uppercase; line-height: 1.2; }
.event-date-parts strong { font-size: 2rem; font-weight: 800; }
.event-grid > .event-card:only-child .event-card-title { font-size: clamp(2rem, 4vw, 3rem); }
@media (min-width: 768px) {
  .event-grid > .event-card:only-child { flex-direction: row; flex-wrap: wrap; align-items: center; gap: calc(var(--space) * 8); padding: calc(var(--space) * 8); }
  .event-card:only-child .event-card-date { flex-basis: 6rem; }
  .event-card:only-child .event-date-parts { flex-direction: column; align-items: center; gap: var(--space); text-align: center; }
  .event-card:only-child .event-date-parts strong { font-size: 3rem; }
  .event-card:only-child .event-card-details { flex: 1 1 16rem; width: auto; }
  .event-card:only-child .event-card-action { margin-top: 0; }
}
.event-card-stickers { list-style: none; display: flex; flex-wrap: wrap; gap: calc(var(--space) * 2); padding: 0; margin: 0; }
.event-card .sticker, .event-section .sticker { background: var(--blush); }
.event-badge-on-sale, .event-badge-few-left { background: var(--coral-button); color: var(--court-navy); }
.event-badge-sold-out, .event-badge-past { background: var(--court-navy); color: var(--cream); }
.band-navy .event-badge-sold-out, .band-navy .event-badge-past { background: var(--cream); color: var(--court-navy); }
.home-events-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: calc(var(--space) * 2) calc(var(--space) * 6); }
.home-events-heading .section-title, .home-events-more { margin: 0; }
.home-events-more { color: var(--navy-soft); }
.home-events-more a { display: inline-flex; align-items: center; gap: calc(var(--space) * 2); min-height: 44px; }
.home-events { padding-bottom: calc(64px + var(--edge)); }
.next-event-card { text-decoration: none; color: var(--cream); }
.next-event-card:hover { color: var(--ball-yellow); }
.next-event-card .text-link { color: var(--ball-yellow); }
.next-event-card:focus-visible { outline-color: var(--court-navy); }

/* Filters */
.event-filters { display: grid; gap: calc(var(--space) * 4); margin-top: calc(var(--space) * 6); }
.filter-label { font-weight: 600; margin: 0 0 var(--space); }
.filter-chips { list-style: none; display: flex; flex-wrap: wrap; gap: calc(var(--space) * 2); padding: 0; margin: 0; }
.filter-chip { display: inline-flex; align-items: center; min-height: 44px; padding: var(--space) calc(var(--space) * 4); border: 2px solid var(--court-navy); border-radius: 999px; background: var(--cream); color: var(--court-navy); font-weight: 600; text-decoration: none; }
.filter-chip:hover { background: var(--blush); color: var(--court-navy); }
.filter-chip[aria-current="true"] { background: var(--court-navy); color: var(--cream); }
.filter-chip:focus-visible { outline: 3px solid var(--court-navy); outline-offset: 3px; }
.filter-status { margin: 0; color: var(--navy-soft); font-size: .875rem; }
.event-empty { margin-top: calc(var(--space) * 6); }
.event-empty[hidden] { display: none; }
.event-empty-lead { display: inline-block; background: var(--ball-yellow); font-weight: 600; padding: var(--space) calc(var(--space) * 3); border-radius: 8px; }
.events-title { font-size: clamp(40px, 7vw, 72px); }

/* Event page */
.event-hero { padding: calc(var(--space) * 12) 0 calc(var(--space) * 16); }
.event-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: calc(var(--space) * 8); }
.event-hero-title, .event-hero-booking { min-width: 0; overflow-wrap: anywhere; }
.event-hero-status { margin: 0 0 calc(var(--space) * 5); }
.event-hero-status .badge { transform: none; font-size: .875rem; padding: calc(var(--space) * 2) calc(var(--space) * 4); }
.event-hero h1 { font-size: clamp(2.5rem, 7vw, 5rem); color: var(--cream); margin: 0 0 calc(var(--space) * 4); overflow-wrap: anywhere; }
.event-hero-subtitle { margin: 0; font-size: 1.5rem; }
.event-hero-booking { background: var(--cream); color: var(--court-navy); border: 2px solid var(--court-navy); border-radius: calc(var(--radius) * 1.5); padding: calc(var(--space) * 6); box-shadow: 0 6px 0 var(--serve-coral); }
.event-hero-date { margin: 0 0 calc(var(--space) * 3); font-family: var(--heading); font-weight: 700; font-size: 1.5rem; line-height: 1.3; }
.event-hero-location { margin: 0; font-weight: 600; font-size: 1.125rem; }
.event-hero-booking .hero-actions { margin-top: calc(var(--space) * 6); }
.event-hero-booking .btn { width: 100%; min-height: 48px; white-space: normal; overflow-wrap: anywhere; font-size: 1.1875rem; animation: none; }
.event-hero-booking :focus-visible { outline-color: var(--court-navy) !important; }
.event-hero .event-finished { margin: calc(var(--space) * 6) 0 0; font-weight: 600; }
.event-hero .event-finished a { color: var(--coral-text); }
@media (min-width: 768px) {
  .event-hero { padding-block: calc(var(--space) * 16) calc(var(--space) * 20); }
  .event-hero-layout { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: calc(var(--space) * 10); }
  .event-hero-booking { padding: calc(var(--space) * 8); }
}
.event-section { padding: 40px 0; }
.event-facts { margin-top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.event-facts div, .event-facts div:nth-child(odd), .event-facts div:nth-child(-n+2) { border: 0; }
.event-facts dd { font-size: clamp(28px, 5vw, 44px); overflow-wrap: anywhere; }
@media (min-width: 768px) { .event-facts { grid-template-columns: repeat(5, minmax(0, 1fr)); } .event-facts div { border-right: 1px solid var(--serve-coral) !important; } .event-facts div:last-child { border-right: 0 !important; } }
@media (min-width: 900px) { .event-timeline { grid-template-columns: repeat(4, 1fr); } }
.ticket-soon { transform: none; font-size: 1rem; }
.tt-widget { margin-top: calc(var(--space) * 4); }
.event-share { margin-top: 0; padding-top: 0; border-top: 0; }
.share-fallback-field[hidden] { display: none; }

/* Signup: areas checkbox group (new-events mode) */
.areas-field { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.areas-field legend { font-weight: 600; padding: 0; margin-bottom: var(--space); }
.area-options { display: flex; flex-wrap: wrap; gap: 0 calc(var(--space) * 4); }
