.elsie-carousel-wrap {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
}
.elsie-carousel-track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 14px;
	padding: 10px 4px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: #9ab0c4 transparent;
}
.elsie-carousel-item {
	flex: 0 0 auto;
	width: min(72vw, 520px);
	scroll-snap-align: center;
	margin: 0;
	cursor: zoom-in;
	text-align: center;
}
.elsie-carousel-item img {
	width: 100%;
	height: auto;
	border-radius: 10px;
	display: block;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
}
.elsie-carousel-item figcaption {
	padding: 8px 4px 0;
	font-size: 0.95rem;
	color: #33475b;
}
.elsie-carousel-arrow {
	position: absolute;
	top: 44%;
	transform: translateY(-50%);
	z-index: 5;
	background: rgba(20, 40, 60, 0.55);
	color: #fff;
	border: none;
	border-radius: 50%;
	width: 44px;
	height: 44px;
	font-size: 22px;
	cursor: pointer;
	line-height: 1;
}
.elsie-carousel-arrow.prev { left: -8px; }
.elsie-carousel-arrow.next { right: -8px; }
.elsie-carousel-arrow:hover { background: rgba(20, 40, 60, 0.8); }

.elsie-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(10, 14, 20, 0.93);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 99999;
	padding: 20px;
}
.elsie-lightbox.open { display: flex; }
.elsie-lightbox-figure { margin: 0; max-width: 92vw; max-height: 88vh; text-align: center; }
.elsie-lightbox-img { max-width: 92vw; max-height: 78vh; object-fit: contain; border-radius: 6px; }
.elsie-lightbox-caption { color: #dfe7ef; margin-top: 12px; font-size: 1.05rem; }
.elsie-lightbox-close {
	position: absolute;
	top: 14px;
	right: 20px;
	background: none;
	border: none;
	color: #fff;
	font-size: 34px;
	cursor: pointer;
	line-height: 1;
}
