/**
 * Last-in-cascade compatibility fixes for Orologio and third-party markup.
 *
 * Purpose:
 * - catches cases where theme or plugin markup cannot be controlled upstream
 * - provides the "final say" layer when Orologio / WooCommerce / Elementor win the cascade
 * - stores emergency archive fixes that must load after everything else
 *
 * Edit here when:
 * - something looks wrong because theme CSS loads later or with broader selectors
 * - a third-party UI element needs BoraVision styling but has awkward markup
 *
 * Prefer tokens, base, components, layout or template files first.
 * Use this file when the problem is specifically about cascade order or compatibility.
 */

body.boravision {
	color: var(--bv-color-text);
	background-color: var(--bv-color-white);
	font-family: var(--bv-font-body);
	letter-spacing: 0;
}

body.boravision :is(h1, h2, h3, h4, h5) {
	font-family: var(--bv-font-heading);
	font-weight: 600;
	letter-spacing: 0;
}

body.boravision h6 {
	font-family: var(--bv-font-ui);
	font-weight: 600;
	letter-spacing: 0;
}

body.boravision :is(.button, button.button, a.button, input.button).outline,
body.boravision :is(.button, button.button, a.button, input.button).alt {
	border-color: var(--bv-color-black);
	color: var(--bv-color-black);
	background: transparent;
}

body.boravision :is(.button, button.button, a.button, input.button).outline:hover,
body.boravision :is(.button, button.button, a.button, input.button).alt:hover {
	color: var(--bv-color-white);
	background: var(--bv-color-black);
}

body.boravision .select2-container--default .select2-selection--single,
body.boravision .select2-container--default .select2-selection--multiple {
	min-height: var(--bv-control-height);
	border-color: var(--bv-color-border);
	border-radius: var(--bv-radius);
	background: var(--bv-color-white);
}

body.boravision .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 12px 40px 12px 16px;
	color: var(--bv-color-text);
	font-family: var(--bv-font-ui);
	line-height: 26px;
}

body.boravision .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: var(--bv-control-height);
}

body.boravision .blockUI.blockOverlay {
	background: rgb(255 255 255 / 72%);
}

body.boravision .required {
	color: var(--bv-color-danger);
}

/* Theme-level page-title suppression.
   BoraVision pages render their own headings through templates/widgets instead. */
/* Hide the parent theme's automatic Page Title / Headline block globally.
   BoraVision pages use explicit Elementor/template headings instead. */
/* Product List final live override.
   This file is printed last, after Elementor/Orologio, so archive cards match Single Product. */
body.boravision.woocommerce:not(.single-product) .woocommerce-pagination,
body.boravision.woocommerce:not(.single-product) nav.woocommerce-pagination,
body.boravision.woocommerce:not(.single-product) .page-numbers,
body.boravision .elementor-widget-wc-archive-products .woocommerce-pagination,
body.boravision .elementor-widget-woocommerce-archive-products .woocommerce-pagination,
body.boravision .elementor-wc-products .woocommerce-pagination,
body.boravision .elementor-wc-products .page-numbers {
	display: none !important;
}

body.boravision.woocommerce:not(.single-product) ul.products,
body.boravision .bv-product-list-template ul.products,
body.boravision .elementor-wc-products ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: clamp(34px, 3.6vw, 54px) clamp(24px, 3vw, 40px) !important;
	margin-bottom: clamp(72px, 8vw, 128px) !important;
	border: 0 !important;
	background: transparent !important;
}

body.boravision .bv-product-list-template:has(.bv-product-list-load-more) ul.products {
	margin-bottom: 0 !important;
}

body.boravision.woocommerce:not(.single-product) ul.products li.product,
body.boravision .bv-product-list-template ul.products li.product,
body.boravision .elementor-wc-products ul.products li.product {
	display: flex !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.boravision.woocommerce:not(.single-product) ul.products li.product .bv-product-card--archive,
body.boravision .bv-product-list-template ul.products li.product .bv-product-card--archive,
body.boravision .elementor-wc-products ul.products li.product .bv-product-card--archive {
	height: 100%;
	overflow: hidden;
	border: 0 !important;
	border-radius: 10px;
	background: var(--bv-color-white) !important;
	box-shadow: 0 18px 52px rgb(9 10 11 / 8%);
}

body.boravision.woocommerce:not(.single-product) ul.products li.product .bv-product-card--archive .bv-product-card__media-link,
body.boravision .bv-product-list-template ul.products li.product .bv-product-card--archive .bv-product-card__media-link,
body.boravision .elementor-wc-products ul.products li.product .bv-product-card--archive .bv-product-card__media-link {
	display: block;
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--bv-radius);
	background:
		radial-gradient(ellipse at 76% 70%, color-mix(in srgb, var(--bv-card-accent, #4c86c9) 18%, transparent) 0%, transparent 54%),
		linear-gradient(145deg, color-mix(in srgb, var(--bv-card-accent, #4c86c9) 7%, #f7f4ee) 0%, #ebe6dc 54%, color-mix(in srgb, var(--bv-card-accent, #4c86c9) 12%, #d9d0c3) 100%) !important;
	box-shadow: inset 0 0 0 1px rgb(9 10 11 / 6%);
}

body.boravision.woocommerce:not(.single-product) ul.products li.product .bv-product-card--archive .bv-card__media,
body.boravision .bv-product-list-template ul.products li.product .bv-product-card--archive .bv-card__media,
body.boravision .elementor-wc-products ul.products li.product .bv-product-card--archive .bv-card__media {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	padding: 0 !important;
	object-fit: contain;
	background: transparent !important;
	filter:
		drop-shadow(0 20px 18px rgb(9 10 11 / 24%))
		drop-shadow(0 4px 5px rgb(9 10 11 / 18%));
	transform: translateY(0) scale(1);
	transform-origin: center;
}

body.boravision.woocommerce:not(.single-product) ul.products li.product .bv-product-card--archive .bv-card__body,
body.boravision .bv-product-list-template ul.products li.product .bv-product-card--archive .bv-card__body,
body.boravision .elementor-wc-products ul.products li.product .bv-product-card--archive .bv-card__body {
	background: var(--bv-color-white) !important;
}

@media (max-width: 1180px) {
	body.boravision.woocommerce:not(.single-product) ul.products,
	body.boravision .bv-product-list-template ul.products,
	body.boravision .elementor-wc-products ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	body.boravision.woocommerce:not(.single-product) ul.products,
	body.boravision .bv-product-list-template ul.products,
	body.boravision .elementor-wc-products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 30px 16px !important;
		width: min(calc(100% - 24px), 1440px) !important;
	}
}
