/* K360 widgets - grid + carousel layout. Scoped to the widget markup. */

/* ---- Grid ---- */
ul.products.k-card-grid{
	display: grid;
	grid-template-columns: repeat(var(--k-cols, 4), minmax(0, 1fr));
	gap: var(--k-gap, 20px);
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.products.k-card-grid::before,
ul.products.k-card-grid::after{ display: none !important; content: none !important; }
ul.products.k-card-grid li.product{
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}

.k-card-empty{
	margin: 0;
	padding: 24px;
	text-align: center;
	color: #6b7280;
	box-shadow: inset 0 0 0 1.5px rgba(16, 22, 40, .14);
	border-radius: 14px;
}

/* ---- Carousel ---- */
.k-carousel{ position: relative; }
.k-carousel__viewport{ overflow: hidden; }
.k-carousel__track{
	display: flex;
	gap: var(--k-gap, 20px);
	margin: 0;
	padding: 6px 2px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
	cursor: grab;
}
.k-carousel__track::-webkit-scrollbar{ display: none; }
.k-carousel.is-dragging .k-carousel__track{ scroll-snap-type: none; cursor: grabbing; }
.k-carousel__track::before,
.k-carousel__track::after{ display: none !important; content: none !important; }

.k-carousel__track > li.product{
	scroll-snap-align: start;
	flex: 0 0 calc((100% - (var(--k-cols, 4) - 1) * var(--k-gap, 20px)) / var(--k-cols, 4));
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

/* Nav arrows */
.k-carousel__nav{
	position: absolute;
	top: 38%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	background: var(--k-card-accent, #007083);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	z-index: 3;
	box-shadow: none;
	transition: opacity .25s var(--k-card-ease, cubic-bezier(.23,1,.32,1)), transform .2s var(--k-card-ease, cubic-bezier(.23,1,.32,1));
}
.k-carousel__prev{ left: -8px; }
.k-carousel__next{ right: -8px; }
.k-carousel__nav.is-off{ opacity: 0; pointer-events: none; }
.k-carousel__nav:active{ transform: translateY(-50%) scale(.92); }
@media (hover: hover){
	.k-carousel__nav:hover{ opacity: .92; }
}

@media (max-width: 767px){
	.k-carousel__nav{ display: none; }
	.k-carousel__track{ padding-right: 16px; }
}

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