/**
 * Case-study carousel pages — wraps existing pillar case grids.
 * Nav chrome (.carousel-shell / .carousel-nav) lives in reviews.css.
 * Behaviour: assets/js/carousel.js
 */
/* surface: none */
.dl-case-carousel {
	margin-top: .25rem;
}
.dl-case-carousel__track {
	display: flex;
	gap: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
	direction: ltr;
	padding: .25rem 0 .5rem;
}
.dl-case-carousel__track::-webkit-scrollbar {
	display: none;
}
.dl-case-carousel__page {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	direction: rtl;
}

/* Automate — always a full row when the page has 3 cards (last page is padded). */
.dl-case-carousel__page.dl-automate__cases {
	display: grid;
	gap: 1.25rem;
	align-items: start;
}
@media (min-width: 760px) {
	.dl-case-carousel__page.dl-automate__cases {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.dl-case-carousel__page.dl-automate__cases:has(> article:only-child) {
		grid-template-columns: minmax(0, 1fr);
	}
	.dl-case-carousel__page.dl-automate__cases:has(> article:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Performance / Build — partial last pages must not leave white side gaps. */
	.dl-case-carousel__page.dl-performance__cases:has(> article:only-child),
	.dl-case-carousel__page.dl-build__projects:has(> article:only-child) {
		grid-template-columns: minmax(0, 1fr);
	}
	.dl-case-carousel__page.dl-performance__cases:has(> article:nth-child(2):last-child),
	.dl-case-carousel__page.dl-build__projects:has(> article:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dl-case-carousel .carousel-nav {
		gap: 18px;
		margin-top: 1.5rem;
	}
	.dl-case-carousel .carousel-nav > button {
		width: 48px;
		height: 48px;
		font-size: 1.25rem;
	}
}
