/* Stayly Gallery — Mosaic + Lightbox */

.stayly-gallery { position: relative; margin: 0 0 24px; }
.stayly-gallery__grid {
	display: grid;
	gap: 8px;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}
.stayly-gallery__grid--single { grid-template-columns: 1fr; }
.stayly-gallery__grid--pair { grid-template-columns: 1fr 1fr; }
.stayly-gallery__grid--mosaic-3 {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
}
.stayly-gallery__grid--mosaic-3 .stayly-gallery__tile:first-child {
	grid-row: 1 / span 2;
}
.stayly-gallery__grid--mosaic-5 {
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
}
.stayly-gallery__grid--mosaic-5 .stayly-gallery__tile:first-child {
	grid-row: 1 / span 2;
}

.stayly-gallery__tile {
	position: relative;
	padding: 0; border: 0; background: #eef1f4;
	overflow: hidden; cursor: pointer;
	width: 100%; height: 100%;
	transition: filter .18s ease;
}
.stayly-gallery__tile:hover { filter: brightness(.94); }
.stayly-gallery__tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.stayly-gallery__tile:focus-visible { outline: 3px solid var(--stayly-brand, #0f766e); outline-offset: -3px; }

.stayly-gallery__more {
	position: absolute; inset: 0;
	display: grid; place-items: center;
	background: rgba(17, 24, 39, .55);
	color: #fff; font-weight: 700; font-size: 18px;
	letter-spacing: .02em;
}

.stayly-gallery__view-all {
	position: absolute; bottom: 14px; right: 14px;
	background: #fff; color: #111827;
	border: 1px solid rgba(17, 24, 39, .1);
	padding: 8px 14px; border-radius: 999px;
	font: 600 13px inherit; cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
	transition: transform .15s ease, background .15s ease;
}
.stayly-gallery__view-all:hover { background: #f9fafb; transform: translateY(-1px); }

/* Card badge (grid pages) */
.stayly-card__photo-count {
	position: absolute; bottom: 10px; right: 10px;
	background: rgba(17, 24, 39, .75); color: #fff;
	padding: 3px 8px; border-radius: 999px;
	font-size: 11px; font-weight: 600;
}

/* Mobile — stack cleanly */
@media (max-width: 640px) {
	.stayly-gallery__grid { aspect-ratio: 4 / 3; }
	.stayly-gallery__grid--mosaic-5 { grid-template-columns: 1fr 1fr; }
	.stayly-gallery__grid--mosaic-5 .stayly-gallery__tile:first-child { grid-column: 1 / span 2; grid-row: auto; }
	.stayly-gallery__grid--mosaic-3 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
	.stayly-gallery__grid--mosaic-3 .stayly-gallery__tile:first-child { grid-column: 1 / span 2; grid-row: auto; }
}

/* Lightbox */
.stayly-lightbox {
	position: fixed; inset: 0;
	background: rgba(0, 0, 0, .92);
	z-index: 99999;
	display: none;
	touch-action: none;
	color: #fff;
}
.stayly-lightbox.is-open { display: block; }
.stayly-lightbox__stage {
	position: absolute; inset: 0;
	display: grid; place-items: center;
	padding: 40px 60px;
}
.stayly-lightbox__image {
	max-width: 100%; max-height: 100%;
	object-fit: contain;
	user-select: none; -webkit-user-drag: none;
	transition: opacity .2s ease;
}
.stayly-lightbox__close,
.stayly-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .3);
	background: rgba(0, 0, 0, .5); color: #fff;
	font-size: 22px; line-height: 1; cursor: pointer;
	display: grid; place-items: center;
	transition: background .15s ease;
}
.stayly-lightbox__nav:hover,
.stayly-lightbox__close:hover { background: rgba(255, 255, 255, .18); }
.stayly-lightbox__nav[disabled] { opacity: .35; cursor: not-allowed; }
.stayly-lightbox__prev { left: 16px; }
.stayly-lightbox__next { right: 16px; }
.stayly-lightbox__close {
	top: 16px; right: 16px; transform: none;
}
.stayly-lightbox__counter {
	position: absolute; top: 20px; left: 20px;
	background: rgba(0, 0, 0, .55);
	padding: 6px 12px; border-radius: 999px;
	font-size: 13px; font-weight: 600;
	letter-spacing: .02em;
}

@media (max-width: 640px) {
	.stayly-lightbox__stage { padding: 60px 16px; }
	.stayly-lightbox__prev { left: 6px; }
	.stayly-lightbox__next { right: 6px; }
	.stayly-lightbox__nav,
	.stayly-lightbox__close { width: 38px; height: 38px; font-size: 18px; }
}
