/* Dark-background ancestors flip buttons to Light variant */
.has-base-background-color,
.has-black-background-color {
	.wp-block-button.wc-block-components-product-button:not(.is-style-has-arrow) .wp-block-button__link.wc-block-components-product-button__button,
	.gc-link-anything.product-card .wp-block-buttons .wp-block-button:not(.is-style-has-arrow) .wp-block-button__link,
	.wc-block-components-button:not(.is-link):not(.text).contained,
	.wc-block-cart__submit-button,
	.wc-block-mini-cart__footer-checkout,
	.wc-block-mini-cart__shopping-button,
	.wc-block-mini-cart__footer-cart,
	.wc-block-components-checkout-place-order-button,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce .single_add_to_cart_button,
	.woocommerce a.checkout-button {
		background-color: var(--vinnshop-btn-light-bg) !important;
		color: var(--vinnshop-btn-light-color) !important;
		border: none !important;

		&:hover {
			background-color: var(--vinnshop-btn-light-bg-hover) !important;
			color: var(--vinnshop-btn-light-color) !important;
		}

		&:focus,
		&:focus-visible {
			outline: none;
			background-color: var(--vinnshop-btn-light-bg-focus) !important;
			color: var(--vinnshop-btn-light-color) !important;
			box-shadow: 0 0 0 1px var(--vinnshop-btn-light-focus-ring) !important;
		}

		&:active {
			background-color: var(--vinnshop-btn-light-bg-active) !important;
			color: var(--vinnshop-btn-light-color) !important;
		}

		&:disabled,
		&[disabled],
		&.disabled {
			background-color: var(--vinnshop-btn-disabled-bg) !important;
			color: var(--vinnshop-btn-disabled-color) !important;
			cursor: not-allowed;
		}
	}
}

/* A. Product buttons — Dark on light surfaces (default) */
.wp-block-button.wc-block-components-product-button:not(.is-style-has-arrow) .wp-block-button__link.wc-block-components-product-button__button,
.gc-link-anything.product-card .wp-block-buttons .wp-block-button:not(.is-style-has-arrow) .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	position: relative;
	background-color: var(--vinnshop-btn-dark-bg);
	color: var(--vinnshop-btn-dark-color);
	border: none;
	border-radius: var(--vinnshop-btn-radius);
	padding: var(--vinnshop-btn-padding);
	text-decoration: none;
	transition: var(--vinnshop-btn-transition);

	&:hover {
		background-color: var(--vinnshop-btn-dark-bg-hover);
		color: var(--vinnshop-btn-dark-color);
	}

	&:focus,
	&:focus-visible {
		outline: none;
		background-color: var(--vinnshop-btn-dark-bg-focus);
		color: var(--vinnshop-btn-dark-color);
		box-shadow: 0 0 0 1px var(--vinnshop-btn-dark-focus-ring);
	}

	&:active {
		background-color: var(--vinnshop-btn-dark-bg-active);
		color: var(--vinnshop-btn-dark-color);
	}

	&:disabled,
	&[disabled],
	&.disabled {
		background-color: var(--vinnshop-btn-disabled-bg);
		color: var(--vinnshop-btn-disabled-color);
		cursor: not-allowed;
	}

	@media all and (max-width: 768px) {
		padding: var(--vinnshop-btn-padding-mobile);
	}
}

/* B. WooCommerce component buttons — cart, checkout, mini-cart */
.wc-block-components-button:not(.is-link):not(.text).contained,
.wc-block-cart__submit-button,
.wc-block-mini-cart__footer-checkout,
.wc-block-mini-cart__shopping-button,
.wc-block-mini-cart__footer-cart,
.wc-block-components-checkout-place-order-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--vinnshop-btn-dark-bg) !important;
	color: var(--vinnshop-btn-dark-color) !important;
	border: none !important;
	border-radius: var(--vinnshop-btn-radius) !important;
	padding: var(--vinnshop-btn-padding) !important;
	box-shadow: none !important;
	text-decoration: none;
	transition: var(--vinnshop-btn-transition);
	cursor: pointer;

	&:hover {
		background-color: var(--vinnshop-btn-dark-bg-hover) !important;
		color: var(--vinnshop-btn-dark-color) !important;
		opacity: 1;
	}

	&:focus,
	&:focus-visible {
		outline: none;
		background-color: var(--vinnshop-btn-dark-bg-focus) !important;
		color: var(--vinnshop-btn-dark-color) !important;
		box-shadow: 0 0 0 1px var(--vinnshop-btn-dark-focus-ring) !important;
	}

	&:active {
		background-color: var(--vinnshop-btn-dark-bg-active) !important;
		color: var(--vinnshop-btn-dark-color) !important;
	}

	&:disabled,
	&[disabled],
	&[aria-disabled="true"],
	&.disabled {
		background-color: var(--vinnshop-btn-disabled-bg) !important;
		color: var(--vinnshop-btn-disabled-color) !important;
		cursor: not-allowed;
	}

	@media all and (max-width: 768px) {
		padding: var(--vinnshop-btn-padding-mobile) !important;
	}
}

/* C. Classic WooCommerce buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button,
.woocommerce a.checkout-button,
.woocommerce #respond input#submit,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--vinnshop-btn-dark-bg);
	color: var(--vinnshop-btn-dark-color);
	border: none;
	border-radius: var(--vinnshop-btn-radius);
	padding: var(--vinnshop-btn-padding);
	text-decoration: none;
	transition: var(--vinnshop-btn-transition);
	cursor: pointer;

	&:hover {
		background-color: var(--vinnshop-btn-dark-bg-hover);
		color: var(--vinnshop-btn-dark-color);
	}

	&:focus,
	&:focus-visible {
		outline: none;
		background-color: var(--vinnshop-btn-dark-bg-focus);
		color: var(--vinnshop-btn-dark-color);
		box-shadow: 0 0 0 1px var(--vinnshop-btn-dark-focus-ring);
	}

	&:active {
		background-color: var(--vinnshop-btn-dark-bg-active);
		color: var(--vinnshop-btn-dark-color);
	}

	&:disabled,
	&[disabled],
	&.disabled,
	&:disabled[disabled] {
		background-color: var(--vinnshop-btn-disabled-bg);
		color: var(--vinnshop-btn-disabled-color);
		cursor: not-allowed;
	}

	@media all and (max-width: 768px) {
		padding: var(--vinnshop-btn-padding-mobile);
	}
}
