/* Upcoming notices stay separate from completed activity stories. */
.upcoming-event{max-width:1280px;margin:42px auto 0;padding:36px;display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.25fr);align-items:center;gap:36px;text-align:left;background:var(--card);border-radius:24px;position:relative;border-top:3px solid #e7b63c;scroll-margin-top:76px}
.upcoming-copy{min-width:0}
.upcoming-label{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--muted);line-height:1.5}
.upcoming-label>span{padding:4px 10px;border-radius:100px;background:var(--success-bg);color:var(--success)}
.upcoming-event h2{font-size:clamp(28px,3vw,40px);line-height:1.22;margin:18px 0 14px;letter-spacing:-.035em}
.upcoming-event h2 a:hover{color:var(--accent)}
.upcoming-description{font-size:15px;line-height:1.8;color:var(--muted)}
.upcoming-facts{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;margin:22px 0 0}
.upcoming-facts dt{font-size:11px;color:var(--muted);margin-bottom:6px}
.upcoming-facts dd{font-size:15px;line-height:1.65;margin:0;font-variant-numeric:tabular-nums}
.upcoming-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:23px}
.upcoming-actions .link-arrow{font-size:14px}
.upcoming-poster{display:block;min-width:0;color:var(--ink)}
.upcoming-art{display:block;position:relative;overflow:hidden;border-radius:16px;background:#f4eddd;color:#292d32;isolation:isolate}
.upcoming-art img{width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover;display:block}
.upcoming-art-date{position:absolute;top:6%;right:5%;display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;font-variant-numeric:tabular-nums}
.upcoming-art-date strong{font-size:clamp(28px,3.2vw,46px);font-weight:650;letter-spacing:-.05em}
.upcoming-art-date small{font-size:10px;font-weight:600;letter-spacing:.12em;margin-top:7px}
.upcoming-poster-caption{display:flex;justify-content:space-between;gap:14px;padding:16px 2px 0;font-size:12px;line-height:1.5;color:var(--muted)}
.upcoming-poster-caption>span:last-child{white-space:nowrap;color:var(--accent)}
.upcoming-poster:hover .upcoming-poster-caption>span:last-child{text-decoration:underline;text-underline-offset:4px}
.collection-hero .upcoming-event{max-width:none;margin-top:42px}
.story-image.is-announcement{background:#f4eddd}
.story-image.is-announcement img{object-fit:cover}
.event-status{display:inline-block;padding:4px 10px;border-radius:100px;background:var(--success-bg);color:var(--success)}
.event-booking{margin-top:28px;padding:26px;border-radius:20px;background:var(--surface)}
.event-booking .upcoming-facts{margin:0}
.event-booking .booking-note{font-size:12px;margin-top:15px;color:var(--muted)}
.event-poster img{max-width:560px;margin-inline:auto}
.event-poster .poster-link{display:block;text-align:center;font-size:13px;margin-top:12px;color:var(--accent)}
@media(min-width:901px) and (max-width:1100px){
 .upcoming-event{padding:28px;gap:26px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
 .upcoming-description{font-size:13px}
 .upcoming-event .upcoming-facts dd{font-size:13px}
 .upcoming-poster-caption{font-size:10px;gap:8px}
}
@media(max-width:900px){
 .upcoming-event{grid-template-columns:minmax(0,1fr);gap:28px;padding:28px;margin-top:32px;border-radius:20px}
 .upcoming-poster{grid-row:1}
 .upcoming-copy{grid-row:2}
 .upcoming-art-date strong{font-size:clamp(28px,6vw,46px)}
}
@media(max-width:700px){
 .upcoming-event{padding:20px;gap:22px}
 .upcoming-label{font-size:11px;gap:8px}
 .upcoming-event h2{font-size:28px;line-height:1.3;margin:15px 0 12px}
 .upcoming-description{font-size:13px}
 .upcoming-event .upcoming-facts{margin-top:20px;gap:16px;grid-template-columns:1fr}
 .upcoming-facts dd{font-size:13px}
 .upcoming-actions{gap:18px;margin-top:22px}
 .upcoming-actions .button{font-size:14px;padding:10px 20px}
 .upcoming-art{border-radius:10px}
 .upcoming-poster-caption{padding-top:12px;font-size:11px}
 .upcoming-poster-caption>span:first-child{max-width:12em}
 .upcoming-art-date small{font-size:8px;margin-top:4px}
 .event-booking{padding:22px}
}
@media(max-width:370px){.upcoming-event{padding:16px}.upcoming-event h2{font-size:25px}.upcoming-facts{grid-template-columns:1fr}.upcoming-actions{gap:14px}.upcoming-poster-caption{font-size:10px}}
