.sp-events-intro { max-width: 800px; margin-bottom: 34px; }
.sp-events-intro h1 { margin: 0 0 22px; font-size: clamp(2.8rem, 7vw, 5.7rem); line-height: 1; letter-spacing: -.065em; }
.sp-events-intro > p:last-child { color: #646464; font-size: 1.08rem; line-height: 1.6; }
.sp-event-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.sp-event-tabs a { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border: 1px solid #e5e5e1; border-radius: 999px; color: #333; font-size: .9rem; text-decoration: none; }
.sp-event-tabs a[aria-current] { background: #171717; border-color: #171717; color: #fff; }
.sp-event-tabs a > span { opacity: .65; font-size: .8rem; }
.sp-events-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sp-event-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e6e6e1; border-radius: 20px; color: inherit; background: #fff; text-decoration: none; min-width: 0; }
.sp-event-card .event-image-wrap { overflow: hidden; aspect-ratio: 4 / 3; background: #f1f1ed; }
.sp-event-card .event-image, .sp-event-card .sp-photo-placeholder { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.sp-event-card .event-image { transition: transform .3s ease; }
.sp-event-card:hover .event-image { transform: scale(1.025); }
.sp-event-card .event-content { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.sp-event-card .event-name { margin: 18px 0 12px; color: #191919; font-size: clamp(1.3rem, 2.2vw, 1.8rem); font-weight: 720; line-height: 1.2; letter-spacing: -.035em; overflow-wrap: anywhere; }
.sp-event-card .sp-event-excerpt { margin: 0; color: #656565; font-size: .98rem; line-height: 1.6; }
.sp-event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.sp-event-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; font-size: .73rem; font-weight: 650; line-height: 1.3; }
.sp-event-badge::before { content: ''; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.sp-event-badge--planned { color: #246341; background: #edf6ef; }
.sp-event-badge--past { color: #6b6b66; background: #f0f0ec; }
.sp-event-date { display: inline-flex; align-items: center; gap: 7px; color: #62625e; font-size: .8rem; line-height: 1.5; }
.sp-event-date svg { flex-shrink: 0; }
.story-hero .sp-event-meta { margin: 24px 0; }
.sp-events-empty { padding: 42px 28px; border: 1px solid #e6e6e1; border-radius: 20px; background: #fafaf8; }
.sp-events-empty h2 { margin: 0 0 12px; font-size: 1.5rem; letter-spacing: -.03em; }
.sp-events-empty p { margin: 0; color: #656565; }
.events-heading-row { align-items: center; gap: 20px; }
.sp-events-all { flex-shrink: 0; }
.sp-home .sp-events-home-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sp-event-tabs a:focus-visible, .sp-event-card:focus-visible, .sp-events-all:focus-visible { outline: 3px solid #5979ed; outline-offset: 4px; }
@media (max-width: 980px) { .sp-home .sp-events-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) {
  .sp-events-grid, .sp-home .sp-events-home-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .sp-event-card .event-content { padding: 20px; }
  .sp-event-tabs { gap: 8px; }
  .sp-event-tabs a { padding: 10px 12px; font-size: .8rem; gap: 7px; }
  .events-heading-row { align-items: flex-start; flex-direction: column; }
}
