/* Shared lightbox for full photography galleries. Gallery layouts stay unchanged. */
.gallery-grid .gallery-item.gallery-lightbox-trigger { cursor: zoom-in; }
.gallery-grid .gallery-item.gallery-lightbox-trigger:focus-visible { outline: 3px solid #7a8c69; outline-offset: 4px; }
.gallery-grid .gallery-item.gallery-lightbox-trigger::after { content: '⌕'; position: absolute; right: .75rem; bottom: .75rem; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: rgba(60,60,60,.72); color: #fff; font: 400 1.45rem/1 'Cormorant Garamond', serif; opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease; pointer-events: none; }
.gallery-grid .gallery-item.gallery-lightbox-trigger:hover::after,
.gallery-grid .gallery-item.gallery-lightbox-trigger:focus-visible::after { opacity: 1; transform: translateY(0); }
.gallery-lightbox { position: fixed; inset: 0; z-index: 5000; display: none; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(18,18,16,.92); opacity: 0; transition: opacity .2s ease; }
.gallery-lightbox.is-open { display: flex; opacity: 1; }
.gallery-lightbox figure { max-width: min(94vw, 1500px); max-height: 90vh; margin: 0; display: flex; flex-direction: column; align-items: center; }
.gallery-lightbox img { display: block; max-width: 100%; max-height: 80vh; width: auto; height: auto; object-fit: contain; box-shadow: 0 12px 50px rgba(0,0,0,.45); }
.gallery-lightbox figcaption { max-width: 740px; margin-top: .8rem; color: #fff; text-align: center; font: 400 .8rem/1.5 'Montserrat', sans-serif; }
.gallery-lightbox-close, .gallery-lightbox-nav { position: absolute; border: 0; color: #fff; background: rgba(255,255,255,.12); cursor: pointer; transition: background .2s ease; font-family: 'Montserrat', sans-serif; }
.gallery-lightbox-close:hover, .gallery-lightbox-nav:hover { background: #7a8c69; }
.gallery-lightbox-close { top: 1.25rem; right: 1.25rem; width: 46px; height: 46px; border-radius: 50%; font-size: 2rem; line-height: 1; }
.gallery-lightbox-nav { top: 50%; transform: translateY(-50%); width: 52px; height: 58px; font-size: 2.1rem; }
.gallery-lightbox-prev { left: 1rem; }
.gallery-lightbox-next { right: 1rem; }
.gallery-lightbox-count { position: absolute; top: 1.7rem; left: 50%; transform: translateX(-50%); color: #fff; font: 500 .76rem/1 'Montserrat', sans-serif; letter-spacing: .14em; text-transform: uppercase; }
body.gallery-lightbox-open { overflow: hidden; }
@media (max-width: 768px) {
  .gallery-lightbox { padding: 1rem; }
  .gallery-lightbox img { max-height: 76vh; }
  .gallery-lightbox-close { top: .7rem; right: .7rem; }
  .gallery-lightbox-nav { width: 42px; height: 50px; font-size: 1.8rem; }
  .gallery-lightbox-prev { left: .45rem; }
  .gallery-lightbox-next { right: .45rem; }
}
