/* WooCommerce category/shop archives — match /sklep-internetowy/ catalog tiles */

.u-products {
	--lv-olive: #6c634a;
	--lv-green: #6c634a;
	--lv-green-2: #554d39;
	--lv-dark: #4e4837;
	--lv-text: #2f2d27;
	--lv-image-bg: #f6f4ef;
}

/* Hide Nicepage subcategory <select> */
.u-products .has-categories-listbox,
.u-products .u-categories-listbox {
	display: none !important;
}

/* Breadcrumbs (Nicepage productsTemplate has none) */
.lanviva-archive-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	width: 100%;
	margin: 8px 0 20px;
	padding: 0 4px;
	color: var(--lv-muted, #746f64);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.lanviva-archive-breadcrumbs a {
	color: var(--lv-green, #6c634a) !important;
	text-decoration: none !important;
}

.lanviva-archive-breadcrumbs a:hover {
	color: var(--lv-green-2, #554d39) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.lanviva-archive-breadcrumbs__sep {
	color: #c4bfb3;
	font-weight: 500;
}

/* Kill Nicepage section min-heights that create a huge empty white gap */
body.woocommerce .u-section-1,
body.tax-product_cat .u-section-1,
body.post-type-archive-product .u-section-1,
body.woocommerce .u-section-1 .u-sheet-1,
body.tax-product_cat .u-section-1 .u-sheet-1,
body.post-type-archive-product .u-section-1 .u-sheet-1,
body.woocommerce .u-section-1 .u-repeater-1,
body.tax-product_cat .u-section-1 .u-repeater-1,
body.post-type-archive-product .u-section-1 .u-repeater-1 {
	min-height: 0 !important;
	height: auto !important;
}

/* 4 products per row on desktop */
body.woocommerce .u-section-1 .u-repeater-1,
body.tax-product_cat .u-section-1 .u-repeater-1,
body.post-type-archive-product .u-section-1 .u-repeater-1 {
	grid-template-columns: repeat(4, 25%) !important;
	grid-auto-columns: 25% !important;
	align-items: stretch !important;
	gap: 0 !important;
}

@media (max-width: 1199px) {
	body.woocommerce .u-section-1 .u-repeater-1,
	body.tax-product_cat .u-section-1 .u-repeater-1,
	body.post-type-archive-product .u-section-1 .u-repeater-1 {
		grid-template-columns: repeat(3, 33.3333%) !important;
		grid-auto-columns: 33.3333% !important;
	}
}

@media (max-width: 991px) {
	body.woocommerce .u-section-1 .u-repeater-1,
	body.tax-product_cat .u-section-1 .u-repeater-1,
	body.post-type-archive-product .u-section-1 .u-repeater-1 {
		grid-template-columns: repeat(2, 50%) !important;
		grid-auto-columns: 50% !important;
	}
}

@media (max-width: 767px) {
	body.woocommerce .u-section-1 .u-repeater-1,
	body.tax-product_cat .u-section-1 .u-repeater-1,
	body.post-type-archive-product .u-section-1 .u-repeater-1 {
		grid-template-columns: repeat(1, 100%) !important;
		grid-auto-columns: 100% !important;
	}
}

/* Equal-height cards within the row (no section-tall stretch) */
.u-products .u-products-item {
	display: flex !important;
	flex-direction: column !important;
	height: auto !important;
	min-height: 100% !important;
	align-self: stretch !important;
	text-align: left !important;
}

.u-products .u-products-item > .u-container-layout {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	height: auto !important;
	min-height: 100% !important;
	padding: 14px 12px !important;
	text-align: left !important;
	align-items: stretch !important;
}

/* Same as /sklep-internetowy/: square 1:1 + rounded 14px + cover crop */
.u-products .u-products-item .u-image,
.u-products .u-products-item a.u-image,
.u-products .u-products-item .u-image-contain,
.u-products .u-products-item [class*="u-image-"] {
	position: relative !important;
	display: block !important;
	aspect-ratio: 1 / 1 !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	border-radius: 14px !important;
	background-color: var(--lv-image-bg) !important;
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	overflow: hidden !important;
}

.u-products .u-products-item .u-image img,
.u-products .u-products-item a.u-image img,
.u-products .u-products-item [class*="u-image-"] img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
	border-radius: 14px !important;
	transition: transform 0.45s;
}

.u-products .u-products-item:hover .u-image img,
.u-products .u-products-item:hover [class*="u-image-"] img {
	transform: scale(1.035);
}

@media (prefers-reduced-motion: reduce) {
	.u-products .u-products-item .u-image img,
	.u-products .u-products-item [class*="u-image-"] img {
		transition: none;
	}

	.u-products .u-products-item:hover .u-image img,
	.u-products .u-products-item:hover [class*="u-image-"] img {
		transform: none;
	}
}

/* Title — match catalog tile (smaller type, more air under image) */
.u-products .u-products-item [class*="u-text-"],
.u-products .u-products-item .lanviva-product-tile__title,
.u-products .u-products-item h4 {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 0;
	margin: 14px 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
	align-self: stretch !important;
	color: var(--lv-text) !important;
	font-size: clamp(12px, 0.85vw, 13px) !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

.u-products .u-products-item .u-product-title-link {
	text-align: left !important;
	color: var(--lv-text) !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	text-decoration: none !important;
}

.u-products .u-products-item .u-product-title-link:hover {
	color: var(--lv-green-2) !important;
}

/* Price — bottom-aligned; tight gap to title spacer and button */
.u-products .u-products-item .u-product-price,
.u-products .u-products-item .lanviva-product-tile__price,
.u-products .u-products-item [class*="u-product-price"] {
	width: 100% !important;
	margin: auto 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
	align-self: stretch !important;
	color: var(--lv-green) !important;
	font-size: 16px !important;
	font-weight: 750 !important;
	line-height: 1.25 !important;
}

.u-products .u-products-item .u-price-wrapper {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-start !important;
	gap: 6px !important;
	margin: 0 !important;
	padding: 0 !important;
}

.u-products .u-products-item .u-price,
.u-products .u-products-item .u-price.u-text-palette-2-base,
.u-products .u-products-item [class*="u-product-price"] .u-price {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--lv-green) !important;
	font-size: 16px !important;
	font-weight: 750 !important;
	line-height: 1.25 !important;
}

.u-products .u-products-item .u-old-price {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--lv-muted, #746f64) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
}

/* Button tight under price */
.u-products .u-products-item .add_to_cart_button,
.u-products .u-products-item a.add_to_cart_button,
.u-products .u-products-item a.lanviva-product-tile__cart,
.u-products .u-products-item a.u-btn.u-product-control,
.u-products .u-products-item .u-btn.u-product-control {
	visibility: visible;
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	max-width: none !important;
	min-height: 54px !important;
	margin: 10px 0 0 !important;
	padding: 13px 16px !important;
	border: 1px solid var(--lv-olive) !important;
	border-radius: 8px !important;
	background: var(--lv-olive) !important;
	box-shadow: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 750 !important;
	letter-spacing: 0.075em;
	line-height: 1.3 !important;
	text-align: center;
	text-decoration: none !important;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.u-products .u-products-item .add_to_cart_button:hover,
.u-products .u-products-item a.add_to_cart_button:hover,
.u-products .u-products-item a.lanviva-product-tile__cart:hover,
.u-products .u-products-item a.u-btn.u-product-control:hover,
.u-products .u-products-item .add_to_cart_button.u-button-style.u-text-body-color,
.u-products .u-products-item a.add_to_cart_button.u-button-style.u-text-body-color {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: var(--lv-olive) !important;
	border-color: var(--lv-olive) !important;
	border-radius: 8px !important;
}

.u-products .u-products-item .add_to_cart_button:hover,
.u-products .u-products-item a.lanviva-product-tile__cart:hover,
.u-products .u-products-item a.u-btn.u-product-control:hover {
	transform: translateY(-1px);
	background: var(--lv-dark) !important;
	border-color: var(--lv-dark) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

.u-products .u-products-item .add_to_cart_button.loading {
	pointer-events: none;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
}

.u-products .u-products-item .add_to_cart_button.loading::after {
	content: '';
	position: absolute;
	inset: 50% auto auto 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid rgb(255 255 255 / 35%);
	border-top-color: #fff;
	border-radius: 50%;
	animation: lanviva-cart-spin 0.65s linear infinite;
}

/* WC .added checkmark — keep inline after label, not centered on top of text. */
.u-products .u-products-item .add_to_cart_button.added::after,
.u-products .u-products-item a.lanviva-product-tile__cart.added::after {
	position: static !important;
	inset: auto !important;
	display: inline-block;
	margin: 0 0 0 0.45em !important;
	vertical-align: middle;
	line-height: 1;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

.u-products .u-products-item .added_to_cart {
	display: none !important;
}

/* Pagination (native WC + Pagination Styler) */
.lanviva-products-pagination,
.u-products .woocommerce-pagination {
	display: flex !important;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 28px 0 8px !important;
	padding: 0 !important;
}

.lanviva-products-pagination .woocommerce-pagination {
	margin: 0 !important;
}

.lanviva-products-pagination .u-pagination,
.lanviva-products-pagination ul.page-numbers,
.u-products .woocommerce-pagination ul.page-numbers {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
}

.lanviva-products-pagination .u-pagination-item,
.lanviva-products-pagination li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	border: none !important;
}

.lanviva-products-pagination a,
.lanviva-products-pagination span {
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 10px 16px !important;
	border: 1px solid var(--lv-olive) !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: var(--lv-olive) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em;
	text-decoration: none !important;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.lanviva-products-pagination a:hover,
.lanviva-products-pagination a:focus-visible {
	background: var(--lv-olive) !important;
	color: #fff !important;
	outline: none;
}

.lanviva-products-pagination .active a,
.lanviva-products-pagination .current,
.lanviva-products-pagination li.active a,
.lanviva-products-pagination li.active span {
	background: var(--lv-olive) !important;
	color: #fff !important;
	cursor: default;
}

.lanviva-products-pagination .dots,
.lanviva-products-pagination .u-pagination-separator a,
.lanviva-products-pagination .u-pagination-separator span {
	border-color: transparent !important;
	background: transparent !important;
	color: var(--lv-dark) !important;
	min-width: 28px;
	pointer-events: none;
}

@keyframes lanviva-cart-spin {
	to {
		transform: rotate(360deg);
	}
}
