/**
 * Testimonial carousel — project-1 testimonial-carousel.module.css
 */

@keyframes cb-fade-up {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.elementor-widget-cb_testimonials,
.elementor-widget-cb_testimonials .elementor-widget-container,
.elementor-widget-cb_testimonials .e-con,
.elementor-widget-cb_testimonials .e-con-inner {
	overflow: visible !important;
}

.cb-home-testimonials.cb-widget-section {
	padding: var(--space-24) 0;
	background:
		radial-gradient(ellipse 80% 55% at 50% 18%, rgba(243, 184, 155, 0.22), transparent 70%),
		var(--color-bg);
	overflow: visible;
}

.cb-home-testimonials__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-6);
	overflow: visible;
}

.cb-home-testimonials__body {
	margin-top: var(--space-12);
	overflow: visible;
}

.cb-testimonials.cb-swiper-root {
	position: relative;
	max-width: 960px;
	margin-inline: auto;
	overflow: visible;
}

.cb-testimonials__stage {
	--cb-testimonials-shadow-pad: var(--space-10);
	--cb-testimonials-nav-edge: var(--space-3);

	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.cb-testimonials__stage:has(.cb-testimonials__nav) {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	column-gap: var(--space-5);
}

.cb-testimonials__stage:not(:has(.cb-testimonials__nav)) {
	display: block;
}

.cb-testimonials__glass-wrap {
	position: relative;
	isolation: isolate;
	width: 100%;
	min-width: 0;
}

.cb-testimonials__viewport {
	overflow: visible;
	padding: var(--cb-testimonials-shadow-pad);
	box-sizing: border-box;
}

.cb-testimonials__swiper {
	overflow: visible !important;
	width: 100%;
}

.cb-testimonials__swiper .swiper-wrapper {
	align-items: stretch;
}

.cb-testimonials__swiper .swiper-slide {
	width: 100%;
	height: auto;
	overflow: visible;
	box-sizing: border-box;
}

.cb-testimonials__swiper.swiper-fade .swiper-slide {
	width: 100% !important;
}

.cb-testimonials__nav {
	position: relative;
	z-index: 5;
	margin: 0;
	flex-shrink: 0;
	align-self: center;
}

.cb-testimonials__nav.cb-swiper__prev:hover,
.cb-testimonials__nav.cb-swiper__prev:focus-visible,
.cb-testimonials__nav.cb-swiper__next:hover,
.cb-testimonials__nav.cb-swiper__next:focus-visible {
	transform: translateY(-2px);
}

.cb-testimonials.cb-swiper-root .cb-swiper__prev.swiper-button-disabled,
.cb-testimonials.cb-swiper-root .cb-swiper__next.swiper-button-disabled,
.cb-testimonials.cb-swiper-root .cb-swiper__prev:disabled,
.cb-testimonials.cb-swiper-root .cb-swiper__next:disabled {
	opacity: 1;
	cursor: pointer;
	pointer-events: auto;
	transform: none;
}

.cb-testimonials__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: var(--space-6);
	width: 100%;
}

.cb-testimonials__glass-wrap::before {
	content: "";
	position: absolute;
	inset: -30px -10% auto -10%;
	height: 320px;
	background: radial-gradient(closest-side, rgba(243, 184, 155, 0.5), transparent 70%);
	z-index: -1;
	filter: blur(40px);
	pointer-events: none;
}

.cb-testimonials__glass {
	position: relative;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(255, 248, 242, 0.6));
	backdrop-filter: blur(20px) saturate(160%);
	-webkit-backdrop-filter: blur(20px) saturate(160%);
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: var(--radius-2xl);
	padding: var(--space-12) var(--space-8);
	text-align: center;
	box-shadow: var(--shadow-lg);
	animation: cb-fade-up 0.6s ease;
}

.cb-testimonials__quote-mark {
	display: block;
	margin: 0 auto var(--space-4);
	color: var(--color-primary);
	opacity: 0.15;
}

.cb-testimonials__quote {
	font-family: var(--family-display);
	font-size: var(--text-2xl);
	line-height: 1.95;
	color: var(--color-text);
	font-weight: 500;
	max-width: 720px;
	margin: 0 auto var(--space-6);
	overflow-wrap: break-word;
}

.cb-testimonials__rating {
	margin: 0 auto var(--space-6);
	display: flex;
	justify-content: center;
}

.cb-testimonials__person {
	display: inline-flex;
	align-items: center;
	gap: var(--space-4);
	padding-top: var(--space-5);
	border-top: 1px dashed var(--color-border);
}

.cb-testimonials__person img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--color-cream);
	box-shadow: var(--shadow-sm);
	flex-shrink: 0;
}

.cb-testimonials__person-meta {
	text-align: start;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cb-testimonials__person-meta strong {
	font-size: var(--text-base);
	color: var(--color-text);
	font-weight: 700;
}

.cb-testimonials__person-meta span {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

/* Tablet + small laptop: overlay arrows, tighter card (desktop grid from 1280px) */
@media (max-width: 1279px) {
	.cb-testimonials.cb-swiper-root {
		max-width: min(100%, 720px);
	}

	.cb-testimonials__stage:has(.cb-testimonials__nav) {
		display: block;
	}

	.cb-testimonials__stage {
		--cb-testimonials-shadow-pad: var(--space-6);
		--cb-testimonials-nav-edge: var(--space-2);
	}

	.cb-testimonials__glass-wrap {
		padding-inline: 0;
		width: 100%;
	}

	.cb-testimonials__quote {
		font-size: var(--text-xl);
		line-height: 1.7;
		max-width: none;
	}

	.cb-testimonials__glass {
		padding: var(--space-10) var(--space-6);
	}

	.cb-testimonials__quote-mark {
		--cb-icon-size: 48px;
	}

	.cb-testimonials__nav {
		position: absolute;
		top: 50%;
		inset-inline: auto;
		margin: 0;
		width: 42px;
		height: 42px;
		transform: translateY(-50%);
	}

	.cb-testimonials__nav--prev {
		inset-inline-start: var(--cb-testimonials-nav-edge);
	}

	.cb-testimonials__nav--next {
		inset-inline-end: var(--cb-testimonials-nav-edge);
	}

	.cb-testimonials__nav.cb-swiper__prev:hover,
	.cb-testimonials__nav.cb-swiper__prev:focus-visible,
	.cb-testimonials__nav.cb-swiper__next:hover,
	.cb-testimonials__nav.cb-swiper__next:focus-visible {
		transform: translateY(calc(-50% - 2px));
	}

	.cb-testimonials.cb-swiper-root .cb-swiper__prev.swiper-button-disabled,
	.cb-testimonials.cb-swiper-root .cb-swiper__next.swiper-button-disabled,
	.cb-testimonials.cb-swiper-root .cb-swiper__prev:disabled,
	.cb-testimonials.cb-swiper-root .cb-swiper__next:disabled {
		transform: translateY(-50%);
	}
}

/* Mobile: edge-to-edge card; nav buttons ~50% over card sides */
@media (max-width: 767px) {
	.cb-home-testimonials.cb-widget-section {
		padding: var(--space-16) 0;
	}

	.cb-home-testimonials__inner {
		padding-inline: 15px;
	}

	.cb-home-testimonials__body {
		margin-top: var(--space-8);
		/* Carousel uses full section width; title keeps 15px inset */
		margin-inline: -15px;
		width: calc(100% + 30px);
	}

	.cb-testimonials.cb-swiper-root {
		max-width: none;
		overflow: visible;
	}

	.cb-testimonials__stage {
		--cb-testimonials-shadow-pad-block: var(--space-4);
		--cb-testimonials-nav-size: 36px;
		--cb-testimonials-nav-overlap: calc(var(--cb-testimonials-nav-size) / 2);
		overflow: visible;
	}

	.cb-testimonials__viewport {
		padding-block: var(--cb-testimonials-shadow-pad-block);
		padding-inline: 0;
	}

	.cb-testimonials__glass {
		padding: var(--space-6) var(--space-5);
		padding-inline: calc(var(--cb-testimonials-nav-overlap) + var(--space-3));
		border-radius: var(--radius-xl);
	}

	.cb-testimonials__quote-mark {
		--cb-icon-size: 40px;
		margin-bottom: var(--space-3);
	}

	.cb-testimonials__quote {
		font-size: var(--text-lg);
		line-height: 1.65;
		margin-bottom: var(--space-4);
	}

	.cb-testimonials__rating {
		margin-bottom: var(--space-4);
	}

	.cb-testimonials__person {
		gap: var(--space-3);
		padding-top: var(--space-4);
	}

	.cb-testimonials__person img {
		width: 48px;
		height: 48px;
	}

	.cb-testimonials__nav {
		width: var(--cb-testimonials-nav-size);
		height: var(--cb-testimonials-nav-size);
		box-shadow: var(--shadow-md);
	}

	.cb-testimonials__pagination {
		margin-top: var(--space-4);
		padding-inline: 15px;
	}
}
