.lightbox {
  position: fixed; inset: 0; background: rgba(0, 0, 0, 0.92);
  display: none; align-items: center; justify-content: center;
  z-index: 9999;
}
.lightbox.open { display: flex; }
.lightbox .lb-img {
  max-width: 90vw; max-height: 85vh; object-fit: contain;
  user-select: none; -webkit-user-drag: none;
}
.lightbox button {
  position: absolute; background: rgba(255, 255, 255, 0.1);
  color: #fff; border: none; cursor: pointer;
  font-size: 36px; line-height: 1; padding: 12px 18px;
  border-radius: 4px; transition: background 0.2s;
}
.lightbox button:hover { background: rgba(255, 255, 255, 0.25); }
.lightbox .lb-close { top: 20px; right: 20px; font-size: 32px; }
.lightbox .lb-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-next { right: 20px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-counter {
  position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
  color: #fff; font-family: sans-serif; font-size: 14px; opacity: 0.8;
}

.gallery-grid {
  display: grid; gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 780px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); } }
.gallery-grid a {
  display: block; aspect-ratio: 1 / 1; overflow: hidden;
  border-radius: 4px; cursor: zoom-in;
}
.gallery-grid a img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.3s;
}
.gallery-grid a:hover img { transform: scale(1.05); }
