.llcca-image-carousel {
	--llcca-accent: #fff;
	--llcca-primary: var(--e-global-color-primary, #fff);
	--llcca-frame-inset: clamp(12px, 2.2vw, 18px);
	--llcca-corner-size: clamp(38px, 7vw, 58px);
	--llcca-progress-height: 2px;
	--llcca-surface-radius: 0px;
	--llcca-progress-ratio: 0;
	--llcca-transition-duration: 680ms;
}

.llcca-image-carousel .elementor-image-carousel-wrapper {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--llcca-surface-radius);
	background:
		linear-gradient(180deg, rgba(3, 6, 10, 0.08), rgba(3, 6, 10, 0.28)),
		#05070a;
}

.llcca-image-carousel .elementor-image-carousel-wrapper::before {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid var(--llcca-primary);
	border-radius: inherit;
	opacity: 0.08;
	pointer-events: none;
	z-index: 4;
}

.llcca-image-carousel .elementor-image-carousel,
.llcca-image-carousel .swiper-slide,
.llcca-image-carousel .swiper-slide-inner,
.llcca-image-carousel .swiper-slide-image {
	backface-visibility: hidden;
}

.llcca-image-carousel .elementor-image-carousel,
.llcca-image-carousel .swiper-slide,
.llcca-image-carousel .swiper-slide-inner {
	transform: translate3d(0, 0, 0);
}

.llcca-image-carousel .swiper-slide {
	opacity: var(--llcca-slide-opacity, 1);
	transition: opacity var(--llcca-transition-duration) cubic-bezier(0.22, 1, 0.36, 1);
}

.llcca-image-carousel .swiper-slide-inner {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: inherit;
	transform: translate3d(var(--llcca-frame-shift-x, 0px), var(--llcca-frame-shift-y, 0px), 0);
	transition:
		transform var(--llcca-transition-duration) cubic-bezier(0.22, 1, 0.36, 1),
		opacity var(--llcca-transition-duration) cubic-bezier(0.22, 1, 0.36, 1);
}

.llcca-image-carousel .swiper-slide-inner::before,
.llcca-image-carousel .swiper-slide-inner::after {
	content: none;
}

.llcca-image-carousel .swiper-slide-image {
	display: block;
	width: 100%;
	height: auto;
	transform: translate3d(var(--llcca-image-shift-x, 0px), var(--llcca-image-shift-y, 0px), 0) scale(var(--llcca-image-scale, 1));
	transform-origin: center center;
	transition: transform var(--llcca-transition-duration) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.llcca-image-carousel.llcca-transition--none .swiper-slide,
.llcca-image-carousel.llcca-transition--none .swiper-slide-inner,
.llcca-image-carousel.llcca-transition--none .swiper-slide-image,
.llcca-image-carousel.llcca-transition--none .swiper-slide-inner::after,
.llcca-image-carousel.llcca-transition--none .swiper-slide-inner::before {
	transition-duration: 0ms;
}

.llcca-image-carousel .elementor-swiper-button,
.llcca-image-carousel .swiper-pagination {
	color: var(--llcca-primary);
	z-index: 8;
}

.llcca-image-carousel .elementor-swiper-button svg {
	fill: currentColor;
}

.llcca-image-carousel .elementor-swiper-button:hover,
.llcca-image-carousel .elementor-swiper-button:focus-visible {
	color: var(--llcca-primary);
}

.llcca-image-carousel .swiper-pagination-bullet {
	background: var(--llcca-primary) !important;
	opacity: 0.34 !important;
}

.llcca-image-carousel .swiper-pagination-bullet-active {
	background: var(--llcca-primary) !important;
	opacity: 1 !important;
}

.llcca-image-carousel[data-llcca-progress="yes"] .swiper-pagination {
	bottom: calc(var(--llcca-frame-inset) + 18px);
}

.llcca-image-carousel .llcca-corner {
	position: absolute;
	top: var(--llcca-frame-inset);
	width: var(--llcca-corner-size);
	height: calc(var(--llcca-corner-size) * 0.76);
	border-top: 1px solid var(--llcca-primary);
	opacity: 0.76;
	pointer-events: none;
	z-index: 7;
}

.llcca-image-carousel .llcca-corner--left {
	left: var(--llcca-frame-inset);
	border-left: 1px solid var(--llcca-primary);
}

.llcca-image-carousel .llcca-corner--right {
	right: var(--llcca-frame-inset);
	border-right: 1px solid var(--llcca-primary);
}

.llcca-image-carousel .llcca-progress {
	position: absolute;
	left: var(--llcca-frame-inset);
	right: var(--llcca-frame-inset);
	bottom: var(--llcca-frame-inset);
	height: max(10px, calc(var(--llcca-progress-height) * 5));
	color: var(--llcca-accent);
	pointer-events: none;
	z-index: 7;
}

.llcca-image-carousel .llcca-progress::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--llcca-progress-height);
	background: currentColor;
	opacity: 0.18;
	border-radius: 999px;
}

.llcca-image-carousel .llcca-progress__bar {
	position: absolute;
	left: 0;
	bottom: 0;
	height: var(--llcca-progress-height);
	width: calc(var(--llcca-progress-ratio) * 100%);
	background: currentColor;
	border-radius: 999px;
	transform-origin: left center;
}

@media (max-width: 1024px) {
	.llcca-image-carousel {
		--llcca-frame-inset: clamp(12px, 2.5vw, 16px);
		--llcca-corner-size: clamp(34px, 7vw, 48px);
	}
}

@media (max-width: 767px) {
	.llcca-image-carousel {
		--llcca-frame-inset: clamp(10px, 3vw, 14px);
		--llcca-corner-size: clamp(28px, 9vw, 40px);
	}

	.llcca-image-carousel[data-llcca-progress="yes"] .swiper-pagination {
		bottom: calc(var(--llcca-frame-inset) + 14px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.llcca-image-carousel .swiper-slide,
	.llcca-image-carousel .swiper-slide-inner,
	.llcca-image-carousel .swiper-slide-image,
	.llcca-image-carousel .swiper-slide-inner::after,
	.llcca-image-carousel .swiper-slide-inner::before {
		transition-duration: 0ms;
	}
}
