.event-detail-page {
    --w-bg: var(--welsi-paper, #f4f7f3);
    --w-surface: #fff;
    --w-text: var(--welsi-ink, #142c14);
    --w-muted: #63725e;
    --w-border: var(--welsi-line, #d9e3d8);
    --w-green: var(--welsi-deep, #003d20);
    --w-green-600: var(--welsi-deep, #003d20);
    --w-green-100: #e9efdf;
    padding-bottom: 4rem;
    color: var(--welsi-ink, #142c14);
}
.event-detail-header { padding-top: 2rem; padding-bottom: 2.5rem; }
.event-back-link { display: inline-flex; align-items: center; gap: .6rem; padding-bottom: .3rem; margin-bottom: 2rem; border-bottom: 1px solid var(--welsi-line, #d9e3d8); color: var(--welsi-deep, #003d20); font-size: .82rem; font-weight: 600; text-decoration: none; }
.event-back-link:hover { color: var(--welsi-fern, #537b2f); border-color: currentColor; }
.event-detail-eyebrow { color: var(--welsi-fern, #537b2f); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.event-title { max-width: 1000px; margin: .8rem 0 1.2rem; color: var(--welsi-deep, #003d20); font-family: var(--welsi-display, "Newsreader", Georgia, serif); font-size: clamp(2.5rem, 5.5vw, 4.75rem); font-weight: 500; line-height: 1.04; letter-spacing: -.035em; overflow-wrap: anywhere; }
.event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; color: #63725e; font-size: .83rem; line-height: 1.7; }
.event-meta > span { min-width: 0; overflow-wrap: anywhere; }
.event-meta i { color: var(--welsi-fern, #537b2f); }
.meta-dot { display: inline-block; width: .25rem; height: .25rem; margin: 0 .45rem; border-radius: 50%; background: #94a18e; vertical-align: middle; }
.event-hero { position: relative; overflow: hidden; border-block: 1px solid var(--welsi-line, #d9e3d8); background: #edf1e9; }
.event-hero::before { content: ""; position: absolute; inset: 0; background-image: var(--hero-bg, none); background-size: cover; background-position: center; filter: blur(20px); opacity: .08; }
.event-hero-inner { position: relative; z-index: 1; padding-top: 1.5rem; padding-bottom: 1.5rem; }
.event-hero-img { display: block; width: 100%; max-height: 480px; margin: 0 auto; object-fit: contain; object-position: center; border-radius: 5px; }
.event-layout { margin-top: 2.8rem; }
.event-detail-page h2 { color: var(--welsi-ink, #142c14); font-family: var(--welsi-display, "Newsreader", Georgia, serif); font-size: 2rem; font-weight: 500; letter-spacing: -.02em; }
.event-description-section { padding-right: 1.5rem; }
.event-description-section > h2 { margin-bottom: 1.2rem; }
.card-surface { padding: 1.5rem; border: 1px solid var(--welsi-line, #d9e3d8); border-radius: 7px; background: #fff; }
.event-detail-page .sticky-card { position: sticky; top: 120px; border-top: 4px solid var(--welsi-deep, #003d20); background: var(--welsi-paper, #f4f7f3); }
.event-detail-page .event-info-heading { font-size: 1.9rem; }
.event-detail-page .btn-welsi, .event-detail-page .btn-outline-welsi {
    display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
    padding: .75rem 1rem; border: 1px solid var(--welsi-deep, #003d20); border-radius: 5px;
    color: #fff; background: var(--welsi-deep, #003d20); font-size: .88rem; font-weight: 600;
}
.event-detail-page .btn-outline-welsi { color: var(--welsi-deep, #003d20); background: transparent; }
.event-detail-page .btn-welsi:hover, .event-detail-page .btn-outline-welsi:hover { color: #fff; background: var(--welsi-fern, #537b2f); border-color: var(--welsi-fern, #537b2f); }
.event-detail-page .btn-sm { padding: .45rem .7rem; font-size: .78rem; }
.event-detail-page .bg-welsi { background: var(--welsi-deep, #003d20) !important; }
.info-list { list-style: none; padding: 0; margin: 0; }
.info-list li { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem 0; border-bottom: 1px solid var(--welsi-line, #d9e3d8); }
.info-list li:last-child { border-bottom: 0; }
.info-list li > div { min-width: 0; color: #52644b; font-size: .86rem; line-height: 1.65; overflow-wrap: anywhere; }
.info-list strong { color: var(--welsi-ink, #142c14); font-size: .76rem; font-weight: 600; }
.info-icon { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border: 1px solid var(--welsi-line, #d9e3d8); border-radius: 4px; color: var(--welsi-fern, #537b2f); background: #fff; font-size: .9rem; }
.event-desc { max-width: 100%; color: #354633; font-size: 1.03rem; line-height: 1.85; overflow-wrap: anywhere; }
.event-desc * { max-width: 100%; box-sizing: border-box; }
.event-desc .ql-editor { padding-left: 0; padding-right: 0; }
.event-desc p { margin-bottom: 1.2rem; }
.event-desc :is(h1,h2,h3,h4) { margin-top: 1.7rem; margin-bottom: .9rem; color: var(--welsi-deep, #003d20); font-family: var(--welsi-display, "Newsreader", Georgia, serif); font-weight: 500; line-height: 1.15; }
.event-desc :is(img,video,iframe) { max-width: 100%; height: auto; }
.event-desc :is(pre,table) { display: block; max-width: 100%; overflow-x: auto; }
.event-desc a { color: var(--welsi-deep, #003d20); text-underline-offset: .2em; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.gallery-thumb { width: 100%; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 5px; background: var(--welsi-paper, #f4f7f3); }
.gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.gallery-open { display: block; width: 100%; padding: 0; border: 0; border-radius: 5px; background: transparent; cursor: zoom-in; }
.gallery-open:hover img { transform: scale(1.025); }
.gallery-preview { width: 100%; height: 220px; object-fit: cover; object-position: center; border: 1px solid var(--welsi-line, #d9e3d8); border-radius: 5px; cursor: pointer; }
#galleryPreviewContainer .col-md-4 { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; }
.gallery-stage, #galleryModal .modal-body { position: relative; display: flex; width: 100%; height: 80vh; align-items: center; justify-content: center; padding: 0; background: #101910; }
#galleryModalImg { display: block; width: auto; height: 100%; max-width: 100%; max-height: 100%; margin: auto; object-fit: contain; object-position: center; }
#galleryModal .btn-close { z-index: 3; padding: .75rem; border-radius: 50%; background-color: #fff; opacity: 1; }
.participant-card { display: flex; align-items: center; gap: 1rem; padding: 1rem; margin-bottom: .75rem; border: 1px solid var(--welsi-line, #d9e3d8); border-radius: 6px; background: #fff; }
.participant-card > .flex-grow-1 { min-width: 0; overflow-wrap: anywhere; }
.participant-avatar { flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; background: var(--welsi-paper, #f4f7f3); }
.participant-card h6 { color: var(--welsi-ink, #142c14); font-size: 1rem; font-weight: 600; }
.role-badge { padding: .3rem .5rem; border-radius: 3px; background: #edf2e7; color: #45613a; font-size: .65rem; font-weight: 600; }
#participant-container thead th { padding: .85rem; border-bottom: 1px solid var(--welsi-line, #d9e3d8); background: var(--welsi-paper, #f4f7f3); color: var(--welsi-deep, #003d20); font-size: .86rem; font-weight: 600; }
.admin-edit { text-align: right; }
.object-fit-contain { object-fit: contain; }
.object-fit-cover { object-fit: cover; }
.event-detail-page :is(a,button):focus-visible { outline: 3px solid #8da750; outline-offset: 4px; box-shadow: none; }
@media (max-width: 991.98px) {
    .event-description-section { padding-right: 0; }
    .event-detail-page .sticky-card { position: static; }
}
@media (max-width: 575.98px) {
    .event-detail-header { padding-top: 1.25rem; padding-bottom: 1.75rem; }
    .event-back-link { margin-bottom: 1.5rem; }
    .event-title { font-size: 2.5rem; }
    .event-meta { gap: .5rem; font-size: .78rem; }
    .event-hero-img { max-height: 340px; }
    .event-hero-inner { padding-top: 1rem; padding-bottom: 1rem; }
    .event-layout { margin-top: 2rem; }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .participant-card { flex-wrap: wrap; gap: .75rem; }
    .participant-card > .flex-grow-1 { flex-basis: calc(100% - 80px); }
}
@media (prefers-reduced-motion: reduce) { .gallery-thumb img { transition: none; } }
