/* =========================================================================
   La Loge de Suzon — page de commande
   CSS uniquement. Ne touche ni au tunnel WooCommerce ni à l'élément Stripe.
   ========================================================================= */

body.woocommerce-checkout {
	--lds-brun:       #733b30;
	--lds-or:         #cfb374;
	--lds-creme:      #fff2d7;
	--lds-trait:      rgba(115, 59, 48, .14);
	--lds-trait-fort: rgba(115, 59, 48, .26);
	--lds-doux:       rgba(60, 40, 35, .60);
	--lds-rayon:      14px;
}

/* ---------- Ossature ----------------------------------------------------- */
/* Blocksy enveloppe les deux colonnes dans .ct-customer-details et
   .ct-order-review : c'est sur elles qu'il faut agir, pas sur #customer_details. */

@media (min-width: 1000px) {
	body.woocommerce-checkout form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(400px, .9fr);
		column-gap: 64px;
		align-items: start;
	}
	body.woocommerce-checkout form.checkout > .ct-customer-details { grid-column: 1; }
	body.woocommerce-checkout form.checkout > .ct-order-review {
		grid-column: 2;
		position: sticky;
		top: 30px;
	}
	body.woocommerce-checkout #customer_details .col-1,
	body.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
}

/* ---------- Les deux titres de colonne partent de la même ligne ---------- */

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .ct-order-review > h3#order_review_heading,
body.woocommerce-checkout h3#order_review_heading {
	margin: 0 0 30px !important;
	padding: 0 0 15px !important;
	font-size: 1.02rem;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--lds-brun);
	border-bottom: 2px solid var(--lds-or);
}
body.woocommerce-checkout form.checkout > .ct-customer-details,
body.woocommerce-checkout form.checkout > .ct-order-review,
body.woocommerce-checkout #customer_details { margin-top: 0; padding-top: 0; }

/* ---------- Champs ------------------------------------------------------- */

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 22px;
}

body.woocommerce-checkout .form-row {
	margin: 0 0 22px;
	padding: 0;
	float: none !important;
	width: auto !important;
}
body.woocommerce-checkout .form-row-wide,
body.woocommerce-checkout .form-row.notes,
body.woocommerce-checkout .form-row.place-order { grid-column: 1 / -1; }
body.woocommerce-checkout #billing_postcode_field,
body.woocommerce-checkout #billing_city_field,
body.woocommerce-checkout #shipping_postcode_field,
body.woocommerce-checkout #shipping_city_field { grid-column: span 1; }

body.woocommerce-checkout .form-row > label {
	display: block;
	font-size: .73rem;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lds-doux);
	margin: 0 0 8px;
}
body.woocommerce-checkout .form-row > label .required { color: var(--lds-brun); text-decoration: none; }

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container .select2-selection--single {
	width: 100%;
	min-height: 52px;
	padding: 14px 16px;
	font-size: .95rem;
	line-height: 1.4;
	color: #3a2a26;
	background: #fff;
	border: 1px solid var(--lds-trait-fort);
	border-radius: 10px;
	box-shadow: none;
	transition: border-color .16s ease, box-shadow .16s ease;
}
body.woocommerce-checkout .form-row textarea { min-height: 112px; }
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus {
	outline: none;
	border-color: var(--lds-or);
	box-shadow: 0 0 0 3px rgba(207, 179, 116, .25);
}

/* Les cases à cocher gardent une casse normale : une phrase en capitales
   ne se lit pas. */
body.woocommerce-checkout label.checkbox,
body.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 0;
	font-size: .89rem;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0;
	text-transform: none;
	color: rgba(60, 40, 35, .8);
}
body.woocommerce-checkout label.checkbox input,
body.woocommerce-checkout label.woocommerce-form__label-for-checkbox input { margin-top: 3px; flex: 0 0 auto; }

body.woocommerce-checkout #ship-to-different-address {
	margin: 4px 0 22px;
	padding: 0;
	border: 0;
	font-size: .89rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: rgba(60, 40, 35, .8);
}

/* ---------- Récapitulatif ------------------------------------------------ */

body.woocommerce-checkout #order_review {
	background: #fff;
	border: 1px solid var(--lds-trait);
	border-radius: var(--lds-rayon);
	padding: 6px 30px 30px;
	box-shadow: 0 2px 16px rgba(115, 59, 48, .05);
}

/* Le récapitulatif est un <table>. Rendre une seule cellule flexible la sort
   de la logique de tableau et écrase les colonnes voisines : on passe donc
   l'ensemble en blocs, et on maîtrise chaque ligne. */

body.woocommerce-checkout .woocommerce-checkout-review-order-table,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th {
	display: block;
	width: auto;
	border: 0;
	padding: 0;
	margin: 0;
	background: none;
	text-align: left;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead { display: none; }

/* Ligne produit : vignette, nom, quantité, prix */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart_item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-checkout tr.cart_item td.product-name {
	display: flex;
	align-items: center;
	gap: 13px;
	flex: 1 1 auto;
	min-width: 0;
	font-size: .9rem;
	line-height: 1.4;
	color: #3a2a26;
}
body.woocommerce-checkout tr.cart_item td.product-name img,
body.woocommerce-checkout .lds-vignette {
	width: 56px !important;
	height: 56px !important;
	flex: 0 0 56px;
	max-width: none;
	object-fit: contain;
	padding: 3px;
	background: #fff;
	border: 1px solid var(--lds-trait);
	border-radius: 10px;
}
body.woocommerce-checkout .lds-nom { flex: 1 1 auto; min-width: 0; }
body.woocommerce-checkout tr.cart_item .product-quantity {
	flex: 0 0 auto;
	padding: 3px 10px;
	font-size: .74rem;
	font-weight: 700;
	white-space: nowrap;
	color: var(--lds-brun);
	background: var(--lds-creme);
	border-radius: 30px;
}
body.woocommerce-checkout tr.cart_item td.product-total {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: .95rem;
	font-weight: 600;
	text-align: right;
}

/* Sous-total */
body.woocommerce-checkout tr.cart-subtotal {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-checkout tr.cart-subtotal th { font-weight: 500; font-size: .9rem; color: var(--lds-doux); }
body.woocommerce-checkout tr.cart-subtotal td { font-weight: 600; white-space: nowrap; }

/* Expédition */
body.woocommerce-checkout tr.woocommerce-shipping-totals {
	padding: 20px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-checkout .ct-shipping-heading {
	font-size: .73rem;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lds-doux);
	margin-bottom: 12px;
}
body.woocommerce-checkout ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
body.woocommerce-checkout ul#shipping_method li {
	margin: 0;
	padding: 14px 16px;
	border: 1px solid var(--lds-trait);
	border-radius: 11px;
	display: flex;
	align-items: center;
	gap: 11px;
	font-size: .89rem;
	line-height: 1.45;
	transition: border-color .15s ease, background .15s ease;
}
body.woocommerce-checkout ul#shipping_method li:has(input:checked) {
	border-color: var(--lds-or);
	background: rgba(255, 242, 215, .45);
}
body.woocommerce-checkout ul#shipping_method label { margin: 0; font-size: .89rem; }

/* Total */
body.woocommerce-checkout tr.order-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 22px 0 0;
}
body.woocommerce-checkout tr.order-total th,
body.woocommerce-checkout tr.order-total td {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--lds-brun);
	white-space: nowrap;
}
body.woocommerce-checkout tr.order-total td { text-align: right; }
body.woocommerce-checkout tr.order-total small {
	display: block;
	margin-top: 4px;
	font-size: .72rem;
	font-weight: 400;
	white-space: nowrap;
	color: var(--lds-doux);
}

/* ---------- Paiement ----------------------------------------------------- */
/* Stripe dessine déjà ses propres cartes : on n'en ajoute pas une autre
   par-dessus, sinon on lit deux encadrés imbriqués. */

body.woocommerce-checkout #payment {
	background: none;
	border-radius: 0;
	padding: 0;
	margin-top: 28px;
	padding-top: 26px;
	border-top: 1px solid var(--lds-trait);
}
body.woocommerce-checkout #payment ul.payment_methods {
	padding: 0;
	margin: 0;
	border: 0;
	list-style: none;
}
body.woocommerce-checkout #payment li.payment_method_stripe > input[type="radio"],
body.woocommerce-checkout #payment li.payment_method_stripe > label[for="payment_method_stripe"],
body.woocommerce-checkout .wc-saved-payment-methods[data-count="0"] {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
body.woocommerce-checkout #payment .payment_box {
	background: none !important;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	font-size: .93rem;
}
body.woocommerce-checkout #payment .payment_box::before { display: none !important; }
body.woocommerce-checkout #payment .payment_box::after {
	content: "Paiement chiffré et sécurisé par Stripe";
	display: block;
	margin-top: 18px;
	font-size: .77rem;
	color: var(--lds-doux);
	text-align: center;
}
body.woocommerce-checkout #payment .form-row.place-order { margin-top: 24px; }

/* ---------- Bouton et réassurance ---------------------------------------- */

body.woocommerce-checkout #place_order {
	width: 100%;
	padding: 19px 24px;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
	background: var(--lds-brun);
	border: 0;
	border-radius: 11px;
	cursor: pointer;
	transition: background .16s ease, transform .1s ease;
}
body.woocommerce-checkout #place_order:hover { background: #5d2f26; }
body.woocommerce-checkout #place_order:active { transform: translateY(1px); }

body.woocommerce-checkout .place-order::after {
	content: "Paiement sécurisé  ·  Expédition sous 48 h  ·  Retours sous 14 jours";
	display: block;
	margin-top: 18px;
	font-size: .78rem;
	line-height: 1.6;
	color: var(--lds-doux);
	text-align: center;
}

/* ---------- Code promo ---------------------------------------------------- */

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-left: 3px solid var(--lds-or);
	border-radius: 11px;
	padding: 16px 22px;
	margin-bottom: 34px;
	font-size: .9rem;
	color: #3a2a26;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle a { color: var(--lds-brun); font-weight: 600; }

/* ---------- Rien ne passe devant un formulaire de paiement --------------- */

body.woocommerce-checkout .trp-floating-switcher,
body.woocommerce-checkout .trp-language-switcher-container,
body.woocommerce-checkout .xoo-wl-opac,
body.woocommerce-checkout .joinchat,
body.woocommerce-checkout #whatsapp-chat { display: none !important; }

/* ---------- Mobile -------------------------------------------------------- */

@media (max-width: 999px) {
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	body.woocommerce-checkout #order_review { padding: 8px 20px 24px; margin-top: 36px; }
	body.woocommerce-checkout tr.cart_item td.product-name img,
	body.woocommerce-checkout .lds-vignette { width: 50px !important; height: 50px !important; flex-basis: 50px; }
}

/* La case « enregistrer ma carte » de Stripe n'a pas de classe : elle héritait
   du style « étiquette de champ » et s'affichait en capitales. */
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label,
body.woocommerce-checkout .form-row > label[for="wc-stripe-new-payment-method"] {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 14px 0 0;
	font-size: .87rem;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0;
	text-transform: none;
	color: rgba(60, 40, 35, .78);
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew { margin: 0; }

/* =========================================================================
   Estimation de livraison
   ========================================================================= */

body.woocommerce-checkout .lds-eta {
	display: block;
	margin-top: 6px;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;
	text-transform: none;
	color: rgba(60, 40, 35, .72);
}
body.woocommerce-checkout .lds-eta strong {
	display: block;
	font-size: .85rem;
	font-weight: 700;
	color: #2f6b45;
}
body.woocommerce-checkout .lds-eta em {
	display: block;
	margin-top: 2px;
	font-style: normal;
	font-size: .76rem;
	color: rgba(60, 40, 35, .55);
}
body.woocommerce-checkout .lds-eta-retrait { color: rgba(60, 40, 35, .62); }

/* Les intitulés de livraison sont longs : on les rend lisibles plutôt
   qu'imposants, pour que la liste tienne dans un écran. */
body.woocommerce-checkout ul#shipping_method label {
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: #3a2a26;
}
body.woocommerce-checkout ul#shipping_method li { align-items: flex-start; }
body.woocommerce-checkout ul#shipping_method input[type="radio"] { margin-top: 3px; }

/* =========================================================================
   Mobile — récapitulatif repliable en haut de page
   ========================================================================= */

body.woocommerce-checkout .lds-recap { display: none; }

@media (max-width: 999px) {
	body.woocommerce-checkout .lds-recap {
		display: block;
		margin: 0 0 26px;
		border: 1px solid var(--lds-trait);
		border-radius: 12px;
		background: #fffdf9;
		overflow: hidden;
	}
	body.woocommerce-checkout .lds-recap-bouton {
		display: flex;
		align-items: center;
		gap: 12px;
		width: 100%;
		padding: 16px 18px;
		background: none;
		border: 0;
		cursor: pointer;
		text-align: left;
		font-family: inherit;
	}
	body.woocommerce-checkout .lds-recap-titre {
		flex: 1 1 auto;
		font-size: .92rem;
		font-weight: 600;
		color: var(--lds-brun);
	}
	body.woocommerce-checkout .lds-recap-total {
		font-size: 1.05rem;
		font-weight: 700;
		color: var(--lds-brun);
		white-space: nowrap;
	}
	body.woocommerce-checkout .lds-recap-chevron {
		flex: 0 0 auto;
		width: 9px;
		height: 9px;
		border-right: 2px solid var(--lds-brun);
		border-bottom: 2px solid var(--lds-brun);
		transform: rotate(45deg) translate(-2px, -2px);
		transition: transform .18s ease;
	}
	body.woocommerce-checkout .lds-recap-bouton[aria-expanded="true"] .lds-recap-chevron {
		transform: rotate(-135deg) translate(-3px, -3px);
	}
	body.woocommerce-checkout .lds-recap-corps {
		padding: 0 18px 6px;
		border-top: 1px solid var(--lds-trait);
	}
	body.woocommerce-checkout .lds-recap-table { width: 100%; }
	body.woocommerce-checkout .lds-recap-table .cart-subtotal { border-bottom: 0; }

	/* Le récapitulatif du bas n'a plus à porter la liste des produits :
	   il ne garde que la livraison, le total et le paiement. */
	body.woocommerce-checkout #order_review { padding: 6px 18px 24px; margin-top: 30px; }
	body.woocommerce-checkout form.checkout > .ct-order-review > h3#order_review_heading { margin-top: 34px !important; }

	/* Densité générale : la page doit tenir en un nombre raisonnable d'écrans. */
	body.woocommerce-checkout .form-row { margin-bottom: 16px; }
	body.woocommerce-checkout .form-row input.input-text,
	body.woocommerce-checkout .form-row select,
	body.woocommerce-checkout .select2-container .select2-selection--single { min-height: 48px; padding: 12px 14px; }
	body.woocommerce-checkout .form-row textarea { min-height: 88px; }
	body.woocommerce-checkout .woocommerce-billing-fields > h3,
	body.woocommerce-checkout h3#order_review_heading { margin-bottom: 22px !important; }
	body.woocommerce-checkout ul#shipping_method li { padding: 12px 14px; }
	body.woocommerce-checkout ul#shipping_method label { font-size: .86rem; }
	body.woocommerce-checkout .lds-eta strong { font-size: .82rem; }
	body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 24px; padding: 13px 16px; font-size: .86rem; }
	body.woocommerce-checkout #place_order { padding: 17px 20px; }
}

/* La case « enregistrer ma carte » débordait de la carte sur petit écran. */
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew {
	width: 100%;
	max-width: 100%;
	overflow-wrap: anywhere;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label {
	max-width: 100%;
	min-width: 0;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label > input { flex: 0 0 auto; }
body.woocommerce-checkout #payment .payment_box,
body.woocommerce-checkout #order_review { max-width: 100%; overflow-x: clip; }

/* Compte à rebours avant l'heure limite d'expédition. */
body.woocommerce-checkout .lds-eta .lds-compte {
	display: block;
	margin-top: 3px;
	font-style: normal;
	font-size: .78rem;
	color: #a8541f;
}
body.woocommerce-checkout .lds-eta .lds-compte b {
	font-weight: 700;
	color: #a8541f;
	white-space: nowrap;
}



/* =========================================================================
   Modes de livraison
   Mise en page en flottant plutôt qu'en grille : un élément large inséré par
   le transporteur ne peut alors pas élargir une colonne et écraser le titre.
   ========================================================================= */

body.woocommerce-checkout ul#shipping_method li {
	display: block !important;
	padding: 15px 16px;
	overflow: hidden;
}
body.woocommerce-checkout ul#shipping_method li > input[type="radio"] {
	float: left;
	margin: 4px 12px 0 0;
	flex: none;
}
body.woocommerce-checkout ul#shipping_method li > label {
	display: block;
	overflow: hidden;   /* le texte se cale à droite du bouton radio */
	margin: 0;
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: #3a2a26;
}

body.woocommerce-checkout .lds-detail {
	display: block;
	margin-top: 4px;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	color: rgba(60, 40, 35, .6);
}

/* Ce que le transporteur ajoute passe toujours sur sa propre ligne. */
body.woocommerce-checkout .sc-delivery-method-mount-point,
body.woocommerce-checkout .sc-delivery-method-description {
	clear: both !important;
	float: none !important;
	display: block !important;
	width: 100% !important;
	padding-left: 0 !important;
}
body.woocommerce-checkout .sc-delivery-method-mount-point { margin-top: 12px; }
body.woocommerce-checkout .sc-delivery-method-description {
	margin-top: 8px;
	font-size: .82rem;
	line-height: 1.45;
	color: rgba(60, 40, 35, .7);
}

/* Le bouton « Sélectionner un point relais » est une action secondaire.
   Sélecteurs volontairement larges : c'est le widget SendCloud qui décide
   de la balise, et elle peut changer d'une version à l'autre. */
body.woocommerce-checkout .sc-delivery-method-mount-point button,
body.woocommerce-checkout .sc-delivery-method-mount-point a,
body.woocommerce-checkout .sc-delivery-method-mount-point [role="button"],
body.woocommerce-checkout .sc-delivery-method-mount-point input[type="button"],
body.woocommerce-checkout .sc-delivery-method-mount-point input[type="submit"],
body.woocommerce-checkout .sc-delivery-method-mount-point [class*="button"],
body.woocommerce-checkout .sc-delivery-method-mount-point [class*="Button"],
body.woocommerce-checkout .sc-delivery-method-mount-point [class*="btn"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 9px 16px !important;
	font-size: .82rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	white-space: normal !important;
	color: var(--lds-brun) !important;
	background: #fff !important;
	background-image: none !important;
	border: 1.5px solid var(--lds-trait-fort) !important;
	border-radius: 9px !important;
	box-shadow: none !important;
	cursor: pointer;
}
body.woocommerce-checkout .sc-delivery-method-mount-point button:hover,
body.woocommerce-checkout .sc-delivery-method-mount-point a:hover,
body.woocommerce-checkout .sc-delivery-method-mount-point [class*="button"]:hover {
	border-color: var(--lds-or) !important;
	background: rgba(255, 242, 215, .5) !important;
}

@media (max-width: 999px) {
	body.woocommerce-checkout .sc-delivery-method-mount-point button,
	body.woocommerce-checkout .sc-delivery-method-mount-point a,
	body.woocommerce-checkout .sc-delivery-method-mount-point [class*="button"] {
		width: 100% !important;
	}
}

/* =========================================================================
   Bouton de commande — le rendre évident, et toujours accessible
   ========================================================================= */

body.woocommerce-checkout #place_order {
	width: 100%;
	padding: 20px 24px;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
	background: var(--lds-brun);
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(115, 59, 48, .28);
	transition: background .16s ease, box-shadow .16s ease, transform .1s ease;
}
body.woocommerce-checkout #place_order:hover {
	background: #5d2f26;
	box-shadow: 0 8px 22px rgba(115, 59, 48, .36);
}
body.woocommerce-checkout #place_order:active { transform: translateY(1px); }

/* --- Barre de commande fixe sur mobile ---------------------------------- */
/* Le bouton reste à portée de pouce quel que soit l'endroit de la page,
   avec le montant sous les yeux : on ne cherche jamais comment payer. */

body.woocommerce-checkout .lds-barre-achat { display: none; }

@media (max-width: 999px) {
	body.woocommerce-checkout .lds-barre-achat {
		display: flex;
		align-items: center;
		gap: 14px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .97);
		backdrop-filter: blur(8px);
		border-top: 1px solid var(--lds-trait);
		box-shadow: 0 -4px 20px rgba(115, 59, 48, .1);
		transform: translateY(0);
		transition: transform .22s ease;
	}
	/* Quand le vrai bouton est à l'écran, la barre s'efface : deux boutons
	   identiques côte à côte sèment le doute. */
	body.woocommerce-checkout .lds-barre-achat[hidden-bar] { transform: translateY(120%); }

	body.woocommerce-checkout .lds-barre-montant {
		flex: 0 0 auto;
		line-height: 1.15;
	}
	body.woocommerce-checkout .lds-barre-montant small {
		display: block;
		font-size: .68rem;
		letter-spacing: .05em;
		text-transform: uppercase;
		color: var(--lds-doux);
	}
	body.woocommerce-checkout .lds-barre-montant b {
		font-size: 1.15rem;
		font-weight: 700;
		color: var(--lds-brun);
		white-space: nowrap;
	}
	body.woocommerce-checkout .lds-barre-bouton {
		flex: 1 1 auto;
		padding: 15px 18px;
		font-family: inherit;
		font-size: .95rem;
		font-weight: 700;
		letter-spacing: .05em;
		text-transform: uppercase;
		color: #fff;
		background: var(--lds-brun);
		border: 0;
		border-radius: 11px;
		box-shadow: 0 4px 14px rgba(115, 59, 48, .3);
		cursor: pointer;
	}
	body.woocommerce-checkout .lds-barre-bouton:active { transform: translateY(1px); }

	/* de quoi ne pas masquer le bas de page sous la barre */
	body.woocommerce-checkout .woocommerce { padding-bottom: 92px; }
}

/* =========================================================================
   Mobile — récupérer la largeur mangée par le thème
   Blocksy applique padding: 0 25px 25px sur chaque colonne : sur un écran de
   390 px, cela ne laissait que 221 px de contenu utile. Sur mobile, la
   colonne occupe toute la largeur ; c'est la carte qui porte les marges.
   ========================================================================= */

@media (max-width: 999px) {
	body.woocommerce-checkout form.checkout > .ct-order-review,
	body.woocommerce-checkout form.checkout > .ct-customer-details {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	body.woocommerce-checkout #order_review {
		margin-top: 24px;
		padding: 6px 14px 20px;
	}
	body.woocommerce-checkout ul#shipping_method li { padding: 13px 13px; }
	body.woocommerce-checkout .lds-recap-bouton { padding: 15px 15px; }
	body.woocommerce-checkout .lds-recap-corps { padding: 0 15px 6px; }

	/* Les intitulés de livraison sur deux lignes maximum, pas cinq. */
	body.woocommerce-checkout ul#shipping_method li > label { font-size: .87rem; }
	body.woocommerce-checkout .lds-detail { font-size: .78rem; }
	body.woocommerce-checkout .lds-eta { font-size: .78rem; }
	body.woocommerce-checkout .lds-eta strong { font-size: .81rem; }
}

/* Le thème applique une marge négative au bloc de paiement (margin: 28px -26px)
   pour le faire déborder de la colonne. Dans une carte, ce débordement sort du
   cadre : tout le paiement et le bouton passaient sous le bord gauche. */
body.woocommerce-checkout #payment {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: auto !important;
	max-width: 100% !important;
}
body.woocommerce-checkout #payment ul.payment_methods,
body.woocommerce-checkout #payment .payment_box,
body.woocommerce-checkout #payment .form-row.place-order {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: auto !important;
	max-width: 100% !important;
}

/* =========================================================================
   Champs appariés — y compris sur téléphone
   Prénom/Nom, Code postal/Ville et Téléphone/E-mail vont deux par deux :
   ce sont des paires qu'on lit et qu'on saisit ensemble.
   ========================================================================= */

body.woocommerce-checkout #billing_phone_field,
body.woocommerce-checkout #billing_email_field,
body.woocommerce-checkout #shipping_phone_field {
	grid-column: span 1 !important;
}

@media (max-width: 999px) {
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr 1fr;
		column-gap: 12px;
	}

	/* Ce qui a besoin de toute la largeur le garde. */
	body.woocommerce-checkout #billing_country_field,
	body.woocommerce-checkout #billing_company_field,
	body.woocommerce-checkout #billing_address_1_field,
	body.woocommerce-checkout #billing_address_2_field,
	body.woocommerce-checkout #billing_state_field,
	body.woocommerce-checkout #shipping_country_field,
	body.woocommerce-checkout #shipping_company_field,
	body.woocommerce-checkout #shipping_address_1_field,
	body.woocommerce-checkout #shipping_address_2_field,
	body.woocommerce-checkout #shipping_state_field,
	body.woocommerce-checkout .form-row.notes,
	body.woocommerce-checkout .form-row.place-order,
	body.woocommerce-checkout .form-row.woocommerce-validated:has(textarea),
	body.woocommerce-checkout .create-account,
	body.woocommerce-checkout .woocommerce-account-fields,
	body.woocommerce-checkout .woocommerce-shipping-fields {
		grid-column: 1 / -1 !important;
	}

	/* 16 px minimum : en dessous, iOS zoome tout seul à la mise au point
	   du champ et sort l'utilisatrice de la page. */
	body.woocommerce-checkout .form-row input.input-text,
	body.woocommerce-checkout .form-row textarea,
	body.woocommerce-checkout .form-row select,
	body.woocommerce-checkout .select2-container .select2-selection--single,
	body.woocommerce-checkout .select2-search__field {
		font-size: 16px !important;
		padding: 12px 12px;
	}

	/* Étiquettes plus compactes pour tenir dans une demi-largeur. */
	body.woocommerce-checkout .form-row > label {
		font-size: .68rem;
		letter-spacing: .05em;
		margin-bottom: 6px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	body.woocommerce-checkout .form-row { margin-bottom: 14px; }
}

/* Les cases à cocher sont collées au bord : on leur laisse de quoi
   afficher leur contour et leur halo de mise au point. */
@media (max-width: 999px) {
	body.woocommerce-checkout .woocommerce-account-fields,
	body.woocommerce-checkout .form-row.create-account,
	body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
	body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew { padding-left: 2px; }

	body.woocommerce-checkout .form-row.notes textarea { min-height: 84px; }
	body.woocommerce-checkout .woocommerce-account-fields { margin-bottom: 6px; }
}

/* =========================================================================
   Cases à cocher — visibles, et assez grandes pour le pouce
   ========================================================================= */

body.woocommerce-checkout form.checkout input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 1px solid var(--lds-trait-fort);
	border-radius: 4px;
	cursor: pointer;
	transition: background .14s ease, border-color .14s ease;
}
body.woocommerce-checkout form.checkout input[type="checkbox"]:hover { border-color: var(--lds-or); }
body.woocommerce-checkout form.checkout input[type="checkbox"]:checked {
	background: var(--lds-brun);
	border-color: var(--lds-brun);
}
body.woocommerce-checkout form.checkout input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 2px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
body.woocommerce-checkout form.checkout input[type="checkbox"]:focus-visible {
	outline: 3px solid rgba(207, 179, 116, .55);
	outline-offset: 2px;
}

/* L'acceptation des conditions est une action, pas une mention légale :
   elle mérite un fond et un cadre pour se distinguer du texte. */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required {
	margin: 0 0 18px;
	padding: 0;
	background: none;
	border: 0;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required label {
	font-size: .9rem;
	color: #3a2a26;
}
body.woocommerce-checkout .form-row.create-account label,
body.woocommerce-checkout .woocommerce-account-fields label { font-size: .9rem; color: #3a2a26; }

/* Le rappel de confidentialité passe sous le bouton : il informe,
   il n'a pas à s'interposer entre la cliente et le paiement. */
body.woocommerce-checkout .lds-apres-bouton {
	margin-top: 16px;
	font-size: .78rem;
	line-height: 1.55;
	color: var(--lds-doux);
	text-align: center;
}
body.woocommerce-checkout .lds-apres-bouton p { margin: 0; font-size: inherit; color: inherit; }
body.woocommerce-checkout .lds-apres-bouton a { color: inherit; text-decoration: underline; }

/* Le bouton du transporteur reste une action secondaire, quelle que soit
   la balise que son widget choisit : on borne le conteneur lui-même. */
body.woocommerce-checkout .sc-delivery-method-mount-point {
	max-width: 250px;
	font-size: 13px;
	line-height: 1.3;
}
body.woocommerce-checkout .sc-delivery-method-mount-point * {
	font-size: inherit !important;
	line-height: inherit !important;
	max-width: 100% !important;
	min-height: 0 !important;
	height: auto !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
@media (max-width: 999px) {
	/* Même sur téléphone il reste borné : s'il conserve son fond plein, une
	   pleine largeur en ferait le deuxième bouton le plus voyant de la page. */
	body.woocommerce-checkout .sc-delivery-method-mount-point { max-width: 260px; }
}

/* Certaines cases ne sont pas dans un conteneur flexible : on impose la
   taille pour qu'elles soient toutes identiques et toutes cliquables. */
body.woocommerce-checkout form.checkout input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	min-height: 18px !important;
	max-width: 18px !important;
	max-height: 18px !important;
	box-sizing: border-box !important;
	vertical-align: middle;
}
body.woocommerce-checkout #ship-to-different-address label,
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label,
body.woocommerce-checkout .form-row.create-account label {
	display: flex;
	align-items: center;
	gap: 11px;
}

/* Le texte des CGV se déplie en cliquant sur le lien « conditions générales ».
   La case et le reste de la ligne ne cochent que la case. */
body.woocommerce-checkout .woocommerce-terms-and-conditions {
	margin-top: 12px;
	padding: 14px 16px;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-radius: 10px;
	font-size: .82rem;
	line-height: 1.5;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-link {
	color: var(--lds-brun);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* =========================================================================
   Bouton de commande — une phrase lisible, tenue sur une seule ligne
   ========================================================================= */

body.woocommerce-checkout #place_order,
body.woocommerce-checkout .lds-barre-bouton {
	text-transform: none !important;
	letter-spacing: .01em !important;
	white-space: nowrap;
	font-size: clamp(.88rem, 3.4vw, 1rem) !important;
	font-weight: 700;
	padding-left: 16px;
	padding-right: 16px;
}

@media (max-width: 999px) {
	/* Dans la barre fixe, le montant cède du terrain au bouton. */
	body.woocommerce-checkout .lds-barre-achat { gap: 10px; padding-left: 14px; padding-right: 14px; }
	body.woocommerce-checkout .lds-barre-montant b { font-size: 1.02rem; }
	body.woocommerce-checkout .lds-barre-montant small { font-size: .62rem; }
	body.woocommerce-checkout .lds-barre-bouton {
		font-size: clamp(.8rem, 3.5vw, .92rem) !important;
		padding: 14px 12px;
	}
}

/* =========================================================================
   Création de compte — une proposition, pas une case perdue
   ========================================================================= */

body.woocommerce-checkout .woocommerce-account-fields {
	margin: 4px 0 20px;
	padding: 0;
	overflow: visible;
}
body.woocommerce-checkout .form-row.create-account {
	margin: 0;
	padding: 14px 16px;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-left: 3px solid var(--lds-or);
	border-radius: 11px;
	overflow: visible;
}
body.woocommerce-checkout .form-row.create-account label {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0;
	font-size: .92rem;
	font-weight: 600;
	color: #3a2a26;
	cursor: pointer;
}
/* Le bénéfice, aligné sous le libellé plutôt que sous la case. */
body.woocommerce-checkout .form-row.create-account::after {
	content: "Suivez vos commandes et retrouvez vos adresses au prochain achat.";
	display: block;
	margin-top: 6px;
	padding-left: 29px;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--lds-doux);
}

/* Les champs de mot de passe qui apparaissent une fois la case cochée. */
body.woocommerce-checkout .woocommerce-account-fields .create-account ~ .form-row,
body.woocommerce-checkout .woocommerce-account-fields > .form-row:not(.create-account) {
	margin-top: 14px;
}

/* Aucune case ne doit être rognée par un conteneur. */
body.woocommerce-checkout .form-row,
body.woocommerce-checkout .woocommerce-account-fields,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { overflow: visible; }

/* =========================================================================
   Cases de consentement — une seule taille pour les trois
   Newsletter, conditions générales et création de compte partagent désormais
   la même variable : un seul chiffre à changer pour les faire bouger ensemble.
   ========================================================================= */

body.woocommerce-checkout { --lds-consentement: .82rem; }

@media (max-width: 999px) {
	body.woocommerce-checkout { --lds-consentement: .7rem; }
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .validate-required label,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox,
body.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .form-row.create-account label,
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label,
body.woocommerce-checkout .form-row.create-account::after {
	font-size: var(--lds-consentement) !important;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
}

/* Le libellé « Créer mon compte » garde son poids : c'est une proposition,
   pas une mention légale. Seule sa taille s'aligne. */
body.woocommerce-checkout .form-row.create-account label { font-weight: 600; }
body.woocommerce-checkout .form-row.create-account::after {
	font-weight: 400;
	margin-top: 5px;
}

/* Les cases suivent la taille du texte pour rester proportionnées. */
@media (max-width: 999px) {
	body.woocommerce-checkout form.checkout input[type="checkbox"] {
		flex: 0 0 17px;
		width: 17px;
		height: 17px;
	}
	body.woocommerce-checkout form.checkout input[type="checkbox"]:checked::after {
		left: 5px; top: 2px; width: 4px; height: 8px;
	}
}

/* =========================================================================
   Cases de consentement — positionnement absolu plutôt que flex
   Le libellé des CGV contient quatre éléments (case, texte, espace insécable,
   astérisque) là où la newsletter n'en a que deux. En flex, ces éléments
   supplémentaires décalent la case et la rognent. En absolu, la case est
   ancrée au même endroit quel que soit le contenu qui suit.
   ========================================================================= */

body.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox,
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label,
body.woocommerce-checkout .form-row.create-account label {
	display: block !important;
	position: relative;
	gap: 0;
	margin: 0;
	padding-left: 28px;
	font-size: var(--lds-consentement) !important;
	line-height: 1.55;
	cursor: pointer;
}

body.woocommerce-checkout label.woocommerce-form__label-for-checkbox > input[type="checkbox"],
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox > input[type="checkbox"],
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label > input[type="checkbox"],
body.woocommerce-checkout .form-row.create-account label > input[type="checkbox"] {
	position: absolute !important;
	left: 0;
	top: 0.1em;
	margin: 0 !important;
	flex: none;
}

/* L'astérisque reste collé au texte, il ne part plus à droite. */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox abbr.required {
	margin-left: 2px;
	border: 0;
	text-decoration: none;
	color: var(--lds-brun);
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text { display: inline; }

/* La ligne de bénéfice s'aligne sur le texte, pas sur la case. */
body.woocommerce-checkout .form-row.create-account::after { padding-left: 28px; }

/* =========================================================================
   Sélecteur de pays (Select2)
   Le menu déroulant est ajouté à la fin du <body>, hors du tunnel : il faut
   le viser depuis la racine, sinon aucune règle ne l'atteint.
   ========================================================================= */

.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: auto;
	min-height: 52px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid rgba(115, 59, 48, .26);
	border-radius: 10px;
	display: flex;
	align-items: center;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: #3a2a26;
	font-size: .95rem;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 12px;
}
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #cfb374;
	box-shadow: 0 0 0 3px rgba(207, 179, 116, .25);
}

/* --- Le menu lui-même --------------------------------------------------- */

body .select2-container--default .select2-dropdown {
	margin-top: 6px;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(115, 59, 48, .2);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(115, 59, 48, .16);
}

body .select2-container--default .select2-search--dropdown {
	padding: 10px 10px 6px;
	background: #fff;
	border-bottom: 1px solid rgba(115, 59, 48, .1);
}
body .select2-container--default .select2-search--dropdown .select2-search__field {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 11px 13px;
	font-size: 16px;          /* 16 px : sinon iOS zoome à la saisie */
	line-height: 1.4;
	color: #3a2a26;
	background: #faf9f7;
	border: 1px solid rgba(115, 59, 48, .18);
	border-radius: 9px;
	outline: none;
}
body .select2-container--default .select2-search--dropdown .select2-search__field:focus {
	border-color: #cfb374;
	background: #fff;
}

body .select2-container--default .select2-results > .select2-results__options {
	max-height: 280px;
	padding: 6px;
	overscroll-behavior: contain;
}
body .select2-container--default .select2-results__option {
	margin: 1px 0;
	padding: 11px 13px;
	font-size: .95rem;
	line-height: 1.35;
	color: #3a2a26;
	border-radius: 8px;
	transition: background .12s ease, color .12s ease;
}
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected],
body .select2-container--default .select2-results__option:hover {
	background: #733b30;
	color: #fff;
}
body .select2-container--default .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
body .select2-container--default .select2-results__option[data-selected="true"]:not(.select2-results__option--highlighted) {
	background: rgba(255, 242, 215, .6);
	color: #733b30;
	font-weight: 600;
}
body .select2-container--default .select2-results__message {
	padding: 14px;
	font-size: .88rem;
	color: rgba(60, 40, 35, .6);
}

/* Le menu doit passer au-dessus de la barre d'achat fixe. */
body .select2-container--open { z-index: 200 !important; }

/* =========================================================================
   Cases à cocher — contour franc, lisible sur fond blanc comme sur fond crème
   Sur le bloc « Créer mon compte », le contour trop clair se confondait avec
   le fond de la carte et donnait l'impression d'une case rognée.
   ========================================================================= */

body.woocommerce-checkout form.checkout input[type="checkbox"] {
	background: #fff !important;
	border: 1.5px solid rgba(115, 59, 48, .45) !important;
	border-radius: 5px !important;
	box-shadow: 0 1px 2px rgba(115, 59, 48, .07);
}
body.woocommerce-checkout form.checkout input[type="checkbox"]:checked {
	background: var(--lds-brun) !important;
	border-color: var(--lds-brun) !important;
}

/* Dans la carte de création de compte, la case est décollée du filet doré. */
body.woocommerce-checkout .form-row.create-account { padding: 15px 16px 15px 18px; }
body.woocommerce-checkout .form-row.create-account label { padding-left: 30px; }
body.woocommerce-checkout .form-row.create-account label > input[type="checkbox"] { left: 1px; }
body.woocommerce-checkout .form-row.create-account::after { padding-left: 30px; }

/* =========================================================================
   Cases à cocher — forcer le rendu personnalisé
   Seize feuilles se chargent après celle-ci. Sans !important sur
   `appearance`, iOS retombe sur la case native, qui ignore bordure et fond :
   d'où l'impression de case rognée et mal alignée.
   ========================================================================= */

body.woocommerce-checkout form.checkout input[type="checkbox"],
body.woocommerce-checkout form.checkout input.input-checkbox,
body.woocommerce-checkout form.checkout .woocommerce-form__input-checkbox {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	max-width: 18px !important;
	min-height: 18px !important;
	max-height: 18px !important;
	padding: 0 !important;
	background: #fff !important;
	background-image: none !important;
	border: 1.5px solid rgba(115, 59, 48, .45) !important;
	border-radius: 5px !important;
	box-shadow: 0 1px 2px rgba(115, 59, 48, .07) !important;
	vertical-align: top !important;
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	cursor: pointer;
}

body.woocommerce-checkout form.checkout input[type="checkbox"]:checked,
body.woocommerce-checkout form.checkout input.input-checkbox:checked {
	background: #733b30 !important;
	border-color: #733b30 !important;
}

body.woocommerce-checkout form.checkout input[type="checkbox"]:checked::after,
body.woocommerce-checkout form.checkout input.input-checkbox:checked::after {
	content: "" !important;
	position: absolute !important;
	left: 5px !important;
	top: 2px !important;
	width: 4px !important;
	height: 8px !important;
	border: solid #fff !important;
	border-width: 0 2px 2px 0 !important;
	transform: rotate(45deg) !important;
	background: none !important;
}

/* =========================================================================
   Bouton « Sélectionner un point relais »
   Le widget SendCloud le crée en `document.createElement('button')` puis lui
   pose `classList.add('button','alt')` — soit les classes du bouton principal
   du thème, d'où le pavé brun. Et il l'ajoute au <li> lui-même, pas au
   conteneur `.sc-delivery-method-mount-point`.
   On le vise donc là où il est vraiment, et on en fait une action secondaire.
   ========================================================================= */

body.woocommerce-checkout ul#shipping_method li > button,
body.woocommerce-checkout ul#shipping_method li button.button.alt {
	display: inline-block !important;
	clear: both !important;
	float: none !important;
	/* aligné sur le texte de l'intitulé, pas sur le bouton radio */
	margin: 10px 0 2px 30px !important;
	padding: 8px 14px !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	font-family: inherit !important;
	font-size: .8rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	white-space: normal !important;
	color: #733b30 !important;
	background: #fff !important;
	background-image: none !important;
	border: 1.5px solid rgba(115, 59, 48, .38) !important;
	border-radius: 9px !important;
	box-shadow: none !important;
	text-shadow: none !important;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
body.woocommerce-checkout ul#shipping_method li > button:hover,
body.woocommerce-checkout ul#shipping_method li button.button.alt:hover {
	color: #733b30 !important;
	background: rgba(255, 242, 215, .55) !important;
	border-color: #cfb374 !important;
}

/* Le point relais retenu, affiché par le widget sous le bouton. */
body.woocommerce-checkout ul#shipping_method li > div {
	clear: both;
	margin-left: 30px;
	font-size: .82rem;
	line-height: 1.45;
	color: rgba(60, 40, 35, .72);
}

/* Le conteneur du widget n'a plus à être bricolé : il reste simplement
   sur sa propre ligne. */
body.woocommerce-checkout .sc-delivery-method-mount-point {
	clear: both !important;
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}

/* L'étiquette du point relais retenu, telle que la nomme le widget. */
body.woocommerce-checkout #sendcloudshipping_service_point_selected_label {
	display: block;
	clear: both;
	margin: 8px 0 0 30px;
	font-size: .82rem;
	line-height: 1.45;
	color: rgba(60, 40, 35, .72);
}

/* =========================================================================
   Cases à cocher — hauteur de ligne suffisante
   La case fait 18 px, la ligne de texte 17,4 px : sur un libellé d'une seule
   ligne, la case dépassait de 2 px sous son libellé et l'élément suivant
   repeignait par-dessus — la bordure du bas disparaissait.
   ========================================================================= */

body.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox,
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label,
body.woocommerce-checkout .form-row.create-account label {
	min-height: 22px;
	padding-top: 1px;
}

body.woocommerce-checkout form.checkout input[type="checkbox"],
body.woocommerce-checkout form.checkout input.input-checkbox {
	/* la case passe devant : plus rien ne peut recouvrir son contour */
	z-index: 1 !important;
	top: 2px !important;
}

/* =========================================================================
   Case « Enregistrer ma carte » (Stripe)
   Ici l'input est le FRÈRE du libellé, pas son enfant : le retrait doit être
   porté par le conteneur, sinon la case se retrouve seule sur sa ligne.
   ========================================================================= */

body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew {
	position: relative;
	display: block;
	margin: 14px 0 0;
	padding: 0 0 0 28px;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > input[type="checkbox"] {
	position: absolute !important;
	left: 0 !important;
	top: 2px !important;
	margin: 0 !important;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew > label {
	display: block !important;
	position: static !important;
	margin: 0 !important;
	padding-left: 0 !important;
	min-height: 0 !important;
	font-size: var(--lds-consentement) !important;
	line-height: 1.55;
	color: rgba(60, 40, 35, .8);
	cursor: pointer;
}

/* Même schéma pour « Utiliser un nouveau moyen de paiement », au cas où
   des cartes enregistrées feraient apparaître la liste. */
body.woocommerce-checkout .woocommerce-SavedPaymentMethods li {
	position: relative;
	padding-left: 28px;
	list-style: none;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods li > input[type="radio"] {
	position: absolute;
	left: 0;
	top: 3px;
	margin: 0;
}
body.woocommerce-checkout .woocommerce-SavedPaymentMethods li > label {
	display: block;
	margin: 0;
	padding-left: 0;
	font-size: var(--lds-consentement);
}

/* =========================================================================
   PANIER
   Même vocabulaire visuel que la page de commande : lignes produit lisibles,
   carte de totaux, livraison en cartes sélectionnables, hiérarchie claire
   entre l'action principale et les actions secondaires.
   ========================================================================= */

body.woocommerce-cart {
	--lds-brun:       #733b30;
	--lds-or:         #cfb374;
	--lds-creme:      #fff2d7;
	--lds-trait:      rgba(115, 59, 48, .14);
	--lds-trait-fort: rgba(115, 59, 48, .26);
	--lds-doux:       rgba(60, 40, 35, .60);
}

/* ---------- Tableau des articles ---------------------------------------- */

body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents {
	border: 0;
	border-collapse: collapse;
	margin: 0;
}
body.woocommerce-cart table.shop_table thead th {
	padding: 0 0 14px;
	border: 0;
	border-bottom: 2px solid var(--lds-or);
	background: none;
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--lds-brun);
}
body.woocommerce-cart table.shop_table tbody td {
	padding: 20px 10px 20px 0;
	border: 0;
	border-bottom: 1px solid var(--lds-trait);
	background: none;
	vertical-align: middle;
}

body.woocommerce-cart td.product-thumbnail { width: 92px; padding-right: 18px; }
body.woocommerce-cart td.product-thumbnail img {
	width: 84px !important;
	height: 84px !important;
	object-fit: contain;
	padding: 5px;
	background: #fff;
	border: 1px solid var(--lds-trait);
	border-radius: 12px;
}
body.woocommerce-cart td.product-name {
	font-size: .95rem;
	line-height: 1.4;
}
body.woocommerce-cart td.product-name a {
	color: #3a2a26;
	font-weight: 600;
	text-decoration: none;
}
body.woocommerce-cart td.product-name a:hover { color: var(--lds-brun); }
body.woocommerce-cart td.product-subtotal,
body.woocommerce-cart td.product-price {
	font-weight: 600;
	color: #3a2a26;
	white-space: nowrap;
}

/* Compteur de quantité */
body.woocommerce-cart td.product-quantity .quantity,
body.woocommerce-cart .ct-cart-quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--lds-trait-fort);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
body.woocommerce-cart td.product-quantity input.qty {
	width: 46px;
	min-height: 42px;
	padding: 0;
	text-align: center;
	font-size: .95rem;
	color: #3a2a26;
	border: 0;
	background: none;
	box-shadow: none;
}
body.woocommerce-cart td.product-quantity .quantity button,
body.woocommerce-cart td.product-quantity .quantity a {
	width: 38px;
	min-height: 42px;
	border: 0;
	background: none;
	color: var(--lds-brun);
	font-size: 1rem;
	cursor: pointer;
}
body.woocommerce-cart td.product-quantity .quantity button:hover { background: rgba(255, 242, 215, .6); }

/* Retirer un article */
body.woocommerce-cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	font-size: 1rem;
	color: var(--lds-brun) !important;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-radius: 9px;
	transition: background .15s ease, border-color .15s ease;
}
body.woocommerce-cart td.product-remove a.remove:hover {
	background: rgba(255, 242, 215, .7);
	border-color: var(--lds-or);
	color: var(--lds-brun) !important;
}

/* ---------- Code promo et actions --------------------------------------- */

body.woocommerce-cart td.actions {
	padding: 26px 0 0 !important;
	border-bottom: 0 !important;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
body.woocommerce-cart td.actions .coupon {
	display: flex;
	gap: 10px;
	flex: 1 1 340px;
	min-width: 0;
}
body.woocommerce-cart td.actions .coupon input#coupon_code {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 50px;
	padding: 13px 16px;
	font-size: .95rem;
	color: #3a2a26;
	background: #fff;
	border: 1px solid var(--lds-trait-fort);
	border-radius: 10px;
}
body.woocommerce-cart td.actions .coupon input#coupon_code:focus {
	outline: none;
	border-color: var(--lds-or);
	box-shadow: 0 0 0 3px rgba(207, 179, 116, .25);
}

/* Action principale du bloc promo */
body.woocommerce-cart td.actions .coupon button[name="apply_coupon"] {
	flex: 0 0 auto;
	padding: 13px 20px !important;
	font-size: .86rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: #fff !important;
	background: var(--lds-brun) !important;
	border: 1.5px solid var(--lds-brun) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	white-space: nowrap;
}

/* Actions secondaires : elles ne doivent pas rivaliser avec « Valider ». */
body.woocommerce-cart td.actions > button[name="update_cart"],
body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]),
body.woocommerce-cart td.actions > a.button {
	padding: 13px 18px !important;
	font-size: .84rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--lds-brun) !important;
	background: #fff !important;
	background-image: none !important;
	border: 1.5px solid var(--lds-trait-fort) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	text-shadow: none !important;
	opacity: 1 !important;
	white-space: nowrap;
}
body.woocommerce-cart td.actions > button[name="update_cart"]:hover,
body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]):hover {
	border-color: var(--lds-or) !important;
	background: rgba(255, 242, 215, .5) !important;
}
body.woocommerce-cart td.actions > button[name="update_cart"]:disabled {
	opacity: .45 !important;
	cursor: not-allowed;
}

/* ---------- Carte des totaux -------------------------------------------- */

body.woocommerce-cart .cart_totals {
	background: #fff;
	border: 1px solid var(--lds-trait);
	border-radius: 14px;
	padding: 26px 26px 28px;
	box-shadow: 0 2px 16px rgba(115, 59, 48, .05);
}
body.woocommerce-cart .cart_totals h2 {
	margin: 0 0 24px;
	padding: 0 0 15px;
	font-size: 1.02rem;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--lds-brun);
	border-bottom: 2px solid var(--lds-or);
}
body.woocommerce-cart .cart_totals table.shop_table,
body.woocommerce-cart .cart_totals table.shop_table tbody,
body.woocommerce-cart .cart_totals table.shop_table tr,
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
	display: block;
	width: auto;
	border: 0;
	padding: 0;
	margin: 0;
	background: none;
	text-align: left;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal,
body.woocommerce-cart .cart_totals tr.order-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-cart .cart_totals tr.cart-subtotal th { font-weight: 500; font-size: .9rem; color: var(--lds-doux); }
body.woocommerce-cart .cart_totals tr.cart-subtotal td { font-weight: 600; white-space: nowrap; }
body.woocommerce-cart .cart_totals tr.order-total {
	border-bottom: 0;
	padding: 22px 0 6px;
}
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--lds-brun);
	white-space: nowrap;
}
body.woocommerce-cart .cart_totals tr.order-total small {
	display: block;
	margin-top: 4px;
	font-size: .72rem;
	font-weight: 400;
	color: var(--lds-doux);
}

/* Expédition, même présentation que sur la page de commande */
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals {
	padding: 18px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th,
body.woocommerce-cart .ct-shipping-heading {
	font-size: .73rem;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lds-doux);
	margin-bottom: 12px;
}
body.woocommerce-cart ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
body.woocommerce-cart ul#shipping_method li {
	display: block;
	margin: 0;
	padding: 14px 16px;
	border: 1px solid var(--lds-trait);
	border-radius: 11px;
	overflow: hidden;
	transition: border-color .15s ease, background .15s ease;
}
body.woocommerce-cart ul#shipping_method li:has(input:checked) {
	border-color: var(--lds-or);
	background: rgba(255, 242, 215, .45);
}
body.woocommerce-cart ul#shipping_method li > input[type="radio"] { float: left; margin: 4px 12px 0 0; }
body.woocommerce-cart ul#shipping_method li > label {
	display: block;
	overflow: hidden;
	margin: 0;
	font-size: .89rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: #3a2a26;
}
body.woocommerce-cart ul#shipping_method li > button,
body.woocommerce-cart ul#shipping_method li button.button.alt {
	display: inline-block !important;
	clear: both !important;
	float: none !important;
	margin: 10px 0 2px 30px !important;
	padding: 8px 14px !important;
	width: auto !important;
	min-height: 0 !important;
	height: auto !important;
	font-size: .8rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--lds-brun) !important;
	background: #fff !important;
	background-image: none !important;
	border: 1.5px solid rgba(115, 59, 48, .38) !important;
	border-radius: 9px !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

/* Adresse de livraison et lien de modification */
body.woocommerce-cart .woocommerce-shipping-destination {
	margin: 14px 0 0;
	font-size: .84rem;
	line-height: 1.5;
	color: var(--lds-doux);
}
body.woocommerce-cart .shipping-calculator-button {
	display: inline-block;
	margin-top: 6px;
	font-size: .84rem;
	font-weight: 600;
	color: var(--lds-brun);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ---------- Bouton de validation ---------------------------------------- */

body.woocommerce-cart .wc-proceed-to-checkout { padding: 20px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 19px 20px;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .01em;
	text-transform: none;
	text-align: center;
	color: #fff !important;
	background: var(--lds-brun) !important;
	border: 0;
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(115, 59, 48, .28);
	transition: background .16s ease, box-shadow .16s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: #5d2f26 !important;
	box-shadow: 0 8px 22px rgba(115, 59, 48, .36);
}

/* Réassurance, comme sur la page de commande */
body.woocommerce-cart .wc-proceed-to-checkout::after {
	content: "Paiement sécurisé  ·  Expédition sous 48 h  ·  Retours sous 14 jours";
	display: block;
	margin-top: 16px;
	font-size: .78rem;
	line-height: 1.6;
	color: var(--lds-doux);
	text-align: center;
}

/* ---------- Éléments flottants ------------------------------------------ */

body.woocommerce-cart .trp-floating-switcher,
body.woocommerce-cart .joinchat,
body.woocommerce-cart #whatsapp-chat { display: none !important; }

/* ---------- Mobile ------------------------------------------------------- */

@media (max-width: 999px) {
	body.woocommerce-cart table.shop_table thead { display: none; }
	body.woocommerce-cart table.shop_table,
	body.woocommerce-cart table.shop_table tbody,
	body.woocommerce-cart table.shop_table tr.cart_item { display: block; width: auto; }
	body.woocommerce-cart tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		grid-template-areas:
			"image nom"
			"image quantite";
		column-gap: 14px;
		row-gap: 8px;
		align-items: center;
		padding: 16px 0;
		border-bottom: 1px solid var(--lds-trait);
	}
	body.woocommerce-cart tr.cart_item td { border: 0 !important; padding: 0 !important; display: block; }
	body.woocommerce-cart td.product-thumbnail { grid-area: image; width: auto; padding-right: 0 !important; }
	body.woocommerce-cart td.product-thumbnail img { width: 72px !important; height: 72px !important; }
	body.woocommerce-cart td.product-name { grid-area: nom; font-size: .9rem; padding-right: 40px !important; }
	body.woocommerce-cart td.product-quantity { grid-area: quantite; }
	body.woocommerce-cart td.product-price { display: none !important; }
	body.woocommerce-cart td.product-subtotal {
		position: absolute;
		right: 0;
		bottom: 16px;
		font-size: .95rem;
	}
	body.woocommerce-cart td.product-remove { position: absolute; right: 0; top: 16px; }

	body.woocommerce-cart td.actions { flex-direction: column; align-items: stretch; }
	body.woocommerce-cart td.actions .coupon { flex: 1 1 auto; }
	body.woocommerce-cart td.actions > button { width: 100%; }
	body.woocommerce-cart .cart_totals { padding: 20px 18px 22px; margin-top: 32px; }
	body.woocommerce-cart ul#shipping_method li > label { font-size: .86rem; }
}

/* =========================================================================
   Composants partagés panier / commande
   Ces blocs étaient portés par la seule classe de la page de commande :
   sur le panier, l'estimation se collait à l'intitulé faute de mise en bloc.
   ========================================================================= */

body.woocommerce-cart .lds-eta,
body.woocommerce-checkout .lds-eta {
	display: block;
	margin-top: 6px;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0;
	text-transform: none;
	font-style: normal;
	color: rgba(60, 40, 35, .72);
}
body.woocommerce-cart .lds-eta strong,
body.woocommerce-checkout .lds-eta strong {
	display: block;
	font-size: .85rem;
	font-weight: 700;
	font-style: normal;
	color: #2f6b45;
}
body.woocommerce-cart .lds-eta .lds-compte,
body.woocommerce-checkout .lds-eta .lds-compte {
	display: block;
	margin-top: 3px;
	font-style: normal;
	font-size: .78rem;
	color: #a8541f;
}
body.woocommerce-cart .lds-eta .lds-compte b,
body.woocommerce-checkout .lds-eta .lds-compte b {
	font-weight: 700;
	color: #a8541f;
	white-space: nowrap;
}
body.woocommerce-cart .lds-detail,
body.woocommerce-checkout .lds-detail {
	display: block;
	margin-top: 4px;
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	color: rgba(60, 40, 35, .6);
}

/* ---------- Panier : largeurs de colonnes et respiration ---------------- */

body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents { table-layout: auto; }
body.woocommerce-cart td.product-name,
body.woocommerce-cart th.product-name { width: 99%; padding-right: 24px; }
body.woocommerce-cart td.product-quantity,
body.woocommerce-cart th.product-quantity,
body.woocommerce-cart td.product-subtotal,
body.woocommerce-cart th.product-subtotal { width: 1%; white-space: nowrap; }
body.woocommerce-cart td.product-remove { width: 1%; }
body.woocommerce-cart th.product-subtotal { text-align: right; }

/* Le sous-total et le bloc expédition ont besoin d'air entre eux. */
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals { padding-top: 20px; }
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th,
body.woocommerce-cart .cart_totals .ct-shipping-heading { display: block; margin-bottom: 12px; }

/* Mention « les options seront mises à jour lors de la commande ». */
body.woocommerce-cart .woocommerce-shipping-destination,
body.woocommerce-cart .cart_totals p {
	margin: 12px 0 0;
	font-size: .82rem;
	line-height: 1.5;
	color: rgba(60, 40, 35, .6);
}

/* Le thème réserve une colonne très large à la vignette : le nom du produit
   se retrouvait rejeté à droite avec 400 px de vide au milieu. */
body.woocommerce-cart td.product-thumbnail,
body.woocommerce-cart th.product-thumbnail {
	width: 104px !important;
	min-width: 104px !important;
	max-width: 104px !important;
	padding-right: 16px !important;
}
body.woocommerce-cart td.product-name,
body.woocommerce-cart th.product-name {
	width: auto !important;
	max-width: none !important;
}

/* Sous-total et expédition : une vraie séparation entre les deux. */
body.woocommerce-cart .cart_totals tr.cart-subtotal { padding: 14px 0 16px; }
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals { padding: 18px 0 16px; }
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th,
body.woocommerce-cart .cart_totals .ct-shipping-heading {
	display: block !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

/* Compteur de quantité : le champ ne doit pas déborder de son cadre. */
body.woocommerce-cart td.product-quantity input.qty {
	-moz-appearance: textfield;
	appearance: textfield;
	min-width: 44px;
}
body.woocommerce-cart td.product-quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart td.product-quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* =========================================================================
   Panier — lignes en grille plutôt qu'en tableau
   La largeur d'un <td> n'est qu'une suggestion pour le moteur de tableau :
   le thème réservait 432 px à la vignette et rejetait le nom à droite.
   En grille, chaque colonne fait exactement la largeur voulue.
   ========================================================================= */

body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents,
body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody {
	display: block;
	width: auto;
}
body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents thead { display: none; }

body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
	display: grid !important;
	grid-template-columns: 96px minmax(0, 1fr) auto auto 42px;
	align-items: center;
	column-gap: 18px;
	padding: 18px 0;
	border-bottom: 1px solid var(--lds-trait);
}
body.woocommerce-cart tr.cart_item > td {
	display: block !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	border: 0 !important;
}
body.woocommerce-cart tr.cart_item td.product-thumbnail { justify-self: start; }
body.woocommerce-cart tr.cart_item td.product-thumbnail img {
	width: 96px !important;
	height: 96px !important;
	display: block;
}
body.woocommerce-cart tr.cart_item td.product-name { min-width: 0 !important; }
body.woocommerce-cart tr.cart_item td.product-price { display: none !important; }
body.woocommerce-cart tr.cart_item td.product-subtotal { text-align: right; }
body.woocommerce-cart tr.cart_item td.product-remove { justify-self: end; }

/* La ligne d'actions redevient une ligne pleine largeur sous les articles. */
body.woocommerce-cart tr:has(> td.actions) { display: block; }
body.woocommerce-cart td.actions {
	display: flex !important;
	width: auto !important;
}

@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		grid-template-columns: 72px minmax(0, 1fr);
		grid-template-areas:
			"image nom"
			"image quantite";
		column-gap: 14px;
		row-gap: 8px;
		position: relative;
	}
	body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-area: image; }
	body.woocommerce-cart tr.cart_item td.product-thumbnail img { width: 72px !important; height: 72px !important; }
	body.woocommerce-cart tr.cart_item td.product-name { grid-area: nom; padding-right: 44px !important; }
	body.woocommerce-cart tr.cart_item td.product-quantity { grid-area: quantite; }
	body.woocommerce-cart tr.cart_item td.product-subtotal { position: absolute; right: 0; bottom: 18px; }
	body.woocommerce-cart tr.cart_item td.product-remove { position: absolute; right: 0; top: 18px; justify-self: auto; }
}

/* Le sous-total du panier s'empilait au lieu de s'aligner : on force la
   ligne, libellé à gauche et montant à droite. */
body.woocommerce-cart .cart_totals tr.cart-subtotal,
body.woocommerce-cart .cart_totals tr.order-total,
body.woocommerce-cart .cart_totals tr.fee,
body.woocommerce-cart .cart_totals tr.tax-rate {
	display: flex !important;
	justify-content: space-between !important;
	align-items: baseline !important;
	gap: 16px;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal > th,
body.woocommerce-cart .cart_totals tr.order-total > th {
	flex: 1 1 auto;
	margin: 0 !important;
	text-align: left !important;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal > td,
body.woocommerce-cart .cart_totals tr.order-total > td {
	flex: 0 0 auto;
	text-align: right !important;
	white-space: nowrap;
}

/* =========================================================================
   Panier — carrousel de recommandations
   Défilement par ancrage CSS : pas de bibliothèque, comportement natif au
   doigt sur mobile, et flèches sur grand écran.
   ========================================================================= */

body.woocommerce-cart .lds-reco {
	margin: 42px 0 0;
	padding: 26px 0 0;
	border-top: 1px solid var(--lds-trait);
}

body.woocommerce-cart .lds-reco-entete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}
body.woocommerce-cart .lds-reco-entete h2 {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--lds-brun);
}

body.woocommerce-cart .lds-reco-fleches { display: flex; gap: 8px; flex: 0 0 auto; }
body.woocommerce-cart .lds-reco-fleche {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	line-height: 1;
	color: var(--lds-brun);
	background: #fff;
	border: 1px solid var(--lds-trait-fort);
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, opacity .15s ease;
}
body.woocommerce-cart .lds-reco-fleche:hover { background: rgba(255, 242, 215, .6); border-color: var(--lds-or); }
body.woocommerce-cart .lds-reco-fleche[disabled] { opacity: .3; cursor: default; }

/* --- La piste --- */

body.woocommerce-cart .lds-reco-piste {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3 * 18px) / 4);
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	padding-bottom: 6px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
body.woocommerce-cart .lds-reco-piste::-webkit-scrollbar { height: 4px; }
body.woocommerce-cart .lds-reco-piste::-webkit-scrollbar-thumb {
	background: var(--lds-trait-fort);
	border-radius: 4px;
}

body.woocommerce-cart .lds-reco-carte {
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	min-width: 0;
}
body.woocommerce-cart .lds-reco-lien {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-decoration: none;
	color: inherit;
	flex: 1 1 auto;
}
body.woocommerce-cart .lds-reco-cadre {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-radius: 12px;
}
body.woocommerce-cart .lds-reco-image,
body.woocommerce-cart .lds-reco-cadre img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	padding: 8px;
	display: block;
	transition: transform .25s ease;
}
body.woocommerce-cart .lds-reco-carte:hover .lds-reco-image { transform: scale(1.04); }

body.woocommerce-cart .lds-reco-nom {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: .86rem;
	font-weight: 600;
	line-height: 1.35;
	color: #3a2a26;
}
body.woocommerce-cart .lds-reco-prix {
	font-size: .88rem;
	font-weight: 700;
	color: var(--lds-brun);
}
body.woocommerce-cart .lds-reco-prix del { font-weight: 400; opacity: .55; margin-right: 5px; }
body.woocommerce-cart .lds-reco-prix ins { text-decoration: none; }

body.woocommerce-cart .lds-reco-ajout {
	display: block;
	margin-top: 10px;
	padding: 10px 12px;
	font-size: .8rem;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	color: var(--lds-brun);
	background: #fff;
	border: 1.5px solid var(--lds-trait-fort);
	border-radius: 9px;
	transition: background .15s ease, border-color .15s ease;
}
body.woocommerce-cart .lds-reco-ajout:hover {
	background: rgba(255, 242, 215, .6);
	border-color: var(--lds-or);
	color: var(--lds-brun);
}
body.woocommerce-cart .lds-reco-ajout.added { display: none; }
body.woocommerce-cart .lds-reco-carte .added_to_cart {
	display: block;
	margin-top: 10px;
	padding: 10px 12px;
	font-size: .8rem;
	font-weight: 600;
	text-align: center;
	color: #fff;
	background: var(--lds-brun);
	border-radius: 9px;
	text-decoration: none;
}

/* --- Adaptation aux petits écrans --- */

@media (max-width: 1100px) {
	body.woocommerce-cart .lds-reco-piste { grid-auto-columns: calc((100% - 2 * 16px) / 3); gap: 16px; }
}
@media (max-width: 782px) {
	body.woocommerce-cart .lds-reco-piste { grid-auto-columns: calc((100% - 14px) / 2.2); gap: 14px; }
	body.woocommerce-cart .lds-reco-fleches { display: none; }
	body.woocommerce-cart .lds-reco-entete h2 { font-size: .92rem; }
	body.woocommerce-cart .lds-reco { margin-top: 34px; }
}
@media (max-width: 520px) {
	body.woocommerce-cart .lds-reco-piste { grid-auto-columns: calc((100% - 12px) / 1.6); gap: 12px; }
	body.woocommerce-cart .lds-reco-nom { font-size: .82rem; }
}

/* =========================================================================
   Panneau latéral du panier
   Il s'ouvre depuis n'importe quelle page : les règles ne sont donc pas
   portées par une classe de page, mais par les éléments du panneau.
   ========================================================================= */

.widget_shopping_cart_content,
.ct-cart-content {
	--lds-brun:       #733b30;
	--lds-or:         #cfb374;
	--lds-creme:      #fff2d7;
	--lds-trait:      rgba(115, 59, 48, .14);
	--lds-trait-fort: rgba(115, 59, 48, .26);
	--lds-doux:       rgba(60, 40, 35, .60);
}

/* --- Livraison offerte : la barre de progression --- */

.lds-mini-livraison {
	margin: 0 0 20px;
	padding: 14px 16px;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-left: 3px solid var(--lds-or);
	border-radius: 11px;
}
.lds-mini-livraison-ok {
	background: rgba(47, 107, 69, .07);
	border-left-color: #2f6b45;
}
.lds-mini-livraison-texte {
	margin: 0 0 10px;
	font-size: .85rem;
	line-height: 1.45;
	color: #3a2a26;
}
.lds-mini-livraison-texte strong { font-weight: 700; color: var(--lds-brun); }
.lds-mini-livraison-ok .lds-mini-livraison-texte strong { color: #2f6b45; }
.lds-mini-livraison-texte .woocommerce-Price-amount { font-weight: 700; }

.lds-mini-jauge {
	display: block;
	height: 6px;
	background: rgba(115, 59, 48, .12);
	border-radius: 99px;
	overflow: hidden;
}
.lds-mini-jauge-remplissage {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--lds-or), var(--lds-brun));
	border-radius: 99px;
	transition: width .4s ease;
}
.lds-mini-livraison-ok .lds-mini-jauge-remplissage { background: #2f6b45; }

/* --- Lignes produit du panneau --- */

.widget_shopping_cart_content ul.cart_list li,
.ct-cart-content ul.cart_list li {
	display: grid !important;
	grid-template-columns: 62px minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 13px;
	padding: 14px 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--lds-trait);
	list-style: none;
}
.widget_shopping_cart_content ul.cart_list li img,
.ct-cart-content ul.cart_list li img {
	width: 62px !important;
	height: 62px !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
	object-fit: contain;
	padding: 4px;
	background: #fff;
	border: 1px solid var(--lds-trait);
	border-radius: 10px;
}
.widget_shopping_cart_content ul.cart_list li a:not(.remove),
.ct-cart-content ul.cart_list li a:not(.remove) {
	font-size: .88rem !important;
	font-weight: 600;
	line-height: 1.35;
	color: #3a2a26 !important;
	text-decoration: none;
}
.widget_shopping_cart_content ul.cart_list li .quantity,
.ct-cart-content ul.cart_list li .quantity {
	display: block;
	margin-top: 3px;
	font-size: .82rem;
	color: var(--lds-doux);
}
.widget_shopping_cart_content ul.cart_list li a.remove,
.ct-cart-content ul.cart_list li a.remove {
	position: static !important;
	grid-column: 3;
	width: 30px; height: 30px;
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--lds-brun) !important;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-radius: 8px;
	font-size: .95rem;
}

/* --- Sous-total --- */

.widget_shopping_cart_content .woocommerce-mini-cart__total,
.ct-cart-content .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	margin: 18px 0 0 !important;
	padding: 16px 0 0 !important;
	border-top: 1px solid var(--lds-trait);
	border-bottom: 0 !important;
	font-size: 1.1rem !important;
	font-weight: 700;
	color: var(--lds-brun);
}
.widget_shopping_cart_content .woocommerce-mini-cart__total strong,
.ct-cart-content .woocommerce-mini-cart__total strong { font-weight: 700; }

/* --- Estimation de livraison --- */

.lds-mini-eta {
	margin: 16px 0 0 !important;
	padding: 12px 14px;
	background: rgba(47, 107, 69, .06);
	border-radius: 10px;
	font-size: .82rem;
	line-height: 1.45;
}
.lds-mini-eta strong { display: block; font-weight: 700; color: #2f6b45; }
.lds-mini-eta .lds-compte {
	display: block;
	margin-top: 3px;
	font-style: normal;
	font-size: .78rem;
	color: #a8541f;
}
.lds-mini-eta .lds-compte b { font-weight: 700; white-space: nowrap; }

/* --- Boutons --- */

.widget_shopping_cart_content .woocommerce-mini-cart__buttons,
.ct-cart-content .woocommerce-mini-cart__buttons {
	display: grid !important;
	gap: 10px;
	margin: 18px 0 0 !important;
}
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a,
.ct-cart-content .woocommerce-mini-cart__buttons a {
	display: block;
	width: 100%;
	margin: 0 !important;
	padding: 15px 18px !important;
	font-size: .92rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	text-align: center;
	text-decoration: none;
	border-radius: 11px !important;
	box-shadow: none !important;
	transition: background .16s ease, border-color .15s ease;
}
/* « Commander » est l'action principale. */
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a.checkout,
.ct-cart-content .woocommerce-mini-cart__buttons a.checkout {
	order: -1;
	color: #fff !important;
	background: var(--lds-brun) !important;
	border: 0 !important;
	box-shadow: 0 5px 16px rgba(115, 59, 48, .26) !important;
}
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a.checkout:hover { background: #5d2f26 !important; }
/* « Voir le panier » reste secondaire. */
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a:not(.checkout),
.ct-cart-content .woocommerce-mini-cart__buttons a:not(.checkout) {
	color: var(--lds-brun) !important;
	background: #fff !important;
	border: 1.5px solid var(--lds-trait-fort) !important;
}
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a:not(.checkout):hover {
	background: rgba(255, 242, 215, .55) !important;
	border-color: var(--lds-or) !important;
}

/* --- Suggestions --- */

.lds-mini-reco {
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--lds-trait);
}
.lds-mini-reco h3 {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--lds-doux);
}
.lds-mini-reco-piste {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 12px) / 2.3);
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	padding-bottom: 4px;
	-webkit-overflow-scrolling: touch;
}
.lds-mini-reco-piste::-webkit-scrollbar { height: 3px; }
.lds-mini-reco-piste::-webkit-scrollbar-thumb { background: var(--lds-trait-fort); border-radius: 3px; }
.lds-mini-reco-carte {
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 6px;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}
.lds-mini-reco-cadre {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #faf9f7;
	border: 1px solid var(--lds-trait);
	border-radius: 10px;
}
.lds-mini-reco-cadre img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	padding: 6px;
	display: block;
	border: 0 !important;
	background: none !important;
}
.lds-mini-reco-nom {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: .78rem;
	font-weight: 600;
	line-height: 1.3;
	color: #3a2a26;
}
.lds-mini-reco-prix { font-size: .8rem; font-weight: 700; color: var(--lds-brun); }
.lds-mini-reco-prix del { font-weight: 400; opacity: .55; margin-right: 4px; }
.lds-mini-reco-prix ins { text-decoration: none; }

/* =========================================================================
   Panneau latéral — variante Elementor Pro (widget « Menu Cart »)
   Il produit des <div> et ses propres classes, pas la liste WooCommerce.
   ========================================================================= */

.elementor-menu-cart__products { --lds-trait: rgba(115, 59, 48, .14); }

.elementor-menu-cart__product {
	display: grid !important;
	grid-template-columns: 62px minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 13px;
	padding: 14px 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid rgba(115, 59, 48, .14) !important;
}
.elementor-menu-cart__product-image { grid-column: 1; }
.elementor-menu-cart__product-image img {
	width: 62px !important;
	height: 62px !important;
	max-width: none !important;
	object-fit: contain;
	padding: 4px;
	background: #fff;
	border: 1px solid rgba(115, 59, 48, .14);
	border-radius: 10px;
}
.elementor-menu-cart__product-name,
.elementor-menu-cart__product-name a {
	font-size: .88rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: #3a2a26 !important;
	text-decoration: none;
}
.elementor-menu-cart__product-price {
	font-size: .82rem !important;
	color: rgba(60, 40, 35, .6) !important;
}
.elementor-menu-cart__product-remove,
.elementor-menu-cart__product .remove {
	position: static !important;
	grid-column: 3;
	width: 30px !important; height: 30px !important;
	display: inline-flex !important; align-items: center; justify-content: center;
	color: #733b30 !important;
	background: #faf9f7 !important;
	border: 1px solid rgba(115, 59, 48, .14) !important;
	border-radius: 8px !important;
	font-size: .95rem !important;
}

.elementor-menu-cart__subtotal {
	display: flex !important;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	padding: 16px 0 0 !important;
	border-top: 1px solid rgba(115, 59, 48, .14) !important;
	font-size: 1.08rem !important;
	font-weight: 700 !important;
	color: #733b30 !important;
}

.elementor-menu-cart__footer-buttons {
	display: grid !important;
	gap: 10px !important;
	margin-top: 16px !important;
}
.elementor-menu-cart__footer-buttons .elementor-button {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 15px 18px !important;
	font-size: .92rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	text-align: center !important;
	border-radius: 11px !important;
	box-shadow: none !important;
}
.elementor-menu-cart__footer-buttons a.elementor-button--checkout {
	order: -1;
	color: #fff !important;
	background: #733b30 !important;
	border: 0 !important;
	box-shadow: 0 5px 16px rgba(115, 59, 48, .26) !important;
}
.elementor-menu-cart__footer-buttons a.elementor-button--view-cart {
	color: #733b30 !important;
	background: #fff !important;
	border: 1.5px solid rgba(115, 59, 48, .26) !important;
}

/* Le bouton de suppression est un lien DANS un conteneur : c'est le lien
   qu'il faut habiller, sinon le conteneur dessine un carré vide. */
.elementor-menu-cart__product-remove {
	grid-column: 3;
	display: flex !important;
	align-items: center;
	justify-content: flex-end;
	width: auto !important;
	height: auto !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	position: static !important;
}
.elementor-menu-cart__product-remove a.remove,
.elementor-menu-cart__product a.remove_from_cart_button {
	position: static !important;
	width: 30px !important;
	height: 30px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: .95rem !important;
	line-height: 1 !important;
	color: #733b30 !important;
	background: #faf9f7 !important;
	border: 1px solid rgba(115, 59, 48, .16) !important;
	border-radius: 8px !important;
	text-decoration: none;
}
.elementor-menu-cart__product-remove a.remove:hover {
	background: rgba(255, 242, 215, .7) !important;
	border-color: #cfb374 !important;
}

/* Le prix de la ligne se place sous le nom, pas au bout de la ligne. */
.elementor-menu-cart__product-price {
	grid-column: 2;
	grid-row: 2;
	margin-top: 2px;
}
.elementor-menu-cart__product-name { grid-column: 2; grid-row: 1; }
.elementor-menu-cart__product-image { grid-row: 1 / span 2; }
.elementor-menu-cart__product-remove { grid-row: 1 / span 2; }

/* =========================================================================
   Panneau latéral — corrections
   ========================================================================= */

/* 1. Le lien de suppression est vide : Elementor y place son icône en image
      de fond, que mes règles effaçaient. On fournit donc notre propre signe. */
.elementor-menu-cart__product-remove a,
a.elementor_remove_from_cart_button {
	position: static !important;
	width: 28px !important;
	height: 28px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 0 !important;
	color: transparent !important;
	background: #faf9f7 !important;
	background-image: none !important;
	border: 1px solid rgba(115, 59, 48, .18) !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	opacity: 1 !important;
}
.elementor-menu-cart__product-remove a::before,
a.elementor_remove_from_cart_button::before {
	content: "\2715";
	font-size: 12px !important;
	line-height: 1;
	font-weight: 600;
	color: #733b30 !important;
	background: none !important;
}
.elementor-menu-cart__product-remove a:hover,
a.elementor_remove_from_cart_button:hover {
	background: rgba(255, 242, 215, .8) !important;
	border-color: #cfb374 !important;
}

/* 2. Jauge de livraison : le chemin parcouru doit se voir. */
.lds-mini-jauge {
	height: 8px;
	background: rgba(115, 59, 48, .13);
}
.lds-mini-jauge-remplissage {
	background: linear-gradient(90deg, #cfb374, #733b30);
	min-width: 6px;
}
.lds-mini-jauge-reperes {
	display: flex;
	justify-content: space-between;
	margin-top: 6px;
	font-size: .72rem;
	font-weight: 600;
	color: rgba(60, 40, 35, .55);
}
.lds-mini-jauge-reperes span:first-child { color: #733b30; }

/* 3. Suggestions plus compactes : trois cartes visibles au lieu de deux. */
.lds-mini-reco-piste { grid-auto-columns: calc((100% - 20px) / 3.1) !important; gap: 10px !important; }
.lds-mini-reco-nom { font-size: .72rem !important; -webkit-line-clamp: 2; }
.lds-mini-reco-prix { font-size: .74rem !important; }
.lds-mini-reco h3 { font-size: .72rem !important; margin-bottom: 10px !important; }
.lds-mini-reco { margin-top: 20px; padding-top: 16px; }

/* 4. Les deux boutons côte à côte, à parts égales. */
.elementor-menu-cart__footer-buttons {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 10px !important;
}
.elementor-menu-cart__footer-buttons .elementor-button {
	padding: 14px 10px !important;
	font-size: .86rem !important;
}
.elementor-menu-cart__footer-buttons a.elementor-button--view-cart { order: 0 !important; }
.elementor-menu-cart__footer-buttons a.elementor-button--checkout { order: 1 !important; }

/* 5. Titre du panneau : plus affirmé. */
.lds-titre-panier {
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	color: #733b30 !important;
	letter-spacing: 0 !important;
}

/* =========================================================================
   Panneau latéral — corrections finales
   ========================================================================= */

/* Une seule croix : le conteneur ne doit rien dessiner, seul le lien compte. */
.elementor-menu-cart__product-remove,
.elementor-menu-cart__product .product-remove {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	background: none !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-size: 0 !important;
	color: transparent !important;
}
.elementor-menu-cart__product-remove::before,
.elementor-menu-cart__product-remove::after,
.elementor-menu-cart__product .product-remove::before,
.elementor-menu-cart__product .product-remove::after {
	content: none !important;
	display: none !important;
}

/* Jauge : une couleur pleine, sans dégradé. */
.lds-mini-jauge-remplissage {
	background: #733b30 !important;
	background-image: none !important;
}

/* Elementor produit deux liens de suppression par ligne : le sien et celui
   de WooCommerce. On n'en garde qu'un. */
.elementor-menu-cart__product a.remove_from_cart_button:not(.elementor_remove_from_cart_button),
.elementor-menu-cart__product a.remove:not(.elementor_remove_from_cart_button) {
	display: none !important;
}

/* =========================================================================
   Panneau latéral — image en double et défilement mobile
   ========================================================================= */

/* Elementor place une image dans son conteneur dédié, et WooCommerce en
   ajoute une seconde dans le nom du produit. On n'en garde qu'une. */
.elementor-menu-cart__product .elementor-menu-cart__product-name img,
.elementor-menu-cart__product .product-name img,
.elementor-menu-cart__product > a > img,
.elementor-menu-cart__product .elementor-menu-cart__product-price img {
	display: none !important;
}
.elementor-menu-cart__product-image { display: block !important; }
.elementor-menu-cart__product-image img { display: block !important; }

/* Le panneau doit défiler quand son contenu dépasse — indispensable sur
   mobile depuis qu'on y a ajouté la jauge, l'estimation et les suggestions. */
.elementor-menu-cart__container,
.elementor-menu-cart__main {
	max-height: 100dvh;
	max-height: 100vh;
	display: flex !important;
	flex-direction: column !important;
}
.elementor-menu-cart__main {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-y: contain;
}
.elementor-menu-cart__products {
	overflow: visible !important;
	max-height: none !important;
	height: auto !important;
	flex: 0 0 auto !important;
}

/* Le carrousel ne capte que le geste horizontal : le vertical reste au panneau. */
.lds-mini-reco-piste { touch-action: pan-x; }

@media (max-width: 999px) {
	.elementor-menu-cart__main { padding-bottom: 24px !important; }
	.elementor-menu-cart__product { grid-template-columns: 56px minmax(0, 1fr) auto; }
	.elementor-menu-cart__product-image img { width: 56px !important; height: 56px !important; }
	.elementor-menu-cart__product-name,
	.elementor-menu-cart__product-name a { font-size: .84rem !important; }
}

/* Quelle que soit son origine, une seule image par ligne de panier :
   on masque toutes les images de la ligne, puis on rétablit celle du
   conteneur prévu pour ça. */
.elementor-menu-cart__product img { display: none !important; }
.elementor-menu-cart__product .elementor-menu-cart__product-image img,
.elementor-menu-cart__product .product-thumbnail img { display: block !important; }

/* =========================================================================
   Panneau latéral — trois correctifs
   ========================================================================= */

/* 1. Le filet doré était rogné par l'arrondi du cadre : une ombre intérieure
      épouse le rayon au lieu d'être coupée par lui. */
.lds-mini-livraison {
	border-left: 0 !important;
	box-shadow: inset 3px 0 0 0 #cfb374;
	overflow: hidden;
}
.lds-mini-livraison-ok { box-shadow: inset 3px 0 0 0 #2f6b45; }

/* 2. Le carrousel ne défilait plus au doigt : `touch-action` bloquait le
      geste au lieu de le canaliser. On rend la main au navigateur. */
.lds-mini-reco-piste {
	touch-action: auto !important;
	overscroll-behavior-x: auto !important;
	-webkit-overflow-scrolling: touch;
	overflow-x: scroll !important;
	scroll-snap-type: x proximity;
}
.lds-mini-reco-carte { scroll-snap-align: start; }

/* Une barre de défilement discrète mais visible : on comprend qu'il y en a
   davantage à droite. */
.lds-mini-reco-piste::-webkit-scrollbar { height: 4px; -webkit-appearance: none; }
.lds-mini-reco-piste::-webkit-scrollbar-thumb {
	background: rgba(115, 59, 48, .3);
	border-radius: 4px;
}

/* =========================================================================
   Panier — doublons du thème et lisibilité sur téléphone
   ========================================================================= */

/* Les doublons repérés par le script disparaissent. */
body.woocommerce-cart .lds-doublon { display: none !important; }

/* Le chiffre doit être centré dans son cadre, pas collé au « − ». */
body.woocommerce-cart td.product-quantity .quantity {
	display: inline-flex !important;
	align-items: stretch;
	overflow: hidden;
}
body.woocommerce-cart td.product-quantity input.qty {
	width: 44px !important;
	min-width: 44px !important;
	text-align: center !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-left: 1px solid rgba(115, 59, 48, .14) !important;
	border-right: 1px solid rgba(115, 59, 48, .14) !important;
	border-radius: 0 !important;
	background: none !important;
	align-self: stretch;
}
body.woocommerce-cart td.product-quantity .quantity > button,
body.woocommerce-cart td.product-quantity .quantity > a,
body.woocommerce-cart td.product-quantity .quantity > span {
	width: 40px !important;
	min-width: 40px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: none !important;
	color: #733b30 !important;
	font-size: 1rem !important;
	line-height: 1 !important;
}

@media (max-width: 999px) {
	/* Titre des suggestions sur une seule ligne. */
	body.woocommerce-cart .lds-reco-entete h2 {
		font-size: .78rem !important;
		letter-spacing: .05em !important;
		line-height: 1.3;
	}
	body.woocommerce-cart .lds-reco { margin-top: 30px; padding-top: 20px; }

	/* Vignettes bien plus petites : trois par écran au lieu d'une et demie. */
	body.woocommerce-cart .lds-reco-piste {
		grid-auto-columns: calc((100% - 20px) / 2.6) !important;
		gap: 10px !important;
	}
	body.woocommerce-cart .lds-reco-nom { font-size: .76rem !important; }
	body.woocommerce-cart .lds-reco-prix { font-size: .78rem !important; }
	body.woocommerce-cart .lds-reco-ajout {
		margin-top: 8px !important;
		padding: 8px 8px !important;
		font-size: .74rem !important;
	}
}

/* =========================================================================
   Panier — sélecteur de quantité et actions secondaires
   ========================================================================= */

/* Le bouton de suppression conservé reçoit notre habillage, où qu'il soit. */
body.woocommerce-cart a.lds-supprimer {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 34px !important;
	height: 34px !important;
	padding: 0 !important;
	font-size: 0 !important;
	color: transparent !important;
	background: #faf9f7 !important;
	background-image: none !important;
	border: 1px solid rgba(115, 59, 48, .16) !important;
	border-radius: 9px !important;
	text-decoration: none !important;
}
body.woocommerce-cart a.lds-supprimer::before {
	content: "\2715";
	font-size: 13px !important;
	line-height: 1;
	font-weight: 600;
	color: #733b30 !important;
}
body.woocommerce-cart a.lds-supprimer:hover {
	background: rgba(255, 242, 215, .8) !important;
	border-color: #cfb374 !important;
}

/* Le chiffre au centre, les deux boutons de part et d'autre — dans cet ordre,
   quelle que soit la façon dont le thème a rangé ses éléments. */
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) {
	display: inline-grid !important;
	grid-template-columns: 40px 46px 40px;
	align-items: stretch;
	border: 1px solid rgba(115, 59, 48, .26);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) input.qty { grid-column: 2; order: 2; }
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) .minus,
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) [class*="minus"],
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) button:first-of-type { grid-column: 1; order: 1; }
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) .plus,
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) [class*="plus"],
body.woocommerce-cart td.product-quantity .quantity:not(.lds-doublon) button:last-of-type { grid-column: 3; order: 3; }

/* --- Actions secondaires : moins d'emprise, même style --- */

@media (max-width: 999px) {
	body.woocommerce-cart td.actions {
		display: grid !important;
		grid-template-columns: 1fr auto;
		gap: 10px;
		align-items: center;
	}
	/* Le code promo et son bouton sur la même ligne. */
	body.woocommerce-cart td.actions .coupon {
		grid-column: 1 / -1;
		display: grid !important;
		grid-template-columns: 1fr auto;
		gap: 8px;
	}
	body.woocommerce-cart td.actions .coupon input#coupon_code { min-height: 46px; }
	body.woocommerce-cart td.actions .coupon button[name="apply_coupon"] {
		padding: 12px 16px !important;
		font-size: .82rem !important;
		white-space: nowrap;
	}
	/* « Mettre à jour » et « Vider le panier » deviennent deux liens sobres. */
	body.woocommerce-cart td.actions > button[name="update_cart"],
	body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]),
	body.woocommerce-cart td.actions > a.button {
		width: auto !important;
		padding: 6px 2px !important;
		font-size: .8rem !important;
		font-weight: 600 !important;
		color: rgba(60, 40, 35, .7) !important;
		background: none !important;
		border: 0 !important;
		border-radius: 0 !important;
		text-decoration: underline;
		text-underline-offset: 3px;
		justify-self: start;
	}
	body.woocommerce-cart td.actions > button[name="update_cart"] { grid-column: 1; }
	body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]):last-child,
	body.woocommerce-cart td.actions > a.button:last-child { grid-column: 2; justify-self: end; }
}

/* =========================================================================
   Panier — une seule icône, un seul sélecteur, un code promo replié
   ========================================================================= */

/* Le thème fournit déjà sa poubelle : on n'ajoute pas de croix par-dessus,
   on habille seulement le cadre autour. */
body.woocommerce-cart a.lds-supprimer::before { content: none !important; }
body.woocommerce-cart a.lds-supprimer {
	font-size: 1rem !important;
	color: #733b30 !important;
	background: #faf9f7 !important;
	border: 1px solid rgba(115, 59, 48, .16) !important;
	border-radius: 9px !important;
	width: 34px !important;
	height: 34px !important;
}

/* Filet de sécurité : un seul bloc de quantité par ligne, même si le thème
   en injecte un second après coup. */
body.woocommerce-cart tr.cart_item .quantity { display: none !important; }
body.woocommerce-cart tr.cart_item td.product-quantity > .quantity:first-of-type {
	display: inline-grid !important;
}

/* --- Code promo replié --------------------------------------------------- */

body.woocommerce-cart .lds-promo-bascule {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 0;
	margin: 0 0 4px;
	font-family: inherit;
	font-size: .85rem;
	font-weight: 600;
	color: #733b30;
	background: none;
	border: 0;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}
body.woocommerce-cart .lds-promo-bascule::after {
	content: "";
	width: 7px; height: 7px;
	border-right: 2px solid #733b30;
	border-bottom: 2px solid #733b30;
	transform: rotate(45deg) translate(-1px, -1px);
	transition: transform .18s ease;
}
body.woocommerce-cart .lds-promo-bascule[aria-expanded="true"]::after {
	transform: rotate(-135deg) translate(-2px, -2px);
}

body.woocommerce-cart .coupon.lds-promo-repli { display: none !important; }
body.woocommerce-cart .coupon.lds-promo-repli.lds-promo-ouvert {
	display: grid !important;
	grid-template-columns: 1fr auto;
	gap: 8px;
	margin-top: 10px;
	width: 100%;
}

/* Champ et bouton à la même hauteur, et bien plus sobres. */
body.woocommerce-cart .coupon.lds-promo-repli input#coupon_code {
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 14px !important;
	font-size: .88rem !important;
	line-height: 44px !important;
}
body.woocommerce-cart .coupon.lds-promo-repli button[name="apply_coupon"] {
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 18px !important;
	font-size: .84rem !important;
	line-height: 1 !important;
	white-space: nowrap;
}

/* =========================================================================
   Panier — correctifs de spécificité et de placement
   ========================================================================= */

/* 1. Le dépliant restait ouvert : la règle mobile `td.actions .coupon`
      l'emportait en spécificité (deux éléments contre un). On remonte. */
body.woocommerce-cart td.actions .coupon.lds-promo-repli {
	display: none !important;
}
body.woocommerce-cart td.actions .coupon.lds-promo-repli.lds-promo-ouvert {
	display: grid !important;
	grid-template-columns: 1fr auto;
	gap: 8px;
	margin-top: 10px;
	width: 100%;
}

/* 2. Le compteur de quantité : le thème range ses enfants dans l'ordre
      « + », « − », étiquette, champ. En grille sans placement explicite,
      le chiffre partait donc à la ligne suivante, coincé sous le moins.
      On assigne chaque enfant à sa colonne. */
body.woocommerce-cart tr.cart_item td.product-quantity > .quantity:first-of-type {
	display: grid !important;
	grid-template-columns: 42px minmax(46px, 1fr) 42px !important;
	grid-template-rows: 44px !important;
	align-items: stretch;
	width: max-content;
	border: 1px solid rgba(115, 59, 48, .26);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .minus,
body.woocommerce-cart tr.cart_item .quantity [class*="decrease"] {
	grid-column: 1 !important;
	grid-row: 1 !important;
}
body.woocommerce-cart tr.cart_item .quantity input.qty {
	grid-column: 2 !important;
	grid-row: 1 !important;
	width: 100% !important;
	min-width: 0 !important;
	height: 100% !important;
	text-align: center !important;
	border: 0 !important;
	border-left: 1px solid rgba(115, 59, 48, .14) !important;
	border-right: 1px solid rgba(115, 59, 48, .14) !important;
	border-radius: 0 !important;
	background: none !important;
	font-size: .95rem !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-increase,
body.woocommerce-cart tr.cart_item .quantity .plus,
body.woocommerce-cart tr.cart_item .quantity [class*="increase"] {
	grid-column: 3 !important;
	grid-row: 1 !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase,
body.woocommerce-cart tr.cart_item .quantity .minus,
body.woocommerce-cart tr.cart_item .quantity .plus {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: #733b30 !important;
	font-size: 1rem !important;
	cursor: pointer;
}
body.woocommerce-cart tr.cart_item .quantity .screen-reader-text { display: none !important; }

/* 3. La ligne produit, structurée pour de bon.
      image | nom, prix unitaire, quantité + total | suppression */
@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		grid-template-columns: 84px minmax(0, 1fr) 40px !important;
		grid-template-areas:
			"image nom      suppr"
			"image prix     prix"
			"image quantite total" !important;
		column-gap: 14px !important;
		row-gap: 10px !important;
		align-items: center !important;
		padding: 18px 0 !important;
	}
	body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-area: image; align-self: start; }
	body.woocommerce-cart tr.cart_item td.product-thumbnail img { width: 84px !important; height: 84px !important; }
	body.woocommerce-cart tr.cart_item td.product-name {
		grid-area: nom;
		align-self: start;
		padding-right: 0 !important;
		font-size: .88rem !important;
		line-height: 1.35 !important;
	}
	body.woocommerce-cart tr.cart_item td.product-price {
		grid-area: prix;
		display: block !important;
		font-size: .82rem !important;
		color: rgba(60, 40, 35, .6) !important;
	}
	body.woocommerce-cart tr.cart_item td.product-quantity { grid-area: quantite; justify-self: start; }
	body.woocommerce-cart tr.cart_item td.product-subtotal {
		grid-area: total;
		position: static !important;
		text-align: right !important;
		font-size: 1rem !important;
		font-weight: 700 !important;
		color: #733b30 !important;
		white-space: nowrap;
	}
	body.woocommerce-cart tr.cart_item td.product-remove {
		grid-area: suppr;
		position: static !important;
		justify-self: end;
		align-self: start;
	}
}

/* =========================================================================
   Panier — dépliant fluide, quantité centrée, prix unitaire retiré
   ========================================================================= */

/* 1. Le dépliant s'anime au lieu d'apparaître d'un bloc.
      `display` ne s'anime pas : on joue sur la hauteur et l'opacité. */
body.woocommerce-cart td.actions .coupon.lds-promo-repli {
	display: grid !important;
	grid-template-columns: 1fr auto;
	gap: 8px;
	width: 100%;
	max-height: 0;
	margin-top: 0;
	opacity: 0;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
	transition: max-height .3s ease, opacity .22s ease, margin-top .3s ease, visibility 0s linear .3s;
}
body.woocommerce-cart td.actions .coupon.lds-promo-repli.lds-promo-ouvert {
	max-height: 120px;
	margin-top: 12px;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: max-height .3s ease, opacity .22s ease, margin-top .3s ease, visibility 0s;
}

/* 16 px minimum : en dessous, iOS zoome dès qu'on touche le champ. */
body.woocommerce-cart .coupon.lds-promo-repli input#coupon_code {
	font-size: 16px !important;
	height: 46px !important;
	min-height: 46px !important;
	line-height: 46px !important;
	padding: 0 14px !important;
}
body.woocommerce-cart .coupon.lds-promo-repli button[name="apply_coupon"] {
	height: 46px !important;
	min-height: 46px !important;
	padding: 0 18px !important;
	font-size: .84rem !important;
}

/* 2. Le chiffre bien au milieu de son cadre, à la même hauteur que − et +. */
body.woocommerce-cart tr.cart_item td.product-quantity > .quantity:first-of-type {
	grid-template-rows: 42px !important;
	align-items: center !important;
}
body.woocommerce-cart tr.cart_item .quantity input.qty {
	height: 42px !important;
	line-height: 42px !important;
	padding: 0 !important;
	margin: 0 !important;
	align-self: center !important;
	vertical-align: middle !important;
	font-size: 16px !important;   /* évite aussi le zoom iOS sur ce champ */
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	height: 42px !important;
	align-self: center !important;
	line-height: 1 !important;
}

/* 3. Le prix unitaire n'apporte rien à côté du total : on le retire. */
body.woocommerce-cart tr.cart_item td.product-price { display: none !important; }

@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		grid-template-areas:
			"image nom      suppr"
			"image quantite total" !important;
		grid-template-rows: auto auto !important;
	}
}

/* =========================================================================
   Panier — prix unitaire et compteur, derniers ajustements
   ========================================================================= */

/* Le prix unitaire vit DANS la cellule de quantité, sous la forme
   « × 17,90 € » — pas dans une cellule de prix. D'où l'échec des règles
   précédentes. Le total à droite suffit. */
body.woocommerce-cart td.product-quantity .ct-product-multiply-symbol,
body.woocommerce-cart td.product-quantity .ct-product-multiply-symbol + .woocommerce-Price-amount,
body.woocommerce-cart td.product-quantity > p.price,
body.woocommerce-cart tr.cart_item p.price {
	display: none !important;
}

/* Compteur plus compact, et les trois éléments sur la même ligne optique. */
body.woocommerce-cart tr.cart_item td.product-quantity > .quantity:first-of-type {
	grid-template-columns: 34px minmax(38px, 1fr) 34px !important;
	grid-template-rows: 36px !important;
	align-items: stretch !important;
	border-radius: 9px;
}
body.woocommerce-cart tr.cart_item .quantity input.qty {
	height: 36px !important;
	line-height: 36px !important;
	font-size: 16px !important;
	padding: 0 !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	height: 36px !important;
	min-height: 36px !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: .95rem !important;
	line-height: 36px !important;
	text-align: center !important;
}
/* Le signe est dessiné par un pseudo-élément que le thème positionne à sa
   façon : on le recentre au lieu de le laisser dériver vers le bas. */
body.woocommerce-cart tr.cart_item .quantity .ct-decrease::before,
body.woocommerce-cart tr.cart_item .quantity .ct-decrease::after,
body.woocommerce-cart tr.cart_item .quantity .ct-increase::before,
body.woocommerce-cart tr.cart_item .quantity .ct-increase::after {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
	display: inline-block !important;
	vertical-align: middle !important;
}

/* Les signes − et + sont positionnés en absolu par le thème : ils sortent
   donc de la grille et ignorent toute assignation de colonne. On les remet
   dans le flux, seule façon de les aligner sur le chiffre. */
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase,
body.woocommerce-cart div.quantity .ct-decrease,
body.woocommerce-cart div.quantity .ct-increase {
	position: static !important;
	inset: auto !important;
	inset-inline-start: auto !important;
	inset-inline-end: auto !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 36px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transform: none !important;
	z-index: auto !important;
	border-radius: 0 !important;
	background: none !important;
	color: #733b30 !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease { grid-column: 1 !important; grid-row: 1 !important; }
body.woocommerce-cart tr.cart_item .quantity input.qty    { grid-column: 2 !important; grid-row: 1 !important; }
body.woocommerce-cart tr.cart_item .quantity .ct-increase { grid-column: 3 !important; grid-row: 1 !important; }
body.woocommerce-cart tr.cart_item .quantity .ct-decrease:hover,
body.woocommerce-cart tr.cart_item .quantity .ct-increase:hover {
	background: rgba(255, 242, 215, .7) !important;
	color: #733b30 !important;
}

/* =========================================================================
   Panier mobile — le bloc réel du thème
   Blocksy regroupe quantité, prix unitaire et suppression dans un
   div.product-mobile-actions (qui porte aussi la classe product-remove).
   Ce n'est ni un td.product-quantity ni un td.product-price : mes règles
   précédentes ne pouvaient pas l'atteindre.
   ========================================================================= */

body.woocommerce-cart .product-mobile-actions {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}

/* Le prix unitaire et son « × » : le total à droite suffit. */
body.woocommerce-cart .product-mobile-actions .ct-product-multiply-symbol,
body.woocommerce-cart .product-mobile-actions .ct-product-multiply-symbol + .woocommerce-Price-amount,
body.woocommerce-cart .product-mobile-actions > .woocommerce-Price-amount {
	display: none !important;
}

/* Le compteur, aligné pour de bon. */
body.woocommerce-cart .product-mobile-actions .quantity {
	display: grid !important;
	grid-template-columns: 34px minmax(38px, 1fr) 34px !important;
	grid-template-rows: 36px !important;
	align-items: stretch !important;
	width: max-content !important;
	margin: 0 !important;
	border: 1px solid rgba(115, 59, 48, .26) !important;
	border-radius: 9px !important;
	overflow: hidden !important;
	background: #fff !important;
}
body.woocommerce-cart .product-mobile-actions .quantity .ct-decrease,
body.woocommerce-cart .product-mobile-actions .quantity .ct-increase {
	position: static !important;
	inset: auto !important;
	top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
	width: auto !important;
	max-width: none !important;
	height: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: none !important;
	color: #733b30 !important;
	border-radius: 0 !important;
	transform: none !important;
}
body.woocommerce-cart .product-mobile-actions .quantity .ct-decrease { grid-column: 1 !important; grid-row: 1 !important; }
body.woocommerce-cart .product-mobile-actions .quantity input.qty {
	grid-column: 2 !important;
	grid-row: 1 !important;
	width: 100% !important;
	height: 36px !important;
	line-height: 36px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center !important;
	font-size: 16px !important;
	border: 0 !important;
	border-left: 1px solid rgba(115, 59, 48, .14) !important;
	border-right: 1px solid rgba(115, 59, 48, .14) !important;
	border-radius: 0 !important;
	background: none !important;
}
body.woocommerce-cart .product-mobile-actions .quantity .ct-increase { grid-column: 3 !important; grid-row: 1 !important; }
body.woocommerce-cart .product-mobile-actions .quantity .screen-reader-text { display: none !important; }

/* La suppression de ce bloc est la bonne sur mobile : on annule la marque
   de doublon que le script lui avait posée, et on l'habille. */
@media (max-width: 999px) {
	body.woocommerce-cart .product-mobile-actions a.remove,
	body.woocommerce-cart .product-mobile-actions a.remove.lds-doublon {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		margin-left: auto !important;
		width: 34px !important;
		height: 34px !important;
		background: #faf9f7 !important;
		border: 1px solid rgba(115, 59, 48, .16) !important;
		border-radius: 9px !important;
		color: #733b30 !important;
	}
	body.woocommerce-cart .product-mobile-actions a.remove svg { width: 12px; height: 12px; fill: currentColor; }
	/* et on masque celle de la version grand écran */
	body.woocommerce-cart tr.cart_item > td.product-remove { display: none !important; }
}

/* =========================================================================
   Panier — le dépliant de code promo ne concerne QUE le téléphone
   Sur grand écran, la ligne d'actions retrouve sa disposition d'origine :
   champ promo et son bouton à gauche, actions secondaires à droite.
   ========================================================================= */

@media (min-width: 1000px) {
	body.woocommerce-cart .lds-promo-bascule { display: none !important; }

	body.woocommerce-cart td.actions .coupon.lds-promo-repli,
	body.woocommerce-cart td.actions .coupon.lds-promo-repli.lds-promo-ouvert {
		display: flex !important;
		flex: 1 1 340px;
		gap: 10px;
		max-height: none !important;
		margin-top: 0 !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		overflow: visible !important;
		transition: none !important;
	}

	body.woocommerce-cart td.actions {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 12px;
	}

	/* Les actions secondaires redeviennent des boutons en contour,
	   alignés avec le champ promo. */
	body.woocommerce-cart td.actions > button[name="update_cart"],
	body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]),
	body.woocommerce-cart td.actions > a.button {
		width: auto !important;
		padding: 13px 18px !important;
		font-size: .84rem !important;
		font-weight: 600 !important;
		color: #733b30 !important;
		background: #fff !important;
		border: 1.5px solid rgba(115, 59, 48, .26) !important;
		border-radius: 10px !important;
		text-decoration: none !important;
		justify-self: auto !important;
		grid-column: auto !important;
	}
	body.woocommerce-cart td.actions > button[name="update_cart"]:disabled { opacity: .45 !important; }

	body.woocommerce-cart td.actions .coupon input#coupon_code {
		height: 50px !important;
		min-height: 50px !important;
		line-height: 50px !important;
		font-size: .95rem !important;
	}
	body.woocommerce-cart td.actions .coupon button[name="apply_coupon"] {
		height: 50px !important;
		min-height: 50px !important;
		padding: 0 20px !important;
		font-size: .86rem !important;
	}
}

/* Filet de sécurité si une extension réinsère le bloc natif. */
body.woocommerce-cart .cross-sells { display: none !important; }

/* =========================================================================
   Panier mobile — disposition remise à plat
   Le bloc du thème (.product-mobile-actions) porte la classe product-remove
   et contient quantité + prix + corbeille. Le ranger dans la case
   « suppression » décalait tout. On le sort de sa cellule avec
   `display: contents` pour qu'il participe directement à la grille.
   ========================================================================= */

@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		display: grid !important;
		grid-template-columns: 76px minmax(0, 1fr) auto !important;
		grid-template-areas:
			"image nom      nom"
			"image actions  total" !important;
		column-gap: 12px !important;
		row-gap: 10px !important;
		align-items: center !important;
		padding: 16px 0 !important;
	}

	/* La cellule qui contient le bloc mobile s'efface pour laisser son
	   contenu se placer lui-même dans la grille. */
	body.woocommerce-cart tr.cart_item td:has(> .product-mobile-actions) {
		display: contents !important;
	}

	body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-area: image; align-self: start; }
	body.woocommerce-cart tr.cart_item td.product-thumbnail img { width: 76px !important; height: 76px !important; }

	body.woocommerce-cart tr.cart_item td.product-name {
		grid-area: nom;
		align-self: center;
		padding: 0 !important;
		font-size: .88rem !important;
		line-height: 1.35 !important;
	}

	/* Quantité à gauche, corbeille à sa droite, dans une seule ligne. */
	body.woocommerce-cart tr.cart_item .product-mobile-actions {
		grid-area: actions;
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 10px !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	body.woocommerce-cart tr.cart_item .product-mobile-actions a.remove {
		margin-left: 0 !important;
		flex: 0 0 auto;
	}

	body.woocommerce-cart tr.cart_item td.product-subtotal {
		grid-area: total;
		position: static !important;
		justify-self: end;
		align-self: center;
		text-align: right !important;
		font-size: 1rem !important;
		font-weight: 700 !important;
		color: #733b30 !important;
		white-space: nowrap;
		padding: 0 !important;
	}

	/* La corbeille de la version grand écran ne doit pas doubler celle du
	   bloc mobile. */
	body.woocommerce-cart tr.cart_item > td.product-remove { display: none !important; }
	body.woocommerce-cart tr.cart_item > td.product-quantity { display: none !important; }
}

/* =========================================================================
   RETOUR EN ARRIÈRE — ligne de panier sur téléphone
   Mes règles de grille successives ont fini par casser la disposition
   native du thème, qui fonctionnait. On rend la main à Blocksy : plus de
   grille imposée, plus de `display: contents`, plus de placement forcé.
   Seuls restent les ajustements cosmétiques qui ne touchent pas la structure.
   ========================================================================= */

@media (max-width: 999px) {

	/* 1. La ligne et ses cellules reprennent leur comportement d'origine. */
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		display: revert !important;
		grid-template-columns: revert !important;
		grid-template-areas: revert !important;
		grid-template-rows: revert !important;
		column-gap: revert !important;
		row-gap: revert !important;
		align-items: revert !important;
		padding: revert !important;
	}
	body.woocommerce-cart tr.cart_item > td {
		display: revert !important;
		grid-area: revert !important;
		grid-column: revert !important;
		grid-row: revert !important;
		position: revert !important;
		justify-self: revert !important;
		align-self: revert !important;
		width: revert !important;
		padding: revert !important;
		text-align: revert !important;
	}
	body.woocommerce-cart tr.cart_item td:has(> .product-mobile-actions) {
		display: revert !important;
	}

	/* 2. Le bloc mobile du thème et son compteur retrouvent leur mise en
	      page native — y compris le positionnement absolu des signes, qui
	      est ce que Blocksy attend. */
	body.woocommerce-cart .product-mobile-actions,
	body.woocommerce-cart .product-mobile-actions .quantity,
	body.woocommerce-cart .product-mobile-actions .quantity .ct-decrease,
	body.woocommerce-cart .product-mobile-actions .quantity .ct-increase,
	body.woocommerce-cart .product-mobile-actions .quantity input.qty,
	body.woocommerce-cart tr.cart_item .quantity,
	body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
	body.woocommerce-cart tr.cart_item .quantity .ct-increase,
	body.woocommerce-cart tr.cart_item .quantity input.qty {
		all: revert !important;
	}

	body.woocommerce-cart tr.cart_item td.product-thumbnail img {
		width: revert !important;
		height: revert !important;
	}

	/* 3. Ce qu'on garde, parce que c'est du cosmétique sans effet de bord :
	      le prix unitaire en double reste masqué. */
	body.woocommerce-cart .product-mobile-actions .ct-product-multiply-symbol,
	body.woocommerce-cart .product-mobile-actions .ct-product-multiply-symbol + .woocommerce-Price-amount,
	body.woocommerce-cart tr.cart_item p.price {
		display: none !important;
	}
}

/* =========================================================================
   Panier — le seul point retouché : le bouton de suppression
   Aucune règle de structure ici. On habille le lien, on ne le déplace pas.
   ========================================================================= */

body.woocommerce-cart .product-mobile-actions a.remove,
body.woocommerce-cart td.product-remove a.remove {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto;
	width: 36px !important;
	height: 36px !important;
	padding: 0 !important;
	color: #733b30 !important;
	background: #faf9f7 !important;
	background-image: none !important;
	border: 1px solid rgba(115, 59, 48, .16) !important;
	border-radius: 9px !important;
	text-decoration: none !important;
	line-height: 1 !important;
	vertical-align: middle;
	transition: background .15s ease, border-color .15s ease;
}
body.woocommerce-cart .product-mobile-actions a.remove:hover,
body.woocommerce-cart td.product-remove a.remove:hover {
	background: rgba(255, 242, 215, .8) !important;
	border-color: #cfb374 !important;
	color: #733b30 !important;
}
body.woocommerce-cart .product-mobile-actions a.remove svg,
body.woocommerce-cart td.product-remove a.remove svg {
	display: block !important;
	width: 13px !important;
	height: 13px !important;
	fill: currentColor !important;
	margin: 0 !important;
}

/* Le bloc mobile aligne simplement ses éléments sur une ligne, sans
   redéfinir la structure de la ligne de panier. */
body.woocommerce-cart .product-mobile-actions {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

/* =========================================================================
   Le cadre arrondi du sélecteur de quantité
   On habille SEULEMENT le conteneur : bordure, rayon, hauteur, fond.
   Le placement des signes − et + reste celui du thème (position absolue),
   c'est en voulant le refaire que je cassais tout.
   ========================================================================= */

body.woocommerce-cart .product-mobile-actions .quantity,
body.woocommerce-cart td.product-quantity .quantity,
body.woocommerce-cart tr.cart_item .quantity {
	position: relative !important;
	flex: 0 0 auto;
	width: 116px !important;
	min-width: 116px !important;
	height: 40px !important;
	margin: 0 !important;
	background: #fff !important;
	border: 1px solid rgba(115, 59, 48, .26) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}
body.woocommerce-cart tr.cart_item .quantity input.qty {
	height: 40px !important;
	line-height: 40px !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-align: center !important;
	font-size: 16px !important;
	color: #3a2a26 !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	color: #733b30 !important;
	background: none !important;
	border-radius: 0 !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease:hover,
body.woocommerce-cart tr.cart_item .quantity .ct-increase:hover {
	background: rgba(255, 242, 215, .7) !important;
	color: #733b30 !important;
}

/* =========================================================================
   Panneau latéral : la corbeille avait disparu
   Le lien d'Elementor est vide et son icône venait d'une image de fond que
   j'avais supprimée, en retirant ensuite le signe que j'avais mis à la
   place. Résultat : plus rien. On lui redonne un signe.
   ========================================================================= */

.elementor-menu-cart__product-remove a,
a.elementor_remove_from_cart_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	font-size: 0 !important;
	background: #faf9f7 !important;
	border: 1px solid rgba(115, 59, 48, .18) !important;
	border-radius: 8px !important;
	text-decoration: none !important;
}
.elementor-menu-cart__product-remove a::before,
a.elementor_remove_from_cart_button::before {
	content: "\2715" !important;
	display: block !important;
	font-size: 13px !important;
	line-height: 1 !important;
	font-weight: 600 !important;
	color: #733b30 !important;
	background: none !important;
}
.elementor-menu-cart__product-remove a:hover,
a.elementor_remove_from_cart_button:hover {
	background: rgba(255, 242, 215, .8) !important;
	border-color: #cfb374 !important;
}

/* =========================================================================
   Sélecteur de quantité — placement explicite des signes
   Mes tentatives précédentes avaient neutralisé les positions du thème
   (`position: static`, `inset: auto`), d'où les deux signes empilés à
   gauche. On ne s'appuie plus sur ses valeurs : on les pose nous-mêmes.
   ========================================================================= */

body.woocommerce-cart tr.cart_item .quantity {
	position: relative !important;
	display: block !important;
	padding: 0 !important;
}

body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	position: absolute !important;
	top: 0 !important;
	bottom: 0 !important;
	width: 38px !important;
	height: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1rem !important;
	line-height: 1 !important;
	color: #733b30 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
	cursor: pointer;
	z-index: 2 !important;
}

/* le moins à gauche */
body.woocommerce-cart tr.cart_item .quantity .ct-decrease {
	left: 0 !important;
	right: auto !important;
	inset-inline-start: 0 !important;
	inset-inline-end: auto !important;
	border-right: 1px solid rgba(115, 59, 48, .14) !important;
}

/* le plus à droite */
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	right: 0 !important;
	left: auto !important;
	inset-inline-end: 0 !important;
	inset-inline-start: auto !important;
	border-left: 1px solid rgba(115, 59, 48, .14) !important;
}

/* le chiffre au centre, entre les deux */
body.woocommerce-cart tr.cart_item .quantity input.qty {
	position: relative !important;
	z-index: 1 !important;
	width: 100% !important;
	height: 40px !important;
	line-height: 40px !important;
	margin: 0 !important;
	padding: 0 38px !important;
	text-align: center !important;
	box-sizing: border-box !important;
	-moz-appearance: textfield;
	appearance: textfield;
}
body.woocommerce-cart tr.cart_item .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart tr.cart_item .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.woocommerce-cart tr.cart_item .quantity .ct-decrease:hover,
body.woocommerce-cart tr.cart_item .quantity .ct-increase:hover {
	background: rgba(255, 242, 215, .7) !important;
}

/* La vignette produit reprend une taille raisonnable : mon retour en arrière
   avait remis sa taille sur `revert`, donc plus aucune contrainte. */
body.woocommerce-cart tr.cart_item td.product-thumbnail { width: 96px !important; }
body.woocommerce-cart tr.cart_item td.product-thumbnail img,
body.woocommerce-cart tr.cart_item td.product-thumbnail .ct-media-container img {
	width: 88px !important;
	height: 88px !important;
	max-width: 88px !important;
	object-fit: contain !important;
	padding: 4px !important;
	background: #fff !important;
	border: 1px solid rgba(115, 59, 48, .14) !important;
	border-radius: 10px !important;
	box-sizing: border-box !important;
}

@media (max-width: 999px) {
	body.woocommerce-cart tr.cart_item td.product-thumbnail { width: 84px !important; }
	body.woocommerce-cart tr.cart_item td.product-thumbnail img,
	body.woocommerce-cart tr.cart_item td.product-thumbnail .ct-media-container img {
		width: 76px !important;
		height: 76px !important;
		max-width: 76px !important;
	}
}

/* De l'air entre la vignette et le trait de séparation : la ligne collait
   au bord de l'image. */
body.woocommerce-cart tr.cart_item td {
	padding-top: 20px !important;
	padding-bottom: 20px !important;
	vertical-align: middle !important;
}
body.woocommerce-cart tr.cart_item td.product-thumbnail {
	padding-right: 16px !important;
}
body.woocommerce-cart tr.cart_item td.product-thumbnail img,
body.woocommerce-cart tr.cart_item td.product-thumbnail .ct-media-container img {
	margin: 0 !important;
	display: block !important;
}
body.woocommerce-cart tr.cart_item td.product-name {
	padding-right: 16px !important;
	line-height: 1.4 !important;
}

@media (max-width: 999px) {
	body.woocommerce-cart tr.cart_item td {
		padding-top: 18px !important;
		padding-bottom: 18px !important;
	}
	body.woocommerce-cart tr.cart_item td.product-thumbnail { padding-right: 14px !important; }
	body.woocommerce-cart .product-mobile-actions { margin-top: 10px !important; }
}

/* Le sélecteur de quantité à la même hauteur que le bouton de suppression :
   36 px pour les deux, pour qu'ils s'alignent sur la même ligne optique. */
body.woocommerce-cart tr.cart_item .quantity {
	height: 36px !important;
	width: 108px !important;
	min-width: 108px !important;
	border-radius: 9px !important;
}
body.woocommerce-cart tr.cart_item .quantity input.qty {
	height: 36px !important;
	line-height: 36px !important;
	padding: 0 34px !important;
	font-size: 15px !important;
}
body.woocommerce-cart tr.cart_item .quantity .ct-decrease,
body.woocommerce-cart tr.cart_item .quantity .ct-increase {
	width: 34px !important;
	font-size: .95rem !important;
}

/* =========================================================================
   Ligne de panier — nouvelle disposition
   vignette | nom + prix dessous | quantité et corbeille à droite
   ========================================================================= */

body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) auto auto !important;
	grid-template-areas:
		"img nom  qte rem"
		"img prix qte rem" !important;
	column-gap: 16px !important;
	row-gap: 6px !important;
	align-items: center !important;
	padding: 20px 0 !important;
	border-bottom: 1px solid rgba(115, 59, 48, .14) !important;
}
body.woocommerce-cart tr.cart_item > td {
	border: 0 !important;
	padding: 0 !important;
	width: auto !important;
	vertical-align: middle !important;
}

body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-area: img; align-self: center; }
body.woocommerce-cart tr.cart_item td.product-name {
	grid-area: nom;
	align-self: end;
	padding-right: 12px !important;
	font-size: .92rem !important;
	line-height: 1.35 !important;
}
body.woocommerce-cart tr.cart_item td.product-subtotal {
	grid-area: prix;
	align-self: start;
	justify-self: start !important;
	text-align: left !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #733b30 !important;
}
body.woocommerce-cart tr.cart_item td.product-quantity { grid-area: qte; justify-self: end; }
body.woocommerce-cart tr.cart_item td.product-remove   { grid-area: rem; justify-self: end; }

/* --- Sur téléphone, le thème regroupe quantité et corbeille dans un bloc
       imbriqué : on efface sa cellule pour qu'il rejoigne la grille. --- */
@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		grid-template-columns: auto minmax(0, 1fr) auto !important;
		grid-template-areas:
			"img nom  act"
			"img prix act" !important;
		column-gap: 14px !important;
		padding: 18px 0 !important;
	}
	body.woocommerce-cart tr.cart_item td:has(> .product-mobile-actions) {
		display: contents !important;
	}
	body.woocommerce-cart tr.cart_item .product-mobile-actions {
		grid-area: act;
		display: flex !important;
		align-items: center !important;
		justify-content: flex-end !important;
		gap: 10px !important;
		margin: 0 !important;
	}
	body.woocommerce-cart tr.cart_item td.product-name { font-size: .88rem !important; padding-right: 10px !important; }
	body.woocommerce-cart tr.cart_item td.product-subtotal { font-size: .95rem !important; }
}

/* Le titre occupe toute la largeur sur sa ligne ; en dessous, le prix à
   gauche et les commandes à droite. */
body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
	grid-template-areas:
		"img nom  nom nom"
		"img prix qte rem" !important;
	row-gap: 10px !important;
}
body.woocommerce-cart tr.cart_item td.product-name {
	align-self: center !important;
	padding-right: 0 !important;
}
body.woocommerce-cart tr.cart_item td.product-subtotal {
	align-self: center !important;
	justify-self: start !important;
}
body.woocommerce-cart tr.cart_item td.product-quantity,
body.woocommerce-cart tr.cart_item td.product-remove {
	align-self: center !important;
}

@media (max-width: 999px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		grid-template-areas:
			"img nom  nom"
			"img prix act" !important;
	}
	body.woocommerce-cart tr.cart_item .product-mobile-actions {
		align-self: center !important;
	}
}

/* =========================================================================
   Ordinateur — on rend la main au tableau
   Ma nouvelle disposition ne devait concerner que le téléphone. Sur grand
   écran, la ligne redevient une ligne de tableau, et le bloc mobile du
   thème est masqué comme il doit l'être.
   ========================================================================= */

@media (min-width: 1000px) {
	body.woocommerce-cart tr.woocommerce-cart-form__cart-item.cart_item {
		display: table-row !important;
		grid-template-columns: none !important;
		grid-template-areas: none !important;
		column-gap: normal !important;
		row-gap: normal !important;
	}
	body.woocommerce-cart tr.cart_item > td {
		display: table-cell !important;
		grid-area: auto !important;
		justify-self: auto !important;
		align-self: auto !important;
		vertical-align: middle !important;
		border-bottom: 1px solid rgba(115, 59, 48, .14) !important;
	}

	/* Le bloc mobile n'a rien à faire ici : le thème le masque, on ne le
	   force plus à s'afficher. */
	body.woocommerce-cart .product-mobile-actions,
	body.woocommerce-cart .ct-hidden-lg {
		display: none !important;
	}

	body.woocommerce-cart tr.cart_item td.product-subtotal {
		text-align: right !important;
		justify-self: auto !important;
	}
	body.woocommerce-cart tr.cart_item td.product-quantity,
	body.woocommerce-cart tr.cart_item td.product-remove {
		justify-self: auto !important;
		text-align: right !important;
	}
	body.woocommerce-cart tr.cart_item td.product-thumbnail { width: 96px !important; }
	body.woocommerce-cart tr.cart_item td.product-name { padding-right: 16px !important; }
}

/* Le bloc mobile ne s'affiche QUE sur petit écran. */
@media (max-width: 999px) {
	body.woocommerce-cart .product-mobile-actions {
		display: flex !important;
		align-items: center !important;
		justify-content: flex-end !important;
		gap: 10px !important;
	}
	/* et les cellules de la version grand écran restent masquées */
	body.woocommerce-cart tr.cart_item > td.product-quantity,
	body.woocommerce-cart tr.cart_item > td.product-remove {
		display: none !important;
	}
}

/* =========================================================================
   Ordinateur — retour à la disposition qui fonctionnait
   La colonne du nom s'étend pour repousser quantité, prix et corbeille à
   droite ; et le dépliant de code promo revient (je l'avais désactivé sur
   grand écran alors que c'est la ligne d'actions qui posait problème).
   ========================================================================= */

@media (min-width: 1000px) {

	/* --- La ligne produit --- */
	body.woocommerce-cart table.shop_table.woocommerce-cart-form__contents {
		width: 100% !important;
		table-layout: auto !important;
	}
	body.woocommerce-cart tr.cart_item td.product-name {
		width: 99% !important;
		text-align: left !important;
	}
	body.woocommerce-cart tr.cart_item td.product-thumbnail { width: 96px !important; }
	body.woocommerce-cart tr.cart_item td.product-quantity,
	body.woocommerce-cart tr.cart_item td.product-subtotal,
	body.woocommerce-cart tr.cart_item td.product-remove {
		width: 1% !important;
		white-space: nowrap !important;
		padding-left: 14px !important;
	}
	body.woocommerce-cart tr.cart_item td.product-subtotal { text-align: right !important; }
	body.woocommerce-cart tr.cart_item td.product-remove { text-align: right !important; }

	/* --- La ligne d'actions --- */
	body.woocommerce-cart .lds-promo-bascule {
		display: inline-flex !important;
		order: 1;
		margin: 0 !important;
	}
	body.woocommerce-cart td.actions {
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		gap: 14px !important;
		padding-top: 26px !important;
	}
	/* le champ promo reste replié tant qu'on ne l'ouvre pas */
	body.woocommerce-cart td.actions .coupon.lds-promo-repli {
		display: none !important;
		order: 4;
		flex: 1 1 100% !important;
		max-height: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		overflow: visible !important;
		transition: none !important;
		margin: 0 !important;
	}
	body.woocommerce-cart td.actions .coupon.lds-promo-repli.lds-promo-ouvert {
		display: grid !important;
		grid-template-columns: minmax(240px, 340px) auto !important;
		gap: 10px !important;
	}
	/* « Mettre à jour » calé à droite, « Vider » à la ligne */
	body.woocommerce-cart td.actions > button[name="update_cart"] {
		order: 2;
		margin-left: auto !important;
	}
	body.woocommerce-cart td.actions > button.button:not([name="apply_coupon"]):not([name="update_cart"]),
	body.woocommerce-cart td.actions > a.button {
		order: 3;
		flex: 0 0 auto;
	}
}

/* De l'air autour de la ligne produit : le trait de séparation collait à la
   vignette. Mes règles de largeur ajoutées ensuite avaient écrasé le
   remplissage vertical — on le repose en dernier. */
body.woocommerce-cart tr.cart_item td,
body.woocommerce-cart tr.cart_item td.product-thumbnail,
body.woocommerce-cart tr.cart_item td.product-name,
body.woocommerce-cart tr.cart_item td.product-quantity,
body.woocommerce-cart tr.cart_item td.product-subtotal,
body.woocommerce-cart tr.cart_item td.product-remove {
	padding-top: 26px !important;
	padding-bottom: 26px !important;
}

body.woocommerce-cart tr.cart_item td.product-thumbnail img {
	margin: 0 !important;
	display: block !important;
}

/* Un peu d'espace aussi avant la ligne d'actions. */
body.woocommerce-cart td.actions { padding-top: 30px !important; }

@media (max-width: 999px) {
	body.woocommerce-cart tr.cart_item td,
	body.woocommerce-cart tr.cart_item td.product-thumbnail,
	body.woocommerce-cart tr.cart_item td.product-name {
		padding-top: 20px !important;
		padding-bottom: 20px !important;
	}
}

/* =========================================================================
   Panneau latéral — la croix de suppression, en dernier mot
   Ce lien est vide (Elementor lui donne son icône par image de fond, que
   j'avais neutralisée). Plusieurs de mes règles successives se sont ensuite
   annulées entre elles. Celle-ci est la dernière du fichier et vise
   précisément le lien du panneau : elle ne peut plus être écrasée.
   ========================================================================= */

body .elementor-menu-cart__product a.elementor_remove_from_cart_button,
body .elementor-menu-cart__product-remove a,
body a.elementor_remove_from_cart_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-decoration: none !important;
	background: #faf9f7 !important;
	background-image: none !important;
	border: 1px solid rgba(115, 59, 48, .18) !important;
	border-radius: 8px !important;
	opacity: 1 !important;
	visibility: visible !important;
}

body .elementor-menu-cart__product a.elementor_remove_from_cart_button::before,
body .elementor-menu-cart__product-remove a::before,
body a.elementor_remove_from_cart_button::before {
	content: "\2715" !important;
	display: inline-block !important;
	font-family: inherit !important;
	font-size: 13px !important;
	line-height: 1 !important;
	font-weight: 600 !important;
	color: #733b30 !important;
	background: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	width: auto !important;
	height: auto !important;
}

body .elementor-menu-cart__product a.elementor_remove_from_cart_button:hover,
body a.elementor_remove_from_cart_button:hover {
	background: rgba(255, 242, 215, .8) !important;
	border-color: #cfb374 !important;
}

/* Le chiffre de la quantité était invisible : une de mes règles de bouton
   avait posé `color: transparent` / `font-size: 0` qui se propageaient au
   champ. On le rétablit explicitement, en dernier. */
body.woocommerce-cart tr.cart_item .quantity input.qty,
body.woocommerce-cart .product-mobile-actions .quantity input.qty,
body.woocommerce-cart td.product-quantity .quantity input.qty {
	color: #3a2a26 !important;
	-webkit-text-fill-color: #3a2a26 !important;
	font-size: 15px !important;
	line-height: 36px !important;
	opacity: 1 !important;
	visibility: visible !important;
	text-indent: 0 !important;
	text-align: center !important;
	padding: 0 30px !important;
	background: #fff !important;
	-webkit-appearance: none;
	appearance: none;
}

/* =========================================================================
   Un seul compteur par ligne, et un panneau qui défile
   ========================================================================= */

/* La ligne contient deux blocs .quantity identiques : on n'affiche que le
   premier, quel que soit l'écran. Le second restait vide et masquait le
   chiffre du premier. */
body.woocommerce-cart td.product-quantity .quantity ~ .quantity,
body.woocommerce-cart .product-mobile-actions .quantity ~ .quantity,
body.woocommerce-cart tr.cart_item .quantity ~ .quantity {
	display: none !important;
}

/* --- Le panneau latéral doit défiler, quelle que soit la taille d'écran --- */

.elementor-menu-cart__container,
.elementor-menu-cart__container .elementor-menu-cart__main {
	max-height: 100dvh !important;
	max-height: 100vh !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
}
.elementor-menu-cart__container .elementor-menu-cart__main {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior-y: contain !important;
	min-height: 0 !important;
	flex: 1 1 auto !important;
}
.elementor-menu-cart__products,
.elementor-menu-cart__product-list {
	overflow: visible !important;
	max-height: none !important;
	height: auto !important;
	flex: 0 0 auto !important;
}
/* le carrousel de suggestions ne capte que le geste horizontal */
.lds-mini-reco-piste { touch-action: pan-x !important; }

/* =========================================================================
   Panneau latéral — rendre à Elementor sa zone de défilement
   J'avais forcé .elementor-menu-cart__products en `overflow: visible`, or
   c'est exactement le conteneur qu'Elementor fait défiler. Résultat : plus
   aucun défilement possible dans le panneau.
   ========================================================================= */

.elementor-menu-cart__container .elementor-menu-cart__main {
	display: flex !important;
	flex-direction: column !important;
	max-height: 100dvh !important;
	max-height: 100vh !important;
	overflow: hidden !important;
	min-height: 0 !important;
}

/* La liste des produits — et tout ce qu'on y a ajouté — redevient la zone
   qui défile. `min-height: 0` est indispensable : sans lui, un enfant
   flexible refuse de rétrécir et le défilement ne s'active jamais. */
.elementor-menu-cart__container .elementor-menu-cart__products,
.elementor-menu-cart__container .widget_shopping_cart_content {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	max-height: none !important;
	height: auto !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior-y: contain !important;
}

/* Le pied du panneau reste visible, hors de la zone qui défile. */
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons,
.elementor-menu-cart__container .elementor-menu-cart__subtotal {
	flex: 0 0 auto !important;
}

/* =========================================================================
   Compteur de quantité — garder le bloc qui porte réellement le champ
   Je gardais le premier des deux blocs ; sur ordinateur c'est le second
   qui contient le champ rempli, d'où un cadre vide.
   On sélectionne par le contenu, pas par la position.
   ========================================================================= */

/* On masque d'abord tous les blocs de la cellule… */
body.woocommerce-cart td.product-quantity .quantity,
body.woocommerce-cart .product-mobile-actions .quantity {
	display: none !important;
}
/* …puis on ne rétablit que celui qui contient le champ de panier. */
body.woocommerce-cart td.product-quantity .quantity:has(input[name^="cart["]),
body.woocommerce-cart .product-mobile-actions .quantity:has(input[name^="cart["]) {
	display: block !important;
}
/* Repli pour les navigateurs sans :has() — on garde le dernier. */
@supports not selector(:has(*)) {
	body.woocommerce-cart td.product-quantity .quantity:last-of-type,
	body.woocommerce-cart .product-mobile-actions .quantity:last-of-type {
		display: block !important;
	}
}

/* Le chiffre occupe toute la largeur du cadre : les signes sont posés
   par-dessus, aux deux extrémités. Plus de retrait qui le pousse dehors. */
body.woocommerce-cart tr.cart_item .quantity input.qty {
	width: 100% !important;
	padding: 0 !important;
	text-align: center !important;
	color: #3a2a26 !important;
	-webkit-text-fill-color: #3a2a26 !important;
	font-size: 15px !important;
	opacity: 1 !important;
}

/* =========================================================================
   Panneau latéral — c'est Blocksy qui le fait défiler, pas Elementor
   Le panneau est div.ct-panel > .ct-panel-inner > .ct-panel-content >
   .ct-panel-content-inner, et c'est ce dernier qui porte overflow-y: auto.
   Mes règles créaient des zones de défilement imbriquées à l'intérieur,
   qui annulaient la sienne. On les neutralise.
   ========================================================================= */

.ct-panel .widget_shopping_cart_content,
.ct-panel .elementor-menu-cart__container,
.ct-panel .elementor-menu-cart__main,
.ct-panel .elementor-menu-cart__products,
.ct-panel .elementor-menu-cart__product-list {
	overflow: visible !important;
	max-height: none !important;
	height: auto !important;
	min-height: 0 !important;
	flex: 0 0 auto !important;
	display: block !important;
}

/* La zone de défilement du thème, confortée. */
.ct-panel .ct-panel-content-inner {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior-y: contain !important;
	min-height: 0 !important;
}
.ct-panel .ct-panel-content {
	min-height: 0 !important;
	overflow: hidden !important;
}

/* Le carrousel de suggestions ne capte que le geste horizontal, pour ne pas
   bloquer le défilement vertical du panneau. */
.ct-panel .lds-mini-reco-piste { touch-action: pan-x !important; }
