/* nunshen-ui — product page buy box (2026-10-14). Reference: Palais des Thés — large format tiles, price + quantity on one
   line, a full-width "Ajouter au panier"; nunshen look (CORE SANS, hairlines, radius 1 px, black on crème).
   Only the buy boxes of the product templates: tea 7735394 / EN 7765576 (widget 782fa0b7) and accessory 4641 / EN
   7765577 (widget 839aff2). The "related products" cards on the same page are not touched (product-card.css).
   Express buttons (PayPal / Apple Pay / Google Pay) are switched off for the product page in PayPal Payments' settings. */

/* ---- formats (variable products; product-card.js marks unavailable ones and wraps the row in .nui-formats) ---------- */
.elementor-element-782fa0b7 table.variations,
.elementor-element-782fa0b7 table.variations tbody,
.elementor-element-782fa0b7 table.variations tr,
.elementor-element-782fa0b7 table.variations td.value {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	box-sizing: border-box;
}
.elementor-element-782fa0b7 table.variations th.label { display: none !important; }
.elementor-element-782fa0b7 table.variations { margin: 0 0 28px !important; }
.elementor-element-782fa0b7 table.variations td.value.nui-formats {
	--nui-tile: 92px;
	--nui-tile-gap: 10px;
	display: flex !important;
	align-items: center;
	gap: 4px;
}
.elementor-element-782fa0b7 .nui-formats ul.variable-items-wrapper {
	display: flex !important;
	flex: 1 1 auto;
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
	gap: var(--nui-tile-gap) !important;
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	padding: 2px 2px !important;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}
.elementor-element-782fa0b7 .nui-formats ul.variable-items-wrapper::-webkit-scrollbar { display: none; }
.elementor-element-782fa0b7 .nui-formats li.variable-item.image-variable-item {
	flex: 0 0 var(--nui-tile) !important;
	width: var(--nui-tile) !important;
	height: var(--nui-tile) !important;
	min-width: var(--nui-tile) !important;
	min-height: var(--nui-tile) !important;
	margin: 0 !important;
	padding: 6px !important;
	box-sizing: border-box !important;
	scroll-snap-align: start;
	background: transparent !important;
	border: 1px solid #D6CFC7 !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	opacity: 1 !important;
	transition: border-color .15s ease, background-color .15s ease;
	cursor: pointer;
}
/* same language as the product cards (product-card.css: white card, selected = black hairline + crème fill), on the
   crème page: unselected = no fill + light hairline, selected = black hairline + a slightly darker warm grey */
.elementor-element-782fa0b7 .nui-formats li.variable-item.image-variable-item.selected {
	border-color: var(--nui-black, #000000) !important;
	background: #E6E0D9 !important;
	box-shadow: none !important;
}
@media (hover: hover) {
	.elementor-element-782fa0b7 .nui-formats li.variable-item.image-variable-item:not(.selected):hover {
		border-color: var(--nui-black, #000000) !important;
	}
}
.elementor-element-782fa0b7 li.variable-item.nui-unavailable { display: none !important; }
.elementor-element-782fa0b7 .nui-formats li.variable-item .variable-item-contents {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.elementor-element-782fa0b7 .nui-formats li.variable-item img.variable-item-image {
	mix-blend-mode: multiply; /* the format pictos are drawn on white: let the tile colour show through */
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain;
	margin: 0 !important;
}
.elementor-element-782fa0b7 .nui-formats__arrow {
	flex: 0 0 22px;
	width: 22px;
	height: 40px;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--nui-black, #000000) !important;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: none !important;
}
.elementor-element-782fa0b7 .nui-formats__arrow[hidden] { display: none !important; }
.elementor-element-782fa0b7 .nui-formats__arrow:disabled { opacity: .25; cursor: default; }
.elementor-element-782fa0b7 .nui-formats__arrow svg { width: 16px; height: 16px; }
.elementor-element-782fa0b7 .reset_variations { display: none !important; }

/* ---- price · quantity / full-width button ----------------------------------------------------------------------------
   Variable: .single_variation_wrap = [ .single_variation (price, stock) ][ .variations_button: − [ qty + button ] ].
   The two wrappers become "display: contents" so price, −, qty, + and the button share one grid. */
/* Elementor forces flex on these with `:is(…add-to-cart widget…).elementor-add-to-cart--layout-auto form.cart.variations_form
   .woocommerce-variation-add-to-cart { display: flex !important }` (specificity 0,7,2; same for simple products'
   form.cart:not(.grouped_form):not(.variations_form)): the layout rules below are
   prefixed with `body.single-product .elementor-location-single .elementor-widget.elementor-element-…` to win cleanly. */
body.single-product .elementor-location-single .elementor-widget.elementor-element-782fa0b7 form.cart.variations_form .single_variation_wrap,
body.single-product .elementor-location-single .elementor-widget.elementor-element-782fa0b7 .elementor-add-to-cart form.cart:not(.grouped_form):not(.variations_form),
body.single-product .elementor-location-single .elementor-widget.elementor-element-839aff2 .elementor-add-to-cart form.cart:not(.grouped_form):not(.variations_form) {
	display: grid !important;
	grid-template-columns: 1fr 44px 52px 44px;
	grid-template-areas: "price minus qty plus" "btn btn btn btn";
	align-items: center;
	row-gap: 18px;
	width: 100% !important;
	margin: 0 !important;
}
body.single-product .elementor-location-single .elementor-widget.elementor-element-782fa0b7 form.cart.variations_form .single_variation_wrap .woocommerce-variation-add-to-cart,
body.single-product .elementor-location-single .elementor-widget.elementor-element-782fa0b7 form.cart .e-atc-qty-button-holder,
body.single-product .elementor-location-single .elementor-widget.elementor-element-839aff2 form.cart .e-atc-qty-button-holder {
	display: contents !important;
}
.elementor-element-782fa0b7 .single_variation {
	grid-area: price;
	display: flex !important;
	flex-direction: column;
	gap: 4px;
	margin: 0 !important;
	min-width: 0;
}
.elementor-element-782fa0b7 .woocommerce-variation-price .price {
	font-size: 30px !important;
	font-weight: var(--nui-w-regular, 400) !important;
	line-height: 1.1;
	color: var(--nui-black, #000000) !important;
}
.elementor-element-782fa0b7 .woocommerce-variation-description:empty { display: none; }
.elementor-element-782fa0b7 .woocommerce-variation-availability p.stock,
.elementor-element-839aff2 p.stock {
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: var(--nui-w-light, 200) !important;
	color: #4A4643 !important;
}
.elementor-element-782fa0b7 .woocommerce-variation-availability p.stock.in-stock::before,
.elementor-element-839aff2 p.stock.in-stock::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin: 0 7px 1px 0;
	border-radius: 50%;
	background: var(--nui-the-vert, #A6B340);
}
/* simple products: no price cell in the form (the price widget sits above) → the stepper starts on the left */
body.single-product .elementor-location-single .elementor-widget.elementor-element-782fa0b7 .elementor-add-to-cart form.cart:not(.grouped_form):not(.variations_form),
body.single-product .elementor-location-single .elementor-widget.elementor-element-839aff2 .elementor-add-to-cart form.cart:not(.grouped_form):not(.variations_form) {
	grid-template-columns: 44px 52px 44px 1fr;
	grid-template-areas: "minus qty plus ." "btn btn btn btn";
}
.elementor-element-839aff2 p.stock { margin: 0 0 16px !important; }

/* simple products' price widget (accessory 0a50f64; tea 11279017, shown by the theme script for simple products):
   same size as the variation price */
.elementor-location-single .elementor-element-0a50f64 .price,
.elementor-location-single .elementor-element-11279017 .price {
	font-size: 30px !important;
	font-weight: var(--nui-w-regular, 400) !important;
	line-height: 1.1 !important;
	color: var(--nui-black, #000000) !important;
}
@media (max-width: 767px) {
	.elementor-location-single .elementor-element-0a50f64 .price,
	.elementor-location-single .elementor-element-11279017 .price { font-size: 26px !important; }
}

/* quantity stepper: one hairline box − 1 + */
.elementor-element-782fa0b7 form.cart button.minus,
.elementor-element-782fa0b7 form.cart button.plus,
.elementor-element-839aff2 form.cart button.minus,
.elementor-element-839aff2 form.cart button.plus {
	grid-area: minus;
	width: 44px !important;
	height: 48px !important;
	min-height: 48px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--nui-black, #000000) !important;
	border-right: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--nui-black, #000000) !important;
	font-family: var(--nui-font, "CORE SANS", sans-serif) !important;
	font-size: 20px !important;
	font-weight: var(--nui-w-light, 200) !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
}
.elementor-element-782fa0b7 form.cart button.plus,
.elementor-element-839aff2 form.cart button.plus {
	grid-area: plus;
	border-right: 1px solid var(--nui-black, #000000) !important;
	border-left: 0 !important;
}
.elementor-element-782fa0b7 form.cart .quantity,
.elementor-element-839aff2 form.cart .quantity {
	grid-area: qty;
	width: 52px !important;
	margin: 0 !important;
}
.elementor-element-782fa0b7 form.cart .quantity input.qty,
.elementor-element-839aff2 form.cart .quantity input.qty {
	width: 52px !important;
	height: 48px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--nui-black, #000000) !important;
	border-left: 0 !important;
	border-right: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	font-family: var(--nui-font, "CORE SANS", sans-serif) !important;
	font-size: 16px !important;
	font-weight: var(--nui-w-regular, 400) !important;
	text-align: center;
	-moz-appearance: textfield;
	box-shadow: none !important;
}
.elementor-element-782fa0b7 form.cart .quantity input.qty::-webkit-inner-spin-button,
.elementor-element-782fa0b7 form.cart .quantity input.qty::-webkit-outer-spin-button,
.elementor-element-839aff2 form.cart .quantity input.qty::-webkit-inner-spin-button,
.elementor-element-839aff2 form.cart .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* full-width add-to-cart */
.elementor-element-782fa0b7 form.cart .single_add_to_cart_button,
.elementor-element-839aff2 form.cart .single_add_to_cart_button {
	grid-area: btn;
	width: 100% !important;
	min-height: 56px !important;
	margin: 0 !important;
	padding: 14px 20px !important;
	border: 1px solid var(--nui-black, #000000) !important;
	border-radius: var(--nui-radius, 1px) !important;
	background: var(--nui-black, #000000) !important;
	color: var(--nui-white, #FFFFFF) !important;
	font-family: var(--nui-font, "CORE SANS", sans-serif) !important;
	font-size: 16px !important;
	font-weight: var(--nui-w-bold, 600) !important;
	text-transform: uppercase;
	line-height: 1.2 !important;
	box-shadow: none !important;
	transition: background-color .15s ease, color .15s ease;
}
@media (hover: hover) {
	.elementor-element-782fa0b7 form.cart .single_add_to_cart_button:not(.disabled):hover,
	.elementor-element-839aff2 form.cart .single_add_to_cart_button:not(.disabled):hover {
		background: var(--nui-white, #FFFFFF) !important;
		color: var(--nui-black, #000000) !important;
	}
}
.elementor-element-782fa0b7 form.cart .single_add_to_cart_button.disabled {
	opacity: .35 !important;
	cursor: default;
}

/* nothing buyable: no formats, WooCommerce's own "Rupture de stock" notice */
.elementor-element-782fa0b7 form.nui-no-stock table.variations { display: none !important; }

/* PayPal "4X sans frais" message (product location still on in PayPal Payments) under the button */
.elementor-element-782fa0b7 .ppcp-messages,
.elementor-element-839aff2 .ppcp-messages {
	margin-top: 14px !important;
}

@media (max-width: 767px) {
	.elementor-element-782fa0b7 table.variations td.value.nui-formats { --nui-tile: 80px; --nui-tile-gap: 8px; }
	.elementor-element-782fa0b7 table.variations { margin-bottom: 22px !important; }
	.elementor-element-782fa0b7 .woocommerce-variation-price .price { font-size: 26px !important; }
}
