/* ================= BASE ================= */
.elementor-widget-serenity_reviews_flow .kalm-testimonial-section {
	position: relative;
	height: 100vh; /* Ensure full viewport height */
	min-height: 600px; /* Minimum height for smaller screens */
	background: #fdf6ef;
	overflow: hidden;
	font-family: "Playfair Display", serif;
	padding: 0 32px; /* ⭐ GLOBAL SIDE PADDING */
}

/* ================= TITLE ================= */
.elementor-widget-serenity_reviews_flow .kalm-title {
	position: absolute;
	inset: 0;
	z-index: 1; /* Behind cards on desktop */
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	text-align: center;
}

.elementor-widget-serenity_reviews_flow .kalm-title-inner {
	max-width: 640px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	/* Subtle blur effect behind heading for desktop */
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding: 20px;
	border-radius: 12px;
}

.elementor-widget-serenity_reviews_flow .kalm-title small {
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	letter-spacing: 1px;
	color: #8a7a6a;
}

.elementor-widget-serenity_reviews_flow .kalm-title h2 {
	font-size: 56px;
	font-weight: 300;
	line-height: 1.1;
	color: #3a2a1f;
	margin-top: 12px;
}

/* ================= FLOW ================= */
.elementor-widget-serenity_reviews_flow .kalm-flow {
	position: absolute;
	inset: 0;
	z-index: 2; /* In front of title on desktop */
	display: flex;
	justify-content: center;
	pointer-events: none;
	overflow: hidden; /* Hide overflow for seamless loop */

	mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		black 30%,
		black 78%,
		transparent 100%
	);
}

/* Grid wrapper for proper positioning */
.elementor-widget-serenity_reviews_flow .kalm-flow > div {
	position: relative;
}

/* ================= GRID ================= */
.elementor-widget-serenity_reviews_flow .kalm-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 80px;
	max-width: 1200px;
	width: 100%;
	padding: 0 16px; /* ⭐ INNER GRID SIDE SPACE */
	/* Animation handled by GSAP ScrollTrigger now */
}

/* Auto-animation when enabled */
.elementor-widget-serenity_reviews_flow .kalm-grid.auto-animate {
	animation: scrollUp var(--animation-duration, 42s) linear infinite;
}

/* Pause animation when disabled */
.elementor-widget-serenity_reviews_flow .kalm-testimonial-section[data-animation-enabled=""] .kalm-grid,
.elementor-widget-serenity_reviews_flow .kalm-testimonial-section:not([data-animation-enabled="yes"]) .kalm-grid {
	animation-play-state: paused;
}

/* Pause on hover */
.elementor-widget-serenity_reviews_flow .kalm-testimonial-section[data-pause-on-hover="yes"]:hover .kalm-grid {
	animation-play-state: paused;
}

/* staggered desktop feel */
.elementor-widget-serenity_reviews_flow .kalm-grid > .kalm-card {
	position: relative; /* For z-index to work */
	backface-visibility: hidden; /* Prevent rendering artifacts */
	will-change: transform; /* Optimize performance */
}
.elementor-widget-serenity_reviews_flow .kalm-grid > .kalm-card:nth-child(3n+1) {
	transform: translateY(0px);
	z-index: 3; /* Top layer */
}
.elementor-widget-serenity_reviews_flow .kalm-grid > .kalm-card:nth-child(3n+2) {
	transform: translateY(90px);
	z-index: 2; /* Middle layer */
}
.elementor-widget-serenity_reviews_flow .kalm-grid > .kalm-card:nth-child(3n+3) {
	transform: translateY(180px);
	z-index: 1; /* Bottom layer */
}

/* clone for loop */
.elementor-widget-serenity_reviews_flow .kalm-grid.clone {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
}

/* ================= CARD ================= */
.elementor-widget-serenity_reviews_flow .kalm-card {
	background: rgba(255, 255, 255, 0.96);
	border-radius: 8px; /* Reduced from 18px for smoother rectangle */
	padding: 14px 18px; /* Further reduced vertical padding */
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
	position: relative;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	/* Ensure cards stack correctly - later cards appear on top */
	isolation: isolate;
	max-width: 100%;
	max-height: 120px; /* Limit card height to prevent square shape */
	overflow: hidden; /* Ensure content doesn't overflow */
	display: flex;
	flex-direction: column;
}

/* ================= CONTENT ================= */
.elementor-widget-serenity_reviews_flow .kalm-name {
	font-size: 13px;
	letter-spacing: 0.8px;
	margin-bottom: 3px;
	color: #3a2a1f;
	line-height: 1.2;
	flex-shrink: 0; /* Don't shrink */
}

.elementor-widget-serenity_reviews_flow .kalm-stars {
	color: #d6b48c;
	font-size: 12px;
	margin-bottom: 2px;
	line-height: 1;
	flex-shrink: 0; /* Don't shrink */
}

.elementor-widget-serenity_reviews_flow .kalm-text {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	line-height: 1.4;
	color: #4b3a2e;
	/* Limit text to 2 lines with ellipsis */
	display: -webkit-box;
	display: box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
	min-height: 0;
	margin: 0;
}

/* ================= DESKTOP ANIMATION ================= */
@keyframes scrollUp {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(-100%);
	}
}

/* ================= MOBILE ================= */
@media (max-width: 768px) {
	.elementor-widget-serenity_reviews_flow .kalm-testimonial-section {
		height: auto;
		min-height: 85vh;
		padding: 0 0px;
		overflow: hidden; /* ⭐ CHANGED TO HIDDEN FOR LOOP */
	}

	.elementor-widget-serenity_reviews_flow .kalm-title {
		position: relative; /* Back to normal flow */
		align-items: flex-start;
		justify-content: flex-start;
		padding-top: 12px;
		padding-bottom: 8px;
		z-index: 10; /* ⭐ KEEP TITLE ON TOP */
	}

	.elementor-widget-serenity_reviews_flow .kalm-title-inner {
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		padding: 0;
		border-radius: 0;
	}

	.elementor-widget-serenity_reviews_flow .kalm-title h2 {
		font-size: 36px;
	}

	.elementor-widget-serenity_reviews_flow .kalm-flow {
		position: relative; /* Back to normal flow */
		inset: auto;
		overflow: visible;
		max-width: 500px;
		margin: 0 auto;
	}

	.elementor-widget-serenity_reviews_flow .kalm-grid,
	.elementor-widget-serenity_reviews_flow .kalm-grid.clone {
		grid-template-columns: 1fr; /* Single column */
		gap: 16px; /* Mobile card gap */
		padding: 10px;
		animation: scrollUpMobile var(--animation-duration, 42s) linear infinite;
		display: grid; /* Ensure grid layout */
	}

	.elementor-widget-serenity_reviews_flow .kalm-grid.clone {
		display: grid; /* ⭐ SHOW CLONE FOR LOOP */
		position: absolute;
		top: calc(100% + 16px);
	}

	.elementor-widget-serenity_reviews_flow .kalm-grid > .kalm-card {
		transform: none !important;
		width: calc(100% - 0px);
		margin: 0 0px;
		z-index: auto !important;
		max-height: none;
		padding: 20px;
		display: block;
	}

	.elementor-widget-serenity_reviews_flow .kalm-name {
		font-size: 14px;
		margin-bottom: 6px;
		line-height: normal;
	}

	.elementor-widget-serenity_reviews_flow .kalm-stars {
		font-size: 14px;
		margin-bottom: 8px;
	}

	.elementor-widget-serenity_reviews_flow .kalm-text {
		font-size: 15px;
		line-height: 1.6;
		display: block;
		-webkit-line-clamp: none;
		line-clamp: none;
		-webkit-box-orient: initial;
		box-orient: initial;
		overflow: visible;
		text-overflow: clip;
		max-height: none;
		flex: none;
		min-height: auto;
	}

	/* Pause animation when disabled on mobile */
	.elementor-widget-serenity_reviews_flow .kalm-testimonial-section[data-animation-enabled=""] .kalm-grid,
	.elementor-widget-serenity_reviews_flow .kalm-testimonial-section:not([data-animation-enabled="yes"]) .kalm-grid {
		animation-play-state: paused;
	}

	/* Pause on hover on mobile */
	.elementor-widget-serenity_reviews_flow .kalm-testimonial-section[data-pause-on-hover="yes"]:hover .kalm-grid {
		animation-play-state: paused;
	}

	@keyframes scrollUpMobile {
		from {
			transform: translateY(0);
		}
		to {
			transform: translateY(calc(-100% - 16px));
		}
	}
}


