/**
 * PL Add To Cart — front-end layout (Divi 5).
 *
 * Theme packs (e.g. Tech Shop) often set `form.cart { display: grid }`, which
 * stacks quantity and the button as separate grid rows. Center/right alignment
 * already switches to flex via `.align_button_quanity_*`; left does not, so
 * quantity and the button sit on top of each other / look overlapped when all
 * alignments are left. Scope flex layout to this module and neutralize floats.
 */

.de_bodycommerce_add_to_cart form.variations_form.cart,
.et_pb_db_atc form.variations_form.cart {
	display: block !important;
}

/*
 * WooCommerce clearfix pseudos (::before/::after { display:table }) become flex/grid
 * items and push quantity + button onto separate rows — looks like overlap when left-aligned.
 */
.de_bodycommerce_add_to_cart form.cart::before,
.de_bodycommerce_add_to_cart form.cart::after,
.et_pb_db_atc form.cart::before,
.et_pb_db_atc form.cart::after,
.de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart::before,
.de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart::after,
.et_pb_db_atc .woocommerce-variation-add-to-cart::before,
.et_pb_db_atc .woocommerce-variation-add-to-cart::after {
	content: none !important;
	display: none !important;
}

.de_bodycommerce_add_to_cart form.cart:not(.variations_form),
.et_pb_db_atc form.cart:not(.variations_form),
.de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart,
.et_pb_db_atc .woocommerce-variation-add-to-cart {
	display: flex !important;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em;
	justify-content: flex-start;
}

.de_bodycommerce_add_to_cart.align_button_quanity_center form.cart:not(.variations_form),
.et_pb_db_atc.align_button_quanity_center form.cart:not(.variations_form),
.de_bodycommerce_add_to_cart.align_button_quanity_center .woocommerce-variation-add-to-cart,
.et_pb_db_atc.align_button_quanity_center .woocommerce-variation-add-to-cart {
	justify-content: center;
}

.de_bodycommerce_add_to_cart.align_button_quanity_right form.cart:not(.variations_form),
.et_pb_db_atc.align_button_quanity_right form.cart:not(.variations_form),
.de_bodycommerce_add_to_cart.align_button_quanity_right .woocommerce-variation-add-to-cart,
.et_pb_db_atc.align_button_quanity_right .woocommerce-variation-add-to-cart {
	justify-content: flex-end;
}

.de_bodycommerce_add_to_cart form.cart:not(.variations_form) .quantity,
.et_pb_db_atc form.cart:not(.variations_form) .quantity,
.de_bodycommerce_add_to_cart form.cart:not(.variations_form) .button,
.et_pb_db_atc form.cart:not(.variations_form) .button,
.de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart .quantity,
.et_pb_db_atc .woocommerce-variation-add-to-cart .quantity,
.de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart .button,
.et_pb_db_atc .woocommerce-variation-add-to-cart .button {
	float: none !important;
}

/* Theme packs often use negative margin-bottom on .quantity (e.g. -50px !important), which pulls the button up and overlaps when left-aligned. Beat `.woocommerce div.product form.cart div.quantity`. */
body.woocommerce div.product .de_bodycommerce_add_to_cart form.cart div.quantity,
body.woocommerce-page div.product .de_bodycommerce_add_to_cart form.cart div.quantity,
body.woocommerce div.product .et_pb_db_atc form.cart div.quantity,
body.woocommerce-page div.product .et_pb_db_atc form.cart div.quantity,
body.woocommerce div.product .de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart div.quantity,
body.woocommerce-page div.product .de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart div.quantity,
body.woocommerce div.product .et_pb_db_atc .woocommerce-variation-add-to-cart div.quantity,
body.woocommerce-page div.product .et_pb_db_atc .woocommerce-variation-add-to-cart div.quantity {
	margin-bottom: 0 !important;
	float: none !important;
	/*
	 * Theme packs (e.g. Tech Shop) offset .quantity with top:-57px and right:-110px
	 * (computes to left:110px). That shifts the field visually over the button while
	 * flex still lays out as if it were unshifted — looks like horizontal overlap.
	 */
	top: auto !important;
	right: auto !important;
	left: auto !important;
	inset: auto !important;
}

body.woocommerce div.product .de_bodycommerce_add_to_cart form.cart > .button,
body.woocommerce-page div.product .de_bodycommerce_add_to_cart form.cart > .button,
body.woocommerce div.product .et_pb_db_atc form.cart > .button,
body.woocommerce-page div.product .et_pb_db_atc form.cart > .button,
body.woocommerce div.product .de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart > .button,
body.woocommerce-page div.product .de_bodycommerce_add_to_cart .woocommerce-variation-add-to-cart > .button,
body.woocommerce div.product .et_pb_db_atc .woocommerce-variation-add-to-cart > .button,
body.woocommerce-page div.product .et_pb_db_atc .woocommerce-variation-add-to-cart > .button {
	float: none !important;
	margin-top: 0 !important;
}

.de_bodycommerce_add_to_cart .variations,
.et_pb_db_atc .variations {
	width: 100%;
	float: none;
	margin-bottom: 0.75em;
}

.de_bodycommerce_add_to_cart .variations td.label,
.et_pb_db_atc .variations td.label,
.de_bodycommerce_add_to_cart .variations td.value,
.et_pb_db_atc .variations td.value,
.de_bodycommerce_add_to_cart .variations td:last-child,
.et_pb_db_atc .variations td:last-child {
	float: none !important;
}

.de_bodycommerce_add_to_cart.align_variations_center .variations,
.et_pb_db_atc.align_variations_center .variations {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.de_bodycommerce_add_to_cart.align_variations_right .variations,
.et_pb_db_atc.align_variations_right .variations {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.de_bodycommerce_add_to_cart.et_pb_button_alignment_left .et_pb_module_inner,
.et_pb_db_atc.et_pb_button_alignment_left .et_pb_module_inner {
	text-align: left;
}

.de_bodycommerce_add_to_cart.et_pb_button_alignment_center .et_pb_module_inner,
.et_pb_db_atc.et_pb_button_alignment_center .et_pb_module_inner {
	text-align: center;
}

.de_bodycommerce_add_to_cart.et_pb_button_alignment_right .et_pb_module_inner,
.et_pb_db_atc.et_pb_button_alignment_right .et_pb_module_inner {
	text-align: right;
}

/* Full-width layout still stacks qty above button. */
.de_bodycommerce_add_to_cart.fullwidth-button form.cart:not(.variations_form),
.et_pb_db_atc.fullwidth-button form.cart:not(.variations_form),
.de_bodycommerce_add_to_cart.fullwidth-button .woocommerce-variation-add-to-cart,
.et_pb_db_atc.fullwidth-button .woocommerce-variation-add-to-cart {
	flex-direction: column;
	align-items: stretch;
}

.de_bodycommerce_add_to_cart.hide-quantity .cart .quantity,
.et_pb_db_atc.hide-quantity .cart .quantity {
	display: none !important;
}
