/* ==========================================================================
   Lux Slider — Responsive & Accessible Slider for FSE
   ========================================================================== */

/* --- Custom Properties (easy override via theme.json or custom CSS) --- */
.lux-slider {
	--slider-height: 80vh;
	--slider-min-height: 400px;
	--slider-transition-speed: 0.6s;
	--slider-transition-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--slider-bar-width: 50px;
	--slider-bar-height: 8px;
	--slider-bar-gap: 10px;
	--slider-bar-color: rgba(255, 255, 255, 0.3);
	--slider-bar-active: #ffffff;
	--slider-bar-radius: 4px;
	--slider-nav-z: 10;
	--slider-gutter: clamp(16px, 4vw, 40px);
}

/* --- Main Wrapper --- */
.lux-slider {
	position: relative;
	width: 100%;
	height: var(--slider-height);
	min-height: var(--slider-min-height);
	overflow: hidden;
}

.lux-slider *,
.lux-slider *::before,
.lux-slider *::after {
	box-sizing: border-box;
}

/* --- Track (holds all slides, moves via transform) --- */
.lux-slider__track {
	display: flex;
	height: 100%;
	transition: transform var(--slider-transition-speed) var(--slider-transition-ease);
	will-change: transform;
}

/* No-transition helper (used during drag/swipe) */
.lux-slider__track--no-transition {
	transition: none !important;
}

/* --- Individual Slide --- */
.lux-slide {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	min-width: 100%;
}

/* Ensure cover blocks inside slides fill properly */
.lux-slide > .wp-block-cover,
.lux-slide.wp-block-cover {
	min-height: 100% !important;
	height: 100%;
}

/* --- Bar Navigation --- */
.lux-slider__dots {
	position: absolute;
	bottom: 50px;
	left: 50%;
	transform: translateX(-50%);
	z-index: var(--slider-nav-z);
	display: flex;
	gap: var(--slider-bar-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.lux-slider__dot {
	width: var(--slider-bar-width);
	height: var(--slider-bar-height);
	border-radius: var(--slider-bar-radius);
	background: var(--slider-bar-color);
	border: none;
	cursor: pointer;
	transition: background 0.3s;
	padding: 0;
}

.lux-slider__dot:hover,
.lux-slider__dot:focus-visible {
	background: rgba(255, 255, 255, 0.6);
}

.lux-slider__dot--active {
	background: var(--slider-bar-active);
}

.lux-slider__dot:focus-visible {
	outline: 2px solid var(--slider-bar-active);
	outline-offset: 2px;
}

/* --- Accessibility: Reduced Motion --- */
@media (prefers-reduced-motion: reduce) {
	.lux-slider__track {
		transition-duration: 0.01ms !important;
	}

	.lux-slider__dot,
	.lux-slider__progress {
		transition-duration: 0.01ms !important;
	}
}

/* --- Responsive --- */
@media (max-width: 781px) {
	.lux-slider {
		--slider-height: 65vh;
	}

	.lux-slider__dots {
		bottom: 30px;
	}

	.lux-slider .lux-slide .wp-block-cover__inner-container {
		gap: 10px;
	}
}

@media (max-width: 480px) {
	.lux-slider {
		--slider-height: 55vh;
		--slider-min-height: 300px;
	}

	.lux-slider .lux-slide .wp-block-cover__inner-container {
		max-width: 100%;
		border-radius: 0;
	}
}
