.kp-carousel {
	--kp-c-height: 480px;
	--kp-c-gap: 16px;
	--kp-c-speed: 600ms;
	--kp-c-fade: 16%;
	--kp-c-op-near: 0.35;
	--kp-c-op-far: 0.12;
	--kp-c-scale-near: 0.94;
	--kp-c-scale-far: 0.9;
	--kp-c-arrow-size: 22px;
	--kp-c-arrow-color: #1A1A1A;
	--kp-c-arrow-color-hover: #6B1E63;
	--kp-c-arrow-gap: 12px;
	--kp-c-card-bg: #FFFFFF;
	--kp-c-mask-dir: to bottom;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--kp-c-arrow-gap, 12px);
	width: 100%;
}

.kp-carousel::before {
	content: "kp-carousel 1.4";
	display: none;
}

.kp-carousel__viewport {
	position: relative;
	width: 100%;
	height: var(--kp-c-height, 480px);
	overflow: hidden;
}

.kp-carousel--drag .kp-carousel__viewport {
	cursor: grab;
	touch-action: none;
}

.kp-carousel--drag.is-dragging .kp-carousel__viewport {
	cursor: grabbing;
}

.kp-carousel--mask .kp-carousel__viewport {
	-webkit-mask-image: linear-gradient(var(--kp-c-mask-dir, to bottom), transparent 0, #000 var(--kp-c-fade, 16%), #000 calc(100% - var(--kp-c-fade, 16%)), transparent 100%);
	mask-image: linear-gradient(var(--kp-c-mask-dir, to bottom), transparent 0, #000 var(--kp-c-fade, 16%), #000 calc(100% - var(--kp-c-fade, 16%)), transparent 100%);
}

.kp-carousel__track {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--kp-c-gap, 16px);
	will-change: transform;
	transition-property: transform;
	transition-duration: var(--kp-c-speed, 600ms);
	transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}

.kp-carousel__slide {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: var(--kp-c-op-far, 0.12);
	transform: scale(var(--kp-c-scale-far, 0.9));
	transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
	-webkit-user-select: none;
	user-select: none;
}

.kp-carousel__slide[data-dist="1"] {
	opacity: var(--kp-c-op-near, 0.35);
	transform: scale(var(--kp-c-scale-near, 0.94));
}

.kp-carousel__slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.kp-carousel__card {
	background: var(--kp-c-card-bg, #FFFFFF);
	padding: 32px 28px;
	border-radius: 18px;
	text-align: center;
}

.kp-carousel__img {
	display: inline-block;
	width: 64px;
	height: auto;
	margin-bottom: 12px;
}

.kp-carousel__title {
	margin: 0 0 10px;
}

.kp-carousel__text {
	margin: 0;
}

.kp-carousel__text p:last-child {
	margin-bottom: 0;
}

.kp-carousel__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px;
	border: 0;
	background: none !important;
	color: var(--kp-c-arrow-color, #1A1A1A);
	cursor: pointer;
	line-height: 0;
	transition: color 0.2s ease, opacity 0.2s ease;
}

.kp-carousel__arrow:hover,
.kp-carousel__arrow:focus {
	background: none !important;
	color: var(--kp-c-arrow-color-hover, #6B1E63);
}

.kp-carousel__arrow:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
	border-radius: 4px;
}

.kp-carousel__arrow svg {
	width: var(--kp-c-arrow-size, 22px);
	height: var(--kp-c-arrow-size, 22px);
}

.kp-carousel__arrow[disabled] {
	opacity: 0.25;
	cursor: default;
}

.kp-carousel__empty {
	padding: 20px;
	border: 1px dashed #c3c4c7;
	border-radius: 8px;
	color: #646970;
	font-size: 13px;
	text-align: center;
}

@media (max-width: 767px) {
	.kp-carousel {
		flex-direction: row;
	}

	.kp-carousel__viewport {
		flex: 1 1 auto;
		min-width: 0;
		height: auto;
	}

	.kp-carousel__track {
		flex-direction: row;
	}

	.kp-carousel__slide {
		width: var(--kp-c-slide-w, 100%);
		flex: 0 0 var(--kp-c-slide-w, 100%);
	}

	.kp-carousel--mask .kp-carousel__viewport {
		--kp-c-mask-dir: to right;
	}
.kp-carousel--mask .kp-carousel__viewport {
		--kp-c-mask-dir: to right;
	}

	/* Mobile: tylko swipe, bez strzałek */
	.kp-carousel__arrow {
		display: none !important;
	}

}

@media (prefers-reduced-motion: reduce) {
	.kp-carousel__track,
	.kp-carousel__slide {
		transition-duration: 0.01ms !important;
	}
}
