.wpl-testimonials {
	--wpl-tm-gap: var(--wp--preset--spacing--large, 2.5rem);
	--wpl-tm-visible: var(--wpl-tm-cols, 3);
	padding-block: var(--wp--preset--spacing--xlarge, 4rem);
}

.wpl-testimonials__heading {
	margin: 0 0 var(--wp--preset--spacing--large, 2.5rem);
	text-align: center;
}

.wpl-testimonials__track {
	display: flex;
	column-gap: var(--wpl-tm-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.wpl-testimonials__track::-webkit-scrollbar {
	display: none;
}

.wpl-testimonials__track:focus-visible {
	outline: 2px solid var(--wp--preset--color--cta, #1d1d1f);
	outline-offset: 4px;
}

.wpl-testimonials__item {
	position: relative;
	flex: 0 0 calc((100% - (var(--wpl-tm-visible) - 1) * var(--wpl-tm-gap)) / var(--wpl-tm-visible));
	min-width: 0;
	margin: 0;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--small, 1rem);
}

.wpl-testimonials__item:first-child {
	margin-inline-start: auto;
}

.wpl-testimonials__item:last-child {
	margin-inline-end: auto;
}

.wpl-testimonials__item + .wpl-testimonials__item::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--wpl-tm-gap) / -2);
	border-left: 1px solid var(--wp--preset--color--line, #e2e2e2);
}

.wpl-testimonials__stars {
	display: flex;
	gap: 0.125rem;
}

.wpl-testimonials__star {
	display: block;
	fill: var(--wp--preset--color--line, #e2e2e2);
}

.wpl-testimonials__star.is-filled {
	fill: var(--wp--preset--color--cta, #1d1d1f);
}

.wpl-testimonials__quote {
	margin: 0;
	padding: 0;
	border: 0;
	quotes: '\201E' '\201C';
}

.wpl-testimonials__quote p {
	margin: 0;
}

.wpl-testimonials__quote p::before {
	content: open-quote;
}

.wpl-testimonials__quote p::after {
	content: close-quote;
}

.wpl-testimonials__name {
	margin-top: auto;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--text-secondary, #6b7280);
}

.wpl-testimonials__dots {
	display: flex;
	justify-content: center;
	gap: var(--wp--preset--spacing--xsmall, 0.5rem);
	margin-top: var(--wp--preset--spacing--medium, 1.5rem);
}

.wpl-testimonials__dots[hidden] {
	display: none;
}

.wpl-testimonials__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--line, #e2e2e2);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.wpl-testimonials__dot:hover {
	background: var(--wp--preset--color--text-secondary, #6b7280);
}

.wpl-testimonials__dot.is-active {
	background: var(--wp--preset--color--cta, #1d1d1f);
	transform: scale(1.25);
}

.wpl-testimonials__dot:focus-visible {
	outline: 2px solid var(--wp--preset--color--cta, #1d1d1f);
	outline-offset: 2px;
}

.wpl-testimonials__editor-item-actions {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

@media (max-width: 782px) {
	.wpl-testimonials {
		--wpl-tm-visible: min(var(--wpl-tm-cols, 3), 2);
	}
}

@media (max-width: 480px) {
	.wpl-testimonials {
		--wpl-tm-visible: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wpl-testimonials__dot {
		transition: none;
	}
}
