/* Event cards share the venue's existing colours and typefaces. */
.upcoming-events { scroll-margin-top:88px; }
.upcoming-events > h2 { max-width:18ch;margin-bottom:36px; }
.event-cards { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.event-card { display:flex;flex-direction:column;min-width:0;padding:clamp(24px,2.5vw,36px);border:1px solid rgba(24,36,48,.2);border-radius:16px;background:var(--ts-lake);color:var(--ts-ink);scroll-margin-top:88px; }
.event-card .event-date { display:block;margin-bottom:28px;font:600 clamp(48px,5vw,68px)/1 var(--font-display); }
.event-card .event-date span { display:block;margin-top:8px;font:600 14px/1.5 var(--font-sans);letter-spacing:.04em; }
.event-card h3 { margin:0 0 16px;font:700 clamp(28px,2.35vw,36px)/1.15 var(--font-display);hyphens:auto;overflow-wrap:break-word; }
.event-card .event-price { margin:0 0 8px;font-size:20px;font-weight:700; }
.event-card .event-time { margin:0 0 28px;font-size:15px; }
.event-card .hero-actions { display:grid;gap:12px;margin-top:auto;padding-top:8px; }
.event-card .hero-actions a { display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:12px 10px;border:1px solid var(--ts-ink);border-radius:10px;font-size:14px;font-weight:700;line-height:1.5;text-align:center;text-decoration:none;transition:background .2s,color .2s; }
.event-card .hero-actions a:hover { background:var(--ts-ink);color:var(--ts-sand); }
.event-card a:focus-visible { outline:3px solid var(--ts-ink);outline-offset:4px; }
@media(max-width:1000px) {
  .event-cards { grid-template-columns:1fr; }
  .event-card { padding:28px; }
  .event-card .event-date { margin-bottom:20px; }
  .event-card h3 { font-size:36px; }
}
@media(max-width:380px) {
  .event-card { padding:22px; }
  .event-card h3 { font-size:30px; }
}
