/* Calendar-specific styles. Shared shell/navigation/sections live in /css/reach/. */
.calendar-heading { margin-bottom: 2.5rem; }
.calendar-title { margin: 0 0 1rem; font-size: clamp(3rem, 5vw, 5rem); font-weight: 500; line-height: .94; letter-spacing: -.055em; }
.calendar-intro { max-width: 720px; color: var(--theme-text-muted); font-size: clamp(1.05rem, 1.35vw, 1.28rem); line-height: 1.75; }
.events-grid { display: flex; flex-direction: column; gap: 2rem; width: 100%; }
.event-card { display: flex; width: 100%; min-height: 360px; overflow: hidden; border-radius: var(--theme-radius-lg); scroll-margin-top: calc(var(--reach-nav-height, 0px) + 2rem); }
.event-photo-wrap { position: relative; flex: 0 0 38%; width: 38%; max-width: 420px; overflow: hidden; background: var(--theme-surface-soft); }
.event-photo { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
.event-date-badge { position: absolute; top: 1rem; left: 1rem; min-width: 64px; padding: .65rem .75rem; border-radius: .85rem; background: color-mix(in srgb, var(--theme-surface) 92%, transparent); box-shadow: var(--theme-shadow-sm); color: var(--theme-text); text-align: center; backdrop-filter: blur(8px); }
.event-date-badge strong, .event-date-badge span { display: block; }
.event-date-badge strong { font-size: 1.55rem; line-height: 1; }
.event-date-badge span { margin-top: .18rem; font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.event-body { display: flex; flex: 1 1 0; flex-direction: column; min-width: 0; padding: 2rem; }
.event-name { margin-bottom: 1rem; }
.event-details { color: var(--theme-text-muted); line-height: 1.72; }
.event-details p:last-child, .event-popup-copy p:last-child { margin-bottom: 0; }
.event-meta { display: grid; gap: .8rem; margin-top: 1.25rem; }
.event-meta-row { display: flex; align-items: flex-start; gap: .75rem; color: var(--theme-text); }
.event-meta-row i { width: 1.25rem; margin-top: .08rem; color: var(--theme-text-soft); }
.event-meta-row small { display: block; color: var(--theme-text-soft); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.event-actions { margin-top: auto; padding-top: 1.5rem; }
.empty-calendar { padding: 4rem 1rem; border: 1px dashed var(--theme-border); border-radius: 1.2rem; color: var(--theme-text-muted); text-align: center; }
@media (max-width: 991.98px) {
  .event-card { flex-direction: column; min-height: 0; }
  .event-photo-wrap { flex: none; width: 100%; max-width: none; }
  .event-photo { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .event-body { padding: 1.4rem; }
}
@media (max-width: 575.98px) { .calendar-title { font-size: clamp(2.5rem, 14vw, 4rem); } }
