/**
 * eSalesPage block — Product Add to Cart.
 *
 * Dresses WooCommerce's own add-to-cart form (variations table, quantity,
 * native button) plus the block's own button row, variation pills / image
 * swatches and running-total box. Mobile-first; nothing may overflow a
 * 320px viewport. The theme's product-page rules live in @layer components,
 * so these unlayered rules win wherever both apply.
 */

.espt-block-pd-add-to-cart {
	--atc-accent: var(--bd-primary);
	--atc-accent-dark: var(--bd-primary-dark);
	--atc-btn-color: #fff;
	--atc-line: var(--bd-line);
	--atc-field-bg: var(--bd-box-bg);
	--atc-label-color: var(--bd-muted);
	--atc-sw-sel-bg: var(--bd-soft);
	--atc-sw-sel-color: var(--bd-primary-dark);
	--atc-calc-bg: var(--bd-soft);
	--atc-calc-line: var(--bd-soft-line);
	--atc-total-color: var(--bd-primary-dark);
	--atc-note-color: var(--bd-muted);
	--atc-box-bg: var(--bd-box-bg);
	--atc-radius: 12px;
	color: var(--bd-body);
}

.espt-block-pd-add-to-cart.is-btn-shape-pill {
	--atc-radius: 999px;
}

.espt-block-pd-add-to-cart.is-btn-shape-sharp {
	--atc-radius: 4px;
}

.espt-block-pd-add-to-cart.is-btn-shape-theme {
	--atc-radius: var(--espt-btn-radius, 10px);
}

.espt-block-pd-add-to-cart .espt-atc {
	margin: 0 auto;
	max-width: min(100%, var(--atc-max, 1200px));
	min-width: 0;
}

.espt-block-pd-add-to-cart .espt-atc-head {
	color: var(--bd-ink);
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 10px;
}

/* --- designs --- */
.espt-block-pd-add-to-cart.is-design-card .espt-atc,
.espt-block-pd-add-to-cart.is-design-soft .espt-atc,
.espt-block-pd-add-to-cart.is-design-outline .espt-atc,
.espt-block-pd-add-to-cart.is-design-dashed .espt-atc {
	border-radius: var(--bd-radius, 16px);
	padding: 14px;
}

.espt-block-pd-add-to-cart.is-design-card .espt-atc {
	background: var(--atc-box-bg);
	border: 1px solid var(--atc-line);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.07);
}

.espt-block-pd-add-to-cart.is-design-soft .espt-atc {
	background: var(--bd-soft);
	border: 1px solid var(--bd-soft-line);
}

.espt-block-pd-add-to-cart.is-design-outline .espt-atc {
	background: var(--atc-box-bg);
	border: 2px solid var(--atc-accent);
}

.espt-block-pd-add-to-cart.is-design-dashed .espt-atc {
	background: var(--atc-box-bg);
	border: 2px dashed var(--atc-line);
}

/* --- the form --- */
.espt-block-pd-add-to-cart .espt-pd-purchase {
	min-width: 0;
	width: 100%;
}

.espt-block-pd-add-to-cart form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--atc-gap, 10px);
	margin: 0;
	min-width: 0;
}

.espt-block-pd-add-to-cart form.cart > *,
.espt-block-pd-add-to-cart form.cart p {
	margin: 0;
	min-width: 0;
}

.espt-block-pd-add-to-cart form.cart .variations,
.espt-block-pd-add-to-cart form.cart .single_variation_wrap,
.espt-block-pd-add-to-cart form.cart .woocommerce-variation,
.espt-block-pd-add-to-cart form.cart .woocommerce-variation-add-to-cart,
.espt-block-pd-add-to-cart .espt-atc-calc,
.espt-block-pd-add-to-cart .espt-atc-btnrow {
	flex: 1 1 100%;
	min-width: 0;
	width: 100%;
}

.espt-block-pd-add-to-cart .woocommerce-variation-add-to-cart {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--atc-gap, 10px);
}

/* variations table → stacked label + control rows */
.espt-block-pd-add-to-cart table.variations,
.espt-block-pd-add-to-cart table.variations tbody,
.espt-block-pd-add-to-cart table.variations tr,
.espt-block-pd-add-to-cart table.variations th,
.espt-block-pd-add-to-cart table.variations td {
	background: none;
	border: 0;
	display: block;
	margin: 0;
	padding: 0;
	text-align: inherit;
	width: 100%;
}

.espt-block-pd-add-to-cart table.variations {
	border-collapse: collapse;
	margin: 0 0 2px;
	min-width: 0;
}

.espt-block-pd-add-to-cart table.variations tr + tr {
	margin-top: 12px;
}

.espt-block-pd-add-to-cart table.variations th.label {
	margin-bottom: 5px;
}

.espt-block-pd-add-to-cart table.variations label {
	color: var(--atc-label-color);
	font-size: var(--atc-label-size, 12.5px);
	font-weight: 700;
	letter-spacing: 0.6px;
	margin: 0;
	text-transform: uppercase;
}

.espt-block-pd-add-to-cart table.variations td.value {
	position: relative;
}

.espt-block-pd-add-to-cart table.variations select {
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--atc-field-bg);
	background-image: url( 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18"><path fill="none" stroke="%236b7280" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" d="M6 9l6 6 6-6"/></svg>' );
	background-position: right 12px center;
	background-repeat: no-repeat;
	border: 1.5px solid var(--atc-line);
	border-radius: var(--atc-radius);
	color: inherit;
	font-size: 14px;
	max-width: 100%;
	padding: 11px 38px 11px 14px;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
	width: 100%;
}

.espt-block-pd-add-to-cart table.variations select:focus-visible {
	border-color: var(--atc-accent);
	box-shadow: 0 0 0 3px color-mix( in srgb, var(--atc-accent) 22%, transparent );
	outline: none;
}

.espt-block-pd-add-to-cart .reset_variations {
	color: var(--bd-muted);
	display: inline-block;
	font-size: 12.5px;
	margin-top: 6px;
}

/* pills replace the select once the script has built them */
.espt-block-pd-add-to-cart td.value.espt-atc-swon select {
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	width: 1px;
}

.espt-block-pd-add-to-cart .espt-atc-sws {
	display: flex;
	flex-wrap: wrap;
	gap: var(--atc-sw-gap, 8px);
	min-width: 0;
	/* The "selected" badge sits 6px outside its pill — this keeps it inside
	   the row so it can never push a 320px viewport sideways. */
	padding: 7px 7px 0 0;
}

/* the pills stand in for the label's own control, so it sits tighter */
.espt-block-pd-add-to-cart .espt-atc.has-swatches table.variations th.label {
	margin-bottom: 0;
}

/* image swatches read as tappable rows, not tiny chips */
.espt-block-pd-add-to-cart .espt-atc-sws.is-images .espt-atc-sw {
	flex: 1 1 auto;
	justify-content: flex-start;
	min-width: min( 100%, max( var(--atc-sw-min, 52px), 130px ) );
}

.espt-block-pd-add-to-cart .espt-atc-sw {
	align-items: center;
	background: var(--atc-field-bg);
	border: 1.5px solid var(--atc-line);
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	color: var(--bd-ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 13.5px;
	font-weight: 700;
	gap: 8px;
	justify-content: center;
	line-height: 1.2;
	max-width: 100%;
	min-height: 40px;
	min-width: var(--atc-sw-min, 52px);
	overflow-wrap: anywhere;
	padding: 9px 14px;
	position: relative;
	transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.14s ease, box-shadow 0.16s ease;
}

.espt-block-pd-add-to-cart.is-sw-shape-sharp .espt-atc-sw {
	border-radius: 4px;
}

.espt-block-pd-add-to-cart.is-sw-shape-pill .espt-atc-sw {
	border-radius: 999px;
}

.espt-block-pd-add-to-cart.is-sw-shape-circle .espt-atc-sw {
	border-radius: 999px;
	min-width: 0;
	padding: 9px;
	width: max( 44px, var(--atc-sw-min, 52px) );
}

/* a price (or a thumbnail) never fits a fixed-width circle — let it grow */
.espt-block-pd-add-to-cart.is-sw-shape-circle .espt-atc-sw.has-price {
	padding: 9px 15px;
	width: auto;
}

.espt-block-pd-add-to-cart.is-sw-shape-circle .espt-atc-sw.is-img {
	padding: 6px 15px 6px 6px;
	width: auto;
}

.espt-block-pd-add-to-cart .espt-atc-sw:hover {
	border-color: var(--atc-accent);
	color: var(--atc-accent-dark);
	transform: translateY( -1px );
}

.espt-block-pd-add-to-cart .espt-atc-sw:focus-visible {
	outline: 2px solid var(--atc-accent);
	outline-offset: 2px;
}

.espt-block-pd-add-to-cart .espt-atc-sw:active {
	transform: scale( 0.97 );
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-selected {
	background: var(--atc-sw-sel-bg);
	border-color: var(--atc-accent);
	color: var(--atc-sw-sel-color);
	box-shadow: 0 0 0 1px var(--atc-accent) inset, 0 6px 16px color-mix( in srgb, var(--atc-accent) 20%, transparent );
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-selected::after {
	background: var(--atc-accent) url( 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="white" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round" d="M5 12l5 5 9-11"/></svg>' ) no-repeat center / 12px;
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(15, 23, 42, 0.25);
	content: "";
	height: 18px;
	position: absolute;
	right: -6px;
	top: -6px;
	width: 18px;
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-disabled {
	cursor: not-allowed;
	opacity: 0.42;
	pointer-events: none;
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-disabled::before {
	background: var(--bd-muted);
	content: "";
	height: 1.5px;
	left: 8%;
	position: absolute;
	right: 8%;
	top: 50%;
	transform: rotate( -11deg );
}

.espt-block-pd-add-to-cart .espt-atc-sw-col {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 1px;
	line-height: 1.25;
	min-width: 0;
	text-align: center;
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-img .espt-atc-sw-col {
	align-items: flex-start;
	text-align: left;
}

.espt-block-pd-add-to-cart .espt-atc-sw-name {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.espt-block-pd-add-to-cart .espt-atc-sw-price {
	display: block;
	font-size: 0.86em;
	font-weight: 700;
	opacity: 0.72;
	white-space: nowrap;
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-selected .espt-atc-sw-price {
	opacity: 1;
}

.espt-block-pd-add-to-cart .espt-atc-sw.is-img {
	gap: 9px;
	padding: 6px 14px 6px 6px;
}

.espt-block-pd-add-to-cart .espt-atc-sw-thumb {
	background: var(--bd-soft);
	border-radius: 8px;
	display: block;
	flex: none;
	height: var(--atc-sw-img, 38px);
	object-fit: cover;
	width: var(--atc-sw-img, 38px);
}

.espt-block-pd-add-to-cart.is-sw-shape-circle .espt-atc-sw-thumb,
.espt-block-pd-add-to-cart.is-sw-shape-pill .espt-atc-sw-thumb {
	border-radius: 999px;
}

/* --- quantity --- */
.espt-block-pd-add-to-cart .quantity {
	align-items: stretch;
	display: inline-flex;
	flex: none;
	max-width: 100%;
	min-width: 0;
}

.espt-block-pd-add-to-cart .quantity input.qty {
	appearance: textfield;
	-moz-appearance: textfield;
	background: var(--atc-field-bg);
	border: 1.5px solid var(--atc-line);
	border-radius: var(--atc-radius);
	color: inherit;
	font-size: 15px;
	font-weight: 700;
	height: var(--atc-qty-h, 52px);
	line-height: 1;
	max-width: 100%;
	padding: 0 4px;
	text-align: center;
	width: var(--atc-qty-w, 46px);
}

.espt-block-pd-add-to-cart .quantity input.qty::-webkit-inner-spin-button,
.espt-block-pd-add-to-cart .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.espt-block-pd-add-to-cart .quantity input.qty:focus-visible {
	border-color: var(--atc-accent);
	outline: none;
}

.espt-block-pd-add-to-cart.is-stepper .quantity,
.espt-block-pd-add-to-cart .quantity.espt-atc-qtybox {
	background: var(--atc-field-bg);
	border: 1.5px solid var(--atc-line);
	border-radius: var(--atc-radius);
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
	height: var(--atc-qty-h, 52px);
	overflow: hidden;
}

.espt-block-pd-add-to-cart.is-stepper .quantity input.qty,
.espt-block-pd-add-to-cart .quantity.espt-atc-qtybox input.qty {
	border: 0;
	border-radius: 0;
	height: 100%;
}

.espt-block-pd-add-to-cart .espt-atc-qbtn,
.espt-block-pd-add-to-cart .quantity .espt-qty-btn {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--bd-muted);
	cursor: pointer;
	display: inline-flex;
	flex: none;
	font-size: 19px;
	font-weight: 500;
	height: 100%;
	justify-content: center;
	line-height: 1;
	padding: 0;
	transition: background 0.16s ease, color 0.16s ease, transform 0.12s ease;
	width: clamp( 34px, 12vw, 44px );
}

.espt-block-pd-add-to-cart .espt-atc-qbtn.is-minus {
	border-right: 1.5px solid color-mix( in srgb, var(--atc-line) 60%, transparent );
}

.espt-block-pd-add-to-cart .espt-atc-qbtn.is-plus {
	border-left: 1.5px solid color-mix( in srgb, var(--atc-line) 60%, transparent );
}

.espt-block-pd-add-to-cart .espt-atc-qbtn:hover,
.espt-block-pd-add-to-cart .quantity .espt-qty-btn:hover {
	background: var(--atc-accent);
	color: #fff;
}

.espt-block-pd-add-to-cart .espt-atc-qbtn:active {
	transform: scale( 0.9 );
}

.espt-block-pd-add-to-cart .espt-atc-qbtn.is-capped {
	animation: espt-atc-nudge 0.35s ease;
	color: var(--bd-accent);
}

/* --- buttons --- */
.espt-block-pd-add-to-cart .espt-atc-btnrow {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: var(--atc-gap, 10px);
	min-width: 0;
}

.espt-block-pd-add-to-cart.is-btn-layout-column .espt-atc-btnrow {
	flex-direction: column;
}

.espt-block-pd-add-to-cart.is-btn-align-start .espt-atc-btnrow {
	justify-content: flex-start;
}

.espt-block-pd-add-to-cart.is-btn-align-center .espt-atc-btnrow {
	justify-content: center;
}

.espt-block-pd-add-to-cart.is-btn-align-end .espt-atc-btnrow {
	justify-content: flex-end;
}

.espt-block-pd-add-to-cart .espt-atc-btn,
.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button,
.espt-block-pd-add-to-cart form.cart .espt-buy-now,
.espt-block-pd-add-to-cart form.cart .espt-pd-wa {
	align-items: center;
	background: var(--abtn-bg, linear-gradient( 135deg, var(--atc-accent), var(--atc-accent-dark) ));
	border: 1.5px solid transparent;
	border-radius: var(--atc-radius);
	box-shadow: none;
	color: var(--abtn-color, var(--atc-btn-color));
	cursor: pointer;
	display: inline-flex;
	flex: 1 1 var(--atc-btn-min, 150px);
	font-size: var(--atc-btn-font, 14px);
	font-weight: 700;
	gap: 9px;
	justify-content: center;
	letter-spacing: 0.2px;
	line-height: 1.2;
	margin: 0;
	min-height: var(--atc-btn-h, 48px);
	min-width: 0;
	overflow: hidden;
	padding: 10px 18px;
	position: relative;
	text-align: center;
	text-decoration: none;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.espt-block-pd-add-to-cart.is-btn-align-start .espt-atc-btn,
.espt-block-pd-add-to-cart.is-btn-align-center .espt-atc-btn,
.espt-block-pd-add-to-cart.is-btn-align-end .espt-atc-btn {
	flex: 0 1 auto;
	min-width: min( 100%, var(--atc-btn-min, 150px) );
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-full,
.espt-block-pd-add-to-cart.is-btn-layout-column .espt-atc-btn {
	flex: 1 1 100%;
	width: 100%;
}

.espt-block-pd-add-to-cart .espt-atc-t {
	min-width: 0;
	overflow-wrap: anywhere;
}

.espt-block-pd-add-to-cart .espt-atc-i,
.espt-block-pd-add-to-cart .espt-atc-btn svg,
.espt-block-pd-add-to-cart form.cart .espt-buy-now svg,
.espt-block-pd-add-to-cart form.cart .espt-pd-wa svg {
	flex: none;
	height: var(--atc-icon, 17px);
	width: var(--atc-icon, 17px);
}

.espt-block-pd-add-to-cart .espt-atc-i svg {
	display: block;
	height: 100%;
	width: 100%;
}

.espt-block-pd-add-to-cart.is-hover-lift .espt-atc-btn:hover,
.espt-block-pd-add-to-cart.is-hover-lift form.cart .single_add_to_cart_button:hover,
.espt-block-pd-add-to-cart.is-hover-lift form.cart .espt-buy-now:hover {
	transform: translateY( -2px );
}

.espt-block-pd-add-to-cart .espt-atc-btn:active {
	transform: scale( 0.98 );
}

.espt-block-pd-add-to-cart .espt-atc-btn:focus-visible {
	outline: 2px solid var(--atc-accent-dark);
	outline-offset: 2px;
}

/* button skins */
.espt-block-pd-add-to-cart .espt-atc-btn.is-solid {
	box-shadow: 0 8px 20px color-mix( in srgb, var(--atc-accent) 26%, transparent );
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-solid:hover {
	filter: brightness( 1.06 );
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-outline {
	background: var(--abtn-bg, var(--atc-field-bg));
	border-color: var(--atc-line);
	color: var(--abtn-color, var(--bd-ink));
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-outline:hover {
	background: var(--abtn-bg, var(--bd-soft));
	border-color: var(--atc-accent);
	color: var(--abtn-color, var(--atc-accent-dark));
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-dark {
	background: var(--abtn-bg, var(--bd-ink));
	color: var(--abtn-color, #fff);
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-dark:hover {
	filter: brightness( 1.2 );
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-soft {
	background: var(--abtn-bg, var(--bd-soft));
	border-color: var(--bd-soft-line);
	color: var(--abtn-color, var(--atc-accent-dark));
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-soft:hover {
	filter: brightness( 0.97 );
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-accent {
	background: var(--abtn-bg, var(--bd-accent));
	color: var(--abtn-color, var(--bd-accent-ink));
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-accent:hover {
	filter: brightness( 1.06 );
}

/* the shine sweep on solid buttons */
.espt-block-pd-add-to-cart.is-shine .espt-atc-btn.is-solid::after {
	animation: espt-atc-shine 3.4s ease-in-out infinite;
	background: linear-gradient( 105deg, transparent 40%, rgba(255, 255, 255, 0.35) 50%, transparent 60% );
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	transform: translateX( -130% );
}

/* attention animations */
.espt-block-pd-add-to-cart .espt-atc-btn.has-anim {
	animation: var(--abtn-anim) var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-pulse .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-pulse var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-bounce .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-bounce var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-float .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-float var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-heartbeat .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-heartbeat var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-glow .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-glow var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

.espt-block-pd-add-to-cart.is-btn-anim-shake .espt-atc-btn:not( .has-anim ) {
	animation: espt-atc-shake var(--atc-anim-dur, 1.8s) ease-in-out infinite;
}

/* states */
.espt-block-pd-add-to-cart .espt-atc-btn.is-loading,
.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button.is-loading {
	cursor: wait;
	opacity: 0.7;
	pointer-events: none;
}

.espt-block-pd-add-to-cart .espt-atc-btn.is-added,
.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button.is-added {
	box-shadow: 0 0 0 2px var(--atc-accent) inset, 0 6px 16px color-mix( in srgb, var(--atc-accent) 24%, transparent );
}

.espt-block-pd-add-to-cart .espt-atc-btn[disabled],
.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button.disabled,
.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button:disabled,
.espt-block-pd-add-to-cart .woocommerce-variation-add-to-cart-disabled .espt-atc-btn {
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.45;
	transform: none;
}

/* the theme's own buttons keep their own colours */
.espt-block-pd-add-to-cart form.cart .espt-buy-now {
	background: linear-gradient( 135deg, var(--atc-accent), var(--atc-accent-dark) );
}

.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button {
	background: var(--bd-ink);
	color: #fff;
}

.espt-block-pd-add-to-cart form.cart .espt-pd-wa {
	background: #25d366;
	color: #fff;
}

/* custom mode hides WooCommerce's own submit button (it stays in the DOM
   so Woo keeps toggling its disabled state for variations) */
.espt-block-pd-add-to-cart.is-buttons-mode-custom form.cart .single_add_to_cart_button {
	display: none;
}

.espt-block-pd-add-to-cart form.cart .added_to_cart {
	display: none;
}

/* --- native stock / variation price lines --- */
.espt-block-pd-add-to-cart.no-show-stock .stock,
.espt-block-pd-add-to-cart.no-show-stock .woocommerce-variation-availability {
	display: none;
}

.espt-block-pd-add-to-cart .stock {
	font-size: 13px;
	margin: 2px 0 0;
}

.espt-block-pd-add-to-cart .stock.in-stock {
	color: var(--atc-accent-dark);
}

.espt-block-pd-add-to-cart .stock.out-of-stock {
	color: var(--bd-danger);
}

.espt-block-pd-add-to-cart.no-show-var-price .woocommerce-variation-price,
.espt-block-pd-add-to-cart.no-show-var-price .single_variation .price {
	display: none;
}

.espt-block-pd-add-to-cart .woocommerce-variation-price .price {
	color: var(--atc-total-color);
	font-size: 18px;
	font-weight: 800;
}

/* --- running total --- */
.espt-block-pd-add-to-cart .espt-atc-calc {
	background: var(--atc-calc-bg);
	border: 1px solid var(--atc-calc-line);
	border-radius: var(--bd-radius, 14px);
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 2px 0;
	padding: 12px 13px;
}

.espt-block-pd-add-to-cart .espt-pd-calc-row {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	justify-content: space-between;
	min-width: 0;
}

.espt-block-pd-add-to-cart .espt-pd-calc-summary {
	color: var(--bd-ink);
	flex: 1 1 auto;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.45;
	min-width: 0;
	overflow-wrap: anywhere;
}

.espt-block-pd-add-to-cart .espt-atc-var,
.espt-block-pd-add-to-cart .espt-atc-qty {
	color: var(--bd-muted);
	font-weight: 600;
}

.espt-block-pd-add-to-cart .espt-pd-calc-unit,
.espt-block-pd-add-to-cart .espt-atc-dlv {
	color: var(--bd-ink);
	flex: none;
	font-weight: 700;
	white-space: nowrap;
}

.espt-block-pd-add-to-cart .espt-atc-free {
	color: var(--atc-accent-dark);
}

.espt-block-pd-add-to-cart .espt-pd-calc-label {
	color: var(--bd-muted);
	font-size: 13.5px;
	font-weight: 600;
}

.espt-block-pd-add-to-cart .espt-atc-totrow {
	border-top: 1px dashed color-mix( in srgb, var(--atc-calc-line) 80%, transparent );
	padding-top: 8px;
}

.espt-block-pd-add-to-cart .espt-pd-calc-total {
	color: var(--atc-total-color);
	flex: none;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
	white-space: nowrap;
}

.espt-block-pd-add-to-cart .espt-pd-calc-total .amount,
.espt-block-pd-add-to-cart .espt-pd-calc-unit .amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.espt-block-pd-add-to-cart .espt-pd-calc-note {
	color: var(--atc-note-color);
	font-size: 12.5px;
	line-height: 1.55;
	margin: 0;
	overflow-wrap: anywhere;
}

/* delivery zones */
.espt-block-pd-add-to-cart .espt-pd-zones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.espt-block-pd-add-to-cart .espt-pd-zone {
	align-items: center;
	background: var(--atc-field-bg);
	border: 1.5px solid var(--atc-line);
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	font-size: 12.5px;
	gap: 7px;
	margin: 0;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	padding: 7px 12px;
	position: relative;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.espt-block-pd-add-to-cart .espt-pd-zone input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}

.espt-block-pd-add-to-cart .espt-pd-zone:hover {
	border-color: var(--atc-accent);
}

.espt-block-pd-add-to-cart .espt-pd-zone.is-on {
	background: var(--atc-sw-sel-bg);
	border-color: var(--atc-accent);
	box-shadow: 0 0 0 1px var(--atc-accent) inset;
}

.espt-block-pd-add-to-cart .espt-pd-zone:focus-within {
	outline: 2px solid var(--atc-accent);
	outline-offset: 2px;
}

.espt-block-pd-add-to-cart .espt-pd-zone-amt {
	color: var(--atc-accent-dark);
	font-weight: 700;
	white-space: nowrap;
}

.espt-block-pd-add-to-cart.no-show-total .espt-atc-calc {
	display: none;
}

/* --- the block's own status line --- */
.espt-block-pd-add-to-cart .espt-atc-msg {
	font-size: 13px;
	font-weight: 600;
	margin: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.2s ease, opacity 0.2s ease, margin 0.2s ease;
}

.espt-block-pd-add-to-cart .espt-atc-msg.is-on {
	border-radius: 10px;
	margin-top: 10px;
	max-height: 200px;
	opacity: 1;
	padding: 9px 12px;
}

.espt-block-pd-add-to-cart .espt-atc-msg.is-ok,
.espt-block-pd-add-to-cart .espt-atc-msg.is-info {
	background: var(--bd-soft);
	color: var(--atc-accent-dark);
}

.espt-block-pd-add-to-cart .espt-atc-msg.is-warn,
.espt-block-pd-add-to-cart .espt-atc-msg.is-error {
	background: color-mix( in srgb, var(--bd-danger) 10%, #fff );
	color: var(--bd-danger);
}

/* the editor / no-product note */
.espt-block-pd-add-to-cart .espt-block-note {
	background: var(--bd-soft);
	border: 1px dashed var(--bd-soft-line);
	border-radius: 12px;
	color: var(--bd-muted);
	font-size: 13.5px;
	margin: 0;
	padding: 14px 16px;
	text-align: center;
}

/* ------------------------------------------------------------- tablet */
@media ( min-width: 768px ) {

	.espt-block-pd-add-to-cart.is-design-card .espt-atc,
	.espt-block-pd-add-to-cart.is-design-soft .espt-atc,
	.espt-block-pd-add-to-cart.is-design-outline .espt-atc,
	.espt-block-pd-add-to-cart.is-design-dashed .espt-atc {
		padding: 18px;
	}

	.espt-block-pd-add-to-cart .espt-atc-calc {
		gap: 10px;
		padding: 14px 16px;
	}

	.espt-block-pd-add-to-cart .espt-pd-calc-summary,
	.espt-block-pd-add-to-cart .espt-pd-calc-label {
		font-size: 14px;
	}

	.espt-block-pd-add-to-cart .espt-atc-btn,
	.espt-block-pd-add-to-cart form.cart .single_add_to_cart_button,
	.espt-block-pd-add-to-cart form.cart .espt-buy-now,
	.espt-block-pd-add-to-cart form.cart .espt-pd-wa {
		padding: 12px 24px;
	}
}

/* ------------------------------------------------------------ desktop */
@media ( min-width: 1024px ) {

	.espt-block-pd-add-to-cart.is-design-card .espt-atc,
	.espt-block-pd-add-to-cart.is-design-soft .espt-atc,
	.espt-block-pd-add-to-cart.is-design-outline .espt-atc,
	.espt-block-pd-add-to-cart.is-design-dashed .espt-atc {
		padding: 22px;
	}

	.espt-block-pd-add-to-cart .espt-pd-calc-total {
		font-size: 22px;
	}
}

/* --------------------------------------------------------- keyframes */
@keyframes espt-atc-shine {
	0% { transform: translateX( -130% ); }
	55%, 100% { transform: translateX( 130% ); }
}

@keyframes espt-atc-pulse {
	0%, 100% { transform: scale( 1 ); }
	50% { transform: scale( 1.035 ); }
}

@keyframes espt-atc-bounce {
	0%, 100% { transform: translateY( 0 ); }
	40% { transform: translateY( -5px ); }
	60% { transform: translateY( -2px ); }
}

@keyframes espt-atc-float {
	0%, 100% { transform: translateY( 0 ); }
	50% { transform: translateY( -4px ); }
}

@keyframes espt-atc-heartbeat {
	0%, 100% { transform: scale( 1 ); }
	14% { transform: scale( 1.06 ); }
	28% { transform: scale( 1 ); }
	42% { transform: scale( 1.06 ); }
	56% { transform: scale( 1 ); }
}

@keyframes espt-atc-glow {
	0%, 100% { box-shadow: 0 0 0 0 color-mix( in srgb, var(--atc-accent) 45%, transparent ); }
	50% { box-shadow: 0 0 0 10px transparent; }
}

@keyframes espt-atc-shake {
	0%, 100% { transform: translateX( 0 ); }
	20% { transform: translateX( -4px ); }
	40% { transform: translateX( 4px ); }
	60% { transform: translateX( -3px ); }
	80% { transform: translateX( 3px ); }
}

@keyframes espt-atc-nudge {
	0%, 100% { transform: translateX( 0 ); }
	33% { transform: translateX( -3px ); }
	66% { transform: translateX( 3px ); }
}

/* The class names are repeated on purpose: the attention animations above are
   set from compound selectors (.is-btn-anim-* .espt-atc-btn:not(.has-anim),
   .is-shine .espt-atc-btn.is-solid::after), so these overrides must out-weigh
   them instead of merely coming later in the file. */
@media ( prefers-reduced-motion: reduce ) {

	.espt-block-pd-add-to-cart .espt-atc-btn.espt-atc-btn.espt-atc-btn,
	.espt-block-pd-add-to-cart .espt-atc-btn.espt-atc-btn.espt-atc-btn::after,
	.espt-block-pd-add-to-cart .espt-atc-qbtn.espt-atc-qbtn.espt-atc-qbtn,
	.espt-block-pd-add-to-cart .espt-atc-sw.espt-atc-sw.espt-atc-sw,
	.espt-block-pd-add-to-cart .espt-pd-zone.espt-pd-zone.espt-pd-zone,
	.espt-block-pd-add-to-cart .espt-atc-msg.espt-atc-msg.espt-atc-msg {
		animation: none;
		transition: none;
	}

	.espt-block-pd-add-to-cart .espt-atc-btn.espt-atc-btn.espt-atc-btn:hover,
	.espt-block-pd-add-to-cart .espt-atc-btn.espt-atc-btn.espt-atc-btn:active,
	.espt-block-pd-add-to-cart .espt-atc-sw.espt-atc-sw.espt-atc-sw:hover,
	.espt-block-pd-add-to-cart .espt-atc-sw.espt-atc-sw.espt-atc-sw:active,
	.espt-block-pd-add-to-cart .espt-atc-qbtn.espt-atc-qbtn.espt-atc-qbtn:active {
		transform: none;
	}
}
