/**
 * JMAA Event Gallery - the public page and lightbox.
 * Uses the Brand Kit tokens where present, with plain fallbacks.
 */
.jmaa-gal { font-family: var(--jmaa-font, system-ui, sans-serif); color: var(--jmaa-ink, #121212); }
.elementor-widget-shortcode:has(.jmaa-gal) { width: 100%; }
.jmaa-gal__gallery + .jmaa-gal__gallery { margin-top: 42px; padding-top: 30px; border-top: 1px solid var(--jmaa-grey-light, #E4E5E7); }
.jmaa-gal__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin: 0 0 6px; }
.jmaa-gal__title { margin: 0; font-size: 1.35rem; font-weight: 700; padding-bottom: 6px; border-bottom: 3px solid var(--jmaa-gold, #FFC20E); }
.jmaa-gal__when { color: var(--jmaa-grey, #6b6d70); font-weight: 600; }
.jmaa-gal__intro { margin: 8px 0 14px; color: var(--jmaa-grey, #6b6d70); }
.jmaa-gal__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 14px; }
.jmaa-gal__item { margin: 0; }
.jmaa-gal .jmaa-gal__open { display: block; width: 100%; padding: 0; border: 0; background: var(--jmaa-off-white, #F6F6F7); border-radius: 6px; overflow: hidden; cursor: zoom-in; }
.jmaa-gal__open img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s ease; }
.jmaa-gal .jmaa-gal__open:hover img { transform: scale(1.03); }
.jmaa-gal__caption { margin: 6px 0 0; font-size: .9rem; color: var(--jmaa-grey, #6b6d70); }
.jmaa-gal__empty { color: var(--jmaa-grey, #6b6d70); }

/* 1.0.1: sized to the visible screen (dvh; vh fallback) so the close button,
   arrows and caption are never behind a phone browser's toolbars. */
.jmaa-gal__box { width: min(96vw, 1000px); max-height: 96vh; max-height: 96dvh; padding: 0; border: 0; background: transparent; }
.jmaa-gal__box::backdrop { background: rgba(0,0,0,.86); }
.jmaa-gal__box-figure { margin: 0; text-align: center; }
.jmaa-gal__box-figure img { display: block; max-width: 100%; max-height: 82vh; max-height: 78dvh; height: auto; margin: 0 auto; border-radius: 6px; }
.jmaa-gal__box-figure figcaption { color: #fff; margin: 12px 0 0; font-size: 1rem; }
.jmaa-gal__box-figure figcaption:empty { display: none; }
.jmaa-gal .jmaa-gal__close, .jmaa-gal .jmaa-gal__nav {
	position: absolute; border: 0; border-radius: 50%; width: 44px; height: 44px; cursor: pointer;
	background: rgba(0,0,0,.55); color: #fff; font-size: 30px; line-height: 1;
}
.jmaa-gal .jmaa-gal__close { top: 8px; right: 8px; }
.jmaa-gal .jmaa-gal__nav { top: 50%; transform: translateY(-50%); }
.jmaa-gal .jmaa-gal__nav--prev { left: 8px; }
.jmaa-gal .jmaa-gal__nav--next { right: 8px; }
.jmaa-gal .jmaa-gal__close:hover, .jmaa-gal .jmaa-gal__nav:hover { background: var(--jmaa-gold, #FFC20E); color: #111; }
.jmaa-gal .jmaa-gal__nav[hidden] { display: none; }
body:has(.jmaa-gal__box[open]) { overflow: hidden; }
@media (max-width: 600px) { .jmaa-gal__grid { grid-template-columns: 1fr 1fr; gap: 10px; } }
