.ennoble-wo-wrap a.ennoble-wo-button,
a.ennoble-wo-button,
a.button.ennoble-wo-button,
.woocommerce a.ennoble-wo-button,
.woocommerce a.button.ennoble-wo-button,
.woocommerce-page a.button.ennoble-wo-button,
.woocommerce a.button.ennoble-wo-button:visited,
.woocommerce-page a.button.ennoble-wo-button:visited{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:.5rem;
	padding:.75rem 1rem;
	background-color:var(--ennoble-wo-bg, #25D366) !important;
	color:var(--ennoble-wo-fg, #FFFFFF) !important;
	border-radius:var(--ennoble-wo-radius, 6px) !important;
	text-decoration:none !important;
	font-weight:600;
	line-height:1.1;
	border:0;
	min-height:44px;
	white-space:normal;
	float:none !important;
	appearance:none;
	cursor:pointer;
	width:auto;
	box-sizing:border-box;
	text-align:center;
}

.ennoble-wo-wrap{
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	margin-top:.75rem !important;
	margin-bottom:.25rem !important;
	clear:both;
}

.ennoble-wo-wrap--single{
	justify-content:center;
	align-items:center;
}

.ennoble-wo-wrap--cart,
.ennoble-wo-wrap--checkout{
	justify-content:stretch;
	align-items:stretch;
}

/* Checkout-specific forcing (themes often style #payment .place-order buttons aggressively) */
.woocommerce-checkout #payment .place-order .ennoble-wo-wrap--checkout{
	width:100% !important;
	margin-top:.5rem !important;
	margin-bottom:0 !important;
}

.woocommerce-checkout #payment .place-order a.ennoble-wo-button--checkout{
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	width:100% !important;
	max-width:100% !important;
	float:none !important;
}

/* Extra hardening when the button is used outside #payment (builders/custom checkout layouts) */
a.ennoble-wo-button.ennoble-wo-button--checkout{
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
}

.ennoble-wo-wrap--loop{
	justify-content:stretch;
	align-items:stretch;
}

.ennoble-wo-button:hover,
.ennoble-wo-button:focus{
	text-decoration:none;
	opacity:.95;
	color:var(--ennoble-wo-fg, #FFFFFF) !important;
}

a.button.ennoble-wo-button:hover,
a.button.ennoble-wo-button:focus,
.woocommerce a.button.ennoble-wo-button:hover,
.woocommerce a.button.ennoble-wo-button:focus,
.woocommerce-page a.button.ennoble-wo-button:hover,
.woocommerce-page a.button.ennoble-wo-button:focus{
	background-color:var(--ennoble-wo-bg, #25D366) !important;
	color:var(--ennoble-wo-fg, #FFFFFF) !important;
}

.ennoble-wo-button:visited{color:var(--ennoble-wo-fg, #FFFFFF) !important;}
.ennoble-wo-button .ennoble-wo-text{color:var(--ennoble-wo-fg, #FFFFFF) !important;}
.ennoble-wo-button .ennoble-wo-icon{color:var(--ennoble-wo-fg, #FFFFFF) !important;}
.ennoble-wo-button .ennoble-wo-icon svg{display:block !important;width:100% !important;height:100% !important;}
.ennoble-wo-button .ennoble-wo-icon svg,
.ennoble-wo-button .ennoble-wo-icon path{fill:currentColor !important;}

.ennoble-wo-size-small{font-size:.875rem;padding:.6rem .9rem;}
.ennoble-wo-size-medium{font-size:1rem;padding:.75rem 1rem;}
.ennoble-wo-size-large{font-size:1.125rem;padding:.9rem 1.1rem;}

.ennoble-wo-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:1.15em;
	height:1.15em;
	flex:0 0 auto;
}

.ennoble-wo-icon i{
	font-size:1em;
	line-height:1;
	color:currentColor;
}

.ennoble-wo-icon svg{display:block;width:100%;height:100%;}

/* Context-specific sizing */
.ennoble-wo-wrap--loop a.button.ennoble-wo-button{
	padding:.6rem .85rem;
	min-height:44px;
	font-size:.9rem;
	letter-spacing:.02em;
	text-transform:uppercase;
}

.ennoble-wo-wrap--loop a.button.ennoble-wo-button .ennoble-wo-text{
	display:inline-block;
	max-width:100%;
	overflow:visible;
	text-overflow:unset;
	white-space:normal;
	text-align:center;
	line-height:1.2;
	word-break:break-word;
	hyphens:auto;
}

.ennoble-wo-wrap--loop{
	margin-top:.5rem !important;
}
.ennoble-wo-wrap--loop .ennoble-wo-icon{
	width:1.05em;
	height:1.05em;
}

@media (min-width: 480px){
	.ennoble-wo-wrap--single a.button.ennoble-wo-button{width:auto !important;}
	.ennoble-wo-wrap--loop a.button.ennoble-wo-button{width:100% !important;}
	.ennoble-wo-wrap--cart a.button.ennoble-wo-button,
	.ennoble-wo-wrap--checkout a.button.ennoble-wo-button{width:100% !important;}
}

/* Ensure full-width in loop/cart/checkout contexts */
.ennoble-wo-wrap--loop a.button.ennoble-wo-button,
.ennoble-wo-wrap--cart a.button.ennoble-wo-button,
.ennoble-wo-wrap--checkout a.button.ennoble-wo-button{
	width:100% !important;
}
