.events-page { background:#fff; }
.events-main { padding-bottom:var(--section-l); }
.events-main [hidden] { display:none!important; }
.events-breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; padding-block:24px; color:var(--muted); font-size:13px; }
.events-breadcrumbs a { color:inherit; text-decoration:none; }
.events-breadcrumbs a:hover { color:var(--brand-red); }
.events-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; padding-block:36px 48px; }
.events-eyebrow { margin:0 0 20px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.events-heading h1 { margin:0; font:italic 900 clamp(44px,6.7vw,104px)/.95 var(--t-headline-font); text-transform:uppercase; letter-spacing:-.02em; }
.events-heading h1 span { color:var(--brand-red); }
.events-intro { max-width:330px; margin:0 0 5px; color:var(--muted); font-size:18px; line-height:1.55; }
.events-toolbar { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:24px; border-bottom:1px solid #dedede; }
.events-month { border:0; border-bottom:3px solid var(--brand-red); padding:18px 0; background:transparent; font:700 24px/1.3 var(--t-text-font); color:var(--ink); cursor:pointer; }
.events-month span { margin-left:12px; font-size:15px; font-weight:400; color:var(--muted); }
.events-filters { display:flex; gap:4px; padding:4px; background:var(--paper); border-radius:var(--radius-pill); }
.events-filters button { padding:10px 20px; border:0; border-radius:var(--radius-pill); background:transparent; color:var(--muted); font:500 14px/1.3 var(--t-text-font); cursor:pointer; transition:background .2s,color .2s; }
.events-filters button[aria-pressed="true"] { color:#fff; background:var(--ink); }
.events-filters button:hover { color:var(--brand-red); }
.events-filters button[aria-pressed="true"]:hover { color:#fff; background:var(--brand-red); }
.events-calendar-wrap { overflow:hidden; border:1px solid #dedede; border-radius:var(--radius-md); }
.events-calendar { width:100%; border-collapse:collapse; table-layout:fixed; }
.events-calendar th { padding:14px; color:var(--muted); background:var(--paper); text-align:left; font-size:12px; font-weight:500; }
.events-calendar th:nth-last-child(-n+2) { color:var(--brand-red); }
.events-calendar td { height:108px; padding:10px; border-top:1px solid #e8e8e8; border-right:1px solid #e8e8e8; vertical-align:top; }
.events-calendar td:last-child { border-right:0; }
.events-calendar__blank { background:#fafafa; }
.events-calendar__day { display:inline-grid; place-items:center; width:26px; height:26px; font-size:14px; }
.events-calendar [aria-current="date"] .events-calendar__day { background:var(--ink); color:#fff; border-radius:50%; }
.events-calendar__event { display:flex; flex-direction:column; gap:3px; margin-top:5px; padding:8px 10px; border-left:2px solid var(--brand-red); background:#fff0f0; border-radius:4px; color:var(--brand-deep-red); text-decoration:none; font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.events-calendar__time { font-size:10px; }
.events-calendar__name { font-weight:600; }
.events-calendar__event[data-state="past"] { color:#626262; background:#f1f1f1; border-color:#999; }
.events-calendar__event:hover { box-shadow:inset 0 0 0 1px currentColor; }
.events-calendar__dot { display:none; }
.events-legend { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:16px; font-size:12px; color:var(--muted); }
.events-legend>span { display:flex; gap:8px; align-items:center; }
.events-legend>span:last-child { margin-left:auto; }
.events-legend__dot { width:7px; height:7px; background:var(--brand-red); border-radius:50%; }
.events-legend__dot--past { background:#999; }
.events-section { margin-top:56px; }
.events-section__heading { display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.events-section__heading h2 { margin:0; font:italic 900 clamp(30px,3.5vw,48px)/1 var(--t-headline-font); text-transform:uppercase; }
.events-section__heading>span:not(:empty) { display:grid; place-items:center; width:30px; height:30px; border:1px solid #dedede; border-radius:50%; font-size:13px; color:var(--muted); }
.events-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.event-card { display:flex; flex-direction:column; overflow:hidden; border:1px solid #e1e1e1; border-radius:var(--radius-md); scroll-margin-top:120px; }
.event-card:target { border-color:var(--brand-red); }
.event-card__image-link { display:block; overflow:hidden; aspect-ratio:2.35; background:#09090b; }
.event-card__image-link img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.event-card__image-link:hover img { transform:scale(1.035); }
.event-card__body { display:flex; flex-direction:column; flex:1; padding:24px; }
.event-card__meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin-bottom:18px; }
.event-card__meta p { margin:0; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.event-card__status { color:var(--brand-deep-red); font-size:11px; }
.event-card[data-state="past"] .event-card__status { color:var(--muted); }
.event-card__date { margin:0 0 12px; font-size:15px; font-weight:600; }
.event-card__date span { font-weight:400; }
.event-card h3 { margin:0 0 14px; font:italic 900 clamp(28px,3vw,44px)/1 var(--t-headline-font); text-transform:uppercase; }
.event-card__details { margin:0 0 6px; font-size:15px; line-height:1.5; }
.event-card__location { margin:0 0 24px; color:var(--muted); font-size:13px; line-height:1.5; }
.event-card__link { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid #e8e8e8; color:var(--brand-red); font-size:14px; font-weight:600; text-decoration:none; }
.event-card__link:hover { color:var(--brand-deep-red); }
.event-card__link>span:last-child { font-size:22px; }
.events-empty { padding:30px; border-radius:var(--radius-sm); background:var(--paper); color:var(--muted); line-height:1.5; }
.events-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.events-main :is(a,button):focus-visible,.event-card:focus-visible { outline:2px solid var(--brand-red); outline-offset:4px; }
@media(max-width:900px) {
  .events-heading { display:block; }
  .events-intro { max-width:440px; margin-top:24px; font-size:16px; }
  .events-calendar td { padding:7px; }
  .events-calendar__event { padding:6px; font-size:11px; }
}
@media(max-width:600px) {
  .events-breadcrumbs { padding-block:18px; font-size:12px; }
  .events-heading { padding-block:24px 32px; }
  .events-heading h1 { font-size:clamp(36px,9.7vw,58px); }
  .events-toolbar { flex-direction:column; align-items:flex-start; gap:16px; padding-bottom:16px; }
  .events-month { font-size:22px; padding-block:10px 14px; }
  .events-filters { width:100%; }
  .events-filters button { flex:1; padding:10px 8px; font-size:12px; }
  .events-calendar th { padding:12px 0; text-align:center; }
  .events-calendar td { height:68px; padding:4px 2px; text-align:center; }
  .events-calendar__day { font-size:12px; }
  .events-calendar__event { align-items:center; justify-content:center; min-height:30px; padding:4px 0; margin-top:0; border-left:0; }
  .events-calendar__time,.events-calendar__name { display:none; }
  .events-calendar__dot { display:block; width:6px; height:6px; border-radius:50%; background:var(--brand-red); }
  .events-calendar__event[data-state="past"] .events-calendar__dot { background:#999; }
  .events-legend { gap:12px 18px; font-size:11px; }
  .events-legend>span:last-child { width:100%; margin-left:0; }
  .events-section { margin-top:36px; }
  .events-cards { grid-template-columns:1fr; gap:20px; }
  .event-card__body { padding:20px; }
  .event-card__image-link { aspect-ratio:1.85; }
}
@media(prefers-reduced-motion:reduce) { .events-filters button,.event-card__image-link img { transition:none; } }
