/* Native WooCommerce purchase-area presentation on single product pages. */

.single-product .sola-desktop-purchase-bar[hidden] {
	display: none;
}

@media (min-width: 1024px) {
	/* Source order follows RTL visual order: product media/name at the right,
	 * price in the middle, and the native-delegating CTA at the physical left. */
	.single-product .sola-desktop-purchase-bar {
		position: fixed;
		inset-inline: clamp(1rem, 3vw, 3rem);
		inset-block-end: 1rem;
		/* Stay above ordinary product/header surfaces (<=100), but below the
		 * open mini-cart (110), WordPress admin bar, and modal/lightbox layers. */
		z-index: 109;
		display: flex;
		align-items: center;
		gap: clamp(1rem, 2vw, 2rem);
		box-sizing: border-box;
		min-block-size: 5.5rem;
		padding: 0.75rem 1rem;
		border: 1px solid var(--color-border);
		background: var(--color-white);
		box-shadow: 0 -8px 24px rgb(32 34 30 / 0.1);
		direction: rtl;
	}

	.single-product .sola-desktop-purchase-bar.is-visible {
		display: flex;
	}

	.single-product .sola-desktop-purchase-bar.is-unavailable {
		display: none !important;
	}

	.single-product .sola-desktop-purchase-bar__product {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		gap: 0.875rem;
		min-inline-size: 0;
	}

	.single-product .sola-desktop-purchase-bar__image {
		display: block;
		flex: 0 0 56px;
		inline-size: 56px;
		block-size: 56px;
		border: 0;
		border-radius: 0;
		background: #F2EEE5;
		object-fit: cover;
		object-position: center;
	}

	.single-product .sola-desktop-purchase-bar__name {
		flex: 1 1 auto;
		min-inline-size: 0;
		overflow: hidden;
		color: var(--color-ink);
		font-size: 1.125rem;
		line-height: 1.3;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.single-product .sola-desktop-purchase-bar__price {
		flex: 0 0 auto;
		color: var(--color-ink);
		font-size: 1.25rem;
		font-weight: var(--font-weight-semibold);
		line-height: 1.3;
		direction: rtl;
		unicode-bidi: isolate;
		white-space: nowrap;
	}

	.single-product div.product.sale .sola-desktop-purchase-bar__price {
		color: var(--color-accent);
	}

	.single-product .sola-desktop-purchase-bar__price .amount,
	.single-product .sola-desktop-purchase-bar__price bdi,
	.single-product .sola-desktop-purchase-bar__price .woocommerce-Price-currencySymbol {
		direction: rtl;
		unicode-bidi: isolate;
	}

	.single-product .sola-desktop-purchase-bar__submit {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		min-inline-size: 15rem;
		min-block-size: 3.5rem;
		margin: 0;
		padding: 0.75rem 1.25rem;
		border: 1px solid #A9472C;
		border-radius: 0;
		background: #A9472C;
		color: var(--color-white);
		font-size: 1.0625rem;
		font-weight: var(--font-weight-semibold);
		line-height: var(--line-height-ui);
		text-align: center;
		cursor: pointer;
	}

	.single-product .sola-desktop-purchase-bar__submit:hover:not(:disabled) {
		border-color: var(--color-accent-hover);
		background: var(--color-accent-hover);
		color: var(--color-white);
	}

	.single-product .sola-desktop-purchase-bar__submit:focus-visible {
		outline: var(--focus-width) solid var(--focus-color);
		outline-offset: var(--focus-offset);
	}

	.single-product .sola-desktop-purchase-bar__submit:disabled,
	.single-product .sola-desktop-purchase-bar__submit[aria-disabled='true'] {
		border-color: #A9472C;
		background: #A9472C;
		color: var(--color-white);
		cursor: not-allowed;
		opacity: 0.56;
	}
}

@media (max-width: 1023.98px) {
	.single-product .sola-desktop-purchase-bar {
		display: none !important;
	}
}

.single-product .summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	direction: rtl;
	gap: var(--space-2);
	inline-size: 100%;
	margin-block: var(--space-2) var(--space-4);
}

.single-product .summary .sola-product-customization {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	gap: var(--space-3);
	margin-block: var(--space-5);
	padding: var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: 0;
	background: var(--color-surface);
	color: var(--color-ink);
}

.sola-product-customization__icon {
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
	padding-block-start: 0.15rem;
}

.sola-product-customization__icon svg {
	inline-size: 1.75rem;
	block-size: 1.75rem;
	fill: currentColor;
}

.sola-product-customization__content h2 {
	margin: 0 0 var(--space-1);
	font-size: var(--font-size-body-large);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-heading);
}

.sola-product-customization__content p {
	margin: 0 0 var(--space-2);
	color: var(--color-ink-soft);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-body);
}

.sola-product-customization__content a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	color: var(--color-link);
	font-size: var(--font-size-ui);
	font-weight: var(--font-weight-semibold);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.sola-product-customization__content a:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.single-product .summary form.cart > .sola-product-purchase-text-region {
	display: flex;
	flex: 1 1 100%;
	flex-direction: column;
	inline-size: 100%;
	min-block-size: 0;
	min-inline-size: 0;
}

.single-product .summary form.cart > .sola-product-purchase-text-region > .sola-product-purchase-text {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	min-inline-size: 0;
}

.single-product .summary form.cart.variations_form {
	flex-direction: column;
	flex-wrap: nowrap;
}

.single-product .summary form.cart.variations_form > .variations {
	order: 1;
	inline-size: 100%;
}

.single-product .summary form.cart.variations_form > .single_variation_wrap {
	order: 2;
	inline-size: 100%;
}

.single-product .summary form.cart .variations_button {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--space-2);
	inline-size: 100%;
}

.single-product .summary form.cart .sola-purchase-action-row {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: var(--space-2);
	inline-size: 100%;
	margin-block-start: clamp(1.5rem, 4vw, 3rem);
	order: 3;
}

.single-product .summary form.cart .sola-purchase-action-row .quantity {
	flex: 0 1 auto;
}

.single-product .summary form.cart .sola-purchase-action-row .single_add_to_cart_button {
	flex: 1 1 auto;
	min-inline-size: 0;
}

.single-product .summary form.cart .variations_button .quantity {
	flex: 0 1 auto;
}

.single-product .summary form.cart .variations_button .single_add_to_cart_button {
	flex: 1 1 auto;
}

.single-product .summary form.cart .quantity {
	display: inline-flex;
	flex: 0 1 auto;
	align-items: stretch;
	min-block-size: 48px;
	margin: 0;
}

.single-product .summary form.cart .quantity .qty,
.single-product .summary form.cart .quantity .plus,
.single-product .summary form.cart .quantity .minus,
.single-product .summary form.cart .single_add_to_cart_button {
	min-block-size: 48px;
}

.single-product .summary form.cart .quantity,
.single-product .summary form.cart .quantity .qty,
.single-product .summary form.cart .quantity .plus,
.single-product .summary form.cart .quantity .minus {
	border-radius: 0;
}

.single-product .summary form.cart .quantity .qty {
	inline-size: 5rem;
	max-inline-size: 7rem;
	margin: 0;
	text-align: center;
}

.single-product .summary form.cart .quantity.sola-quantity--stepper {
	direction: ltr;
	border: 1px solid var(--color-border-strong);
	background: var(--color-white);
	overflow: hidden;
}

.single-product .summary form.cart .quantity.sola-quantity--stepper .qty {
	border: 0;
	box-shadow: none;
	background: transparent;
	-moz-appearance: textfield;
}

.single-product .summary form.cart .quantity.sola-quantity--stepper .plus,
.single-product .summary form.cart .quantity.sola-quantity--stepper .minus {
	border: 0;
	background: transparent;
}

.single-product .summary form.cart .quantity.sola-quantity--stepper .plus:hover:not(:disabled),
.single-product .summary form.cart .quantity.sola-quantity--stepper .minus:hover:not(:disabled) {
	background: var(--color-surface-strong);
	color: var(--color-ink);
}

.single-product .summary form.cart .quantity.sola-quantity--stepper:focus-within {
	border-color: var(--focus-color);
	box-shadow: 0 0 0 1px var(--focus-color);
}

.single-product .summary form.cart .quantity.sola-quantity--stepper .qty::-webkit-inner-spin-button,
.single-product .summary form.cart .quantity.sola-quantity--stepper .qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.single-product .summary form.cart .quantity.sola-quantity--select-enhanced {
	position: relative;
	min-inline-size: 5.75rem;
}

.single-product .summary form.cart .quantity .qty.sola-quantity-native {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	min-block-size: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.single-product .summary form.cart .quantity.sola-quantity--select-enhanced .plus,
.single-product .summary form.cart .quantity.sola-quantity--select-enhanced .minus {
	display: none;
}

.single-product .summary form.cart .quantity .sola-quantity-select {
	display: block;
	box-sizing: border-box;
	inline-size: 100%;
	min-inline-size: 5.75rem;
	min-block-size: 48px;
	margin: 0;
	padding-block: var(--space-2);
	padding-inline: var(--space-3) 2.75rem;
	border: 1px solid var(--color-border-strong);
	border-radius: 2px;
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--color-white);
	background-image: var(--sola-icon-nav-arrow-down);
	background-position: left var(--space-3) center;
	background-repeat: no-repeat;
	background-size: 1.5rem;
	color: var(--color-ink);
	direction: rtl;
	font-size: var(--font-size-body);
	line-height: var(--line-height-ui);
	text-align: start;
	cursor: pointer;
}

.single-product .summary form.cart .quantity .sola-quantity-select:hover:not(:disabled) {
	border-color: var(--focus-color);
}

.single-product .summary form.cart .quantity .sola-quantity-select:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.single-product .summary form.cart .quantity .sola-quantity-select:disabled {
	border-color: var(--color-border);
	background-color: var(--color-surface);
	color: var(--color-ink-soft);
	cursor: not-allowed;
	opacity: 0.65;
}

.single-product .summary form.cart .quantity .plus,
.single-product .summary form.cart .quantity .minus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 48px;
	margin: 0;
	padding-inline: var(--space-2);
	border: 1px solid var(--color-border-strong);
	background: var(--color-white);
	color: var(--color-ink);
	font-size: var(--font-size-body-large);
	line-height: 1;
	text-decoration: none;
}

.single-product .summary form.cart .quantity .plus:hover,
.single-product .summary form.cart .quantity .minus:hover,
.single-product .summary form.cart .quantity .plus:focus-visible,
.single-product .summary form.cart .quantity .minus:focus-visible {
	border-color: var(--focus-color);
	color: var(--color-link);
}

.single-product .summary form.cart .quantity .plus:focus-visible,
.single-product .summary form.cart .quantity .minus:focus-visible,
.single-product .summary form.cart .single_add_to_cart_button:focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.single-product .summary form.cart .single_add_to_cart_button {
	display: inline-flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	inline-size: auto;
	min-block-size: 48px;
	min-inline-size: 11rem;
	margin: 0;
	padding-block: var(--space-3);
	padding-inline: var(--space-5);
	font-size: var(--font-size-body);
	line-height: var(--line-height-ui);
	text-align: center;
}

.single-product .summary form.cart .single_add_to_cart_button,
.single-product .summary form.cart .single_add_to_cart_button.alt {
	background-color: var(--color-accent);
	border: 1px solid var(--color-accent);
	border-radius: 0;
	color: var(--color-white);
}

.single-product .summary form.cart .single_add_to_cart_button:hover:not(:disabled):not([aria-disabled='true']),
.single-product .summary form.cart .single_add_to_cart_button.alt:hover:not(:disabled):not([aria-disabled='true']) {
	background-color: var(--color-accent-hover);
	border-color: var(--color-accent-hover);
	color: var(--color-white);
}

body.single-product.woocommerce .summary form.cart button.single_add_to_cart_button:disabled,
body.single-product.woocommerce .summary form.cart button.single_add_to_cart_button[aria-disabled='true'] {
	border-color: var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
	cursor: not-allowed;
	opacity: 0.56;
}

.single-product .summary form.cart[aria-busy='true'] .single_add_to_cart_button,
.single-product .summary form.cart .quantity .plus:disabled,
.single-product .summary form.cart .quantity .minus:disabled {
	cursor: wait;
	opacity: 0.65;
}

.single-product .summary form.cart[aria-busy='true'] .single_add_to_cart_button {
	pointer-events: none;
}

.single-product .woocommerce-notices-wrapper:not(:empty) {
	display: block;
	inline-size: 100%;
	margin-block: var(--space-3);
	margin-inline: 0;
}

/* A successful single-product add must keep the main and floating purchase
 * surfaces stable; the native View-cart sibling is not a second CTA. Catalog
 * card actions deliberately remain outside this boundary. */
.single-product form.cart a.added_to_cart,
.single-product .sola-desktop-purchase-bar a.added_to_cart,
.single-product .sola-mobile-purchase-proxy a.added_to_cart {
	display: none !important;
}

.single-product .woocommerce-notices-wrapper ul.woocommerce-error,
.single-product .woocommerce-notices-wrapper .woocommerce-message,
.single-product .woocommerce-notices-wrapper .woocommerce-info,
.single-product .summary .woocommerce-variation-notice:not(:empty),
.single-product .summary form.cart .sola-purchase-error {
	display: block;
	inline-size: 100%;
	margin-block: 0 var(--space-3);
	padding-block: var(--space-3);
	padding-inline: var(--space-4);
	border: 1px solid var(--color-border);
	border-inline-start: 3px solid var(--color-accent);
	border-radius: 0;
	background: var(--color-surface);
	color: var(--color-ink);
	font-size: var(--font-size-ui);
	line-height: var(--line-height-body);
	text-align: start;
	overflow-wrap: anywhere;
}

.single-product .sola-mobile-purchase-proxy {
	display: none;
}

.single-product .woocommerce-notices-wrapper ul.woocommerce-error,
.single-product .summary form.cart .sola-purchase-error {
	border-inline-start-color: var(--color-error);
}

.single-product .woocommerce-notices-wrapper ul.woocommerce-error li {
	margin-block: 0;
}

@media (max-width: 47.99rem) {
	body.sola-purchase-proxy-active {
		padding-block-end: calc(5.5rem + env(safe-area-inset-bottom));
	}

	.single-product .sola-mobile-purchase-proxy.is-active {
		position: fixed;
		inset-inline: 0;
		inset-block-end: 0;
		/* Stay above ordinary page surfaces, but below the mini-cart viewport
		 * so the open drawer remains the topmost mobile commerce surface. */
		z-index: 109;
		display: flex;
		align-items: center;
		gap: var(--space-2);
		box-sizing: border-box;
		inline-size: 100%;
		max-inline-size: 100vw;
		min-block-size: 4.5rem;
		padding-block: var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));
		padding-inline: var(--container-gutter);
		background: var(--color-white);
		border-block-start: 1px solid var(--color-border);
		box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.12);
		direction: rtl;
	}

	/* The mini-cart backdrop sits below its viewport so the drawer can own the
	 * top layer. Suppress the page-level purchase proxy while that drawer is
	 * open instead of letting the proxy remain visible in the backdrop strip;
	 * removing the body state restores the active proxy without JS state loss. */
	body.single-product.sola-mini-cart-open .sola-mobile-purchase-proxy.is-active {
		display: none !important;
	}

	.single-product .sola-mobile-purchase-proxy__product {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		gap: var(--space-2);
		min-inline-size: 0;
		direction: rtl;
	}

	.single-product .sola-mobile-purchase-proxy__image {
		display: block;
		flex: 0 0 3rem;
		inline-size: 3rem;
		block-size: 3rem;
		border: 0;
		border-radius: 0;
		background: var(--color-surface);
		object-fit: cover;
		object-position: center;
	}

	.single-product .sola-mobile-purchase-proxy__details {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		align-items: flex-start;
		min-inline-size: 0;
		max-inline-size: 100%;
		line-height: var(--line-height-ui);
		text-align: start;
	}

	.single-product .sola-mobile-purchase-proxy__name {
		display: block;
		inline-size: 100%;
		min-inline-size: 0;
		overflow: hidden;
		color: var(--color-ink);
		font-size: var(--font-size-body);
		font-weight: var(--font-weight-regular);
		line-height: var(--line-height-ui);
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.single-product .sola-mobile-purchase-proxy__price {
		display: block;
		inline-size: 100%;
		min-inline-size: 0;
		color: var(--color-ink);
		direction: rtl;
		font-weight: var(--font-weight-semibold);
		line-height: var(--line-height-ui);
		text-align: start;
		unicode-bidi: isolate;
		white-space: nowrap;
	}

	.single-product .sola-mobile-purchase-proxy__button {
		display: inline-flex;
		flex: 0 1 clamp(7.5rem, 31vw, 10rem);
		align-items: center;
		justify-content: center;
		inline-size: clamp(7.5rem, 31vw, 10rem);
		max-inline-size: 10rem;
		min-inline-size: 7.5rem;
		min-block-size: 3rem;
		margin: 0;
		padding-block: var(--space-2);
		padding-inline: var(--space-3);
		border: 1px solid var(--color-accent);
		border-radius: 0;
		background: var(--color-accent);
		color: var(--color-white);
		font-size: var(--font-size-body);
		line-height: var(--line-height-ui);
		text-align: center;
	}

	.single-product .sola-mobile-purchase-proxy__button > [data-sola-purchase-proxy-label] {
		min-inline-size: 0;
		overflow-wrap: anywhere;
	}

	.single-product .sola-mobile-purchase-proxy__button:focus-visible {
		outline: var(--focus-width) solid var(--focus-color);
		outline-offset: var(--focus-offset);
	}

	.single-product .sola-mobile-purchase-proxy__button:disabled {
		cursor: wait;
		opacity: 0.65;
	}

	.single-product .sola-mobile-purchase-proxy[hidden] {
		display: none;
	}

	.single-product div.product.sale .sola-mobile-purchase-proxy__price {
		color: var(--color-accent);
	}

	@media (max-width: 22.49rem) {
		.single-product .sola-mobile-purchase-proxy__image {
			display: none;
		}

		.single-product .sola-mobile-purchase-proxy__product {
			gap: 0;
		}

		.single-product .sola-mobile-purchase-proxy__name {
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
			line-clamp: 2;
			text-overflow: clip;
			white-space: normal;
			overflow-wrap: anywhere;
		}
	}

	.single-product .summary form.cart .quantity,
	.single-product .summary form.cart .single_add_to_cart_button {
		inline-size: auto;
	}

	.single-product .summary form.cart .quantity {
		flex: 0 1 9rem;
		min-inline-size: 9rem;
	}

	.single-product .summary form.cart .variations_button {
		flex-basis: 100%;
	}

	.single-product .summary form.cart .sola-purchase-action-row {
		flex-wrap: wrap;
	}

	.single-product .summary form.cart .variations_button .quantity {
		flex: 0 1 9rem;
		min-inline-size: 9rem;
		inline-size: auto;
	}

	.single-product .summary form.cart .variations_button .single_add_to_cart_button {
		flex: 1 1 auto;
		inline-size: auto;
	}

	.single-product .summary form.cart .quantity .qty {
		flex: 1 1 auto;
		inline-size: auto;
		max-inline-size: none;
	}

	.single-product .summary form.cart .quantity .sola-quantity-select {
		flex: 1 1 auto;
		inline-size: auto;
		min-inline-size: 9rem;
	}

	.single-product .summary form.cart .single_add_to_cart_button {
		flex: 1 1 auto;
		min-inline-size: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-product .summary form.cart .single_add_to_cart_button,
	.single-product .summary form.cart .quantity .plus,
	.single-product .summary form.cart .quantity .minus,
	.single-product .summary form.cart .quantity .sola-quantity-select {
		transition: none;
	}
}

/* Non-color variations use a button bridge for faster scanning while the
 * hidden native select remains the sole WooCommerce value source. */
.single-product .summary form.cart.sola-variation-options-enhanced .variations select.sola-variation-native,
.single-product .summary form.cart.sola-variation-options-enhanced select.sola-variation-native {
	position: absolute;
	inline-size: 1px;
	min-inline-size: 1px;
	max-inline-size: 1px;
	block-size: 1px;
	min-block-size: 1px;
	max-block-size: 1px;
	inset-inline-start: 0;
	inset-block-start: 0;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.single-product .summary form.cart.variations_form .reset_variations_alert.screen-reader-text {
	position: absolute;
	inline-size: 1px;
	min-inline-size: 1px;
	max-inline-size: 1px;
	block-size: 1px;
	min-block-size: 1px;
	max-block-size: 1px;
	inset-inline-start: 0;
	inset-block-start: 0;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.single-product .summary form.cart.variations_form .reset_variations,
.single-product .summary form.cart.variations_form .reset_variations[hidden] {
	display: none !important;
}

.single-product .summary form.cart.sola-variation-options-enhanced .variations tr.sola-variation-row-enhanced > th.label {
	display: none;
}

.single-product .summary form.cart .sola-variation-options {
	display: grid;
	gap: var(--space-2);
	inline-size: 100%;
	direction: rtl;
}

.single-product .summary form.cart.variations_form .variations tr + tr > td.value {
	padding-block-start: var(--space-4);
}

.single-product .summary form.cart .sola-variation-options__heading {
	display: flex;
	align-items: baseline;
	justify-content: flex-start;
	gap: var(--space-2);
	color: var(--color-ink);
	font-size: var(--font-size-body-large);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-ui);
}

.single-product .summary form.cart .sola-variation-options__heading [data-sola-variation-label] {
	font-weight: var(--font-weight-bold);
}

.single-product .summary form.cart .sola-variation-options__heading [data-sola-variation-selected] {
	color: var(--color-ink);
	font-weight: var(--font-weight-regular);
	text-align: end;
}

.single-product .summary form.cart .sola-variation-options__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 3rem;
	min-inline-size: min(8rem, 100%);
	margin: 0;
	padding-block: var(--space-2);
	padding-inline: var(--space-3);
	border: 1px solid transparent;
	border-radius: 0;
	background: transparent;
	color: var(--color-ink);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-ui);
	text-align: center;
	cursor: pointer;
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option]:hover:not(:disabled):not([aria-disabled='true']) {
	border-color: transparent;
	background: color-mix(in srgb, var(--color-ink) 8%, transparent);
	color: var(--color-ink);
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option]:focus-visible {
	border-color: var(--focus-color);
	background: #f1f2f0;
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option][aria-pressed='true'] {
	border-color: var(--color-accent);
	background: transparent;
	color: var(--color-accent);
	font-weight: var(--font-weight-bold);
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option][aria-pressed='true']:hover:not(:disabled):not([aria-disabled='true']) {
	border-color: var(--color-accent);
	background: color-mix(in srgb, var(--color-accent) 12%, transparent);
	color: var(--color-accent);
}

.single-product .summary form.cart .sola-variation-options [data-sola-variation-option]:disabled,
.single-product .summary form.cart .sola-variation-options [data-sola-variation-option][aria-disabled='true'] {
	border-color: var(--color-border);
	background: var(--color-surface);
	color: var(--color-ink-soft);
	cursor: not-allowed;
	opacity: 0.65;
}

/* WooCommerce still updates this node for its native variation lifecycle;
 * the headline and compact purchase surfaces own the visible amount. */
.single-product .summary form.cart .woocommerce-variation-price {
	display: none !important;
}

/* The main image establishes the first-view height; thumbnails remain in the
 * gallery's natural flow and never become a sticky purchase constraint. */
@media (min-width: 64rem) {
	.single-product .summary form.cart > .sola-product-purchase-text-region {
		flex: 1 1 auto;
	}

	.single-product .summary form.cart {
		flex: 1 1 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		max-inline-size: min(var(--sola-product-purchase-measure), 100%);
		margin-inline: auto;
		margin-block-end: var(--sola-product-gallery-control-inset-block-end);
	}

	.single-product .summary form.cart.variations_form > .single_variation_wrap,
	.single-product .summary form.cart.variations_form .variations_button {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		min-block-size: 0;
	}

	.single-product .summary form.cart .sola-purchase-action-row {
		flex: 0 0 auto;
		max-inline-size: 100%;
		margin-block-start: auto;
		margin-inline: auto;
	}

	/* GeneratePress/WooCommerce can win the generic form cascade on simple
	 * products. Reassert only that direct simple-form rail so its text region
	 * can absorb the gallery-height free space before the native action row. */
	.single-product.woocommerce #content .site-main div.product > .sola-product-top > .summary > form.cart:not(.variations_form) {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		min-block-size: calc(var(--sola-product-gallery-square-size) - var(--space-2) - var(--sola-product-gallery-control-inset-block-end));
		margin-block-end: var(--sola-product-gallery-control-inset-block-end);
	}

	.single-product.woocommerce #content .site-main div.product > .sola-product-top > .summary > form.cart:not(.variations_form) > .sola-product-purchase-text-region {
		flex: 1 1 auto;
		min-block-size: 0;
	}

	.single-product.woocommerce #content .site-main div.product > .sola-product-top > .summary > form.cart:not(.variations_form) > .sola-purchase-action-row {
		flex: 0 0 auto;
		margin-block-start: auto;
	}
}

/* The region is the sticky containing block and ends before the native
 * single-variation wrapper/action row. The existing details runtime gates
 * this state for overlays, invalid/busy variations, and oversized text. */
@media (min-width: 75rem) {
	.single-product .sola-product-top > .summary.is-sticky-active form.cart > .sola-product-purchase-text-region > .sola-product-purchase-text {
		position: sticky;
		inset-block-start: var(--sola-product-rail-offset);
		z-index: 1;
		background: var(--color-white);
	}
}
