/* ============ Slider Pro for Elementor ============ */
.sp-slider {
	position: relative;
	--sp-dot-size: 10px;
	--sp-dot-color: rgba(255, 255, 255, .5);
	--sp-dot-active: #fff;
}
.sp-slider .swiper { width: 100%; }
.sp-slide-inner {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.sp-slide-inner::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

/* ---- Heights ---- */
.sp-height-fullscreen .swiper-slide { height: 100vh; }
.sp-height-fullscreen .swiper-slide { height: 100svh; }
.sp-height-custom .swiper-slide { height: var(--sp-custom-h, 600px); }
.sp-height-auto .swiper-slide { height: auto; }
/* Adaptive height: smooth per-slide height change */
.sp-autoheight .swiper-wrapper {
	transition-property: transform, height;
	align-items: flex-start;
}
.sp-equal-height .swiper-wrapper { align-items: stretch; }
.sp-equal-height .swiper-slide { height: auto; display: flex; }
.sp-equal-height .sp-slide-inner { flex: 1; }

/* ---- Images ---- */
.sp-img-set, .sp-img-set img.sp-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.sp-height-auto .sp-img-set { position: relative; inset: auto; height: auto; }
.sp-height-auto .sp-img-set img.sp-img { position: relative; inset: auto; height: auto; }
img.sp-img {
	object-fit: cover;
	object-position: center;
	display: block;
}
/* Default: desktop image only; tablet/mobile hidden unless their breakpoint */
.sp-img-set .sp-img-tablet,
.sp-img-set .sp-img-mobile { display: none !important; }
@media (max-width: 1024px) and (min-width: 768px) {
	.sp-img-set.sp-has-tablet .sp-img-desktop { display: none !important; }
	.sp-img-set.sp-has-tablet .sp-img-tablet { display: block !important; }
}
@media (max-width: 767px) {
	.sp-img-set.sp-has-mobile .sp-img-desktop,
	.sp-img-set.sp-has-mobile .sp-img-tablet { display: none !important; }
	.sp-img-set.sp-has-mobile .sp-img-mobile { display: block !important; }
	.sp-img-set.sp-has-tablet:not(.sp-has-mobile) .sp-img-desktop { display: none !important; }
	.sp-img-set.sp-has-tablet:not(.sp-has-mobile) .sp-img-tablet { display: block !important; }
}

/* ---- Full-slide link ---- */
.sp-slide-link { position: absolute; inset: 0; z-index: 3; }

/* ---- Content overlay ---- */
.sp-content-wrap {
	position: absolute;
	inset: 0;
	display: flex;
	padding: 40px;
	z-index: 2;
}
.sp-content {
	max-width: min(700px, 100%);
	box-sizing: border-box;
	min-width: 0;
	overflow-wrap: break-word;
}
.sp-content-wrap { box-sizing: border-box; max-width: 100%; min-width: 0; }
.sp-desc { overflow-wrap: break-word; }
.sp-subtitle {
	font-size: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 8px;
}
.sp-title { font-size: 42px; margin: 0 0 14px; line-height: 1.2; }
.sp-desc { font-size: 16px; line-height: 1.8; margin-bottom: 22px; }
.sp-btns { display: flex; gap: 12px; flex-wrap: wrap; justify-content: inherit; }
.sp-btn {
	display: inline-block;
	padding: 12px 30px;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	transition: all .3s ease;
}
.sp-btn:hover { transform: translateY(-2px); }

@media (max-width: 767px) {
	.sp-content-wrap { padding: 20px; }
	.sp-title { font-size: 26px; }
	.sp-desc { font-size: 14px; }
}

/* ---- Arrows base ---- */
.sp-slider .sp-arrow {
	box-sizing: border-box;
	flex: none;
	aspect-ratio: 1 / 1;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	position: absolute;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: none;
	cursor: pointer;
	color: #fff;
	background: transparent;
	padding: 0;
	margin: 0;
	line-height: 1;
	transition: opacity .3s ease, background .3s ease, color .3s ease;
}
.sp-slider .sp-arrow-prev { left: 16px; right: auto; }
.sp-slider .sp-arrow-next { right: 16px; left: auto; }
.sp-arrow-prev .sp-arrow-flip,
.sp-arrow-prev svg, .sp-arrow-prev i { transform: scaleX(-1); display: inline-flex; }
.sp-arrow svg { fill: currentColor; }
.sp-arrow.swiper-button-disabled { opacity: .35; cursor: default; }

/* Arrow designs */
.sp-arrows-minimal .sp-arrow { background: transparent; }
.sp-arrows-circle .sp-arrow { background: rgba(0,0,0,.45); border-radius: 50%; }
.sp-arrows-circle .sp-arrow:hover { background: rgba(0,0,0,.75); }
.sp-arrows-square .sp-arrow { background: rgba(0,0,0,.45); border-radius: 0; }
.sp-arrows-square .sp-arrow:hover { background: rgba(0,0,0,.75); }
.sp-arrows-rounded .sp-arrow { background: rgba(0,0,0,.45); border-radius: 12px; }
.sp-arrows-rounded .sp-arrow:hover { background: rgba(0,0,0,.75); }
.sp-arrows-outline .sp-arrow { background: transparent; border: 2px solid currentColor; border-radius: 50%; }
.sp-arrows-outline .sp-arrow:hover { background: rgba(255,255,255,.15); }
.sp-arrows-blur .sp-arrow {
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.25);
}
.sp-arrows-blur .sp-arrow:hover { background: rgba(255,255,255,.3); }

/* Hide arrows on mobile */
@media (max-width: 767px) {
	.sp-hide-arrows-mobile .sp-arrow { display: none; }
}

/* Arrows on hover only */
.sp-arrows-on-hover .sp-arrow { opacity: 0; visibility: hidden; }
.sp-arrows-on-hover:hover .sp-arrow { opacity: 1; visibility: visible; }

/* ---- Dots base ---- */
.sp-slider .swiper-pagination-bullet {
	width: var(--sp-dot-size);
	height: var(--sp-dot-size);
	background: var(--sp-dot-color);
	opacity: 1;
	transition: all .3s ease;
}
.sp-slider .swiper-pagination-bullet-active { background: var(--sp-dot-active); }

/* Dot designs */
.sp-dots-dashes .swiper-pagination-bullet {
	width: calc(var(--sp-dot-size) * 3);
	height: calc(var(--sp-dot-size) / 2.5);
	border-radius: 99px;
}
.sp-dots-dashes .swiper-pagination-bullet-active { width: calc(var(--sp-dot-size) * 4.5); }
.sp-dots-squares .swiper-pagination-bullet { border-radius: 0; }
.sp-dots-squares .swiper-pagination-bullet-active { transform: rotate(45deg); }
.sp-dots-rings .swiper-pagination-bullet {
	background: transparent;
	border: 2px solid var(--sp-dot-color);
}
.sp-dots-rings .swiper-pagination-bullet-active {
	border-color: var(--sp-dot-active);
	background: var(--sp-dot-active);
}
.sp-dots-numbers .swiper-pagination-bullet {
	width: calc(var(--sp-dot-size) * 2.6);
	height: calc(var(--sp-dot-size) * 2.6);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: calc(var(--sp-dot-size) * 1.1);
	color: #fff;
	background: rgba(0,0,0,.4);
}
.sp-dots-numbers .swiper-pagination-bullet-active {
	background: var(--sp-dot-active);
	color: #000;
}
.sp-slider .swiper-pagination-progressbar {
	background: var(--sp-dot-color);
	height: 4px;
	top: auto;
	bottom: 0;
}
.sp-slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: var(--sp-dot-active);
}

/* Dots outside */
.sp-dots-pos-outside .swiper { padding-bottom: 50px; }
.sp-dots-pos-outside .swiper-pagination-bullets { bottom: 0 !important; }

/* ---- Lazy preloader z-index ---- */
.sp-slide-inner .swiper-lazy-preloader { z-index: 0; }

/* RTL flip for arrows in rtl dir */
.sp-slider .swiper[dir="rtl"] ~ .sp-arrow-prev svg,
.sp-slider .swiper[dir="rtl"] ~ .sp-arrow-prev i { transform: scaleX(1); }

/* ---- Per-slide flow layout (grid): height = max(image aspect, content) ---- */
.sp-slide-inner.sp-flow { display: grid; height: auto; min-height: 100%; }
.sp-slide-inner.sp-flow .sp-content-wrap {
	grid-area: 1 / 1;
	position: relative;
	inset: auto;
	width: 100%;
	z-index: 2;
}
.sp-slide-inner.sp-flow .sp-img-set,
.sp-height-auto .sp-slide-inner.sp-flow .sp-img-set {
	grid-area: 1 / 1;
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	min-height: 0;
}
/* in auto-height mode the image aspect ratio sets the minimum slide height */
.sp-height-auto .sp-slide-inner.sp-flow .sp-img-set { aspect-ratio: var(--sp-ratio, 16 / 9); }
@media (max-width: 1024px) and (min-width: 768px) {
	.sp-height-auto .sp-slide-inner.sp-flow .sp-img-set.sp-has-tablet { aspect-ratio: var(--sp-ratio-t, var(--sp-ratio, 16 / 9)); }
}
@media (max-width: 767px) {
	.sp-height-auto .sp-slide-inner.sp-flow .sp-img-set.sp-has-mobile { aspect-ratio: var(--sp-ratio-m, var(--sp-ratio, 16 / 9)); }
}
.sp-slide-inner.sp-flow .sp-img-set img.sp-img,
.sp-height-auto .sp-slide-inner.sp-flow .sp-img-set img.sp-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---- Per-slide background blur ---- */
.sp-slider { --sp-bg-blur: 5px; --sp-glass-blur: 10px; }
.sp-slide-inner.sp-bgblur-always img.sp-img {
	filter: blur(var(--sp-bg-blur));
	transform: scale(1.08);
}
@media (max-width: 767px) {
	.sp-slide-inner.sp-bgblur-mobile img.sp-img {
		filter: blur(var(--sp-bg-blur));
		transform: scale(1.08);
	}
}

/* ---- Per-slide glass text panel ---- */
@media (max-width: 767px) {
	.sp-slide-inner.sp-glass-mobile .sp-content {
		background: rgba(0, 0, 0, .25);
		backdrop-filter: blur(var(--sp-glass-blur));
		-webkit-backdrop-filter: blur(var(--sp-glass-blur));
		border-radius: 12px;
		padding: 24px;
	}
}
.sp-slide-inner.sp-glass-on .sp-content {
	background: rgba(0, 0, 0, .25);
	backdrop-filter: blur(var(--sp-glass-blur));
	-webkit-backdrop-filter: blur(var(--sp-glass-blur));
	border-radius: 12px;
	padding: 24px;
}

/* ==== Per-device height modes (tablet/mobile overrides; placed last to win cascade) ==== */
@media (max-width: 1024px) and (min-width: 768px) {
	.sp-h-t-fullscreen .swiper-slide { height: 100svh; }
	.sp-h-t-custom .swiper-slide { height: var(--sp-custom-h, 600px); }
	.sp-h-t-auto .swiper-slide { height: auto; }
	.sp-h-t-fullscreen .sp-slide-inner:not(.sp-flow) .sp-img-set,
	.sp-h-t-custom .sp-slide-inner:not(.sp-flow) .sp-img-set { position: absolute; inset: 0; height: 100%; }
	.sp-h-t-fullscreen .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img,
	.sp-h-t-custom .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img { position: absolute; inset: 0; height: 100%; }
	.sp-h-t-auto .sp-slide-inner:not(.sp-flow) .sp-img-set { position: relative; inset: auto; height: auto; }
	.sp-h-t-auto .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img { position: relative; inset: auto; height: auto; }
	.sp-h-t-auto .sp-slide-inner.sp-flow .sp-img-set {
		position: relative; inset: auto; height: auto;
		aspect-ratio: var(--sp-ratio-t, var(--sp-ratio, 16 / 9));
	}
	.sp-h-t-auto .sp-slide-inner.sp-flow .sp-img-set img.sp-img {
		position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
	}
}
@media (max-width: 767px) {
	.sp-h-m-fullscreen .swiper-slide { height: 100svh; }
	.sp-h-m-custom .swiper-slide { height: var(--sp-custom-h, 600px); }
	.sp-h-m-auto .swiper-slide { height: auto; }
	.sp-h-m-fullscreen .sp-slide-inner:not(.sp-flow) .sp-img-set,
	.sp-h-m-custom .sp-slide-inner:not(.sp-flow) .sp-img-set { position: absolute; inset: 0; height: 100%; }
	.sp-h-m-fullscreen .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img,
	.sp-h-m-custom .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img { position: absolute; inset: 0; height: 100%; }
	.sp-h-m-auto .sp-slide-inner:not(.sp-flow) .sp-img-set { position: relative; inset: auto; height: auto; }
	.sp-h-m-auto .sp-slide-inner:not(.sp-flow) .sp-img-set img.sp-img { position: relative; inset: auto; height: auto; }
	.sp-h-m-auto .sp-slide-inner.sp-flow .sp-img-set {
		position: relative; inset: auto; height: auto;
		aspect-ratio: var(--sp-ratio-m, var(--sp-ratio, 16 / 9));
	}
	.sp-h-m-auto .sp-slide-inner.sp-flow .sp-img-set img.sp-img {
		position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
	}
}

/* ==== Pre-init first frame: show only first slide instantly, no layout jump ==== */
.sp-slider:not(.sp-initialized) .swiper-wrapper { display: block; height: auto !important; }
.sp-slider:not(.sp-initialized) .swiper-slide { display: none; }
.sp-slider:not(.sp-initialized) .swiper-slide:first-child { display: block; width: 100% !important; }
.sp-slider:not(.sp-initialized) .swiper-pagination,
.sp-slider:not(.sp-initialized) .sp-arrow { opacity: 0; }
