#events.section--group { padding-bottom: var(--band); }
#events.section--group .section__head { margin-bottom: 40px; }

.events__intro { max-width: 860px; margin-bottom: 40px; }

.eventchips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.eventchip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding-inline: 20px; border: 1px solid rgba(11, 11, 16, .18); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--ink); transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.eventchip:hover { border-color: var(--accent); color: var(--accent-strong); }
.eventchip.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.eventchip__dot { display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }

.eventsearch { margin-bottom: 48px; padding: 28px; border-radius: 26px; background: #f1f3f7; }
.eventsearch .field { margin-bottom: 0; }
.eventsearch .field input, .eventsearch .field select { padding: 11px 14px; font-size: 15px; background: #fff; }
.eventsearch__actions { display: flex; align-items: center; gap: 20px; }
.eventsearch__actions .cta { border: 0; cursor: pointer; }

.eventresults { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 28px; }
.eventresults__count { margin: 0; font-size: 15px; color: var(--ink-2); }
.eventresults__count strong { font-weight: 700; color: var(--ink); }
.eventresults__page { margin-left: 10px; padding-left: 12px; border-left: 1px solid var(--border); font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-mute); }

.eventviews { display: inline-flex; padding: 4px; border-radius: 999px; background: #f1f3f7; }
.eventview { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding-inline: 16px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--ink-2); transition: background-color .2s ease, color .2s ease; }
.eventview:hover { color: var(--accent-strong); }
.eventview.is-active { background: var(--ink); color: #fff; }

.eventcard { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 26px; background: #f1f3f7; transition: transform .4s cubic-bezier(.16, 1, .3, 1), box-shadow .4s ease; }
.eventcard:hover { transform: translateY(-6px); box-shadow: 0 34px 78px -40px rgba(11, 11, 16, .5); }
.eventcard--featured { background: #e6f4fb; }
.eventcard--past { background: #f6f6f8; }
.eventcard--past .eventcard__media img { filter: grayscale(.6); }
.eventcard__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--hero-bg) url("../../../assets/img/site/hero-pattern.svg") center right / cover no-repeat; }
.eventcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.eventcard:hover .eventcard__media img { transform: scale(1.04); }
.eventcard__date { position: absolute; top: 18px; left: 18px; display: flex; flex-direction: column; align-items: center; min-width: 68px; padding: 10px 12px; border-radius: 16px; background: #fff; box-shadow: 0 14px 30px -18px rgba(11, 11, 16, .6); text-align: center; }
.eventcard__day { font-family: var(--font-heading); font-size: 28px; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: var(--ink); }
.eventcard__month { margin-top: 6px; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-strong); }
.eventcard__body { display: flex; flex: 1; flex-direction: column; padding: 26px 28px 28px; }
.eventcard__label { margin-bottom: 12px; font-family: var(--font-mono); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-strong); }
.eventcard__title { margin: 0 0 16px; font-family: var(--font-heading); font-size: 22px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.eventcard__title a { color: var(--ink); }
.eventcard__title a:hover { color: var(--accent-strong); }
.eventcard__text { margin: 16px 0 0; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
.eventcard__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 18px; border-top: 1px dashed rgba(11, 11, 16, .14); }
.eventcard__body > .eventcard__foot { margin-top: auto; }
.eventcard__body > :nth-last-child(2) { margin-bottom: 22px; }
.eventcard__attendees { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.eventcard__link { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ink-mute); }
.eventcard__link:hover { color: var(--accent); }

.eventmeta { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.eventmeta li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.eventmeta svg { flex: 0 0 auto; margin-top: 2px; color: var(--accent-strong); }

.eventbadge { position: absolute; top: 18px; right: 18px; padding: 6px 12px; border-radius: 999px; background: #fff; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.eventbadge--inline { position: static; display: inline-block; margin-left: 8px; padding: 3px 9px; vertical-align: middle; background: #f1f3f7; }
.eventbadge--cancelled { background: #c0392b; color: #fff; }
.eventbadge--postponed, .eventbadge--rescheduled { background: #f5b041; color: var(--ink); }
.eventbadge--soldout { background: var(--ink); color: #fff; }
.eventbadge--past { background: rgba(255, 255, 255, .9); color: var(--ink-2); }

.eventempty { padding: 56px 32px; border: 1px dashed rgba(11, 11, 16, .18); border-radius: 26px; text-align: center; }
.eventempty__title { margin-bottom: 8px; font-family: var(--font-heading); font-size: 20px; font-weight: 600; color: var(--ink); }
.eventempty__text { margin-bottom: 20px; font-size: 15px; color: var(--ink-2); }

.eventpages { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 56px; }
.eventpage { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding-inline: 14px; border: 1px solid rgba(11, 11, 16, .14); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--ink); transition: border-color .2s ease, color .2s ease; }
a.eventpage:hover { border-color: var(--accent); color: var(--accent-strong); }
.eventpage.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.eventpage--gap { border-color: transparent; color: var(--ink-mute); }

.calnav { display: flex; align-items: center; gap: 14px; }
.calnav__title { min-width: 210px; margin: 0; font-family: var(--font-heading); font-size: 26px; font-weight: 600; letter-spacing: -.02em; text-align: center; }
.calnav__step { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid rgba(11, 11, 16, .14); border-radius: 50%; font-size: 16px; color: var(--ink); transition: border-color .2s ease, color .2s ease; }
a.calnav__step:hover { border-color: var(--accent); color: var(--accent-strong); }
.calnav__step.is-disabled { opacity: .35; }
.calnav__today { margin-left: 8px; }

.eventcal { overflow: hidden; margin-bottom: 64px; border: 1px solid var(--border); border-radius: 26px; }
.eventcal__grid { width: 100%; border-collapse: collapse; table-layout: fixed; }
.eventcal__grid th { padding: 14px 10px; border-bottom: 1px solid var(--border); background: #f1f3f7; font-family: var(--font-mono); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-align: left; color: var(--ink-mute); }
.eventcal__day { height: 132px; padding: 10px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); vertical-align: top; }
.eventcal__day:last-child { border-right: 0; }
.eventcal__grid tbody tr:last-child .eventcal__day { border-bottom: 0; }
.eventcal__day.is-out { background: #fafbfc; }
.eventcal__day.is-out .eventcal__num { color: rgba(11, 11, 16, .3); }
.eventcal__num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 13px; font-weight: 600; color: var(--ink); }
.eventcal__day.is-today .eventcal__num { background: var(--accent); color: #fff; }
.eventcal__list { display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.eventcal__event { --type: var(--accent); display: block; overflow: hidden; padding: 4px 8px; border-left: 3px solid var(--type); border-radius: 6px; background: #f1f3f7; font-size: 12px; font-weight: 600; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; color: var(--ink); transition: background-color .2s ease; }
.eventcal__event:hover { background: #e6f4fb; color: var(--accent-strong); }
.eventcal__event.is-cancelled { text-decoration: line-through; opacity: .6; }
.eventcal__time { margin-right: 4px; font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--ink-mute); }
.eventcal__more { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--accent-strong); }
.eventcal__dots { display: none; gap: 3px; margin-top: 4px; }
.eventcal__dots span { width: 6px; height: 6px; border-radius: 50%; }
@media (max-width: 767px) {
    .calnav__title { min-width: 0; font-size: 21px; }
    .eventcal__grid th { padding: 10px 4px; text-align: center; font-size: 10px; letter-spacing: .04em; }
    .eventcal__day { height: 64px; padding: 6px 2px; text-align: center; }
    .eventcal__list, .eventcal__more { display: none; }
    .eventcal__dots { display: flex; justify-content: center; }
}

.agenda__title { margin-bottom: 28px; font-family: var(--font-heading); font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.agenda__day { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 24px; padding-block: 24px; border-top: 1px solid var(--border); scroll-margin-top: 110px; }
.agenda__date { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 72px; border-radius: 18px; background: #f1f3f7; }
.agenda__num { font-family: var(--font-heading); font-size: 26px; font-weight: 700; line-height: 1; color: var(--ink); }
.agenda__weekday { margin-top: 6px; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-strong); }
.agenda__events { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.agenda__event { display: grid; gap: 6px 24px; }
@media (min-width: 768px) { .agenda__event { grid-template-columns: 200px minmax(0, 1fr); } }
.agenda__time { padding-top: 2px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; color: var(--ink-mute); }
.agenda__name { font-family: var(--font-heading); font-size: 18px; font-weight: 600; color: var(--ink); }
.agenda__name:hover { color: var(--accent-strong); }
.agenda__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 6px; font-size: 14px; color: var(--ink-2); }
.agenda__type { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }

.eventhead { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.eventhead__item { padding: 8px 16px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; background: rgba(255, 255, 255, .06); font-size: 14px; font-weight: 500; color: #fff; }
.eventhead__actions { margin-top: 32px; }
.pagehead--banner .eventhead__cta { background: #fff; color: var(--ink); font-weight: 600; }
.pagehead--banner .eventhead__cta:hover { background: #e9eef2; }

.eventphoto { width: 100%; aspect-ratio: 16 / 9; margin-bottom: 36px; object-fit: cover; border-radius: 26px; }

.project { display: grid; gap: 48px; }
.project__side { display: flex; flex-direction: column; gap: 24px; }
.project__block { padding: 28px; border-radius: 26px; background: #f1f3f7; }
.project__block .kicker { display: block; margin-bottom: 16px; }
.project__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.project__tags li a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 600; color: var(--ink); }
.project__tags li a:hover { color: var(--accent-strong); }
.project__links { margin: 0; padding: 0; list-style: none; }
.project__links li + li { margin-top: 10px; }
.project__links a { font-weight: 600; color: var(--accent-strong); }
.project__links a:hover { color: var(--accent); }
@media (min-width: 992px) { .project { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; } }

.eventblock__main { margin: 0; font-family: var(--font-heading); font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--ink); }
.eventblock__main a { color: var(--ink); }
.eventblock__main a:hover { color: var(--accent-strong); }
.eventblock__text { margin: 6px 0 0; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
.eventblock__links { margin-top: 18px; padding-top: 16px; border-top: 1px dashed rgba(11, 11, 16, .14); }
.eventblock__address { margin: 0; font-size: 15px; font-style: normal; line-height: 1.6; color: var(--ink-2); }
.eventblock__address strong { color: var(--ink); }
.eventblock__cta { justify-content: center; width: 100%; margin-top: 20px; }
.eventblock__note { margin: 12px 0 0; font-size: 13px; color: var(--ink-mute); text-align: center; }

.eventcapacity { overflow: hidden; height: 8px; margin-top: 16px; border-radius: 999px; background: #fff; }
.eventcapacity span { display: block; height: 100%; border-radius: 999px; background: var(--accent); }

.eventvideo, .eventgallery { margin: 0; }
.eventvideo .ratio { overflow: hidden; border-radius: 20px; background: #000; }
.eventgallery img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 20px; transition: opacity .25s ease; }
.eventgallery a:hover img { opacity: .9; }
.eventvideo figcaption, .eventgallery figcaption { margin-top: 10px; font-size: 13px; color: var(--ink-2); }

.eventvideo video { width: 100%; height: 100%; object-fit: cover; }
