/**
 * Cases archive hero carousel — uniform full-viewport slide height.
 *
 * Elementor nested carousel uses --e-n-carousel-slide-height: auto by default,
 * so slides size to content and background images look uneven when switching.
 */

.elementor-location-archive .e-n-carousel {
	--e-n-carousel-slide-height: 100vh;
	--e-n-carousel-slide-container-height: 100%;
	height: 100vh;
}

.elementor-location-archive .e-n-carousel.swiper,
.elementor-location-archive .e-n-carousel .swiper-wrapper,
.elementor-location-archive .e-n-carousel .swiper-slide {
	height: 100vh !important;
}

.elementor-location-archive .e-n-carousel .swiper-slide > .e-con {
	min-height: 100vh !important;
	height: 100vh !important;
	width: 100%;
}

.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child {
	--min-height: 100vh !important;
	min-height: 100vh !important;
	height: 100vh !important;
}

.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child:not(.elementor-motion-effects-element-type-background),
.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-size: cover !important;
	background-position: center center !important;
}

/* Raise hero text ~10% of viewport — transform only (do not override Elementor padding). */
.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child > .e-con-inner {
	transform: translateY(-10vh);
}

/* Pagination: fixed from bottom and visually centered. */
.elementor-location-archive .elementor-widget-n-carousel {
	position: relative;
	--cactus-carousel-dots-bottom: 120px;
	--e-n-carousel-dots-horizontal-position: 50% !important;
	--e-n-carousel-dots-horizontal-transform: -50% !important;
	--e-n-carousel-dots-horizontal-offset: 0px !important;
	--e-n-carousel-dots-vertical-position: 100% !important;
	--e-n-carousel-dots-vertical-transform: -100% !important;
	--e-n-carousel-dots-vertical-offset: -120px !important;
}

.elementor-location-archive .elementor-widget-n-carousel .swiper-pagination,
.elementor-location-archive .elementor-widget-n-carousel .swiper-pagination-bullets {
	position: absolute !important;
	top: auto !important;
	bottom: var(--cactus-carousel-dots-bottom) !important;
	inset-inline-start: 50% !important;
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
	z-index: 5;
	width: auto !important;
	pointer-events: auto;
	margin: 0 !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

.elementor-location-archive .elementor-widget-n-carousel .swiper-pagination.swiper-pagination-bullets.swiper-pagination-horizontal,
.elementor-location-archive .elementor-widget-n-carousel .e-n-carousel ~ .swiper-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
	position: absolute !important;
	top: auto !important;
	bottom: var(--cactus-carousel-dots-bottom) !important;
	left: 50% !important;
	right: auto !important;
	width: auto !important;
	transform: translateX(-50%) !important;
	margin: 0 !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

.elementor-location-archive .elementor-widget-n-carousel .swiper-pagination-bullet {
	margin: 0 4px !important;
}

@media (max-width: 1024px) {
	.elementor-location-archive .elementor-widget-n-carousel {
		--cactus-carousel-grid-inset: 16px;
		--cactus-carousel-dots-bottom: 96px;
		--e-n-carousel-dots-vertical-offset: -96px !important;
	}
}

@media (max-width: 767px) {
	.elementor-location-archive .elementor-widget-n-carousel {
		--cactus-carousel-dots-bottom: 72px;
		--e-n-carousel-dots-vertical-offset: -72px !important;
	}
}

@supports (height: 100dvh) {
	.elementor-location-archive .e-n-carousel {
		--e-n-carousel-slide-height: 100dvh;
		height: 100dvh;
	}

	.elementor-location-archive .e-n-carousel.swiper,
	.elementor-location-archive .e-n-carousel .swiper-wrapper,
	.elementor-location-archive .e-n-carousel .swiper-slide,
	.elementor-location-archive .e-n-carousel .swiper-slide > .e-con,
	.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child {
		height: 100dvh !important;
		min-height: 100dvh !important;
		--min-height: 100dvh !important;
	}

	.elementor-location-archive .e-n-carousel .swiper-slide .e-con-boxed.e-con.e-child > .e-con-inner {
		transform: translateY(-10dvh);
	}
}
