/* =========================================================
   Easy Elements Pro — Video Carousel
   ========================================================= */
.eel-vc-carousel {
	position: relative;
}

.eel-media-carousel {
	width: 100%;
}

.eel-vc-item {
	position: relative;
	height: 100%;
	background: #ffffff;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

/* ---- Media ---- */
.eel-vc-media {
	display: block;
	position: relative;
	width: 100%;
	height: 260px;
	overflow: hidden;
	background: #eef0f4;
	text-decoration: none;
}

a.eel-vc-media,
.eel-vc-open {
	cursor: pointer;
}

.eel-vc-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.eel-vc-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.45) 100%);
	pointer-events: none;
}

/* ---- Play / image icon ( visual only; the whole media handles the click ) ---- */
.eel-vc-play,
.eel-vc-plus {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 2px solid #ffffff;
	color: #ffffff;
	border-radius: 50%;
	z-index: 2;
	pointer-events: none;
	transition: transform 0.25s ease, opacity 0.25s ease, background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.eel-vc-play svg,
.eel-vc-plus svg {
	width: 22px;
	height: 22px;
}

.eel-vc-play i,
.eel-vc-plus i {
	font-size: 22px;
	line-height: 1;
}

/* The built-in triangle sits better nudged off centre; a picked icon does not. */
.eel-vc-play > svg {
	margin-left: 2px;
}

.eel-vc-media:hover .eel-vc-play,
.eel-vc-media:hover .eel-vc-plus {
	transform: translate(-50%, -50%) scale(1.08);
}

/* On Hover mode: only the image icon and its own overlay wait for hover; video keeps its play button. */
.eel-vc-icon-on-hover .eel-vc-plus,
.eel-vc-icon-on-hover .eel-vc-overlay-image {
	opacity: 0;
	transition: opacity 0.25s ease;
}

.eel-vc-icon-on-hover .eel-vc-media:hover .eel-vc-plus,
.eel-vc-icon-on-hover .eel-vc-media:hover .eel-vc-overlay-image {
	opacity: 1;
}

/* ---- Skins ---- */
/*
 * Coverflow: the side slides step back so the centered one reads as the current item. The 3D
 * rotation makes them narrower than their slot, which would otherwise expose a sliver of the slide
 * behind them at each edge, so everything past the prev / next slide is hidden.
 */
.eel-vc-skin-coverflow .swiper-initialized .swiper-slide {
	opacity: 0;
	transition: opacity 0.35s ease;
}

.eel-vc-skin-coverflow .swiper-initialized .swiper-slide-prev,
.eel-vc-skin-coverflow .swiper-initialized .swiper-slide-next {
	opacity: 0.55;
}

.eel-vc-skin-coverflow .swiper-initialized .swiper-slide-active {
	opacity: 1;
}

/* Slideshow fades one slide over the next, so the stacked slides must not stay clickable. */
.eel-vc-skin-slideshow .swiper-slide {
	pointer-events: none;
}

.eel-vc-skin-slideshow .swiper-slide-active {
	pointer-events: auto;
}

/* ---- Navigation arrows ---- */
.eel-vc-carousel .swiper-button-prev,
.eel-vc-carousel .swiper-button-next {
	width: 44px;
	height: 44px;
	margin-top: 0;
	transform: translateY(-50%);
	background: rgba(0, 0, 0, 0.55);
	color: #ffffff;
	border-radius: 50%;
	transition: background 0.2s ease, color 0.2s ease;
}

.eel-vc-carousel .swiper-button-prev:after,
.eel-vc-carousel .swiper-button-next:after {
	font-size: 16px;
	font-weight: 700;
}

.eel-vc-carousel .swiper-button-prev {
	left: 8px;
}

.eel-vc-carousel .swiper-button-next {
	right: 8px;
}

/* ---- Pagination ---- */
.eel-vc-carousel .swiper-pagination {
	position: static;
	margin-top: 16px;
}

/* Swiper adds .swiper-pagination-lock ( display: none ) whenever every slide already fits the
   viewport, e.g. 3 items with 3 slides per view. Keep the pagination visible by default. */
.eel-vc-carousel .swiper-pagination.swiper-pagination-lock {
	display: block;
}

.eel-vc-carousel .swiper-pagination-bullet {
	background: #c9ccd5;
	opacity: 1;
	transition: background 0.2s ease;
}

.eel-vc-carousel .swiper-pagination-bullet-active {
	background: #7455ff;
}

/* Relative ( not static ) so the absolutely positioned .swiper-pagination-progressbar-fill is sized
   against the bar itself instead of the whole carousel. */
.eel-vc-carousel .swiper-pagination-progressbar {
	position: relative;
	margin-top: 16px;
	height: 4px;
	background: rgba(0, 0, 0, 0.1);
}

/* =========================================================
   Image lightbox ( self-contained — works without Elementor's lightbox )
   ========================================================= */
/*
 * The overlay stays in the layout and fades in / out instead of toggling display, so opening and
 * closing can be animated. visibility keeps it out of the tab order and away from pointer events
 * while it is closed.
 */
.eel-vc-lightbox {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	background: rgba(0, 0, 0, 0.9);
	z-index: 99999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.eel-vc-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.eel-vc-lightbox-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 92vw;
	max-height: 86vh;
	opacity: 0;
	transform: scale(0.92);
	transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.eel-vc-lightbox.is-open .eel-vc-lightbox-stage {
	opacity: 1;
	transform: scale(1);
}

/* Prev / next swaps the stage content, so each new image or embed fades in on its own. */
.eel-vc-lightbox-stage > * {
	animation: eel-vc-lb-fade 0.3s ease;
}

@keyframes eel-vc-lb-fade {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.eel-vc-lightbox,
	.eel-vc-lightbox-stage {
		transition: none;
	}

	.eel-vc-lightbox-stage > * {
		animation: none;
	}
}

.eel-vc-lightbox-img {
	max-width: 92vw;
	max-height: 86vh;
	object-fit: contain;
	border-radius: 4px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

/* Embedded video keeps a 16:9 frame that fits the viewport. */
.eel-vc-lightbox-stage iframe,
.eel-vc-lightbox-stage video {
	width: min(92vw, 1100px);
	max-height: 86vh;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: 4px;
	background: #000;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.eel-vc-lightbox button {
	position: absolute;
	background: rgba(255, 255, 255, 0.12);
	border: 0;
	color: #ffffff;
	cursor: pointer;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	font-size: 26px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
}

.eel-vc-lightbox button:hover {
	background: rgba(255, 255, 255, 0.28);
}

.eel-vc-lb-close {
	top: 24px;
	right: 24px;
}

.eel-vc-lb-prev {
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.eel-vc-lb-next {
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}
