/* NPilates Gallery — Sleek frontend */
.np-gallery{max-width:1280px;margin-inline:auto;padding:clamp(8px,2vw,16px)}
.np-gallery-grid{
  display:grid;
  grid-template-columns:repeat( auto-fit, minmax(260px,1fr) );
  gap:var(--np-gap,16px);
}
.np-gallery-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.np-gallery-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.np-gallery-grid.cols-4{ grid-template-columns:repeat(4,1fr); }

.np-item{
  position:relative; overflow:hidden; border-radius:18px;
  background:#f8fafc; box-shadow:0 10px 28px rgba(0,0,0,.06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.np-item::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(80% 60% at 50% 120%, rgba(0,0,0,.15), transparent 60%);
  opacity:.0; transition:opacity .25s ease;
}
.np-item a{ display:block; }
.np-item img{
  width:100%; display:block; object-fit:cover;
  aspect-ratio: var(--np-ratio, 4/3);
  transform: translateZ(0);
  transition: transform .35s ease;
}
.np-item:hover{ transform: translateY(-3px); box-shadow:0 14px 34px rgba(0,0,0,.10); }
.np-item:hover::before{ opacity:.25; }
.np-item:hover img{ transform: scale(1.04); }

/* Lightbox */
.npgl-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.85);
  display:flex; align-items:center; justify-content:center;
  z-index:99999; opacity:0; animation: npgl-in .18s ease forwards;
}
@keyframes npgl-in{ to { opacity:1; } }
.npgl-stage{ max-width:min(92vw, 1280px); max-height:90vh; position:relative }
.npgl-stage img{ max-width:100%; max-height:90vh; display:block; border-radius:14px }
.npgl-close,.npgl-prev,.npgl-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:#fff; color:#111; border:none; border-radius:999px; width:40px; height:40px;
  cursor:pointer; box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.npgl-close{ top:16px; right:16px; transform:none }
.npgl-prev{ left:-56px }
.npgl-next{ right:-56px }
@media (max-width:900px){
  .npgl-prev{ left:8px } .npgl-next{ right:8px }
}
