/*--------------------------------------------------------------
# Services page 3D carousel (Supah-style, brand-scoped)
--------------------------------------------------------------*/

.speedup-services-page {
	background: #000;
	min-height: 70vh;
}

.speedup-services-carousel {
	position: relative;
	z-index: 1;
	height: 100vh;
	min-height: 520px;
	overflow: hidden;
	pointer-events: none;
	font-family: inherit;
}

.speedup-services-carousel .carousel {
	position: relative;
	z-index: 1;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
}

.speedup-services-carousel .carousel-item {
	--items: 10;
	--width: clamp(150px, 30vw, 300px);
	--height: clamp(200px, 40vw, 400px);
	--x: calc(var(--active) * 800%);
	--y: calc(var(--active) * 200%);
	--rot: calc(var(--active) * 120deg);
	--opacity: calc(var(--zIndex) / var(--items) * 3 - 2);
	overflow: hidden;
	position: absolute;
	z-index: var(--zIndex);
	width: var(--width);
	height: var(--height);
	margin: calc(var(--height) * -0.5) 0 0 calc(var(--width) * -0.5);
	border-radius: 10px;
	top: 50%;
	left: 50%;
	user-select: none;
	transform-origin: 0% 100%;
	box-shadow: 0 10px 50px 10px rgba(0, 0, 0, 0.5);
	background: #000;
	pointer-events: all;
	transform: translate(var(--x), var(--y)) rotate(var(--rot));
	transition: transform 0.8s cubic-bezier(0, 0.02, 0, 1);
	cursor: grab;
}

.speedup-services-carousel .carousel-item:active {
	cursor: grabbing;
}

.speedup-services-carousel .carousel-box {
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity 0.8s cubic-bezier(0, 0.02, 0, 1);
	opacity: var(--opacity);
}

.speedup-services-carousel .carousel-box::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.35),
		rgba(0, 0, 0, 0) 30%,
		rgba(0, 0, 0, 0) 50%,
		rgba(0, 0, 0, 0.55)
	);
}

.speedup-services-carousel .title {
	position: absolute;
	z-index: 1;
	color: #fff;
	bottom: 20px;
	left: 20px;
	right: 20px;
	font-size: clamp(16px, 2.6vw, 26px);
	font-weight: 700;
	line-height: 1.25;
	text-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
}

.speedup-services-carousel .num {
	position: absolute;
	z-index: 1;
	color: #fff;
	top: 10px;
	left: 20px;
	font-size: clamp(28px, 8vw, 72px);
	font-weight: 700;
	line-height: 1;
	opacity: 0.9;
}

.speedup-services-carousel .carousel-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.speedup-services-carousel .layout {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.speedup-services-carousel .layout::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 0;
	left: 90px;
	width: 10px;
	height: 100%;
	border: 1px solid #fff;
	border-top: none;
	border-bottom: none;
	opacity: 0.15;
}

.speedup-services-carousel .layout .box {
	position: absolute;
	bottom: 0;
	left: 30px;
	color: #fff;
	transform-origin: 0% 10%;
	transform: rotate(-90deg);
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.04em;
	opacity: 0.45;
	max-width: 220px;
}

.speedup-services-carousel .layout-hint {
	position: absolute;
	z-index: 2;
	bottom: 28px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, 0.55);
	font-size: 13px;
	pointer-events: none;
	white-space: nowrap;
}

.speedup-services-carousel .cursor {
	position: fixed;
	z-index: 10;
	top: 0;
	left: 0;
	--size: 40px;
	width: var(--size);
	height: var(--size);
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	margin: calc(var(--size) * -0.5) 0 0 calc(var(--size) * -0.5);
	transition: transform 0.85s cubic-bezier(0, 0.02, 0, 1);
	display: none;
	pointer-events: none;
}

.speedup-services-carousel .cursor2 {
	--size: 2px;
	background: rgba(221, 44, 0, 0.85);
	border: none;
	transition-duration: 0.7s;
}

@media (pointer: fine) {
	.speedup-services-carousel .cursor {
		display: block;
	}
}

@media (max-width: 782px) {
	.speedup-services-carousel .layout::before,
	.speedup-services-carousel .layout .box {
		display: none;
	}

	.speedup-services-carousel {
		height: 100vh;
		min-height: 480px;
	}
}
