.lvjcb-slider__viewport {
	position: relative;
}

.lvjcb-slider__track {
	display: flex;
	gap: var(--lvjcb-space-md);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	list-style: none;
	margin: 0;
	padding: 0 0 var(--lvjcb-space-2xs);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.lvjcb-slider__track::-webkit-scrollbar {
	display: none;
}

.lvjcb-slider__track:focus-visible {
	outline: 2px solid var(--lvjcb-color-focus);
	outline-offset: 2px;
}

.lvjcb-slider__slide {
	flex: 0 0 85%;
	scroll-snap-align: start;
	min-width: 0;
}

.lvjcb-slider__controls {
	display: flex;
	gap: var(--lvjcb-space-sm);
	margin-top: var(--lvjcb-space-md);
	justify-content: flex-end;
}

.lvjcb-slider__prev,
.lvjcb-slider__next {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--lvjcb-color-border);
	background: var(--lvjcb-color-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lvjcb-color-text);
	cursor: pointer;
	transition: opacity var(--lvjcb-transition-fast), border-color var(--lvjcb-transition-fast);
}

.lvjcb-slider__prev:hover:not(:disabled),
.lvjcb-slider__next:hover:not(:disabled) {
	border-color: var(--lvjcb-color-primary);
	color: var(--lvjcb-color-primary);
}

.lvjcb-slider__prev:disabled,
.lvjcb-slider__next:disabled {
	opacity: 0.35;
	cursor: default;
}

.lvjcb-slider__prev:focus-visible,
.lvjcb-slider__next:focus-visible {
	outline: 2px solid var(--lvjcb-color-focus);
	outline-offset: 2px;
}

/* Dark section slider controls */
.lvjcb-section--dark .lvjcb-slider__prev,
.lvjcb-section--dark .lvjcb-slider__next {
	border-color: rgba(255,255,255,0.2);
	background: rgba(255,255,255,0.06);
	color: var(--lvjcb-color-text-on-dark);
}

.lvjcb-section--dark .lvjcb-slider__prev:hover:not(:disabled),
.lvjcb-section--dark .lvjcb-slider__next:hover:not(:disabled) {
	border-color: rgba(255,255,255,0.4);
	background: rgba(255,255,255,0.1);
	color: var(--lvjcb-color-accent);
}

@media (min-width: 769px) {
	.lvjcb-slider__slide {
		flex-basis: 46%;
	}
}

@media (min-width: 1025px) {
	.lvjcb-slider__slide {
		flex-basis: 23%;
	}

	.lvjcb-slider--3up .lvjcb-slider__slide {
		flex-basis: 31%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lvjcb-slider__track {
		scroll-behavior: auto;
	}

	.lvjcb-slider__prev,
	.lvjcb-slider__next {
		transition: none;
	}
}
