.upcoming-events{background:var(--surface);color:var(--navy);border-top:1px solid var(--line)}.upcoming-events .section{padding-top:76px;padding-bottom:76px}.events-heading{margin-bottom:34px}.events-heading>p{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin:0 0 14px;color:var(--muted)}.events-heading h2{font-size:clamp(30px,3.5vw,46px);line-height:1.12;letter-spacing:-.035em;margin:0}.events-list{list-style:none;padding:0;margin:0;display:grid;gap:24px}.event-item{margin:0;padding:0}.event-item article{display:grid;grid-template-columns:216px minmax(0,1fr) 244px;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}.event-date{background:var(--navy);color:white;padding:34px 28px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}.event-month{font-size:13px;font-weight:600;letter-spacing:.09em;white-space:nowrap;text-transform:uppercase;color:var(--light-ink)}.event-days{font-variant-numeric:tabular-nums;font-size:48px;font-weight:500;line-height:1.1;letter-spacing:-.02em;white-space:nowrap}.event-format{font-size:13px;line-height:1.45;color:var(--light-ink);border-top:1px solid var(--dark-rule);padding-top:16px;width:100%;margin-top:12px}.event-date-readable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.event-copy{padding:34px 32px;min-width:0}.event-category{font-size:13px;color:var(--muted);margin:0 0 9px}.event-copy h3{font-size:36px;line-height:1.1;letter-spacing:-.03em;margin:0 0 14px}.event-title{font-size:21px;line-height:1.4;margin:0 0 20px;max-width:40ch}.event-location{font-size:16px;font-weight:600;margin:0 0 8px}.event-organizer{font-size:15px;line-height:1.6;color:var(--muted);margin:0;max-width:53ch}.event-actions{padding:34px 24px;min-width:0;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:20px}.event-link{display:grid;grid-template-columns:1fr 18px;gap:5px 6px;align-items:center;font-size:16px;font-weight:600;line-height:1.4;text-decoration:none;color:var(--navy);padding:7px 0;border-bottom:1px solid var(--dark-rule);transition:border-color .2s ease,color .2s ease;min-height:48px}.event-link>span:last-child{grid-column:2;grid-row:1/3;justify-self:end;align-self:center}.event-link-type{display:block;grid-column:1;font-size:13px;font-weight:400;color:var(--muted)}.event-link:hover{border-color:var(--navy);color:var(--navy-hover)}.event-link:focus-visible{outline:3px solid var(--blue,var(--navy-hover));outline-offset:5px}.event-deadline{font-size:13px;line-height:1.6;color:var(--muted);margin:0;padding-top:4px;border-top:1px solid var(--line)}.event-deadline time{display:block;color:var(--navy);font-size:14px}
@media(max-width:1050px){.event-item article{grid-template-columns:200px minmax(0,1fr)}.event-deadline{border-top:0;padding-top:0}.event-actions{grid-column:2;border-left:0;border-top:1px solid var(--line);margin:0 28px;padding:20px 0 26px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.event-date{grid-row:1/3;padding:26px 22px}.event-copy{padding:28px}.event-days{font-size:44px}.event-deadline{grid-column:1/-1}.event-deadline time{display:inline}.event-copy h3{font-size:32px}}
@media(max-width:600px){.upcoming-events .section{padding-top:48px;padding-bottom:48px}.events-heading{margin-bottom:24px}.events-heading>p{margin-bottom:12px}.event-item article{display:flex;flex-direction:column}.event-date{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;padding:20px 22px}.event-month{font-size:15px}.event-days{grid-column:2;grid-row:1/3;font-size:38px}.event-format{font-size:13px;border:0;padding:0;margin:0}.event-copy{padding:24px 22px}.event-copy h3{font-size:30px}.event-title{font-size:19px;line-height:1.45}.event-actions{margin:0 22px;padding:0 0 24px;display:flex;gap:14px;border-top:0}.event-link{font-size:16px}.event-deadline{padding-top:2px}.event-deadline time{display:inline}}
@media(prefers-reduced-motion:reduce){.event-link{transition:none}}
/* 320px: the two-column date grid cannot fit long day ranges; stack it. */
@media(max-width:360px){
 .event-date{display:flex;flex-direction:column;align-items:flex-start}
 .event-days{white-space:normal;font-size:32px}
}
