/* Quantity stepper: [ − | 3 | + ] (buttons added in inc/woocommerce.php) */
.woocommerce .quantity:has(.qty-btn) {
	display: inline-flex; align-items: stretch;
	border: 1px solid var(--color-border-strong); border-radius: var(--radius); background: #fff; overflow: hidden;
}
.woocommerce .quantity .qty-btn {
	display: grid; place-items: center; width: 2.75rem; padding: 0; border: 0; background: #fff;
	font-size: 1.25rem; line-height: 1; color: var(--color-text); user-select: none;
	transition: background-color .15s ease, color .15s ease;
}
.woocommerce .quantity .qty-btn:hover { background: var(--color-bg-soft); color: var(--color-primary); }
.woocommerce .quantity .qty-btn:disabled { color: var(--color-faint); cursor: default; background: #fff; }
.woocommerce .quantity .qty-btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }

/* Specificity matches the product page / cart rules so these win. */
.woocommerce .quantity:has(.qty-btn) input.qty,
.single-product div.product form.cart .quantity:has(.qty-btn) .qty,
.woocommerce-cart table.cart .quantity:has(.qty-btn) .qty {
	width: 3.25rem; min-height: 2.75rem; height: auto; padding: 0; margin: 0;
	border: 0; border-inline: 1px solid var(--color-border); border-radius: 0;
	text-align: center; font-size: var(--fs-base); font-weight: var(--fw-semibold);
	-moz-appearance: textfield; appearance: textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce .quantity:has(.qty-btn) input.qty:focus { outline: none; background: var(--color-primary-soft); }
.woocommerce .quantity:has(.qty-btn):focus-within { border-color: var(--color-primary); }

.single-product div.product form.cart .quantity:has(.qty-btn) .qty { min-height: 3rem; }

/* Sold individually / single item: WooCommerce renders a hidden input, so no stepper. */
.woocommerce .quantity:has(input.qty[type="hidden"]) { display: none; }
