/* Shared quantity-stepper contract for product, basket and checkout pages. */
:where(body.single-product, body.woocommerce-cart, body.woocommerce-checkout) {
	--cie-quantity-button-size:clamp(24px, 1.458vw, 28px);
	--cie-quantity-value-width:clamp(24px, 1.667vw, 32px);
	--cie-quantity-gap:clamp(4px, 0.417vw, 8px);
	--cie-quantity-green:#a6ce39;
	--cie-quantity-hover:#465961;
	--cie-quantity-focus:#326439;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced,
body.woocommerce-cart .custom-qty,
body.woocommerce-checkout #order_review .checkout-product-qty .quantity {
	align-items:center !important;
	column-gap:var(--cie-quantity-gap) !important;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced {
	display:grid !important;
	grid-template-columns:var(--cie-quantity-button-size) var(--cie-quantity-value-width) var(--cie-quantity-button-size) !important;
}

body.woocommerce-cart .custom-qty,
body.woocommerce-checkout #order_review .checkout-product-qty .quantity {
	display:flex !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button,
body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus),
body.woocommerce-checkout #order_review .cie-checkout-qty-button {
	align-items:center !important;
	appearance:none !important;
	background:var(--cie-quantity-green) !important;
	border:0 !important;
	border-radius:50% !important;
	box-shadow:none !important;
	box-sizing:border-box !important;
	color:#fff !important;
	cursor:pointer;
	display:inline-flex !important;
	flex:0 0 var(--cie-quantity-button-size) !important;
	font-size:0 !important;
	height:var(--cie-quantity-button-size) !important;
	justify-content:center !important;
	line-height:0 !important;
	margin:0 !important;
	min-height:var(--cie-quantity-button-size) !important;
	min-width:var(--cie-quantity-button-size) !important;
	padding:0 !important;
	position:relative !important;
	transition:background-color 180ms ease-in-out !important;
	width:var(--cie-quantity-button-size) !important;
}

body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus) svg {
	display:none !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button::before,
body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus)::before,
body.woocommerce-checkout #order_review .cie-checkout-qty-button::before {
	background:currentColor !important;
	border:0 !important;
	border-radius:999px !important;
	content:"" !important;
	height:2px !important;
	left:50% !important;
	position:absolute !important;
	top:50% !important;
	transform:translate(-50%, -50%) !important;
	width:clamp(8px, 0.521vw, 10px) !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--plus::after,
body.woocommerce-cart .custom-qty > .qty-plus::after,
body.woocommerce-checkout #order_review .cie-checkout-qty-button.qty-plus::after {
	background:currentColor !important;
	border-radius:999px !important;
	content:"" !important;
	height:clamp(8px, 0.521vw, 10px) !important;
	left:50% !important;
	position:absolute !important;
	top:50% !important;
	transform:translate(-50%, -50%) !important;
	width:2px !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button:hover,
body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus):hover,
body.woocommerce-checkout #order_review .cie-checkout-qty-button:hover {
	background:var(--cie-quantity-hover) !important;
	color:#fff !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button:focus-visible,
body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus):focus-visible,
body.woocommerce-checkout #order_review .cie-checkout-qty-button:focus-visible {
	background:var(--cie-quantity-green) !important;
	outline:2px solid var(--cie-quantity-focus) !important;
	outline-offset:3px !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--minus,
body.woocommerce-cart .custom-qty > .qty-minus,
body.woocommerce-checkout #order_review .cie-checkout-qty-button.qty-minus {
	order:1;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty,
body.woocommerce-cart .custom-qty .quantity,
body.woocommerce-checkout #order_review .checkout-product-qty input.qty {
	order:2;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--plus,
body.woocommerce-cart .custom-qty > .qty-plus,
body.woocommerce-checkout #order_review .cie-checkout-qty-button.qty-plus {
	order:3;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--minus {
	grid-column:1;
	grid-row:1;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty {
	grid-column:2;
	grid-row:1;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--plus {
	grid-column:3;
	grid-row:1;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty,
body.woocommerce-cart .custom-qty .qty,
body.woocommerce-checkout #order_review .checkout-product-qty input.qty {
	appearance:textfield !important;
	background:transparent !important;
	border:0 !important;
	border-radius:0 !important;
	box-shadow:none !important;
	color:#292929 !important;
	font-family:"Source Sans Pro", sans-serif !important;
	font-size:clamp(16px, 1.042vw, 20px) !important;
	font-weight:400 !important;
	height:var(--cie-quantity-button-size) !important;
	line-height:var(--cie-quantity-button-size) !important;
	margin:0 !important;
	min-height:0 !important;
	min-width:var(--cie-quantity-value-width) !important;
	padding:0 !important;
	text-align:center !important;
	width:var(--cie-quantity-value-width) !important;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty::-webkit-inner-spin-button,
body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty::-webkit-outer-spin-button,
body.woocommerce-cart .custom-qty .qty::-webkit-inner-spin-button,
body.woocommerce-cart .custom-qty .qty::-webkit-outer-spin-button,
body.woocommerce-checkout #order_review .checkout-product-qty input.qty::-webkit-inner-spin-button,
body.woocommerce-checkout #order_review .checkout-product-qty input.qty::-webkit-outer-spin-button {
	appearance:none !important;
	margin:0 !important;
}

@media (prefers-reduced-motion:reduce) {
	body.single-product .cie-sp-summary .cie-sp-qty-button,
	body.woocommerce-cart .custom-qty > :is(.qty-plus, .qty-minus),
	body.woocommerce-checkout #order_review .cie-checkout-qty-button {
		transition-duration:0.01ms !important;
	}
}

/* Product detail: plain black controls around the pale circular quantity. */
body.single-product .cie-sp-summary {
	--cie-quantity-button-size:24px;
	--cie-quantity-value-width:45px;
	--cie-quantity-gap:10px;
}

body.single-product .cie-sp-summary .cie-sp-qty-button,
body.single-product .cie-sp-summary .cie-sp-qty-button:is(:hover, :focus, :active) {
	background:transparent !important;
	color:#000 !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button:focus-visible {
	outline-color:#000 !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button::before {
	width:14px !important;
}

body.single-product .cie-sp-summary .cie-sp-qty-button--plus::after {
	height:14px !important;
}

body.single-product .cie-sp-summary .quantity.cie-sp-qty-enhanced .qty {
	background:#f5f5f5 !important;
	border-radius:50% !important;
	box-sizing:border-box !important;
	color:#000 !important;
	font-size:18px !important;
	font-weight:600 !important;
	height:var(--cie-quantity-value-width) !important;
	line-height:var(--cie-quantity-value-width) !important;
}
