/**
 * Photo slider – infinite horizontal marquee
 */

.photo-slider {
	background-color: var(--color-bg-white);
	padding-block: var(--space-2xl);
	overflow: hidden;
}

.photo-slider__viewport {
	width: 100%;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
}

.photo-slider__track {
	display: flex;
	width: max-content;
	gap: 1.5rem;
	animation: photo-slider-scroll 45s linear infinite;
	will-change: transform;
}

.photo-slider__list {
	display: flex;
	align-items: stretch;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

.photo-slider__item {
	flex-shrink: 0;
	width: clamp(220px, 22vw, 340px);
	aspect-ratio: 3 / 2;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 8px 30px rgba(74, 31, 110, 0.08);
	border: 1px solid rgba(91, 46, 145, 0.1);
}

.photo-slider__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.photo-slider--square .photo-slider__item {
	border-radius: 0;
	box-shadow: none;
}

.photo-slider--square .photo-slider__track,
.photo-slider--square .photo-slider__list {
	gap: 1rem;
}

@keyframes photo-slider-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(calc(-50% - 0.75rem));
	}
}

@media (prefers-reduced-motion: reduce) {
	.photo-slider__track {
		animation: none;
		transform: translateX(0);
	}

	.photo-slider__viewport {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		mask-image: none;
		-webkit-mask-image: none;
	}
}

@media (max-width: 768px) {
	.photo-slider {
		padding-block: var(--space-xl);
	}

	.photo-slider__track,
	.photo-slider__list {
		gap: 0.875rem;
	}

	.photo-slider__item {
		width: clamp(180px, 58vw, 260px);
		border-radius: 18px;
	}

	@keyframes photo-slider-scroll {
		from {
			transform: translateX(0);
		}
		to {
			transform: translateX(calc(-50% - 0.4375rem));
		}
	}
}
