﻿/**
 * Alcli product cards.
 *
 * Single source for every WooCommerce loop on the site: shop archive, category
 * archives, the home page rows and related products. Scoped to .alcli-products
 * so it only touches the loops the Elementor templates opt in.
 *
 * Palette: beige #F4EFE3, red #CD4547, ink #14110F.
 *
 * Why .alcli-products is doubled in the selectors: Elementor generates its own
 * per widget CSS such as
 *   .elementor-widget-wc-archive-products.elementor-wc-products ul.products
 *   li.product .woocommerce-loop-product__title
 * which ties with this file on specificity and is enqueued later, so it would
 * win. Repeating the scope class lifts these rules above it without resorting
 * to !important, and without editing anything Elementor ships.
 */

/* Breathing room between the result count / sorting row and the first row of
   cards — WooCommerce leaves them almost touching.
   clear:both because the result count and the ordering form are floated in the
   classic markup, and a top margin on a block that follows a float is absorbed
   by the float instead of pushing the grid down. */
.alcli-products.alcli-products .woocommerce ul.products {
	clear: both;
	margin-top: 34px;
}

.alcli-products.alcli-products .woocommerce .woocommerce-result-count,
.alcli-products.alcli-products .woocommerce .woocommerce-ordering {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.alcli-products.alcli-products .woocommerce ul.products {
		margin-top: 22px;
	}
}

.alcli-products.alcli-products .woocommerce ul.products li.product,
.alcli-products.alcli-products .woocommerce ul.products li.product {
	--alcli-red: #cd4547;
	--alcli-ink: #14110f;
	--alcli-soft: #57514a;
	--alcli-beige: #f4efe3;

	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(20, 17, 15, 0.09);
	border-radius: 12px;
	padding: 0;
	overflow: hidden;
	text-align: left;
	transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.alcli-products.alcli-products .woocommerce ul.products li.product:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 44px -24px rgba(20, 17, 15, 0.5);
	border-color: rgba(205, 69, 71, 0.4);
}

/* The whole card above the button is one link. */
.alcli-products.alcli-products .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	text-decoration: none;
	color: inherit;
}

/* Image sits full bleed at the top and lifts slightly on hover. */
.alcli-products.alcli-products .woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 0 14px;
	border-radius: 0;
	background: var(--alcli-beige);
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.alcli-products.alcli-products .woocommerce ul.products li.product:hover img {
	transform: scale(1.05);
}

/* Everything below the image gets the same gutter. */
.alcli-products.alcli-products .woocommerce ul.products li.product .alcli-loop__cat,
.alcli-products.alcli-products .woocommerce ul.products li.product .woocommerce-loop-product__title,
.alcli-products.alcli-products .woocommerce ul.products li.product .alcli-loop__sku,
.alcli-products.alcli-products .woocommerce ul.products li.product .price {
	padding-inline: 15px;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .alcli-loop__cat {
	display: block;
	margin-bottom: 5px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--alcli-red);
	line-height: 1.3;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 6px;
	padding-top: 0;
	padding-bottom: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--alcli-ink);

	/* Two lines keeps every card the same height. */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.8em;
}

.alcli-products.alcli-products .woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--alcli-red);
}

.alcli-loop__sku {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.3px;
	color: var(--alcli-soft);
}

.alcli-loop__sku-label {
	display: inline-block;
	margin-inline-end: 4px;
	padding: 2px 6px;
	border-radius: 3px;
	background: var(--alcli-beige);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.8px;
	color: var(--alcli-ink);
	vertical-align: middle;
}

/* Variation count. Sits under the SKU and reads as a quiet capsule rather than
   another line of text, so it is distinguishable from the SKU above it at a
   glance without competing with the price below. */
.alcli-loop__options {
	display: inline-block;
	margin-bottom: 10px;
	padding: 3px 9px;
	border-radius: 999px;
	background: rgba(205, 69, 71, 0.09);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.4px;
	color: var(--alcli-red);
}

.alcli-products.alcli-products .woocommerce ul.products li.product .alcli-loop__options {
	margin-inline: 15px;
}

/* A variable product's price is a range. WooCommerce renders it as
   "$82.00 – $109.00" through get_price_html(), so nothing here builds it —
   the separator just needs room to breathe at this size. */
.alcli-products.alcli-products .woocommerce ul.products li.product .price .woocommerce-Price-amount + .woocommerce-Price-amount {
	margin-inline-start: 2px;
}

/* Price sits at the bottom of the link, so it lines up across the row. */
.alcli-products.alcli-products .woocommerce ul.products li.product .price {
	margin: auto 0 0;
	padding-bottom: 0;
	font-size: 18px;
	font-weight: 700;
	color: var(--alcli-red);
	line-height: 1.3;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .price del {
	margin-inline-end: 7px;
	font-size: 13px;
	font-weight: 400;
	color: #8b8378;
	opacity: 1;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .price ins {
	text-decoration: none;
	background: none;
}

/* Add to cart spans the card and stays pinned to the bottom. */
.alcli-products.alcli-products .woocommerce ul.products li.product .button,
.alcli-products.alcli-products .woocommerce ul.products li.product .added_to_cart {
	display: block;
	margin: 14px 15px 16px;
	padding: 12px 14px;
	border: 0;
	border-radius: 6px;
	background: var(--alcli-ink);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.9px;
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .button:hover,
.alcli-products.alcli-products .woocommerce ul.products li.product .added_to_cart:hover {
	background: var(--alcli-red);
	color: #fff;
}

.alcli-products.alcli-products .woocommerce ul.products li.product .added_to_cart {
	margin-top: 0;
	background: var(--alcli-beige);
	color: var(--alcli-ink);
}

/* Sale flash. Elementor's product grid CSS hides the default WooCommerce
   badge, so it has to be switched back on explicitly. */
.alcli-products.alcli-products .woocommerce ul.products li.product .onsale {
	display: block;
	position: absolute;
	top: 12px;
	inset-inline-end: 12px;
	inset-inline-start: auto;
	left: auto;
	z-index: 2;
	margin: 0;
	min-height: 0;
	min-width: 0;
	padding: 5px 10px;
	border-radius: 4px;
	background: var(--alcli-red);
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	line-height: 1.4;
}

/* Star ratings are noise on a wholesale catalogue with no reviews. */
.alcli-products.alcli-products .woocommerce ul.products li.product .star-rating,
.alcli-products.alcli-products .woocommerce ul.products li.product .woocommerce-product-rating {
	display: none;
}

/* ---------------------------------------------------------------------------
 * Shop archive column count.
 *
 * The archive runs 6 across on a wide screen. Elementor Pro ships
 * `.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products`
 * with no breakpoints at all, so without this it would stay 6 across on a
 * phone. These step it down; specificity sits just above Pro's rule.
 * ------------------------------------------------------------------------- */
.alcli-archive.alcli-archive .woocommerce ul.products {
	grid-template-columns: repeat(6, 1fr);
	gap: 22px;
}

@media (max-width: 1399px) {
	.alcli-archive.alcli-archive .woocommerce ul.products {
		grid-template-columns: repeat(5, 1fr);
	}
}

@media (max-width: 1200px) {
	.alcli-archive.alcli-archive .woocommerce ul.products {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (max-width: 1024px) {
	.alcli-archive.alcli-archive .woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 767px) {
	.alcli-archive.alcli-archive .woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
}

/* Cards get narrow at 6 across, so tighten the type a little there. */
@media (min-width: 1201px) {
	.alcli-archive.alcli-archive .woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 14px;
	}

	.alcli-archive.alcli-archive .woocommerce ul.products li.product .price {
		font-size: 16px;
	}

	.alcli-archive.alcli-archive .woocommerce ul.products li.product .button {
		margin: 12px 12px 14px;
		padding: 11px 8px;
		font-size: 11px;
		letter-spacing: 0.5px;
	}

	.alcli-archive.alcli-archive .woocommerce ul.products li.product .alcli-loop__cat,
	.alcli-archive.alcli-archive .woocommerce ul.products li.product .woocommerce-loop-product__title,
	.alcli-archive.alcli-archive .woocommerce ul.products li.product .alcli-loop__sku,
	.alcli-archive.alcli-archive .woocommerce ul.products li.product .price {
		padding-inline: 12px;
	}
}

@media (max-width: 600px) {
	.alcli-products.alcli-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 14px;
	}

	.alcli-products.alcli-products .woocommerce ul.products li.product .price {
		font-size: 16px;
	}

	.alcli-products.alcli-products .woocommerce ul.products li.product .button {
		margin: 12px 12px 14px;
		padding: 11px 10px;
		font-size: 11.5px;
	}

	.alcli-products.alcli-products .woocommerce ul.products li.product .alcli-loop__cat,
	.alcli-products.alcli-products .woocommerce ul.products li.product .woocommerce-loop-product__title,
	.alcli-loop__sku,
	.alcli-products.alcli-products .woocommerce ul.products li.product .price {
		padding-inline: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.alcli-products.alcli-products .woocommerce ul.products li.product,
	.alcli-products.alcli-products .woocommerce ul.products li.product img,
	.alcli-products.alcli-products .woocommerce ul.products li.product .button {
		transition: none !important;
		transform: none !important;
	}
}


