/**
 * Site-wide quantity control visibility (cart, shop, product archives, checkout).
 */
.woocommerce .quantity,
.woocommerce-page .quantity,
.woocommerce-cart .quantity,
.woocommerce-checkout .quantity {
	display: inline-flex !important;
	align-items: stretch;
	visibility: visible !important;
	opacity: 1 !important;
	max-width: none;
}

.woocommerce .quantity .qty,
.woocommerce-page .quantity .qty {
	min-width: 44px;
	min-height: 44px;
	text-align: center;
	font-weight: 700;
}

.woocommerce .quantity .minus,
.woocommerce .quantity .plus,
.woocommerce .quantity button.minus,
.woocommerce .quantity button.plus {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	visibility: visible !important;
	opacity: 1 !important;
}

.jsm-cro-qty-controls .quantity,
.jsm-cro-cart-line-items__qty {
	display: inline-flex !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .minus,
.jsm-cro-step--qty .jsm-cro-qty-controls .plus,
.jsm-cro-step--qty .jsm-cro-qty-controls input.qty,
.jsm-cro-cart-qty-btn,
.jsm-cro-cart-line-items__qty-value {
	visibility: visible !important;
	opacity: 1 !important;
}

.jsm-cro-step--qty .jsm-cro-qty-quick__btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	visibility: visible !important;
	opacity: 1 !important;
}

/* ── Full-width quantity stepper: [ − ] [ 3 ] [ + ] (not sticky bars) ── */
body.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-controls,
body.jsm-cro-active .jsm-cro-add-to-basket-block__qty {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	box-sizing: border-box;
}

body.jsm-cro-active .jsm-cro-qty-controls:not(.jsm-cro-qty-controls--basket) .quantity,
body.jsm-cro-active .jsm-cro-add-to-basket-block__qty .quantity,
body.jsm-cro-active .jsm-cro-add-to-basket-block__qty .jsm-cro-qty-controls__quantity,
body.jsm-cart-page-active .jsm-cart-page__table .quantity,
body.jsm-cart-mobile-active .jsm-cart-mobile__qty .quantity {
	display: flex !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

body.jsm-cro-active .jsm-cro-qty-controls .quantity .minus,
body.jsm-cro-active .jsm-cro-qty-controls .quantity .plus,
body.jsm-cro-active .jsm-cro-qty-controls .quantity button.minus,
body.jsm-cro-active .jsm-cro-qty-controls .quantity button.plus,
body.jsm-cart-page-active .quantity .minus,
body.jsm-cart-page-active .quantity .plus,
body.jsm-cart-page-active .quantity button.minus,
body.jsm-cart-page-active .quantity button.plus,
body.jsm-cart-mobile-active .quantity .minus,
body.jsm-cart-mobile-active .quantity .plus,
body.jsm-cart-mobile-active .quantity button.minus,
body.jsm-cart-mobile-active .quantity button.plus {
	position: static !important;
	margin: 0 !important;
	z-index: auto !important;
	flex: 0 0 44px !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
}

body.jsm-cro-active .jsm-cro-qty-controls:not(.jsm-cro-qty-controls--basket) .quantity input.qty,
body.jsm-cro-active .jsm-cro-add-to-basket-block__qty .quantity input.qty,
body.jsm-cro-active .jsm-cro-add-to-basket-block__qty input.qty,
body.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-controls input.qty,
body.jsm-cart-page-active .quantity input.qty,
body.jsm-cart-mobile-active .quantity input.qty {
	flex: 1 1 auto !important;
	width: 100% !important;
	min-width: 2.75rem !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: static !important;
	z-index: auto !important;
	text-align: center !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 44px !important;
	color: var(--jsm-cro-navy, #002b5c) !important;
	background: #fff !important;
	-moz-appearance: textfield;
	appearance: textfield;
	box-sizing: border-box;
}

body.jsm-cro-active .jsm-cro-qty-controls .quantity input.qty::-webkit-outer-spin-button,
body.jsm-cro-active .jsm-cro-qty-controls .quantity input.qty::-webkit-inner-spin-button,
body.jsm-cart-page-active .quantity input.qty::-webkit-outer-spin-button,
body.jsm-cart-page-active .quantity input.qty::-webkit-inner-spin-button,
body.jsm-cart-mobile-active .quantity input.qty::-webkit-outer-spin-button,
body.jsm-cart-mobile-active .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ── Sticky bars only: compact stepper [−][3][+] ── */
body.jsm-cro-active .jsm-cro-desktop-sticky-bar__qty,
body.jsm-cro-active .jsm-cro-mobile-sticky-bar__qty,
body.jsm-cro-active .jsm-cro-desktop-sticky-bar .jsm-cro-qty-controls--basket,
body.jsm-cro-active .jsm-cro-mobile-sticky-bar .jsm-cro-qty-controls--basket {
	width: auto !important;
	max-width: none !important;
	flex: 0 0 auto;
}

body.jsm-cro-active .jsm-cro-desktop-sticky-bar .jsm-cro-qty-controls--basket .quantity,
body.jsm-cro-active .jsm-cro-desktop-sticky-bar .jsm-cro-qty-controls--basket .jsm-cro-qty-controls__quantity,
body.jsm-cro-active .jsm-cro-mobile-sticky-bar .jsm-cro-qty-controls--basket .quantity,
body.jsm-cro-active .jsm-cro-mobile-sticky-bar .jsm-cro-qty-controls--basket .jsm-cro-qty-controls__quantity {
	display: flex !important;
	align-items: stretch !important;
	width: auto !important;
	max-width: none !important;
	flex: 0 0 auto;
}

body.jsm-cro-active .jsm-cro-desktop-sticky-bar .jsm-cro-qty-controls--basket input.qty,
body.jsm-cro-active .jsm-cro-mobile-sticky-bar .jsm-cro-qty-controls--basket input.qty,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-mobile-sticky-bar .jsm-cro-qty-controls--basket input.qty,
body.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-controls input.qty,
body.jsm-cro-active #jsm-cro-configurator-qty {
	flex: 0 0 44px !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	line-height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
}

/* Configurator middle stepper keeps a flexible value column */
body.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-controls input.qty,
body.jsm-cro-active #jsm-cro-configurator-qty {
	flex: 1 1 auto !important;
	width: 100% !important;
	max-width: none !important;
}

@media (min-width: 1024px) {
	body.jsm-cro-active:not(.jsm-cro-is-mobile) .jsm-cro-desktop-sticky-bar .jsm-cro-qty-controls--basket input.qty {
		flex: 0 0 44px !important;
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
		height: var(--jsm-cro-sticky-row-h, 56px) !important;
		min-height: var(--jsm-cro-sticky-row-h, 56px) !important;
		max-height: var(--jsm-cro-sticky-row-h, 56px) !important;
		line-height: var(--jsm-cro-sticky-row-h, 56px) !important;
	}
}
