[data-vivaz-carousel] {
	--vivaz-carousel-slides: 1;
	--vivaz-carousel-gap: var(--vivaz-space-5, 1.5rem);
}

.vivaz-cases-carousel__title,
.vivaz-blog-carousel__title {
	margin-block: 0 var(--vivaz-space-6, 2rem);
}

[data-vivaz-carousel-viewport] {
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	scrollbar-width: none;
}

[data-vivaz-carousel-viewport]::-webkit-scrollbar {
	display: none;
}

[data-vivaz-carousel-viewport] > [role="list"] {
	display: flex;
	gap: var(--vivaz-carousel-gap);
}

[data-vivaz-carousel-slide] {
	flex: 0 0 calc((100% - ((var(--vivaz-carousel-slides) - 1) * var(--vivaz-carousel-gap))) / var(--vivaz-carousel-slides));
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

[data-vivaz-carousel-slide] > article {
	height: 100%;
}

[data-vivaz-carousel-controls] {
	display: none;
	align-items: center;
	justify-content: flex-end;
	gap: var(--vivaz-space-3, 0.75rem);
	margin-block-start: var(--vivaz-space-4, 1rem);
}

[data-vivaz-carousel].is-ready:not(.is-static) [data-vivaz-carousel-controls] {
	display: flex;
}

[data-vivaz-carousel-previous],
[data-vivaz-carousel-next] {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: var(--vivaz-border-width, 1px) solid currentcolor;
	border-radius: 50%;
	background: var(--vivaz-color-surface, #ffffff);
	color: var(--vivaz-color-primary, #2457f5);
	cursor: pointer;
	transition: opacity var(--vivaz-transition-duration, 180ms) var(--vivaz-transition-easing, ease-out);
}

[data-vivaz-carousel-previous]:disabled,
[data-vivaz-carousel-next]:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

[data-vivaz-carousel]:dir(rtl) [data-vivaz-carousel-controls] [aria-hidden="true"] {
	display: inline-block;
	transform: scaleX(-1);
}

[data-vivaz-carousel-status] {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

[data-vivaz-carousel] .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

[data-vivaz-carousel-viewport]:focus-visible,
[data-vivaz-carousel-previous]:focus-visible,
[data-vivaz-carousel-next]:focus-visible {
	outline: 0.1875rem solid var(--vivaz-color-focus, #0b57d0);
	outline-offset: 0.1875rem;
}

@media (min-width: 48rem) {
	[data-vivaz-carousel] {
		--vivaz-carousel-slides: 2;
	}
}

@media (min-width: 64rem) {
	[data-vivaz-carousel] {
		--vivaz-carousel-slides: 3;
	}
}

@media (prefers-reduced-motion: reduce) {
	[data-vivaz-carousel-viewport] {
		scroll-behavior: auto;
	}
}
