/* Gallery + lightbox. Aspect ratios are fixed so the grid never shifts (CLS 0). */
.shk-gallery{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.75rem }
.shk-gallery figure{ margin:0 }
.shk-gallery img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--radius-sm); cursor:zoom-in;
  transition:transform .3s ease, box-shadow .3s ease;
}
.shk-gallery img:hover{ transform:scale(1.02); box-shadow:var(--shadow-md) }
.shk-gallery figcaption{ font-size:.82rem; color:var(--c-ink-3); margin-top:.35rem }
@media (max-width:480px){ .shk-gallery{ grid-template-columns:1fr 1fr; gap:.5rem } }

.shk-lb{ position:fixed; inset:0; z-index:9999; background:rgba(12,29,57,.94); display:none; align-items:center; justify-content:center }
.shk-lb.open{ display:flex }
.shk-lb img{ max-width:94vw; max-height:86vh; border-radius:var(--radius-sm); box-shadow:var(--shadow-lg) }
.shk-lb button{
  position:absolute; background:rgba(255,255,255,.14); border:0; color:#fff;
  width:52px; height:52px; border-radius:50%; cursor:pointer; font-size:1.5rem;
  display:grid; place-items:center; transition:background .2s ease;
}
.shk-lb button:hover{ background:rgba(255,255,255,.3) }
.shk-lb-close{ top:18px; right:18px }
.shk-lb-prev{ left:14px; top:50%; transform:translateY(-50%) }
.shk-lb-next{ right:14px; top:50%; transform:translateY(-50%) }
@media (prefers-reduced-motion:reduce){ .shk-gallery img{ transition:none } }

/* Fixed three-across variant, for sections with a known number of photos. */
@media (min-width:900px){ .shk-gallery--3{ grid-template-columns:repeat(3,1fr) } }
