.carousel {
	max-width: 100%;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 25% 1fr 25%;
	grid-template-areas:	"l	m	r"
							"bl	bm	br";
}

.carousel__track {
	grid-area: l-start / l-start / r-end / r-end;
	padding: 1em 0;
	margin: 0;
	list-style: none;
	border: 1px solid rgba(0, 0, 0, 0.5);
	border-radius: 4px;
	box-sizing: border-box;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	display: flex;
}

.carousel__track::-webkit-scrollbar {
	display: none;
}

.carousel__item {
	flex: 0 0 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	scroll-snap-align: center;
}

.carousel img {
	width: 100%;
	aspect-ratio: 1.78 / 1;
	object-fit: contain;
}

.carousel button {
	cursor: pointer;
	color: white;
	font-size: xx-large;
	-webkit-text-stroke: 2px black;
}

.carousel__button {
	height: 100%;
	background: transparent;
	border: none;
	opacity: 0.5;
	padding: 0.5em;
	transition: opacity 250ms ease-in-out;
	z-index: 1;
}

.carousel__button:hover {
	opacity: 1;
}

.carousel__button--left {
	grid-area: l;
	text-align: left;
}

.carousel__button--right {
	grid-area: r;
	text-align: right;
}

.carousel__nav {
	grid-area: bl-start / bl-start / br-end / br-end;
	padding: 10px 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.carousel__indicator {
	width: 10px;
	height: 10px;
	margin: 10px 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgb(0,0,0,.3);
	transition: background-color 150ms ease-in-out;
}

.carousel__indicator.current-slide {
	background-color: rgb(0,0,0,.75);
}

.carousel .is-hidden {
	display: none;
}

.carousel figure {
	height: auto;
	margin: 0;
	padding: 0;
}

.carousel figcaption {
	padding: 1em;
	color: black;
}