/* Product-only spacing for existing gateway wrappers. Native quantity/cart
 * controls keep their row, including when the mobile cart form becomes a grid.
 * No display, visibility, iframe sizing, or provider funding settings are set.
 */
body.single-product div.product .summary :is(
	#wc-stripe-express-checkout-element,
	.ppc-button-wrapper,
	#ppc-button-applepay-container,
	#ppc-button-googlepay-container
) {
	box-sizing: border-box;
	grid-column: 1 / -1;
	flex-basis: 100%;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	margin-block: 8px 0;
}

/* Only style recognized, existing Stripe mount wrappers after width detection.
 * Gateway inline visibility wins: no !important and no iframe/button overrides.
 * The containing element retains its provider-controlled display state.
 */
body.single-product #wc-stripe-express-checkout-element.ezdiy-express-columns {
	text-align: start;
	column-gap: 8px;
}
body.single-product #wc-stripe-express-checkout-element.ezdiy-express-columns > div:not([hidden]) {
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
	flex: 0 1 calc(50% - 4px);
	min-width: 0;
	width: calc(50% - 4px);
	margin-inline-end: 0;
}
@media print {
	body.single-product #wc-stripe-express-checkout-element.ezdiy-express-columns > div:not([hidden]) {
		width: 100%;
		margin-inline-end: 0;
	}
}
