.wp-block-studio-zed-testimonial-carousel { margin: 0; max-width: none; width: 100%; }
.testimonial-carousel {
	--section-background: var(--sz-chalk);
	--panel-background: var(--sz-chalk);
	--text-colour: var(--sz-graphite);
	--grid-line: var(--sz-grid-line);
	--testimonial-content-width: calc(var(--grid-size) * 20);
}
.testimonial-carousel::after {
	background: var(--grid-line);
	bottom: 0;
	content: "";
	height: var(--grid-line-width);
	left: 0;
	pointer-events: none;
	position: absolute;
	width: 100%;
	z-index: 1;
}
.testimonial-carousel__panel { min-height: calc(var(--grid-size) * 8); }
.testimonial-carousel__content { box-sizing: border-box; position: relative; z-index: 1; display: grid; grid-template-columns: minmax(2.75rem, 1fr) minmax(0, var(--testimonial-content-width)) minmax(2.75rem, 1fr); column-gap: clamp(1.5rem, 3vw, 4rem); width: 100%; margin-inline: auto; padding-inline: var(--grid-size); color: var(--text-colour); text-align: center; }
.testimonial-carousel__heading { grid-column: 2; grid-row: 1; margin: 0 0 clamp(2rem, 3vw, 3rem); font-family: var(--font-heading); font-size: var(--type-heading-s-size); font-weight: 500; letter-spacing: .02em; line-height: var(--type-heading-s-line); text-transform: uppercase; }
.testimonial-carousel__viewport { display: grid; align-items: center; }
.testimonial-carousel__content > .testimonial-carousel__viewport { grid-column: 2; grid-row: 2; }
.testimonial-carousel__slide { grid-area: 1 / 1; margin: 0; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity var(--control-transition); }
.testimonial-carousel__slide.is-active { visibility: visible; opacity: 1; pointer-events: auto; }
.testimonial-carousel__slide blockquote,
.testimonial-carousel__slide blockquote p { margin: 0; }
.testimonial-carousel__slide blockquote p { font-family: var(--font-body); font-size: var(--type-body-l-size); font-style: italic; font-weight: var(--type-body-l-weight); line-height: var(--type-body-l-line); }
.testimonial-carousel__slide figcaption { display: inline-block; margin-top: 2rem; padding: var(--tag-padding-block) var(--tag-padding-inline); background: var(--sz-stone); font-family: var(--font-body); font-size: var(--type-tag-size); font-weight: var(--type-tag-weight); letter-spacing: .08em; line-height: var(--type-tag-line); text-transform: uppercase; }
.testimonial-carousel__dots { box-sizing: border-box; display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: var(--carousel-dot-gap, .75rem); width: calc(var(--grid-size) * var(--testimonial-dots-columns, 4)); max-width: calc(100% - var(--grid-size) * 2); height: calc(var(--grid-size) - var(--grid-line-width)); margin: var(--grid-size) auto 0; padding: 0; background: var(--section-background); }
.testimonial-carousel__dot { box-sizing: border-box; width: .7rem; height: .7rem; padding: 0; border: 0; border-radius: 0; background: var(--sz-graphite); cursor: pointer; }
.testimonial-carousel__dot.is-active { transform: rotate(45deg); }
.testimonial-carousel__arrow { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; background: transparent; color: var(--sz-graphite); cursor: pointer; }
.testimonial-carousel__arrow-icon { display: block; width: .9rem; height: .9rem; border-top: var(--stroke-width) solid currentColor; border-right: var(--stroke-width) solid currentColor; }
.testimonial-carousel__arrow--previous .testimonial-carousel__arrow-icon { transform: rotate(-135deg); }
.testimonial-carousel__arrow--next .testimonial-carousel__arrow-icon { transform: rotate(45deg); }
.testimonial-carousel__arrow:hover,
.testimonial-carousel__arrow:focus-visible { color: var(--sz-timber); }
.testimonial-carousel__arrow:focus-visible,
.testimonial-carousel__dot:focus-visible { outline: var(--focus-ring); outline-offset: .3rem; }
.testimonial-carousel__empty { box-sizing: border-box; max-width: 840px; margin: 28px auto; padding: 2rem; border: 1px solid #c7c7c7; }

@media (min-width: 48rem) {
	.testimonial-carousel__arrow { align-self: center; z-index: 2; grid-row: 2; }
	.testimonial-carousel__arrow--previous { grid-column: 1; justify-self: end; }
	.testimonial-carousel__arrow--next { grid-column: 3; justify-self: start; }
}

@media (max-width: 64rem) {
	.testimonial-carousel { --testimonial-content-width: calc(var(--grid-size) * 14); }
	.testimonial-carousel__dots {
		/* Fill the cell interiors without painting over their grid strokes.
		 * The stroke lies to the right of each boundary, so shift the
		 * centered interior by half a stroke to preserve both side lines. */
		width: calc(var(--grid-size) * var(--testimonial-dots-columns, 4) - var(--grid-line-width));
		max-width: calc(100% - var(--grid-size) * 2 - var(--grid-line-width));
		position: relative;
		left: calc(var(--grid-line-width) / 2);
	}
}

@media (max-width: 47.9375rem) {
	.testimonial-carousel { --testimonial-content-width: calc(var(--grid-size) * 10); }
	.testimonial-carousel__content { position: static; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; padding-inline: calc(var(--grid-size) * 2); }
	.testimonial-carousel__heading,
	.testimonial-carousel__content > .testimonial-carousel__viewport { grid-column: 1 / -1; }
	.testimonial-carousel__heading { grid-row: 1; }
	.testimonial-carousel__content > .testimonial-carousel__viewport { grid-row: 2; }
	.testimonial-carousel__panel {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: calc(var(--grid-size) * 11);
		/* Share grid snapping space equally to keep the content centered. */
		padding-block: calc(var(--panel-padding-top) + var(--panel-snap-padding) / 2) calc(var(--panel-padding-bottom) + var(--panel-snap-padding) / 2);
	}
	/* Anchor controls to the panel, outside the narrower text column. */
	.testimonial-carousel__arrow { position: absolute; bottom: calc(var(--panel-cut) + var(--grid-size) * .5); z-index: 2; margin: 0; }
	.testimonial-carousel__arrow--previous { left: calc(var(--grid-size) * .5); }
	.testimonial-carousel__arrow--next { right: calc(var(--grid-size) * .5); }
}
