/* SpeedFest Patrocinadores – carrusel público */
.sfb-carousel {
	position: relative;
	width: 100%;
	margin: 0 0 20px;
	line-height: 0;
	white-space: normal;
	overflow: hidden; /* nunca muestra barra de desplazamiento */
}

/* Si el shortcode quedó dentro de un bloque de código (<pre> / <code>) al
   pegarlo en un Text Block, se anula el fondo gris, el relleno y la barra
   de desplazamiento que el tema le da a esos bloques. */
pre.sfb-host,
code.sfb-host,
pre:has(> .sfb-carousel),
code:has(> .sfb-carousel) {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible !important;
	white-space: normal !important;
	font: inherit !important;
	line-height: 0 !important;
}
.sfb-track {
	position: relative;
	width: 100%;
	aspect-ratio: var(--sfb-ratio, 8 / 1);
	overflow: hidden;
	background: transparent;
}
.sfb-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .6s ease, visibility 0s linear .6s;
}
.sfb-slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity .6s ease, visibility 0s;
	z-index: 1;
}
.sfb-slide a,
.sfb-slide picture {
	display: block;
	width: 100%;
	height: 100%;
}
.sfb-slide img.sfb-img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border: 0;
	margin: 0;
	padding: 0;
	box-shadow: none;
}
.sfb-slide a:focus-visible {
	outline: 3px solid #c8102e;
	outline-offset: -3px;
}

/* Puntos de navegación */
.sfb-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding-top: 8px;
	line-height: 1;
}
.sfb-dot {
	width: 9px;
	height: 9px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 50%;
	background: #c9c9c9;
	cursor: pointer;
	transition: background .2s, transform .2s;
}
.sfb-dot:hover { background: #8c8c8c; }
.sfb-dot.is-active {
	background: #c8102e;
	transform: scale(1.2);
}
.sfb-dot:focus-visible {
	outline: 2px solid #c8102e;
	outline-offset: 2px;
}

/* Celular: la zona principal usa la imagen para celular (más alta) si existe */
@media (max-width: 767px) {
	.sfb-has-mobile .sfb-track {
		aspect-ratio: var(--sfb-mratio, var(--sfb-ratio));
	}
	/* Banners sin versión para celular: se muestran completos, sin recorte */
	.sfb-has-mobile .sfb-slide.sfb-no-mobile img.sfb-img {
		object-fit: contain;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sfb-slide,
	.sfb-slide.is-active { transition: none; }
}
