/**
 * LeaderEduca Tools — carrossel genérico
 *
 * Serve o carrossel de depoimentos e o de logos. O número de itens visíveis
 * vem da variável --le-per-view; o resto é o mesmo mecanismo do carrossel de
 * posts: o track desliza por transform e o JS só calcula o deslocamento.
 */

.le-carousel {
	position: relative;
}

.le-carousel__viewport {
	overflow: hidden;
}

.le-carousel__track {
	display: flex;
	align-items: var( --le-align, stretch );
	gap: var( --le-gap, 0px );
	transition: transform 450ms cubic-bezier( 0.4, 0, 0.2, 1 );
	will-change: transform;
}

.le-carousel__item {
	flex: 0 0 calc(
		( 100% - var( --le-gap, 0px ) * ( var( --le-per-view, 1 ) - 1 ) ) / var( --le-per-view, 1 )
	);
	min-width: 0;
}

.le-carousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.4em;
	height: 1.4em;
	padding: 0;
	transform: translateY( -50% );
	border: 0;
	background: transparent;
	color: currentColor;
	cursor: pointer;
}

.le-carousel__arrow svg {
	width: 100%;
	height: 100%;
}

/* Fora: a seta mora no respiro que o contêiner do widget deixa dos lados.
 * --le-arrow-gap controla a distância até o texto. */
.le-carousel--arrows-outside .le-carousel__arrow--prev {
	right: calc( 100% + var( --le-arrow-gap, 22px ) );
}

.le-carousel--arrows-outside .le-carousel__arrow--next {
	left: calc( 100% + var( --le-arrow-gap, 22px ) );
}

.le-carousel--arrows-inside .le-carousel__arrow--prev {
	left: 0;
}

.le-carousel--arrows-inside .le-carousel__arrow--next {
	right: 0;
}

.le-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
}

.le-carousel__dots button {
	width: var( --le-dot, 6px );
	height: var( --le-dot, 6px );
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.4;
	cursor: pointer;
}

.le-carousel__dots button.is-active {
	opacity: 1;
}

/* ---------------------------------------------------------- depoimentos */

.le-depoimento {
	display: flex;
	flex-direction: column;
	gap: var( --le-content-gap, 10px );
	height: 100%;
}

.le-depoimento--image_left {
	flex-direction: row;
	align-items: flex-start;
}

.le-depoimento--image_above {
	flex-direction: column;
}

.le-depoimento__image {
	flex: 0 0 auto;
	line-height: 0;
}

.le-depoimento__image img {
	display: block;
	max-width: 100%;
	height: auto;
}

.le-depoimento__body {
	display: flex;
	flex-direction: column;
	gap: var( --le-content-gap, 10px );
	min-width: 0;
}

.le-depoimento__texto {
	line-height: 1.5;
}

/* Rodapé do depoimento: nome e cargo colados, como no original. O respiro do
 * corpo separa o texto deste bloco, não uma linha da outra. */
.le-depoimento__footer {
	display: flex;
	flex-direction: column;
}

.le-depoimento__nome,
.le-depoimento__cargo {
	display: block;
}

/* ---------------------------------------------------------- logos */

.le-logos .le-carousel__item {
	display: flex;
	align-items: center;
	justify-content: center;
}

.le-logos img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* ---------------------------------------------------------- mapa */

.le-mapa {
	position: relative;
	overflow: hidden;
}

.le-mapa iframe {
	display: block;
	width: 100%;
	border: 0;
}

@media ( prefers-reduced-motion: reduce ) {
	.le-carousel__track {
		transition: none;
	}
}
