.page-module.page-module-image-gallery { padding: 25px clamp(20px,5vw,72px); background: #fff; }
.page-module-image-gallery .gallery-heading { padding: 0 0 20px; }
.image-gallery-row { display: flex; align-items: flex-start; width: 100%; max-width: 1180px; gap: 4px; margin: 0 auto 4px; }
.image-gallery-item { display: block; min-width: 0; flex: 1 1 0; background: #fff; }
.image-gallery-item img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.image-gallery-item:hover img { opacity: .95; }
.image-gallery-item:focus-visible { outline: 3px solid #ed7000; outline-offset: -3px; }
.gallery-lightbox { position: fixed; inset: 0; width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: rgba(15,15,15,.97); color: #fff; }
.gallery-lightbox::backdrop { background: rgba(0,0,0,.9); }
.gallery-lightbox[open] { display: grid; grid-template-rows: 64px minmax(0,1fr) auto; }
.gallery-lightbox-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 16px; }
.gallery-lightbox button { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid #777; border-radius: 4px; background: #222; color: #fff; font-size: 28px; cursor: pointer; }
.gallery-lightbox button:hover,.gallery-lightbox button:focus-visible { border-color: #ed7000; background: #333; outline: 2px solid #ed7000; }
.gallery-lightbox-view { display: grid; grid-template-columns: 52px minmax(0,1fr) 52px; align-items: center; gap: 8px; padding: 0 12px; min-height: 0; }
.gallery-lightbox-view img { display: block; width: 100%; height: 100%; min-height: 0; max-height: 100%; object-fit: contain; }
.gallery-lightbox-caption { text-align: center; padding: 16px; max-height: 100px; overflow: auto; margin: 0; overflow-wrap: anywhere; }
.gallery-lightbox-count { font-size: 14px; }
.gallery-lightbox button[hidden] { visibility: hidden; display: grid; }
body.gallery-lightbox-open { overflow: hidden; }
@media(max-width:700px) {
    .image-gallery-row { flex-wrap: wrap; }
    .image-gallery-item { flex-basis: calc(50% - 4px); }
    .gallery-lightbox-view { grid-template-columns: 40px minmax(0,1fr) 40px; gap: 4px; padding: 0 4px; }
    .gallery-lightbox-view button { width: 36px; height: 44px; }
}
@media(max-width:420px) { .image-gallery-item { flex-basis: 100%; } }
@media(prefers-reduced-motion:reduce) { .image-gallery-item img { transition: none; } }
