:root {
	--bg: #0b0c10;
	--card: #111;
	--text: #f7f7fb;
	--muted: #e5e7eb;
	--accent: #00a387;
	/* verde suave */
	--radius: 16px;
	--shadow: 0 18px 40px rgba(0, 0, 0, .25);
}
*,
*::before,
*::after {
	box-sizing: border-box
}

/* ===== Slider ===== */

.slider {
	position: relative;
	max-width: min(1100px, 96vw);
	border-radius: var(--radius);
	overflow: hidden;
	background: #000;
	box-shadow: var(--shadow);
	margin: 2rem 0;
}
.slider__viewport {
	overflow: hidden;
	outline: none;
}
.slider__track {
	display: flex;
	will-change: transform;
	transition: transform .6s ease;
}
.slide {
	position: relative;
	min-width: 100%;
	width: 100vw;
	block-size: clamp(260px, 55vw, 520px);
	display: grid;
	place-items: end start;
	background: #000;
}
.slide img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(1.05) contrast(1.02);
}

/* Gradiente de lectura + caption */

.slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0) 60%);
}
.slide__caption {
	position: relative;
	z-index: 1;
	padding: 2rem;
	max-width: 70vw;
	/* background-color: rgba(0, 0, 0, .5); */
}
.slide__caption h2 {
	margin: 0 0 .25rem 0;
	font-size: clamp(1.25rem, 2.6vw, 2rem);
	letter-spacing: .4px;
	color: #fafafa;
}
.slide__caption p {
	margin: 0;
	color: #fafafa;
	font-size: clamp(.95rem, 1.6vw, 1.05rem);
	opacity: .95;
}

/* Botones */

.slider__btn {
	position: absolute;
	inset-block: 0;
	margin-block: auto;
	height: 40px;
	width: 44px;
	display: grid;
	place-items: center;
	border: none;
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 1.6rem;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease, opacity .2s ease;
	backdrop-filter: blur(6px);
	opacity: .9;
}
.slider__btn:hover {
	background: rgba(255, 255, 255, .2);
	transform: scale(1.05)
}
.slider__btn:active {
	transform: scale(.98)
}
.slider__btn--prev {
	left: .5rem
}
.slider__btn--next {
	right: .5rem
}

/* Dots */

.slider__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: .6rem;
	display: flex;
	justify-content: center;
	gap: .5rem;
	padding: .25rem .5rem;
}
.dot {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .45);
	border: 0;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease;
}
.dot:hover {
	transform: scale(1.15)
}
.dot.is-active {
	background: var(--accent)
}

/* Accesibilidad visual oculta */

.sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Responsivo */

@media (max-width: 680px) {
	.slider__btn {
		height: 36px;
		width: 40px;
		font-size: 1.4rem
	}
}

/* Reduce motion: desactiva auto-animaciones pesadas */

@media (prefers-reduced-motion: reduce) {
	.slider__track {
		transition: none
	}
}
