.museum-event-search { margin-block-end: var(--museum-space-6); }
.museum-event-search > div { display: flex; gap: var(--museum-space-3); }
.museum-event-search input[type="search"] { flex: 1; min-width: 0; }
.museum-event-filter-panel { margin-block-end: var(--museum-space-8); padding: var(--museum-space-6); background: var(--museum-color-surface); border: 1px solid var(--museum-color-border); border-radius: var(--museum-radius-md); }
.museum-event-filter-heading { display: flex; justify-content: space-between; align-items: center; gap: var(--museum-space-4); }
.museum-event-filter-heading h2 { font-size: var(--museum-text-h4); }
.museum-event-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--museum-space-4); }
.museum-event-filters label { display: grid; gap: var(--museum-space-2); }
.museum-event-filters select { width: 100%; min-width: 0; }
.museum-event-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--museum-space-5); grid-column: 1 / -1; }
.museum-event-count { font-weight: var(--museum-weight-semibold); }
.museum-event-chips { display: flex; flex-wrap: wrap; gap: var(--museum-space-3); padding: 0; list-style: none; }
.museum-event-chips li { margin: 0; }
.museum-event-chips a { display: inline-block; padding: var(--museum-space-2) var(--museum-space-3); background: var(--museum-color-surface); border: 1px solid var(--museum-color-border-strong); border-radius: var(--museum-radius-sm); }
.museum-event-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--museum-space-6); }
.museum-event-card { min-width: 0; background: var(--museum-color-surface); border: 1px solid var(--museum-color-border); border-radius: var(--museum-radius-md); overflow: hidden; }
.museum-event-card__link { display: flex; flex-direction: column; height: 100%; color: var(--museum-color-text); text-decoration: none; }
.museum-event-card__media { display: grid; place-items: center; aspect-ratio: 16 / 10; background: var(--museum-color-bg); color: var(--museum-color-text-muted); }
.museum-event-card__media img { width: 100%; height: 100%; object-fit: cover; }
.museum-event-card__body { display: flex; flex-direction: column; align-items: flex-start; height: 100%; padding: var(--museum-space-5); }
.museum-event-card__body h2 { font-size: var(--museum-text-h4); }
.museum-event-card__body p { margin-block-end: var(--museum-space-3); }
.museum-event-card__status { padding: var(--museum-space-1) var(--museum-space-2); border-radius: var(--museum-radius-sm); font-size: var(--museum-text-body-sm); font-weight: var(--museum-weight-semibold); }
.museum-event-card__status--upcoming { background: #fff0c2; color: #674d00; }
.museum-event-card__status--ongoing { background: #d9f5e6; color: #075b2c; }
.museum-event-card__status--past { background: var(--museum-color-bg); color: var(--museum-color-text-muted); }
.museum-event-card__category { color: var(--museum-color-brand-dark); font-size: var(--museum-text-body-sm); }
.museum-event-card__date { font-weight: var(--museum-weight-semibold); }
.museum-event-card__location { color: var(--museum-color-text-muted); }
.museum-event-card__cta { margin-block-start: auto; color: var(--museum-color-brand-dark); font-weight: var(--museum-weight-semibold); text-decoration: underline; }
.museum-event-pagination { margin-block-start: var(--museum-space-10); }
.museum-event-pagination ul { display: flex; flex-wrap: wrap; gap: var(--museum-space-3); padding: 0; list-style: none; }
.museum-event-pagination li { margin: 0; }
.museum-event-pagination a, .museum-event-pagination span { display: inline-block; padding: var(--museum-space-3) var(--museum-space-4); border: 1px solid var(--museum-color-border-strong); }
.museum-event-pagination .current { background: var(--museum-color-brand-dark); color: var(--museum-color-surface); }
.museum-event-empty { padding-block: var(--museum-space-12); }
.museum-event-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--museum-space-8); }
.museum-event-detail__media { min-height: 18rem; background: var(--museum-color-bg); }
.museum-event-detail__media img { width: 100%; height: 100%; object-fit: cover; }
.museum-event-detail__summary { display: grid; align-content: start; justify-items: start; gap: var(--museum-space-4); }
.museum-event-detail__summary > * { margin: 0; }
.museum-event-metadata { width: 100%; margin: 0; }
.museum-event-metadata > div { display: grid; grid-template-columns: minmax(8rem, .45fr) 1fr; gap: var(--museum-space-3); padding-block: var(--museum-space-3); border-bottom: 1px solid var(--museum-color-border); }
.museum-event-metadata dt { font-weight: var(--museum-weight-semibold); }
.museum-event-metadata dd { display: grid; gap: var(--museum-space-2); margin: 0; }
.museum-event-detail__content, .museum-event-detail__map, .museum-event-detail__gallery { grid-column: 1 / -1; }
.museum-event-detail__map iframe { width: 100%; min-height: 24rem; border: 0; }
.museum-event-detail__gallery > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--museum-space-4); }
.museum-event-detail__gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 1023px) { .museum-event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .museum-event-detail { grid-template-columns: 1fr; } .museum-event-detail__content, .museum-event-detail__map, .museum-event-detail__gallery { grid-column: auto; } }
@media (max-width: 767px) { .museum-event-filter-toggle { display: inline-flex; margin-block-end: var(--museum-space-4); } .museum-event-filter-panel.is-drawer { position: fixed; z-index: 1002; inset: 0 0 0 auto; width: min(92vw, 28rem); max-height: 100vh; margin: 0; overflow-y: auto; border-radius: 0; } .museum-event-filter-backdrop:not([hidden]) { position: fixed; z-index: 1001; inset: 0; display: block; background: rgba(0, 0, 0, .55); } .museum-event-drawer-open { overflow: hidden; } .museum-event-filters, .museum-event-grid, .museum-event-detail__gallery > div { grid-template-columns: 1fr; } .museum-event-metadata > div { grid-template-columns: 1fr; gap: var(--museum-space-1); } .museum-event-detail__map iframe { min-height: 18rem; } }
