/* Gallery page: responsive photo grid and accessible lightbox (no external libraries). */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:28px 24px;margin:0 0 8px}
.gal-item{margin:0;min-width:0}
.gal-link{position:relative;display:block;overflow:hidden;border-radius:4px;background:#e6e3dc;cursor:zoom-in}
.gal-link img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .35s ease}
.gal-link:hover img{transform:scale(1.03)}
.gal-link:focus-visible{outline:3px solid #d6263a;outline-offset:3px}
.gal-item figcaption{font-size:14px;line-height:1.5;margin-top:10px;color:var(--p3-muted)}
.gal-tag{position:absolute;left:10px;top:10px;padding:4px 9px;border-radius:3px;background:rgba(10,42,78,.88);color:#fff;font:700 11px/1.4 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.gal-cta .p3-lead{margin:0}
.gal-lightbox{width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:0;border:0;background:rgba(6,18,34,.94);color:#fff}
.gal-lightbox::backdrop{background:rgba(6,18,34,.94)}
.gal-lb-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:64px 72px 56px;box-sizing:border-box}
.gal-lb-figure{margin:0;display:flex;flex-direction:column;align-items:center;max-width:100%;max-height:100%}
.gal-lb-img{display:block;max-width:100%;max-height:calc(100vh - 170px);width:auto;height:auto;object-fit:contain;border-radius:3px;touch-action:pan-y pinch-zoom}
.gal-lb-caption{margin-top:12px;font:500 15px/1.5 Inter,system-ui,sans-serif;text-align:center;max-width:760px;color:#e8edf2}
.gal-lb-caption .gal-tag{position:static;display:inline-block;margin-right:8px;background:#d6263a}
.gal-lb-close,.gal-lb-prev,.gal-lb-next{position:absolute;border:1px solid rgba(255,255,255,.45);background:rgba(10,42,78,.7);color:#fff;border-radius:4px;cursor:pointer;font:600 14px/1 Inter,system-ui,sans-serif}
.gal-lb-close{top:14px;right:14px;padding:12px 16px}
.gal-lb-prev,.gal-lb-next{top:50%;transform:translateY(-50%);width:48px;height:64px;font-size:34px}
.gal-lb-prev{left:12px}.gal-lb-next{right:12px}
.gal-lb-close:focus-visible,.gal-lb-prev:focus-visible,.gal-lb-next:focus-visible{outline:3px solid #fff;outline-offset:2px}
.gal-lb-count{position:absolute;top:14px;left:16px;margin:0;font:600 13px/38px Inter,system-ui,sans-serif;color:#cfd8e1}
@media(max-width:620px){
.gal-grid{gap:22px}
.gal-lb-inner{padding:60px 10px 84px}
.gal-lb-img{max-height:calc(100vh - 200px)}
.gal-lb-prev,.gal-lb-next{top:auto;bottom:14px;transform:none;width:56px;height:48px}
.gal-lb-prev{left:calc(50% - 64px)}.gal-lb-next{right:calc(50% - 64px)}
}
@media(prefers-reduced-motion:reduce){.gal-link img{transition:none}.gal-link:hover img{transform:none}}
