/* RuPro Gallery — фронтенд */
.rupro-gallery {
  --rupro-cols: 3;
  --rupro-gap: 8px;
  display: grid;
  grid-template-columns: repeat(var(--rupro-cols), minmax(0, 1fr));
  gap: var(--rupro-gap);
  align-items: stretch;
}
.rupro-gallery__item { position: relative; overflow: hidden; border-radius: 12px; background: #f7f7f7; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.rupro-gallery__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease, filter .3s ease; }
.rupro-gallery__link:hover .rupro-gallery__img, .rupro-gallery__link:focus .rupro-gallery__img { transform: scale(1.03); filter: brightness(0.98); }
.rupro-gallery__caption { position: absolute; left: 0; right: 0; bottom: 0; font-size: 12px; line-height: 1.4; color: #fff; background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0)); padding: 10px 12px 8px; max-height: 64%; overflow: hidden; }
.rupro-gallery__notice { padding: 12px 14px; border-radius: 8px; background: #fff3cd; color: #7a5d00; border: 1px solid #ffeeba; }
/* Лайтбокс */
.rupro-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .2s ease; z-index: 999999; padding: 4vw; }
.rupro-lightbox.is-open { opacity: 1; pointer-events: auto; }
.rupro-lightbox__img { max-width: 100%; max-height: 100%; display: block; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.rupro-lightbox__close { position: fixed; top: 16px; right: 16px; width: 42px; height: 42px; border-radius: 50%; border: none; background: rgba(255,255,255,.12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
@media (max-width: 640px) { .rupro-gallery { --rupro-cols: 2; } }
