/* Classic Carousel layout for Elementor widget when card type is set to "classic" */
/* Container becomes a horizontal scroll carousel with spacing and rounded cards */

.cpc-products-carousel.cpc-classic {
	position: relative;
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	gap: 16px;
	padding: 8px 12px;
	scroll-snap-type: x mandatory;
	scroll-padding-inline-start: 12px; /* ensure full card visible at leading edge */
	scroll-padding-inline-end: 12px;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	align-items: center; /* vertical centering */
	/* Improve touch scroll responsiveness */
	/* Allow both axes so vertical page scroll is never blocked */
	touch-action: pan-y pan-x;
}

/* Hide scrollbar (non-essential) */
.cpc-products-carousel.cpc-classic::-webkit-scrollbar {
	display: none;
}

/* Card items should align nicely in the snap flow */
.cpc-products-carousel.cpc-classic > .cpc-card,
.cpc-products-carousel.cpc-classic > .cpc-product-card {
	flex: 0 0 auto;
	scroll-snap-align: start; /* align item start to container edge (RTL-friendly) */
	scroll-snap-stop: always; /* step one-by-one */
	border-radius: 12px !important;
	overflow: hidden;
	margin: 0; /* ensure spacing comes from gap */
	box-shadow: 0 1px 6px rgba(0,0,0,0.06);
	background-clip: padding-box;
}

/* Base width on viewport; we don't rely on the grid "columns" in carousel mode */
/* Mobile: show ~1.2 card per view */
/* Default mobile: show ~1.2-1.3 cards per view (wider than قبل) */
.cpc-products-carousel.cpc-classic > .cpc-card,
.cpc-products-carousel.cpc-classic > .cpc-product-card {
	flex-basis: calc(80% - 16px) !important;
	min-width: calc(80% - 16px);
}

/* Desktop widths based on columns setting */
@media (min-width: 768px) {
	.cpc-products-carousel.cpc-classic.cpc-columns-2 > .cpc-card,
	.cpc-products-carousel.cpc-classic.cpc-columns-2 > .cpc-product-card { flex-basis: calc(50% - 16px) !important; min-width: calc(50% - 16px); }
	.cpc-products-carousel.cpc-classic.cpc-columns-3 > .cpc-card,
	.cpc-products-carousel.cpc-classic.cpc-columns-3 > .cpc-product-card { flex-basis: calc(33.333% - 16px) !important; min-width: calc(33.333% - 16px); }
	.cpc-products-carousel.cpc-classic.cpc-columns-4 > .cpc-card,
	.cpc-products-carousel.cpc-classic.cpc-columns-4 > .cpc-product-card { flex-basis: calc(25% - 16px) !important; min-width: calc(25% - 16px); }
	.cpc-products-carousel.cpc-classic.cpc-columns-5 > .cpc-card,
	.cpc-products-carousel.cpc-classic.cpc-columns-5 > .cpc-product-card { flex-basis: calc(20% - 16px) !important; min-width: calc(20% - 16px); }
	.cpc-products-carousel.cpc-classic.cpc-columns-6 > .cpc-card,
	.cpc-products-carousel.cpc-classic.cpc-columns-6 > .cpc-product-card { flex-basis: calc(16.666% - 16px) !important; min-width: calc(16.666% - 16px); }
}

/* Tighten inner pieces so radius is visible and items have breathing space */
/* Image corners are now fully controlled by Elementor widget settings; no fixed top-only radius here */

/* Make sure default grid styles don't override display in classic mode */
.cpc-products-carousel.cpc-classic {
	/* guard against any grid rules elsewhere */
	grid-auto-flow: initial !important;
	grid-template-columns: none !important;
}

/* RTL support: make the carousel flow from right to left, prevent right-edge cut */
[dir='rtl'] .cpc-products-carousel.cpc-classic {
	direction: rtl;
	scroll-snap-type: inline mandatory; /* logical direction */
}

/* WooCommerce archive UL support: make product list behave as carousel */
.products.cpc-products-carousel.cpc-classic {
	display: flex !important;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	gap: 16px;
	padding: 8px 12px;
	list-style: none;
	margin-left: 0;
	margin-right: 0;
	scroll-snap-type: x mandatory;
	scroll-padding-inline-start: 12px;
	scroll-padding-inline-end: 12px;
	-webkit-overflow-scrolling: touch;
	align-items: center; /* vertical centering */
	/* Allow both axes so vertical page scroll is never blocked */
	touch-action: pan-y pan-x;
}

/* Desktop: disable snap to avoid back-and-forth sensation; JS handles centering when needed */
@media (min-width: 1025px) {
	.cpc-products-carousel.cpc-classic { scroll-snap-type: none; }
	.products.cpc-products-carousel.cpc-classic { scroll-snap-type: none; }
}

.products.cpc-products-carousel.cpc-classic > li.product {
	flex: 0 0 auto;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	margin: 0 !important; /* spacing via gap */
}

/* Default mobile width on archive */
.products.cpc-products-carousel.cpc-classic > li.product { flex-basis: calc(80% - 16px) !important; min-width: calc(80% - 16px); }

@media (min-width: 768px) {
	.products.cpc-products-carousel.cpc-classic.cpc-columns-2 > li.product { flex-basis: calc(50% - 16px) !important; min-width: calc(50% - 16px); }
	.products.cpc-products-carousel.cpc-classic.cpc-columns-3 > li.product { flex-basis: calc(33.333% - 16px) !important; min-width: calc(33.333% - 16px); }
	.products.cpc-products-carousel.cpc-classic.cpc-columns-4 > li.product { flex-basis: calc(25% - 16px) !important; min-width: calc(25% - 16px); }
	.products.cpc-products-carousel.cpc-classic.cpc-columns-5 > li.product { flex-basis: calc(20% - 16px) !important; min-width: calc(20% - 16px); }
	.products.cpc-products-carousel.cpc-classic.cpc-columns-6 > li.product { flex-basis: calc(16.666% - 16px) !important; min-width: calc(16.666% - 16px); }
}
/* RTL support for archive list */
[dir='rtl'] .products.cpc-products-carousel.cpc-classic {
	direction: rtl;
	scroll-snap-type: inline mandatory;
}

/* Ensure card shape/radius on archive items */
.products.cpc-products-carousel.cpc-classic > li.product .cpc-product-card,
.products.cpc-products-carousel.cpc-classic > li.product .cpc-card {
	border-radius: 12px !important;
	overflow: hidden;
}

/* Disable snap during active user drag for smoother feel */
.cpc-products-carousel.cpc-classic.cpc-dragging { scroll-snap-type: none; }
.products.cpc-products-carousel.cpc-classic.cpc-dragging { scroll-snap-type: none; }
