/**
 * Travel Testimonials — Estilos del frontend.
 * Todas las clases usan el prefijo "tt-" y viven encapsuladas bajo .tt-testimonials.
 *
 * Encapsulado reforzado: cada selector va prefijado con .tt-testimonials para
 * aumentar la especificidad frente a reglas globales del tema (button{}, a{},
 * ul{}, etc.), y los elementos interactivos (botones) incluyen un reset
 * explícito para anular estilos heredados (appearance, line-height, font,
 * flex-shrink, box-sizing) que suelen venir de temas y builders como Elementor.
 */

.tt-testimonials {
	--tt-primary: #0073aa;
	--tt-star-color: #f2b01e;
	--tt-card-bg: #ffffff;
	--tt-text-color: #333333;
	--tt-name-color: #111111;
	--tt-card-radius: 12px;

	box-sizing: border-box;
	position: relative;
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
}

.tt-testimonials,
.tt-testimonials *,
.tt-testimonials *::before,
.tt-testimonials *::after {
	box-sizing: border-box;
}

/* Reset base para neutralizar estilos heredados del tema dentro del plugin */
.tt-testimonials button,
.tt-testimonials ul,
.tt-testimonials li,
.tt-testimonials a,
.tt-testimonials p,
.tt-testimonials span,
.tt-testimonials article {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: inherit;
	line-height: normal;
	text-transform: none;
	letter-spacing: normal;
	background-image: none;
}

.tt-testimonials button {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: none;
	background-color: transparent;
	box-shadow: none;
	cursor: pointer;
	flex-shrink: 0;
	flex-grow: 0;
	font-size: inherit;
	color: inherit;
	text-align: center;
	white-space: nowrap;
}

.tt-testimonials--empty {
	display: none;
}

/* Carrusel */
.tt-testimonials .tt-carousel {
	position: relative;
	padding: 0 44px;
}

.tt-testimonials .tt-carousel-track-wrapper {
	overflow: hidden;
	width: 100%;
}

.tt-testimonials .tt-carousel-track {
	display: flex;
	transition: transform 0.4s ease;
	will-change: transform;
}

/* Tarjeta */
.tt-testimonials .tt-card {
	flex: 0 0 calc((100% / var(--tt-columns, 3)) - 20px);
	margin: 0 10px;
	background: var(--tt-card-bg);
	border-radius: var(--tt-card-radius);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
}

.tt-testimonials .tt-avatar {
	width: 72px;
	height: 72px;
	min-width: 72px;
	min-height: 72px;
	border-radius: 50%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f1f1f1;
	margin-bottom: 6px;
}

.tt-testimonials .tt-avatar-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
	max-width: none;
}

.tt-testimonials .tt-avatar-placeholder {
	font-size: 24px;
	font-weight: 600;
	color: var(--tt-primary);
	text-transform: uppercase;
}

.tt-testimonials .tt-rating {
	display: flex;
	gap: 2px;
	font-size: 16px;
	line-height: 1;
}

.tt-testimonials .tt-star--filled {
	color: var(--tt-star-color);
}

.tt-testimonials .tt-star--empty {
	color: #d9d9d9;
}

.tt-testimonials .tt-content {
	font-size: 15px;
	line-height: 1.6;
	color: var(--tt-text-color);
}

.tt-testimonials .tt-content p {
	margin: 0 0 8px;
}

.tt-testimonials .tt-content p:last-child {
	margin-bottom: 0;
}

.tt-testimonials .tt-author {
	font-weight: 700;
	color: var(--tt-name-color);
	font-size: 16px;
}

.tt-testimonials .tt-country {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--tt-text-color);
	opacity: 0.8;
}

.tt-testimonials .tt-flag {
	font-size: 16px;
}

.tt-testimonials .tt-tour {
	margin-top: 4px;
	font-size: 13px;
	font-weight: 600;
}

.tt-testimonials .tt-tour-link {
	color: var(--tt-primary);
	text-decoration: none;
}

.tt-testimonials .tt-tour-link:hover,
.tt-testimonials .tt-tour-link:focus {
	text-decoration: underline;
}

.tt-testimonials .tt-tour-text {
	color: var(--tt-primary);
}

.tt-testimonials .tt-travel-date {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 2px;
	font-size: 13px;
	color: var(--tt-text-color);
	opacity: 0.75;
}

.tt-testimonials .tt-date-icon {
	width: 14px;
	height: 14px;
	min-width: 14px;
	flex-shrink: 0;
	color: var(--tt-text-color);
}

/* Flechas — reset reforzado para que no hereden width/height/border-radius del tema */
.tt-testimonials .tt-arrow {
	position: absolute;
	top: 50%;
	left: auto;
	right: auto;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	min-width: 40px;
	max-width: 40px;
	min-height: 40px;
	max-height: 40px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: var(--tt-card-bg);
	color: var(--tt-primary);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	line-height: 1;
	z-index: 2;
}

.tt-testimonials .tt-arrow span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.tt-testimonials .tt-arrow:focus-visible {
	outline: 2px solid var(--tt-primary);
	outline-offset: 2px;
}

.tt-testimonials .tt-arrow--prev {
	left: 0;
}

.tt-testimonials .tt-arrow--next {
	right: 0;
}

/* Dots */
.tt-testimonials .tt-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 20px;
}

.tt-testimonials .tt-dot {
	width: 10px;
	height: 10px;
	min-width: 10px;
	max-width: 10px;
	min-height: 10px;
	max-height: 10px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: #d9d9d9;
}

.tt-testimonials .tt-dot[aria-current="true"] {
	background: var(--tt-primary);
}

.tt-testimonials .tt-dot:focus-visible {
	outline: 2px solid var(--tt-primary);
	outline-offset: 2px;
}

/* Responsive: la cantidad de columnas se define mediante --tt-columns
   y se actualiza en cada breakpoint desde el propio CSS. */
.tt-testimonials .tt-carousel {
	--tt-columns: 3;
}

@media (max-width: 1024px) {
	.tt-testimonials .tt-carousel {
		--tt-columns: 2;
	}
}

@media (max-width: 640px) {
	.tt-testimonials .tt-carousel {
		--tt-columns: 1;
		padding: 0 36px;
	}

	.tt-testimonials .tt-arrow {
		width: 34px;
		height: 34px;
		min-width: 34px;
		max-width: 34px;
		min-height: 34px;
		max-height: 34px;
	}
}
