/**
 * Ecommerce UI Components - Salient compatibility layer.
 *
 * This file contains ONLY verified, scoped Salient conflict fixes. It must never
 * contain general component design. Every rule here must be documented in
 * docs/SALIENT-INTEGRATION.md with the exact Salient version inspected and the
 * conflicting selector it neutralises.
 *
 * Salient version inspected: 17.1.0 (theme) / 3.0.5 (Salient Core).
 *
 * Verified conflict: Salient's global WooCommerce/button selectors apply the
 * theme accent background and rounded button style after plugin component CSS.
 * Keep the correction scoped to plugin-owned primary/outlined cart controls.
 */

body .ecui-component .ecui-button,
body .ecui-component button.single_add_to_cart_button,
body .ecui-component .woocommerce-variation-add-to-cart .button,
body .ecui-component .grouped_form .button {
	color: #fff !important;
	background-color: #000 !important;
	border: 1px solid #000 !important;
	border-radius: 50px !important;
	box-shadow: none !important;
}

body .ecui-component .ecui-button:hover,
body .ecui-component .ecui-button:focus-visible,
body .ecui-component button.single_add_to_cart_button:hover,
body .ecui-component button.single_add_to_cart_button:focus-visible,
body .ecui-component .woocommerce-variation-add-to-cart .button:hover,
body .ecui-component .woocommerce-variation-add-to-cart .button:focus-visible,
body .ecui-component .grouped_form .button:hover,
body .ecui-component .grouped_form .button:focus-visible {
	color: #000 !important;
	background-color: #fff !important;
	border-color: #000 !important;
}

body .main-content .ecui-product-hero .ecui-add-to-cart--variable form.cart .single_add_to_cart_button.button.alt {
	float: none !important;
	inline-size: 100% !important;
	margin: 0 !important;
	color: #fff !important;
	background: #000 !important;
	border: 1px solid #000 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

body .main-content .ecui-product-hero .ecui-add-to-cart--variable form.cart .single_add_to_cart_button.button.alt:hover,
body .main-content .ecui-product-hero .ecui-add-to-cart--variable form.cart .single_add_to_cart_button.button.alt:focus-visible {
	color: #000 !important;
	background: #fff !important;
	border-color: #000 !important;
}

body .ecui-product-hero form.ecui-add-to-cart--variable .ecui-add-to-cart__button.single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	float: none !important;
	inline-size: 100% !important;
	block-size: 50px !important;
	min-block-size: 50px !important;
	margin: 0 !important;
	padding: 12px 24px !important;
	color: #fff !important;
	background: #000 !important;
	border: 1px solid #000 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	line-height: 1 !important;
	transform: none !important;
}

body .ecui-product-hero form.ecui-add-to-cart--variable .ecui-add-to-cart__button.single_add_to_cart_button:hover,
body .ecui-product-hero form.ecui-add-to-cart--variable .ecui-add-to-cart__button.single_add_to_cart_button:focus-visible {
	color: #000 !important;
	background: #fff !important;
}

body .main-content .ecui-product-hero .ecui-variation-card {
	color: #111 !important;
	background: #fff !important;
	border: 2px solid #111 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

body .main-content .ecui-product-hero .ecui-variation-card.is-selected {
	border: 2px solid var(--ecui-color-accent) !important;
}

body .main-content .ecui-product-hero .ecui-product-hero__price,
body .main-content .ecui-product-hero .ecui-product-hero__price :is(.woocommerce-Price-amount, .amount, bdi) {
	color: #111 !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 600 !important;
	line-height: inherit !important;
}

body .main-content .ecui-product-hero .ecui-quantity {
	display: inline-flex !important;
	inline-size: auto !important;
	border: 1px solid #111 !important;
	border-radius: 0 !important;
}

body .main-content .ecui-product-hero .ecui-quantity :is(.ecui-quantity__btn, .ecui-quantity__input.qty) {
	flex: 0 0 auto !important;
	inline-size: 44px !important;
	min-inline-size: 44px !important;
	block-size: 48px !important;
	min-block-size: 48px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #111 !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body .main-content .ecui-product-hero .ecui-quantity .ecui-quantity__input.qty {
	inline-size: 56px !important;
	min-inline-size: 56px !important;
	border-inline: 1px solid #111 !important;
}

/*
 * Salient's base `body { overflow: hidden; }` makes the body the sticky
 * containing block. `clip` preserves horizontal containment without creating a
 * scroll container; visible vertical overflow restores viewport sticky.
 */
body.single-product:has(.ecui-product-hero) {
	overflow-x: clip !important;
	overflow-y: visible !important;
}

body .ecui-component .ecui-button--outline {
	color: #000 !important;
	background-color: #fff !important;
}

body .ecui-component .ecui-button--outline:hover,
body .ecui-component .ecui-button--outline:focus-visible {
	color: #fff !important;
	background-color: #000 !important;
}

body .ecui-component button,
body .ecui-component input,
body .ecui-component select,
body .ecui-component textarea {
	border-radius: 0;
}

body .ecui-product-archive button.ecui-layout-toggle {
	color: #111 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

body .ecui-product-archive button.ecui-layout-toggle.is-active {
	color: var(--ecui-color-accent) !important;
}

body .ecui-product-archive button.ecui-archive-header__filter-toggle {
	min-inline-size: 0 !important;
	padding: 0 !important;
	color: #111 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body .ecui-product-archive button.ecui-archive-header__filter-toggle:hover,
body .ecui-product-archive button.ecui-archive-header__filter-toggle:focus-visible {
	color: var(--ecui-color-accent) !important;
	background: transparent !important;
}

body .ecui-selector button.ecui-selector__tab {
	color: #111 !important;
	background-color: #fff !important;
	border: 2px solid #111 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

body .ecui-selector button.ecui-selector__tab.is-active {
	background-color: var(--ecui-color-accent-soft) !important;
	border-color: var(--ecui-color-accent) !important;
}

body .ecui-selector button.ecui-selector__tab .ecui-selector__tab-title {
	color: #111 !important;
}

body .ecui-selector button.ecui-selector__tab .ecui-eyebrow {
	color: var(--ecui-color-muted) !important;
}

/* Carousel icon controls are intentional circular exceptions. */
body .ecui-component .ecui-video-carousel__play,
body .ecui-component .ecui-video-carousel__arrow {
	background: #fff !important;
	border-radius: 50% !important;
}

body .ecui-component .ecui-video-carousel__play {
	color: var(--ecui-color-accent) !important;
	border: 0 !important;
}

body .ecui-component .ecui-video-carousel__arrow {
	color: #000 !important;
}

body .ecui-component .ecui-video-carousel__arrow:hover,
body .ecui-component .ecui-video-carousel__arrow:focus-visible {
	color: #fff !important;
	background: #000 !important;
}

body .ecui-component button.ecui-video-carousel__dot {
	flex: 0 0 44px !important;
	inline-size: 44px !important;
	min-inline-size: 44px !important;
	block-size: 44px !important;
	min-block-size: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

body .ecui-component button.ecui-video-carousel__dot::before {
	inline-size: 9px !important;
	block-size: 9px !important;
	background: #fff !important;
	border: 1px solid #000 !important;
	border-radius: 50% !important;
}

body .ecui-component button.ecui-video-carousel__dot.is-active::before {
	inline-size: 24px !important;
	block-size: 9px !important;
	background: var(--ecui-color-accent) !important;
	border-color: var(--ecui-color-accent) !important;
	border-radius: 999px !important;
}

@media (max-width: 767px) {
	body .ecui-component button.ecui-video-carousel__dot {
		flex-basis: 28px !important;
		inline-size: 28px !important;
		min-inline-size: 28px !important;
		block-size: 40px !important;
		min-block-size: 40px !important;
	}
}

body .ecui-component .ecui-video-product-card__add {
	color: #fff !important;
	background: var(--ecui-color-accent) !important;
	border: 1px solid var(--ecui-color-accent) !important;
	border-radius: 50% !important;
}

body .ecui-component .ecui-kit-tier-card__select,
body .ecui-component .ecui-kit-builder__add,
body .ecui-component .ecui-kit-header__cta {
	color: #fff !important;
	background: #111 !important;
	border: 1px solid #111 !important;
	border-radius: 0 !important;
}

body .ecui-component .ecui-kit-tier-card__select:hover,
body .ecui-component .ecui-kit-tier-card__select:focus-visible,
body .ecui-component .ecui-kit-builder__add:not(:disabled):hover,
body .ecui-component .ecui-kit-builder__add:not(:disabled):focus-visible,
body .ecui-component .ecui-kit-header__cta:hover,
body .ecui-component .ecui-kit-header__cta:focus-visible {
	color: #111 !important;
	background: #fff !important;
	border-color: #111 !important;
}

body .ecui-component button.ecui-product-card__quick-add,
body .ecui-component button.ecui-purchase-choice__close,
body .ecui-component button.ecui-purchase-choice__decline {
	color: #111 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/*
 * Salient adds decorative markers through `.main-content ul li::before`.
 * Neutralise that pseudo-element only on plugin-owned structural lists.
 */
body .main-content .ecui-component :is(
	.ecui-product-hero__benefits,
	.ecui-benefit-tags,
	.ecui-bundle__items,
	.ecui-archive-grid__list,
	.ecui-recommendations__list,
	.ecui-gallery__thumbs,
	.ecui-video-carousel__track,
	.ecui-pager,
	.ecui-kit-header__chips,
	.ecui-kit-builder__lines
) > li::before {
	display: none !important;
	content: none !important;
}

/* Product Hero style variants intentionally restore their own check marker and
 * selected-control treatment after the structural-list reset above. */
body .main-content .ecui-product-hero .ecui-product-hero__benefits > li::before {
	display: block !important;
	content: "✓" !important;
}

body .main-content .ecui-product-hero .ecui-variation-card.is-selected {
	color: #fff !important;
	background: var(--ecui-hero-accent) !important;
	border-color: var(--ecui-hero-accent) !important;
}

body .main-content .ecui-product-hero--style-nadura .ecui-variation-card.is-selected {
	color: #111 !important;
	background: var(--ecui-color-accent-soft) !important;
	border-color: var(--ecui-color-accent) !important;
}

body .ecui-product-hero--style-reference form.ecui-add-to-cart .ecui-add-to-cart__button,
body .ecui-product-hero--style-reference form.ecui-add-to-cart--variable .ecui-add-to-cart__button.single_add_to_cart_button {
	color: #111 !important;
	background: var(--ecui-hero-accent) !important;
	border-color: var(--ecui-hero-accent) !important;
	border-radius: 6px !important;
}

body .ecui-product-hero--style-reference form.ecui-add-to-cart .ecui-add-to-cart__button:hover,
body .ecui-product-hero--style-reference form.ecui-add-to-cart .ecui-add-to-cart__button:focus-visible {
	color: #fff !important;
	background: #111 !important;
	border-color: #111 !important;
}

body .main-content .ecui-product-hero--style-reference .ecui-variation-card {
	color: #111 !important;
	background: color-mix(in srgb, var(--ecui-color-accent) 5%, #fff) !important;
	border-width: 2px !important;
	border-color: var(--ecui-hero-border) !important;
	border-radius: var(--ecui-hero-radius) !important;
}

body .main-content .ecui-product-hero--style-reference .ecui-variation-card.is-selected {
	color: #111 !important;
	background: #fff !important;
	border-color: var(--ecui-color-accent) !important;
}

body .main-content .ecui-product-hero--style-reference .ecui-quantity {
	border-color: var(--ecui-hero-border) !important;
	border-radius: 6px !important;
	overflow: hidden;
}
