/* ================================================================
   MIOS Slider
   Cada hijo directo de [data-mios-slider] es un slide.
   Si el slider mide menos de 600px de ancho se usa --mios-per-view-mobile.
   Los selectores empiezan con .mios-slider para ganarle a clases propias
   agregadas al bloque (p. ej. .logo-home-grid, que define una grilla).
   ================================================================ */

.mios-slider {
	position: relative;
}

.mios-slider > [data-mios-slider] {
	--_gap: var(--mios-gap, 32px);
	container: mios-slider / inline-size;
	display: flex;
	gap: var(--_gap);
	overflow: hidden;
	scrollbar-width: none;
}

[data-mios-slider]::-webkit-scrollbar {
	display: none;
}

/* Slides: ancho = (ancho del slider - gaps) / visibles.
   Si hay menos slides que visibles, se estiran hasta llenar el ancho. */
.mios-slider > [data-mios-slider] > :not(.mios-slider__belt),
.mios-slider .mios-slider__belt > * {
	--_pv: var(--mios-per-view, 4);
	flex: 1 0 calc((100cqi - (var(--_pv) - 1) * var(--_gap)) / var(--_pv));
	box-sizing: border-box;
	min-width: 0;
	margin: 0;
	scroll-snap-align: start;
}

/* Logos (slides que son imagen o link) centrados. Los demás slides conservan su propio layout.
   :where() no suma especificidad: cualquier estilo propio del slide le gana. */
:where(.mios-slider > [data-mios-slider] > :is(figure, a), .mios-slider__belt > *) {
	display: flex;
	align-items: center;
	justify-content: center;
}

@container mios-slider (max-width: 600px) {
	.mios-slider > [data-mios-slider] > :not(.mios-slider__belt),
	.mios-slider .mios-slider__belt > * {
		--_pv: var(--mios-per-view-mobile, 2);
	}
}

[data-mios-slider] img {
	max-width: 100%;
	height: auto;
}

/* ---------- Marquesina ---------- */

.mios-slider__belt {
	display: flex;
	align-items: center;
	gap: var(--_gap);
	flex: none;
	width: max-content;
	animation: mios-slider-marquee var(--mios-duration, 30s) linear infinite;
	will-change: transform;
}

@keyframes mios-slider-marquee {
	to {
		transform: translateX(calc(-1 * var(--mios-shift, 50%)));
	}
}

[data-mios-slider="marquesina"]:not([data-mios-pause="false"]):hover .mios-slider__belt,
[data-mios-slider="marquesina"]:focus-within .mios-slider__belt {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.mios-slider__belt {
		animation: none;
	}

	.mios-slider__clone {
		display: none !important;
	}

	.mios-slider > [data-mios-slider="marquesina"] {
		overflow-x: auto;
	}
}

/* ---------- Flechas ---------- */

.mios-slider > [data-mios-slider="flechas"] {
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	/* Margen para que no se recorten las sombras de los slides */
	padding: 4px 8px 14px;
	scroll-padding-inline: 8px;
}

/* Lugar para las flechas a los costados, reservado desde el CSS para que los logos no se corran al cargar el JS */
.mios-slider:has(> [data-mios-slider="flechas"]) {
	padding-inline: 48px;
}

.mios-slider .mios-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	box-shadow: none;
	color: var(--mos-blue-links, #7676FF);
	cursor: pointer;
	transform: translateY(-50%);
	transition: opacity 0.2s;
}

.mios-slider .mios-slider__arrow svg {
	width: 28px;
	height: 28px;
	stroke-width: 3.5;
}

.mios-slider .mios-slider__arrow:hover,
.mios-slider .mios-slider__arrow:focus {
	background: none;
	color: var(--mos-blue-links, #7676FF);
}

.mios-slider .mios-slider__arrow:hover {
	opacity: 0.7;
}

.mios-slider .mios-slider__arrow:focus-visible {
	outline: 2px solid var(--mos-blue-links, #7676FF);
	outline-offset: 2px;
}

.mios-slider__arrow--prev { left: 0; }
.mios-slider__arrow--next { right: 0; }

/* Mobile: flechas superpuestas sobre los bordes, para que los slides usen todo el ancho */
@media (max-width: 768px) {
	.mios-slider:has(> [data-mios-slider="flechas"]) {
		padding-inline: 0;
	}

	.mios-slider .mios-slider__arrow,
	.mios-slider .mios-slider__arrow:hover,
	.mios-slider .mios-slider__arrow:focus {
		background: rgba(255, 255, 255, 0.85);
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
	}

	.mios-slider__arrow--prev { left: 4px; }
	.mios-slider__arrow--next { right: 4px; }
}

/* Si todos los slides entran, no hay flechas */
.mios-slider.is-static {
	padding-inline: 0;
}

.mios-slider.is-static > .mios-slider__arrow {
	display: none;
}
