/**
 * WA Testimonials carousel styles
 *
 * Replace this file at:
 * wp-content/plugins/wa-testimonials-manager/assets/css/wa-testimonials.css
 *
 * The main visual settings are grouped as variables below.
 */

.wa-testimonials {
	/* Carousel layout */
	--wa-gap: 34px;
	--wa-per-view: 2; /* Updated automatically by the carousel script. */
	--wa-carousel-side-space: 46px;
	--wa-carousel-bottom-space: 34px;

	/* Card */
	--wa-card-background: #ffffff;
	--wa-card-radius: 18px;
	--wa-card-shadow: 0 3px 15px rgba(0, 0, 0, 0.12);
	--wa-card-min-height: 280px;
	--wa-card-padding-top-bottom: 42px;
	--wa-card-padding-left-right: 44px;
	--wa-card-content-gap: 32px;

	/* Testimonial text */
	--wa-content-font-size: 20px;
	--wa-content-line-height: 1.5;
	--wa-content-color: #5f5f5f;

	/* Name */
	--wa-name-font-size: 18px;
	--wa-name-line-height: 1.35;
	--wa-name-font-weight: 600;
	--wa-name-color: #555555;

	/* Title / company */
	--wa-title-font-size: 16px;
	--wa-title-line-height: 1.4;
	--wa-title-color: #666666;

	/* Previous / next arrows */
	--wa-arrow-size: 38px;
	--wa-arrow-font-size: 24px;
	--wa-arrow-color: #d0d0d0;
	--wa-arrow-hover-color: #555555;
	--wa-arrow-hover-background: rgba(0, 0, 0, 0.04);
	--wa-arrow-focus-ring: rgba(85, 85, 85, 0.28);

	/* Pagination dots */
	--wa-dot-size: 7px;
	--wa-dot-gap: 10px;
	--wa-dot-color: #cccccc;
	--wa-dot-active-color: #222222;
	--wa-dot-focus-ring: rgba(34, 34, 34, 0.25);

	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding: 8px var(--wa-carousel-side-space) var(--wa-carousel-bottom-space);
}

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

/* Carousel structure */
.wa-testimonials__viewport {
	overflow: hidden;
	padding: 10px 3px 20px;
}

.wa-testimonials__track {
	display: flex;
	align-items: stretch;
	gap: var(--wa-gap);
	transition: transform 0.45s ease;
	will-change: transform;
}

/* Individual testimonial card */
.wa-testimonials__card {
	flex: 0 0 calc(
		(100% - (var(--wa-per-view) - 1) * var(--wa-gap)) /
			var(--wa-per-view)
	);
	min-width: 0;
	min-height: var(--wa-card-min-height);
	padding: var(--wa-card-padding-top-bottom)
		var(--wa-card-padding-left-right);
	background: var(--wa-card-background);
	border-radius: var(--wa-card-radius);
	box-shadow: var(--wa-card-shadow);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--wa-card-content-gap);
}

.wa-testimonials__content {
	font-size: var(--wa-content-font-size);
	line-height: var(--wa-content-line-height);
	color: var(--wa-content-color);
}

.wa-testimonials__author {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.wa-testimonials__name {
	font-size: var(--wa-name-font-size);
	line-height: var(--wa-name-line-height);
	font-weight: var(--wa-name-font-weight);
	color: var(--wa-name-color);
}

.wa-testimonials__title {
	font-size: var(--wa-title-font-size);
	line-height: var(--wa-title-line-height);
	color: var(--wa-title-color);
}

/**
 * Navigation control reset
 *
 * These selectors intentionally have higher specificity and use !important
 * so Elementor Site Settings, Elementor Kits and theme button styles cannot
 * turn the arrows or dots into normal styled buttons.
 */
.wa-testimonials button.wa-testimonials__arrow,
.elementor .wa-testimonials button.wa-testimonials__arrow,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__arrow {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: absolute !important;
	top: 45% !important;
	z-index: 2 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--wa-arrow-size) !important;
	min-width: var(--wa-arrow-size) !important;
	max-width: var(--wa-arrow-size) !important;
	height: var(--wa-arrow-size) !important;
	min-height: var(--wa-arrow-size) !important;
	max-height: var(--wa-arrow-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: var(--wa-arrow-color) !important;
	font-family: Arial, sans-serif !important;
	font-size: var(--wa-arrow-font-size) !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	text-shadow: none !important;
	cursor: pointer !important;
	transform: translateY(-50%) !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

.wa-testimonials button.wa-testimonials__arrow span,
.elementor .wa-testimonials button.wa-testimonials__arrow span,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__arrow span {
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font: inherit !important;
	line-height: 1 !important;
	color: inherit !important;
	transform: none !important;
}

.wa-testimonials button.wa-testimonials__arrow::before,
.wa-testimonials button.wa-testimonials__arrow::after,
.wa-testimonials button.wa-testimonials__dot::before,
.wa-testimonials button.wa-testimonials__dot::after {
	content: none !important;
	display: none !important;
}

.wa-testimonials button.wa-testimonials__arrow:hover,
.elementor .wa-testimonials button.wa-testimonials__arrow:hover,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__arrow:hover {
	border: 0 !important;
	background: var(--wa-arrow-hover-background) !important;
	background-color: var(--wa-arrow-hover-background) !important;
	box-shadow: none !important;
	color: var(--wa-arrow-hover-color) !important;
}

.wa-testimonials button.wa-testimonials__arrow:focus,
.elementor .wa-testimonials button.wa-testimonials__arrow:focus,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__arrow:focus {
	outline: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.wa-testimonials button.wa-testimonials__arrow:focus-visible,
.elementor .wa-testimonials button.wa-testimonials__arrow:focus-visible,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__arrow:focus-visible {
	outline: 0 !important;
	box-shadow: 0 0 0 3px var(--wa-arrow-focus-ring) !important;
}

.wa-testimonials__arrow--prev {
	left: 0 !important;
}

.wa-testimonials__arrow--next {
	right: 0 !important;
}

/* Pagination container */
.wa-testimonials__dots {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--wa-dot-gap) !important;
	width: 100% !important;
	min-height: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
}

/* Pagination dot reset */
.wa-testimonials button.wa-testimonials__dot,
.elementor .wa-testimonials button.wa-testimonials__dot,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__dot {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block !important;
	position: static !important;
	flex: 0 0 var(--wa-dot-size) !important;
	width: var(--wa-dot-size) !important;
	min-width: var(--wa-dot-size) !important;
	max-width: var(--wa-dot-size) !important;
	height: var(--wa-dot-size) !important;
	min-height: var(--wa-dot-size) !important;
	max-height: var(--wa-dot-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: var(--wa-dot-color) !important;
	background-color: var(--wa-dot-color) !important;
	background-image: none !important;
	box-shadow: none !important;
	outline: 0 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: -9999px !important;
	cursor: pointer !important;
	transform: none !important;
	transition: background-color 0.2s ease, transform 0.2s ease !important;
}

.wa-testimonials button.wa-testimonials__dot:hover,
.elementor .wa-testimonials button.wa-testimonials__dot:hover,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__dot:hover {
	border: 0 !important;
	background: var(--wa-dot-active-color) !important;
	background-color: var(--wa-dot-active-color) !important;
	box-shadow: none !important;
	transform: scale(1.15) !important;
}

.wa-testimonials button.wa-testimonials__dot.is-active,
.elementor .wa-testimonials button.wa-testimonials__dot.is-active,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__dot.is-active {
	border: 0 !important;
	background: var(--wa-dot-active-color) !important;
	background-color: var(--wa-dot-active-color) !important;
	box-shadow: none !important;
	outline: 0 !important;
	transform: scale(1.15) !important;
}

.wa-testimonials button.wa-testimonials__dot:focus,
.elementor .wa-testimonials button.wa-testimonials__dot:focus,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__dot:focus {
	outline: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.wa-testimonials button.wa-testimonials__dot:focus-visible,
.elementor .wa-testimonials button.wa-testimonials__dot:focus-visible,
.elementor-widget-shortcode .wa-testimonials button.wa-testimonials__dot:focus-visible {
	outline: 0 !important;
	box-shadow: 0 0 0 3px var(--wa-dot-focus-ring) !important;
}

/* Hide navigation when all cards already fit. */
.wa-testimonials.is-static .wa-testimonials__arrow,
.wa-testimonials.is-static .wa-testimonials__dots {
	display: none !important;
}

.wa-testimonials-empty {
	margin: 0;
}

.elementor-widget-shortcode .wa-testimonials {
	width: 100%;
}

/* Tablet */
@media (max-width: 1024px) {
	.wa-testimonials {
		--wa-gap: 24px;
		--wa-carousel-side-space: 38px;
		--wa-card-min-height: 260px;
		--wa-card-padding-top-bottom: 34px;
		--wa-card-padding-left-right: 34px;
		--wa-content-font-size: 18px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	.wa-testimonials {
		--wa-gap: 18px;
		--wa-carousel-side-space: 30px;
		--wa-card-min-height: 250px;
		--wa-card-padding-top-bottom: 28px;
		--wa-card-padding-left-right: 26px;
		--wa-card-content-gap: 26px;
		--wa-content-font-size: 17px;
		--wa-name-font-size: 17px;
		--wa-title-font-size: 15px;
		--wa-arrow-size: 32px;
		--wa-arrow-font-size: 20px;
		--wa-dot-size: 7px;
	}
}