.cptps-slider {
	--cptps-per-view: 5;
	--cptps-per-view-tablet: 3;
	--cptps-per-view-mobile: 2;
	--cptps-gap: 24px;
	--cptps-pv: var(--cptps-per-view);
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
}

@media (max-width: 1024px) {
	.cptps-slider { --cptps-pv: var(--cptps-per-view-tablet); }
}
@media (max-width: 767px) {
	.cptps-slider { --cptps-pv: var(--cptps-per-view-mobile); gap: 8px; }
}

.cptps-viewport {
	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.cptps-viewport::-webkit-scrollbar { display: none; }

.cptps-track {
	display: flex;
	gap: var(--cptps-gap);
}

.cptps-slide {
	flex: 0 0 calc((100% - (var(--cptps-pv) - 1) * var(--cptps-gap)) / var(--cptps-pv));
	scroll-snap-align: start;
	min-width: 0;
}

.cptps-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

.cptps-image {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #f2f2f2;
}
.cptps-image img,
.cptps-image .cptps-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.cptps-zoom-yes .cptps-card:hover .cptps-image img { transform: scale(1.05); }

.cptps-title {
	margin: 16px 0 0;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.35;
	color: #1a1a1a;
	transition: color .2s ease;
}

.cptps-arrow {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 50%;
	border: 1.5px solid #8b1a3a;
	color: #8b1a3a;
	background: transparent;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, opacity .2s ease, border-color .2s ease;
}
.cptps-arrow svg { width: 50%; height: 50%; }
.cptps-arrow:hover { background: #8b1a3a; color: #fff; }
.cptps-arrow:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.cptps-arrow[disabled] { opacity: .35; cursor: default; pointer-events: none; }
.cptps-slider.cptps-no-overflow .cptps-arrow { visibility: hidden; }
