.etcc-enabled {
	--etcc-slides-per-view: 4;
	--etcc-slide-gap: 20px;
	--etcc-min-slide-width: 220px;
	--etcc-cursor-color: #0D99FF;
	position: relative;
	min-width: 0;
	overflow: hidden !important;
	box-sizing: border-box;
}

/* The selected Elementor container is the carousel viewport.
 * Do not force its display value here. Elementor controls responsive visibility
 * with classes such as .elementor-hidden-mobile/.elementor-hidden-tablet.
 * Forcing display:block!important would override those Hide on Device settings. */

/* Works with boxed containers (.e-con-inner) and full-width containers. */
.etcc-enabled > .e-con-inner.etcc-wrapper,
.etcc-enabled > .etcc-generated-wrapper.etcc-wrapper,
.etcc-enabled.etcc-editor-direct {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

/* Only the slide's outer width is controlled. Its own row/column layout is untouched. */
.etcc-enabled .etcc-slide {
	box-sizing: border-box !important;
	flex-shrink: 0 !important;
	width: min(
		100%,
		max(
			var(--etcc-min-slide-width),
			calc(
				(100% - (var(--etcc-slides-per-view) - 1) * var(--etcc-slide-gap)) /
				var(--etcc-slides-per-view)
			)
		)
	) !important;
	max-width: none !important;
	min-width: 0 !important;
	height: auto;
	align-self: stretch;
}

.etcc-enabled .etcc-slide > .e-con-inner {
	min-width: 0;
}

.etcc-enabled.etcc-ready {
	touch-action: pan-y;
}

.etcc-enabled.etcc-ready .etcc-wrapper {
	will-change: transform;
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.etcc-enabled.etcc-native {
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x proximity;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.etcc-enabled.etcc-native::-webkit-scrollbar {
	display: none;
}

.etcc-enabled.etcc-editor-direct {
	overflow-x: auto !important;
	overflow-y: visible !important;
	scrollbar-width: thin;
}

.etcc-enabled.etcc-native .etcc-wrapper,
.etcc-enabled.etcc-editor-direct {
	transform: none !important;
	transition: none !important;
	will-change: auto;
}

.etcc-enabled.etcc-native .etcc-slide,
.etcc-enabled.etcc-editor-direct > .etcc-slide {
	margin-right: var(--etcc-slide-gap) !important;
	scroll-snap-align: center;
}

.etcc-enabled.etcc-native .etcc-slide:last-child,
.etcc-enabled.etcc-editor-direct > .etcc-slide:last-child {
	margin-right: 0 !important;
}

.etcc-drag-helper {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 999999;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--etcc-cursor-color, #0D99FF);
	box-shadow: 0 12px 32px rgba(13, 153, 255, 0.28);
	box-shadow: 0 12px 32px color-mix(in srgb, var(--etcc-cursor-color, #0D99FF) 32%, transparent);
	color: #fff;
	font: 500 22px/1 Arial, sans-serif;
	letter-spacing: -4px;
	pointer-events: none;
	opacity: 0;
	transform: translate3d(-50%, -50%, 0) scale(0.75);
	transition: opacity 220ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: left, top, transform, opacity;
}

.etcc-drag-helper::before {
	content: "← →";
	letter-spacing: -5px;
	transform: translateX(-1px);
}

.etcc-drag-helper.is-visible {
	opacity: 1;
	transform: translate3d(-50%, -50%, 0) scale(1);
}

.etcc-drag-helper.is-dragging {
	transform: translate3d(-50%, -50%, 0) scale(0.86);
}

.elementor-editor-active .etcc-drag-helper,
body.elementor-editor-active .etcc-drag-helper {
	display: none !important;
}

@media (hover: none), (pointer: coarse) {
	.etcc-drag-helper {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.etcc-drag-helper {
		display: none !important;
	}
}

/* Hide the browser pointer only while the custom blue drag helper is visible. */
.etcc-enabled.etcc-cursor-active,
.etcc-enabled.etcc-cursor-active .etcc-wrapper,
.etcc-enabled.etcc-cursor-active .etcc-slide {
	cursor: none !important;
}

/* Do not override the cursor/controls of another carousel nested inside an ETCC slide. */
.etcc-enabled.etcc-cursor-active :is(
	.swiper,
	.swiper-container,
	.slick-slider,
	.owl-carousel,
	.elementor-widget-image-carousel,
	.elementor-widget-media-carousel,
	.elementor-widget-loop-carousel,
	.elementor-widget-n-carousel,
	.elementor-widget-carousel
),
.etcc-enabled.etcc-cursor-active :is(
	.swiper,
	.swiper-container,
	.slick-slider,
	.owl-carousel,
	.elementor-widget-image-carousel,
	.elementor-widget-media-carousel,
	.elementor-widget-loop-carousel,
	.elementor-widget-n-carousel,
	.elementor-widget-carousel
) * {
	cursor: revert !important;
}
