.events-page {
    --ea-ink: var(--foreground, #192d32); --ea-muted: var(--muted-foreground, #60716d);
    --ea-paper: var(--card, #fff); --ea-bg: var(--background, #f8faf9); --ea-line: var(--border, #dce4df);
    --ea-green: #17664f; --ea-soft: #edf5f0;
    background: var(--ea-bg); color: var(--ea-ink); padding-bottom: 64px;
}
.dark .events-page { --ea-green: #8ac8a7; --ea-soft: #213d32; }
.events-page *, .events-page *::before, .events-page *::after { box-sizing: border-box; }
.events-page :is(h1,h2,h3,p,figure,dl,dd) { margin: 0; }
.events-page :is(a,button,input):focus-visible { outline: 3px solid var(--ea-green); outline-offset: 4px; }
.events-page a { color: inherit; text-decoration: none; }
.ea-wrap { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
.ea-intro { background: var(--ea-soft); border-bottom: 1px solid var(--ea-line); padding-bottom: 52px; }
.ea-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-block: 22px; color: var(--ea-muted); font-size: 12px; }
.ea-breadcrumb a:hover { text-decoration: underline; }
.ea-eyebrow { display: block; color: var(--ea-green); font-size: 11px; letter-spacing: .1em; font-weight: 750; text-transform: uppercase; line-height: 1.5; }
.ea-intro .ea-eyebrow { margin-top: 20px; }
.ea-intro h1 { font-size: clamp(2.3rem,4.5vw,3.8rem); line-height: 1.08; letter-spacing: -.04em; font-weight: 750; margin-top: 17px; }
.ea-intro > .ea-wrap > p { max-width: 690px; color: var(--ea-muted); font-size: 17px; line-height: 1.65; margin-top: 20px; }
.ea-intro-actions { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; margin-top: 28px; }
.events-page .ea-button { display: inline-flex; justify-content: center; align-items: center; min-height: 43px; border: 1px solid var(--ea-green); border-radius: 7px; padding: 11px 18px; font-size: 12px; font-weight: 650; color: white; background: #17664f; line-height: 1.45; text-align: center; }
.events-page .ea-button:hover { background: #12513f; color: white; }
.events-page .ea-button--outline { color: var(--ea-green); background: transparent; }
.events-page .ea-button--outline:hover { background: var(--ea-green); color: var(--ea-paper); }
.events-page .ea-text-link { color: var(--ea-green); font-size: 12px; font-weight: 650; }
.ea-text-link:hover { text-decoration: underline; }
.ea-sections { display: flex; gap: 30px; border-bottom: 1px solid var(--ea-line); padding-block: 24px; flex-wrap: wrap; }
.ea-sections a { display: flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 600; }
.ea-sections a:hover { color: var(--ea-green); }
.ea-sections span { color: var(--ea-green); border-radius: 5px; padding: 2px 7px; background: var(--ea-soft); font-size: 11px; }
.ea-feature { display: flex; align-items: center; justify-content: space-between; gap: 25px; background: var(--ea-paper); border: 1px solid var(--ea-line); border-left: 3px solid var(--ea-green); border-radius: 8px; padding: 25px; margin-top: 30px; }
.ea-feature h2 { font-size: 22px; line-height: 1.35; margin-top: 9px; }
.ea-feature p { color: var(--ea-muted); font-size: 13px; margin-top: 8px; }
.ea-section { padding-block: 38px 10px; scroll-margin-top: 100px; }
.ea-section-heading { margin-bottom: 25px; }
.ea-section-heading h2 { font-size: clamp(1.6rem,2.5vw,2.1rem); line-height: 1.2; font-weight: 700; letter-spacing: -.025em; margin-top: 9px; }
.ea-section-heading p { color: var(--ea-muted); font-size: 14px; line-height: 1.65; margin-top: 9px; max-width: 760px; }
.ea-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.ea-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--ea-line); border-radius: 12px; overflow: hidden; background: var(--ea-paper); box-shadow: 0 3px 8px #173b2f04; }
.ea-card:hover { border-color: color-mix(in srgb,var(--ea-green) 50%,var(--ea-line)); }
.ea-card-media { display: block; position: relative; aspect-ratio: 16/10; background: var(--ea-soft); overflow: hidden; }
.ea-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ea-card-media--empty { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; color: var(--ea-green) !important; }
.ea-card-media--empty svg { height: 50px; width: 50px; opacity: .6; }
.ea-card-media--empty > span:not(.ea-type) { font-size: 15px; font-weight: 650; }
.ea-card-media--empty small { font-size: 10px; opacity: .7; }
.ea-type { position: absolute; bottom: 13px; left: 15px; border: 1px solid #ffffff80; background: #fffffff2; border-radius: 5px; padding: 5px 8px; color: #17664f; font-size: 10px; font-weight: 650; }
.ea-card-content { padding: 23px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ea-card-top { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ea-category { text-transform: uppercase; font-size: 10px; letter-spacing: .06em; color: var(--ea-green); font-weight: 750; }
.ea-free { color: var(--ea-green); background: var(--ea-soft); border-radius: 5px; padding: 4px 7px; font-size: 10px; font-weight: 650; }
.ea-card h3 { font-size: 21px; font-weight: 700; line-height: 1.3; letter-spacing: -.025em; margin-top: 13px; overflow-wrap: break-word; }
.ea-card h3 a:hover { color: var(--ea-green); }
.ea-summary { color: var(--ea-muted); font-size: 13px; line-height: 1.7; margin-top: 14px !important; overflow-wrap: anywhere; }
.ea-card-facts { display: grid; gap: 15px; margin-top: 22px !important; margin-bottom: 24px !important; padding-top: 20px; border-top: 1px solid var(--ea-line); }
.ea-card-facts dt { font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: var(--ea-muted); margin-bottom: 4px; }
.ea-card-facts dd { font-size: 12px; font-weight: 550; line-height: 1.65; overflow-wrap: anywhere; }
.ea-card-facts dd span { display: block; color: var(--ea-muted); font-size: 11px; font-weight: 400; margin-top: 3px; }
.events-page .ea-card-link { display: flex; justify-content: space-between; color: var(--ea-green); border-top: 1px solid var(--ea-line); padding-top: 17px; margin-top: auto; font-size: 12px; font-weight: 650; gap: 10px; }
.ea-card-facts + .ea-card-link { margin-top: auto; }
.ea-empty { padding: 23px; border: 1px dashed var(--ea-line); border-radius: 8px; color: var(--ea-muted); font-size: 13px; line-height: 1.75; background: var(--ea-paper); }
.ea-empty a { color: var(--ea-green); text-decoration: underline; }
.ea-contribute { margin-top: 48px; border-block: 1px solid var(--ea-line); padding-block: 32px; display: flex; justify-content: space-between; align-items: center; gap: 28px; }
.ea-contribute h2 { font-size: 23px; font-weight: 700; letter-spacing: -.025em; line-height: 1.35; margin-top: 8px; }
.ea-contribute p { font-size: 13px; color: var(--ea-muted); line-height: 1.7; margin-top: 9px; max-width: 660px; }
.ea-contribute .ea-button { flex: none; }
.ea-detail-heading { padding-block: 24px 33px; max-width: 940px; }
.ea-pill { font-size: 10px; border: 1px solid var(--ea-line); border-radius: 5px; padding: 4px 8px; color: var(--ea-muted); }
.ea-detail-heading h1 { font-size: clamp(2rem,4vw,3.3rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 750; margin-top: 19px; overflow-wrap: break-word; }
.ea-detail-deck { font-size: 17px; line-height: 1.65; color: var(--ea-muted); margin-top: 21px !important; }
.ea-detail-place { margin-top: 18px !important; font-size: 12px; color: var(--ea-green); font-weight: 600; }
.ea-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 44px; align-items: start; }
.ea-detail-main,.ea-detail-aside { min-width: 0; }
.ea-cover { margin-bottom: 30px !important; }
.ea-cover > img { display: block; width: 100%; height: auto; max-height: 550px; object-fit: contain; background: var(--ea-soft); border-radius: 10px; }
.ea-cover figcaption,.ea-gallery figcaption { font-size: 11px; color: var(--ea-muted); line-height: 1.6; margin-top: 9px; }
.ea-cover figcaption a { color: var(--ea-green); text-decoration: underline; margin-left: 7px; }
.ea-info-block { border-top: 1px solid var(--ea-line); padding-block: 26px; }
.ea-info-block h2 { font-size: 23px; line-height: 1.35; letter-spacing: -.02em; font-weight: 700; margin-bottom: 19px; }
.ea-info-block p,.ea-info-block li { font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
.ea-info-block p + p { margin-top: 18px; }
.ea-info-block ul { padding-left: 20px; }
.ea-info-block li + li { margin-top: 10px; }
.ea-schedule + .ea-schedule { margin-top: 22px; }
.ea-schedule h3 { font-size: 15px; font-weight: 650; line-height: 1.6; padding-bottom: 10px; }
.ea-schedule-row { display: grid; grid-template-columns: minmax(110px,1fr) 1fr; gap: 20px; padding-block: 14px; border-top: 1px solid var(--ea-line); font-size: 13px; line-height: 1.7; }
.ea-schedule-row strong { font-weight: 600; color: var(--ea-green); overflow-wrap: anywhere; }
.ea-schedule-row span { color: var(--ea-muted); }
.ea-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.ea-gallery img { width: 100%; height: auto; border-radius: 7px; }
.ea-gallery figcaption span { display: block; }
.ea-sources { background: var(--ea-soft); border: 1px solid var(--ea-line); padding: 25px; border-radius: 9px; margin-bottom: 25px; }
.ea-sources p { font-size: 13px; color: var(--ea-muted); line-height: 1.7; }
.ea-sources > a { display: block; color: var(--ea-green); font-size: 13px; font-weight: 650; margin-top: 15px; overflow-wrap: anywhere; }
.ea-sources small { display: block; color: var(--ea-muted); font-size: 11px; font-weight: 400; margin-top: 5px; }
.ea-back { font-size: 13px; color: var(--ea-green) !important; font-weight: 650; display: inline-block; margin-block: 10px; }
.ea-detail-aside { display: grid; gap: 20px; }
.ea-fact-panel { padding: 25px; border: 1px solid var(--ea-line); border-radius: 10px; background: var(--ea-paper); }
.ea-fact-panel:first-child { border-top: 3px solid var(--ea-green); }
.ea-fact-panel h2 { font-size: 20px; letter-spacing: -.025em; line-height: 1.3; font-weight: 700; margin-top: 7px; margin-bottom: 19px; }
.ea-fact-panel dl { display: grid; gap: 20px; }
.ea-fact-panel dt { font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: var(--ea-muted); margin-bottom: 6px; }
.ea-fact-panel dd { font-size: 13px; line-height: 1.75; font-weight: 550; overflow-wrap: anywhere; }
.ea-fact-panel p { font-size: 12px; line-height: 1.8; color: var(--ea-muted); }
.ea-fact-panel .ea-button { display: flex; width: 100%; margin-top: 22px; }
.ea-fact-panel .ea-access { color: var(--ea-green); font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.ea-fact-panel .ea-organizer { color: var(--ea-ink); font-weight: 600; margin-bottom: 14px; }
@media (max-width:1000px) {
    .ea-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ea-detail-grid { grid-template-columns: minmax(0,1fr) 300px; gap: 26px; }
    .ea-fact-panel { padding: 21px; }
}
@media (max-width:760px) {
    .ea-wrap { width: calc(100% - 36px); }
    .ea-intro { padding-bottom: 34px; }
    .ea-intro .ea-eyebrow { margin-top: 13px; }
    .ea-intro > .ea-wrap > p { font-size: 15px; }
    .ea-intro-actions .ea-text-link { width: 100%; padding-top: 5px; }
    .ea-sections { gap: 15px; padding-block: 20px; }
    .ea-sections a { font-size: 11px; }
    .ea-section { padding-top: 30px; }
    .ea-grid { gap: 18px; }
    .ea-card-content { padding: 19px; }
    .ea-feature,.ea-contribute { display: block; }
    .ea-feature .ea-button,.ea-contribute .ea-button { margin-top: 20px; }
    .ea-detail-grid { display: flex; flex-direction: column; gap: 30px; }
    .ea-detail-main,.ea-detail-aside { width: 100%; }
    .ea-detail-heading { padding-top: 16px; }
    .ea-detail-deck { font-size: 16px; }
    .ea-info-block h2 { font-size: 21px; }
    .ea-schedule-row { grid-template-columns: 1fr; gap: 5px; }
}
@media (max-width:540px) {
    .ea-grid { grid-template-columns: minmax(0,1fr); }
    .ea-card-media { aspect-ratio: 16/9; }
    .ea-card-content { padding: 23px; }
    .ea-card h3 { font-size: 22px; }
    .ea-sections { gap: 10px 20px; }
    .ea-gallery { grid-template-columns: 1fr; }
    .ea-detail-heading h1 { font-size: 2.05rem; }
}
@media print {
    .ea-breadcrumb,.ea-intro-actions,.ea-sections,.ea-contribute,.ea-back,.events-page .ea-button { display: none; }
    .ea-wrap { width: 100%; }
    .ea-detail-grid { display: block; }
    .ea-detail-aside { margin-top: 25px; }
    .ea-card,.ea-fact-panel { break-inside: avoid; }
}
