.saniport-galeria { background: var(--sp-gray-light); }

.saniport-galeria-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 160px;
	gap: 12px;
}
.saniport-galeria-item {
	position: relative;
	border-radius: var(--sp-radius-sm);
	overflow: hidden;
	display: block;
}
.saniport-galeria-item.is-large { grid-row: span 2; grid-column: span 2; }
.saniport-galeria-item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--sp-transition); }
.saniport-galeria-item:hover img { transform: scale(1.06); }
.saniport-galeria-caption {
	position: absolute; left: 10px; bottom: 8px; color: var(--sp-white);
	font-weight: 700; font-size: 0.85rem; text-shadow: 0 2px 6px rgba(0,0,0,0.6);
}

/* Masonry archive */
.saniport-gallery-filters { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 30px; }
.saniport-filter-btn {
	padding: 8px 18px; border-radius: 999px; border: 2px solid var(--sp-gray-light);
	background: var(--sp-white); font-weight: 600; cursor: pointer; transition: var(--sp-transition);
}
.saniport-filter-btn.is-active, .saniport-filter-btn:hover { border-color: var(--sp-blue); color: var(--sp-blue); }

.saniport-masonry {
	column-count: 3;
	column-gap: 16px;
}
.saniport-masonry-item {
	display: block;
	break-inside: avoid;
	margin-bottom: 16px;
	position: relative;
	border-radius: var(--sp-radius-sm);
	overflow: hidden;
	box-shadow: var(--sp-shadow);
	transition: transform var(--sp-transition);
}
.saniport-masonry-item:hover { transform: translateY(-4px); }
.saniport-masonry-item.is-hidden { display: none; }
.saniport-masonry-caption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 14px;
	background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,20,50,0.8));
	color: var(--sp-white); display: flex; flex-direction: column;
}
.saniport-masonry-caption small { color: rgba(255,255,255,0.8); }

/* Lightbox */
.saniport-lightbox-overlay {
	position: fixed; inset: 0; background: rgba(5,10,25,0.92);
	display: flex; align-items: center; justify-content: center;
	z-index: 9999; padding: 20px;
}
.saniport-lightbox-overlay img { max-width: 90vw; max-height: 85vh; border-radius: 8px; }
.saniport-lightbox-close, .saniport-lightbox-prev, .saniport-lightbox-next {
	position: absolute; background: rgba(255,255,255,0.15); color: var(--sp-white);
	border: none; border-radius: 50%; width: 44px; height: 44px; cursor: pointer; font-size: 1.2rem;
}
.saniport-lightbox-close { top: 20px; right: 20px; }
.saniport-lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.saniport-lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }

@media (max-width: 991px) {
	.saniport-galeria-grid { grid-template-columns: repeat(2, 1fr); }
	.saniport-masonry { column-count: 2; }
}
@media (max-width: 575px) {
	.saniport-galeria-grid { grid-template-columns: 1fr; }
	.saniport-galeria-item.is-large { grid-column: span 1; }
	.saniport-masonry { column-count: 1; }
}
