/* Reseñas Bea: toma los colores de la paleta de Blocksy y tiene valores de reserva. */
.bea-resenas {
	--bea-azul: var(--theme-palette-color-1, #141f78);
	--bea-azul-oscuro: var(--theme-palette-color-2, #0e1657);
	--bea-texto: var(--theme-palette-color-3, #201e1d);
	--bea-gris: var(--theme-palette-color-4, #605d5d);
	--bea-borde: var(--theme-palette-color-5, #ddd9d3);
	/* Ancho completo del contenedor, hasta 900px. min-width: 0 permite estrecharse
	   aunque el código corto esté dentro de un contenedor flex (GenerateBlocks). */
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	max-width: 900px;
	margin-inline: auto;
	text-align: left;
}

/* Carrusel */
.bea-resenas__pista {
	display: flex;
	gap: 32px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}
.bea-resenas__pista::-webkit-scrollbar { display: none; }
.bea-resenas__pista:focus-visible { outline: 2px solid var(--bea-azul); outline-offset: 4px; }

/* Tarjeta */
.bea-resenas .bea-resena {
	flex: 0 0 100%;
	box-sizing: border-box;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 40px 48px;
	background: #fff;
	border: 1px solid var(--bea-borde);
}
.bea-resenas .bea-resena::before {
	content: "\201C";
	font-family: Bitter, Georgia, serif;
	font-size: 56px;
	line-height: 1;
	color: var(--bea-azul);
}
.bea-resenas .bea-resena__cita {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-style: normal;
	quotes: none;
}
.bea-resenas .bea-resena__cita::before,
.bea-resenas .bea-resena__cita::after { content: none; }

.bea-resenas .bea-resena__texto {
	position: relative;
	font-size: 17px;
	line-height: 1.7;
	color: var(--bea-texto);
}
.bea-resenas .bea-resena__texto p { margin: 0 0 1em; font-size: inherit; line-height: inherit; color: inherit; }
.bea-resenas .bea-resena__texto p:last-child { margin-bottom: 0; }

/* «Leer más»: el recorte solo se aplica cuando el script está activo. */
.bea-resenas.is-activo .bea-resena__texto { overflow: hidden; max-height: calc(1.7em * 7); }
.bea-resenas.is-activo .bea-resena__texto.is-cortado::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3.4em;
	background: linear-gradient(rgba(255, 255, 255, 0), #fff);
	pointer-events: none;
}
.bea-resenas.is-activo .bea-resena__texto.is-abierto,
.bea-resenas.is-activo .bea-resena__texto.is-entera { max-height: none; }
.bea-resenas.is-activo .bea-resena__texto.is-abierto::after { display: none; }

.bea-resenas .bea-resena__mas {
	align-self: flex-start;
	margin: 8px 0 0;
	padding: 0;
	min-height: 0;
	background: none;
	border: 0;
	box-shadow: none;
	color: var(--bea-azul);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.bea-resenas .bea-resena__mas:hover { background: none; color: var(--bea-azul-oscuro); }
.bea-resenas .bea-resena__mas:focus-visible { outline: 2px solid var(--bea-azul); outline-offset: 3px; }
.bea-resenas .bea-resena__mas[hidden] { display: none; }

.bea-resenas .bea-resena__autor {
	margin-top: auto;
	padding-top: 20px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--bea-gris);
}
.bea-resenas .bea-resena__autor strong { display: block; color: var(--bea-texto); font-weight: 600; }
.bea-resenas .bea-resena__autor span { display: block; }
.bea-resenas .bea-resena__nota { margin-top: 4px; font-style: italic; }

/* Controles */
.bea-resenas__controles {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: 28px;
}
.bea-resenas .bea-resenas__btn {
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 1px solid var(--bea-azul);
	border-radius: 50%;
	background: #fff;
	box-shadow: none;
	color: var(--bea-azul);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}
.bea-resenas .bea-resenas__btn:hover:not(:disabled) { background: var(--bea-azul); color: #fff; }
.bea-resenas .bea-resenas__btn:disabled { opacity: .35; cursor: default; }
.bea-resenas .bea-resenas__btn:focus-visible { outline: 2px solid var(--bea-azul); outline-offset: 3px; }
.bea-resenas__contador { min-width: 3.5em; font-size: 14px; text-align: center; color: var(--bea-gris); }

/* Modo lista: todas enteras, una debajo de otra. */
.bea-resenas--lista { display: grid; gap: 32px; }

@media (max-width: 767px) {
	.bea-resenas .bea-resena { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.bea-resenas__pista { scroll-behavior: auto; }
}
