/* Affinity Testimonials. Override any of the custom properties in Elementor > Site Settings > Custom CSS or your theme. */
.aft {
	--aft-gap: 24px;
	--aft-card-bg: #fff;
	--aft-card-border: #e6e6e6;
	--aft-card-radius: 12px;
	--aft-card-pad: 28px;
	--aft-star: #f5b301;
	--aft-star-off: #d9d9d9;
	--aft-text: inherit;
	--aft-muted: #6b6b6b;
	--aft-nav-bg: #fff;
	--aft-nav-fg: #222;
	position: relative;
	margin: 0 auto;
}
.aft__track {
	display: grid;
	gap: var(--aft-gap);
	grid-template-columns: repeat(var(--aft-cols, 3), minmax(0, 1fr));
}
.aft--cols-1 { --aft-cols: 1; }
.aft--cols-2 { --aft-cols: 2; }
.aft--cols-3 { --aft-cols: 3; }
.aft--cols-4 { --aft-cols: 4; }
@media (max-width: 1024px) { .aft--cols-3 .aft__track, .aft--cols-4 .aft__track { --aft-cols: 2; } }
@media (max-width: 640px)  { .aft__track { --aft-cols: 1 !important; } }

.aft--list .aft__track { grid-template-columns: 1fr; }

.aft__card {
	background: var(--aft-card-bg);
	border: 1px solid var(--aft-card-border);
	border-radius: var(--aft-card-radius);
	padding: var(--aft-card-pad);
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: var(--aft-text);
	min-width: 0;
}
.aft__stars { line-height: 1; font-size: 20px; letter-spacing: 2px; }
.aft__star { color: var(--aft-star-off); }
.aft__star.is-on { color: var(--aft-star); }
.aft__text {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	font-size: 1rem;
	line-height: 1.6;
	flex: 1 1 auto;
}
.aft__text p { margin: 0 0 .75em; }
.aft__text p:last-child { margin-bottom: 0; }
.aft__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	font-size: .875rem;
	color: var(--aft-muted);
}
.aft__name { font-weight: 700; color: var(--aft-text); }
.aft__source a { color: inherit; text-decoration: underline; }

/* Slider layout: horizontal scroll with snap, arrows via JS */
.aft--slider .aft__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 2px;
}
.aft--slider .aft__track::-webkit-scrollbar { display: none; }
.aft--slider .aft__card {
	flex: 0 0 calc((100% - (var(--aft-cols, 3) - 1) * var(--aft-gap)) / var(--aft-cols, 3));
	scroll-snap-align: start;
}
@media (max-width: 1024px) { .aft--slider.aft--cols-3 .aft__card, .aft--slider.aft--cols-4 .aft__card { flex-basis: calc((100% - var(--aft-gap)) / 2); } }
@media (max-width: 640px)  { .aft--slider .aft__card { flex-basis: 100%; } }
.aft__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--aft-card-border);
	background: var(--aft-nav-bg);
	color: var(--aft-nav-fg);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.aft__nav--prev { left: -20px; }
.aft__nav--next { right: -20px; }
.aft__nav[disabled] { opacity: .35; cursor: default; }
@media (max-width: 640px) { .aft__nav--prev { left: 0; } .aft__nav--next { right: 0; } }
