.ne-event-list,
.ne-event-details {
    font: inherit;
    color: inherit;
    box-sizing: border-box;
}
.ne-event-list *,
.ne-event-details * { box-sizing: border-box; }

.ne-event-list { --ne-line: rgba(127,127,127,.25); --ne-line: color-mix(in srgb, currentColor 15%, transparent); display: grid; gap: 2rem; }
.ne-month-group { margin: 0; }
.ne-month-title {
    margin: 0 0 .65rem;
    padding: 0 0 .45rem;
    font: inherit;
    font-size: 1.35em;
    font-weight: 700;
    line-height: 1.25;
    border-bottom: 1px solid var(--ne-line);
}
.ne-month-events { display: grid; gap: .55rem; }

.ne-event-item {
    --ne-accent: #6b7280;
    position: relative;
    border: 1px solid var(--ne-line);
    border-left: 5px solid var(--ne-accent);
    border-radius: .35rem;
    background: transparent;
    overflow: clip;
}
.ne-event-summary {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(70px, 90px) minmax(0, 1fr) minmax(120px, auto) 18px;
    gap: .8rem 1rem;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: .85rem 1rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.ne-event-summary:hover,
.ne-event-summary:focus-visible { background: color-mix(in srgb, var(--ne-accent) 7%, transparent); }
.ne-event-summary:focus-visible { outline: 2px solid var(--ne-accent); outline-offset: -2px; }
.ne-event-summary__date { display: grid; align-content: center; line-height: 1; color: var(--ne-accent); }
.ne-event-summary__date strong { font-size: 1.45em; font-weight: 800; letter-spacing: -.02em; }
.ne-event-summary__date span { margin-top: .25rem; font-size: .8em; font-weight: 700; text-transform: uppercase; opacity: .9; }
.ne-event-summary__main { display: grid; min-width: 0; gap: .14rem; }
.ne-event-summary__time { font-size: .84em; font-weight: 700; opacity: .72; }
.ne-event-summary__title { font-size: 1.08em; font-weight: 700; line-height: 1.25; }
.ne-event-summary__location { font-size: .9em; opacity: .72; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ne-event-summary__organizer { display: inline-flex; align-items: center; justify-content: flex-end; gap: .45rem; font-size: .88em; opacity: .8; text-align: right; }
.ne-event-summary__dot { flex: 0 0 auto; width: .7rem; height: .7rem; border-radius: 50%; background: var(--ne-accent); }
.ne-event-summary__chevron { width: .65rem; height: .65rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .18s ease; opacity: .7; }
.ne-event-item.is-open .ne-event-summary__chevron { transform: rotate(225deg); }

.ne-event-panel { border-top: 1px solid var(--ne-line); }
.ne-event-expanded { display: grid; grid-template-columns: minmax(220px, 360px) minmax(0, 1fr); gap: 1.5rem 2rem; padding: 1.25rem 1.25rem 1.5rem; }
.ne-event-expanded:not(.has-image) { grid-template-columns: 1fr; }
.ne-event-expanded__content { min-width: 0; }
.ne-event-description { margin: 0 0 1.25rem; }
.ne-event-description > :first-child { margin-top: 0; }
.ne-event-description > :last-child { margin-bottom: 0; }

.ne-event-poster { margin: 0; align-self: start; }
.ne-event-poster__link { display: block; color: inherit; text-decoration: none; }
.ne-event-poster__image {
    display: block;
    width: 100%;
    max-width: 360px;
    height: auto !important;
    max-height: none;
    object-fit: contain;
    object-position: top center;
    border-radius: .25rem;
    box-shadow: 0 2px 14px rgba(0,0,0,.12);
}
.ne-event-poster__hint { display: block; margin-top: .45rem; font-size: .8em; opacity: .65; }

.ne-event-data { display: grid; gap: 1rem; }
.ne-event-data h3 { margin: 0 0 .5rem; font: inherit; font-size: 1em; font-weight: 700; }
.ne-event-schedule { display: grid; gap: .15rem; }
.ne-event-day { display: grid; grid-template-columns: minmax(170px, 1fr) auto; gap: .75rem 1rem; padding: .55rem 0; border-bottom: 1px solid var(--ne-line); }
.ne-event-day:last-child { border-bottom: 0; }
.ne-event-day span { text-align: right; }
.ne-event-facts { margin: .4rem 0 0; }
.ne-event-facts > div { display: grid; grid-template-columns: minmax(100px, 140px) 1fr; gap: .75rem; padding: .25rem 0; }
.ne-event-facts dt { font-weight: 700; }
.ne-event-facts dd { margin: 0; }
.ne-empty { opacity: .72; }

.ne-event-details { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(127,127,127,.25); }

.ne-lightbox-open { overflow: hidden; }
.ne-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: grid;
    place-items: center;
    padding: 3rem 1rem 1rem;
    background: rgba(0,0,0,.88);
}
.ne-lightbox__stage { max-width: min(96vw, 1400px); max-height: 92vh; }
.ne-lightbox__stage img { display: block; max-width: 100%; max-height: 92vh; width: auto; height: auto; object-fit: contain; }
.ne-lightbox__close {
    position: fixed;
    top: .7rem;
    right: .8rem;
    width: 2.6rem;
    height: 2.6rem;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #111;
    font: inherit;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 780px) {
    .ne-event-summary { grid-template-columns: 68px minmax(0,1fr) 18px; }
    .ne-event-summary__organizer { grid-column: 2; justify-content: flex-start; text-align: left; }
    .ne-event-summary__chevron { grid-column: 3; grid-row: 1 / span 2; }
    .ne-event-expanded { grid-template-columns: 1fr; }
    .ne-event-poster__image { width: min(100%, 420px); max-width: 100%; }
}

@media (max-width: 520px) {
    .ne-event-list { gap: 1.5rem; }
    .ne-month-title { font-size: 1.2em; }
    .ne-event-summary { grid-template-columns: 58px minmax(0,1fr) 16px; gap: .55rem .7rem; padding: .75rem .75rem; }
    .ne-event-summary__date strong { font-size: 1.2em; }
    .ne-event-summary__organizer { font-size: .82em; }
    .ne-event-expanded { padding: 1rem .8rem 1.2rem; }
    .ne-event-day { grid-template-columns: 1fr; gap: .2rem; }
    .ne-event-day span { text-align: left; }
    .ne-event-facts > div { grid-template-columns: 1fr; gap: .05rem; margin-bottom: .35rem; }
}
