.carousel {
	height: 100%;
	width: 100%;
	position: relative;
}

.carousel-content {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	height: 100%;
	width: 100%;
	border-radius: var(--border-radius);

	/* hide scrollbars */
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.carousel-content>* {
	flex: 1 0 100%;
	scroll-snap-align: center;
	scroll-snap-stop: always;
}

.carousel-btn {
	position: absolute;
	z-index: 2 !important;
	top: 50%;
	transform: translateY(-50%);
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 9999px;
	height: 42px;
	width: 30px;
	background-clip: padding-box;
	background-color: #fff;
	opacity: 0.9;
	cursor: pointer;
	transition: transform 60ms ease-in-out;
	backdrop-filter: saturate(1.8) blur(5px);
}

.carousel-btn:enabled:hover {
	opacity: 0.99;
}

.carousel-btn:disabled {
	opacity: 0.65;
	background-color: rgba(255, 255, 255, 0.5);
}

.carousel-btn:disabled svg {
	fill: #fff;
}

.carousel-btn:enabled:active {
	transform-origin: center;
	transform: translateY(-50%) scale(0.95);
}

.carousel-btn svg {
	height: 100%;
	width: 100%;
}

.carousel:not(:hover) .carousel-btn {
	display: none;
}

.carousel-btn-prev {
	left: 10px;
}

.carousel-btn-next {
	right: 10px;
}

.carousel-dots {
	position: absolute;
	bottom: 5px;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 4px;
}

.carousel-dots .carousel-dot {
	height: 4px;
	width: 4px;
	background-color: #fff;
	border-radius: 3px;
	z-index: 2;
	opacity: 0.5;
	transition: width 300ms ease-in-out;
}

.carousel-dots .carousel-dot.carousel-dot-current {
	opacity: 0.85;
	width: 10px;
}
