/* Gallery page – image grid + click-to-view lightbox (page-specific) */
.gallery-section .g-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-bottom:2.2rem; }
.g-filter {
  background:transparent; color:var(--gold-pale); border:1px solid rgba(65,179,229,.4);
  padding:.5rem 1.4rem; border-radius:50px; font:500 .9rem var(--font-body, 'Jost', sans-serif);
  letter-spacing:.04em; cursor:pointer; transition:all .25s;
}
.g-filter:hover { border-color:var(--gold); color:#fff; }
.g-filter.active { background:var(--gold); border-color:var(--gold); color:var(--bronze-dark); }

/* masonry via CSS columns */
.g-grid { column-count:3; column-gap:1rem; }
.g-item { break-inside:avoid; margin:0 0 1rem; }
.g-item.is-hidden { display:none; }
.g-btn {
  position:relative; display:block; width:100%; padding:0; border:0; background:#0A3550;
  border-radius:8px; overflow:hidden; cursor:zoom-in; line-height:0;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.g-btn img { width:100%; height:auto; display:block; transition:transform .6s ease; }
.g-btn:hover img, .g-btn:focus-visible img { transform:scale(1.06); }
.g-btn:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.g-zoom {
  position:absolute; right:.8rem; bottom:.8rem; width:2.4rem; height:2.4rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; line-height:1;
  background:rgba(255,255,255,.92); color:var(--bronze-dark); font-size:.95rem;
  opacity:0; transform:translateY(8px); transition:all .3s;
}
.g-btn:hover .g-zoom, .g-btn:focus-visible .g-zoom { opacity:1; transform:none; }
@media (hover:none) { .g-zoom { opacity:1; transform:none; } }
@media (max-width:991px) { .g-grid { column-count:2; } }
@media (max-width:520px) { .g-grid { column-count:1; } }

/* lightbox */
.g-lightbox {
  position:fixed; inset:0; z-index:2000; background:rgba(2,20,31,.94);
  display:flex; align-items:center; justify-content:center; padding:3.5rem 4rem;
  animation:gFade .25s ease;
}
.g-lightbox[hidden] { display:none; }
@keyframes gFade { from{opacity:0} to{opacity:1} }
.g-lb-stage { margin:0; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; }
.g-lb-stage img { max-width:100%; max-height:calc(100vh - 11rem); object-fit:contain; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.g-lb-stage figcaption { color:#fff; text-align:center; margin-top:1rem; display:flex; flex-direction:column; gap:.15rem; }
.g-lb-stage figcaption strong { font:600 1.35rem var(--font-display, 'Cormorant Garamond', serif); }
.g-lb-stage figcaption span { color:var(--gold-pale); font-size:.9rem; opacity:.85; }
.g-lb-stage figcaption em { color:var(--gold-light); font-size:.78rem; font-style:normal; letter-spacing:.1em; margin-top:.3rem; }
.g-lb-close, .g-lb-nav {
  position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff;
  width:2.9rem; height:2.9rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .2s; font-size:1.1rem;
}
.g-lb-close:hover, .g-lb-nav:hover { background:var(--gold); color:var(--bronze-dark); }
.g-lb-close { top:1.1rem; right:1.1rem; }
.g-lb-nav { top:50%; transform:translateY(-50%); }
.g-lb-prev { left:1.1rem; } .g-lb-next { right:1.1rem; }
@media (max-width:640px) {
  .g-lightbox { padding:3.5rem .75rem 4.5rem; }
  .g-lb-nav { top:auto; bottom:1rem; transform:none; }
  .g-lb-prev { left:calc(50% - 3.6rem); } .g-lb-next { right:calc(50% - 3.6rem); }
}
body.g-lock { overflow:hidden; }
