/**
 * Fig 1507 — Add to Cart widget styles.
 * Minimal structural CSS only; everything visual is exposed in Elementor.
 */
.fig-atc {
	--fig-atc-gap: 12px;
}

.fig-atc form.cart {
	margin: 0;
}

/* Inline layout: quantity + button on one row.
   Simple products = form.cart; variable products = the variation wrap. */
.fig-atc--inline form.cart:not(.variations_form),
.fig-atc--inline .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--fig-atc-gap);
}

/* Stacked layout. */
.fig-atc--stacked form.cart:not(.variations_form),
.fig-atc--stacked .woocommerce-variation-add-to-cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--fig-atc-gap);
}

/* ---- Variations inline with the button (single row) ----
   Flattens WooCommerce's variations table + add-to-cart wrap onto one flex row
   using display:contents, so swatches and the button sit side by side. */
.fig-atc--vars-inline form.variations_form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	/* Use the swatch gap so the spacing after the last swatch (before the
	   button) matches the spacing between swatches. */
	gap: var(--fig-swatch-gap, 8px);
	margin: 0;
}
.fig-atc--vars-inline form.variations_form table.variations,
.fig-atc--vars-inline form.variations_form table.variations tbody,
.fig-atc--vars-inline form.variations_form table.variations tr,
.fig-atc--vars-inline form.variations_form .single_variation_wrap {
	display: contents;
}
.fig-atc--vars-inline form.variations_form th.label,
.fig-atc--vars-inline form.variations_form td.value {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	width: auto;
}
.fig-atc--vars-inline .fig-swatches {
	margin: 0;
}
.fig-atc--vars-inline .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: var(--fig-atc-gap);
	margin: 0;
}
/* The (mostly empty) variation info block and reset link would add gaps. */
.fig-atc--vars-inline .woocommerce-variation {
	display: none !important;
}
.fig-atc--vars-inline .reset_variations {
	display: none !important;
}

/* Hide the attribute label (e.g. "Sessions"). */
.fig-atc--hide-labels form.variations_form th.label {
	display: none !important;
}

/* Quantity field + buttons. */
.fig-atc .quantity {
	display: inline-flex;
	align-items: stretch;
	margin: 0;
}

.fig-atc .quantity .qty {
	text-align: center;
	margin: 0;
	-moz-appearance: textfield;
}
.fig-atc .quantity .qty::-webkit-outer-spin-button,
.fig-atc .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.fig-atc .fig-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2em;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 1;
	font-size: 1em;
	-webkit-user-select: none;
	user-select: none;
}
.fig-atc .fig-qty-btn:hover {
	opacity: .7;
}

/* Button: keep text visible and stop the loading spinner overlapping it. */
.fig-atc .single_add_to_cart_button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
}

.fig-atc form .single_add_to_cart_button.loading {
	opacity: 1;
	color: inherit;
}

/* Replace WooCommerce's overlapping glyph spinner with an inline one.
   The `form` in the selector raises specificity above WooCommerce's default. */
.fig-atc form .single_add_to_cart_button.loading::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: fig-atc-spin .7s linear infinite;
	position: static;
	margin: 0;
	font-family: inherit;
	opacity: .85;
}

@keyframes fig-atc-spin {
	to { transform: rotate(360deg); }
}

/* View cart link. */
.fig-atc .fig-view-cart {
	display: inline-block;
	text-decoration: underline;
}
