/* ==========================================================================
   Maison Aurore - Refonte visuelle du panier lateral (CheckoutWC 9.x)
   --------------------------------------------------------------------------
   100 % CSS. Aucun JS, aucune surcharge de template, aucune modification du
   plugin. Le seul HTML ajoute vient de deux hooks PHP officiels de CheckoutWC
   (cfw_after_side_cart_header et cfw_after_side_cart_proceed_to_checkout_button),
   voir functions.php du theme enfant.

   Tout est porte par #cfw-side-cart : rien ne fuit sur le reste du site.
   ========================================================================== */

#cfw-side-cart {
	--ma-sc-ink: #2b2724;
	--ma-sc-soft: #857b72;
	--ma-sc-line: #ece3d6;
	--ma-sc-line-strong: #ddd2c2;
	--ma-sc-tile: #f5f1ea;
	--ma-sc-cream: #faf6f0;
	--ma-sc-rail: #f4efe6;
	--ma-sc-gold: #9a7b4f;
	--ma-sc-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--ma-sc-gutter: 1.5em;
}

/* --------------------------------------------------------------------------
   1. En-tete : titre a gauche, compteur, croix a droite, bandeau livraison
   -------------------------------------------------------------------------- */

#cfw-side-cart .cfw-side-cart-contents-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	text-align: left;
	border-bottom: 1px solid var(--ma-sc-line);
}

/* Titre injecte par le hook PHP */
#cfw-side-cart .ma-sc-heading {
	order: 1;
	font-family: var(--ma-sc-serif);
	font-size: 1.625em;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: var(--ma-sc-ink);
}

/* Le sac : on masque l'icone, on garde le compteur (il est pilote par React) */
#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-quantity-wrap {
	order: 2;
	margin-left: 0.45em;
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-quantity-wrap svg {
	display: none;
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-quantity {
	padding-left: 0;
	font-size: 0.8125em;
	line-height: 1;
	color: var(--ma-sc-soft);
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-quantity::before {
	content: "(";
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-quantity::after {
	content: ")";
}

/* Fermeture : sortie du flux absolu, calee a droite */
#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-close-btn {
	order: 3;
	position: static;
	left: auto;
	top: auto;
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25em;
	height: 2.25em;
	border-radius: 50%;
	color: var(--ma-sc-ink);
	transition: background-color 0.2s ease;
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-close-btn:hover {
	background: var(--ma-sc-tile);
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-close-btn svg {
	width: 22px;
	height: 22px;
	margin-left: 0;
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-close-btn:hover svg {
	margin-left: 3px;
}

#cfw-side-cart .cfw-side-cart-contents-header .cfw-side-cart-close-btn svg path {
	stroke: currentColor;
}

/* Bandeau de reassurance haut (livraison offerte) */
#cfw-side-cart .ma-sc-shipbar {
	order: 4;
	flex: 0 0 100%;
	display: flex;
	align-items: center;
	gap: 0.55em;
	margin: 0.75em 0;
	padding: 0.65em 0.9em;
	border-radius: 8px;
	background: var(--ma-sc-cream);
	font-family: var(--cfw-body-font-family);
	font-size: 0.875em;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: var(--ma-sc-ink);
}

#cfw-side-cart .ma-sc-shipbar strong {
	font-weight: 600;
}

#cfw-side-cart .ma-sc-ico {
	flex: 0 0 auto;
	display: inline-block;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

#cfw-side-cart .ma-sc-shipbar .ma-sc-ico {
	color: var(--ma-sc-gold);
}

#cfw-side-cart .ma-sc-ico--truck {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5h10.5v9.5H2.5z'/%3E%3Cpath d='M13 10h3.6l3.4 3.4V16H13z'/%3E%3Ccircle cx='6.5' cy='18' r='1.9'/%3E%3Ccircle cx='16.5' cy='18' r='1.9'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5h10.5v9.5H2.5z'/%3E%3Cpath d='M13 10h3.6l3.4 3.4V16H13z'/%3E%3Ccircle cx='6.5' cy='18' r='1.9'/%3E%3Ccircle cx='16.5' cy='18' r='1.9'/%3E%3C/svg%3E");
}

#cfw-side-cart .ma-sc-ico--return {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5h11a5 5 0 0 1 0 10H8'/%3E%3Cpath d='M7.5 4.5l-4 4 4 4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5h11a5 5 0 0 1 0 10H8'/%3E%3Cpath d='M7.5 4.5l-4 4 4 4'/%3E%3C/svg%3E");
}

#cfw-side-cart .ma-sc-ico--lock {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10' width='15' height='9.5' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10' width='15' height='9.5' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   2. Panier vide
   -------------------------------------------------------------------------- */

/* Le theme enfant convertit les <h2> du panier en <p> sur les fiches produit
   (hierarchie des titres), ce qui faisait perdre sa mise en forme au message
   « panier vide ». On la reapplique sur les deux balises possibles. */
#cfw-side-cart .cfw-side-cart-contents > p,
#cfw-side-cart .cfw-side-cart-contents > h2 {
	text-align: center;
	color: var(--ma-sc-soft);
	/* le plugin impose sa police aux titres en !important */
	font-family: var(--cfw-body-font-family) !important;
	font-size: 0.9375em;
	font-weight: 400;
	line-height: 1.5;
	margin: 0.4em 0 0;
}

#cfw-side-cart .cfw-side-cart-contents > p:first-child,
#cfw-side-cart .cfw-side-cart-contents > h2:first-child {
	margin-top: 2.5em;
	font-family: var(--ma-sc-serif) !important;
	font-size: 1.35em;
	font-weight: 400;
	color: var(--ma-sc-ink);
}

/* --------------------------------------------------------------------------
   3. Lignes produit : image plus grande, titre lisible, corbeille visible
   -------------------------------------------------------------------------- */

#cfw-side-cart .cfw-cart-table .cart-item-row > th,
#cfw-side-cart .cfw-cart-table .cart-item-row > td {
	padding-top: 1em;
	padding-bottom: 1em;
	vertical-align: top;
}

#cfw-side-cart .cart-item-row:not(:only-child):not(:last-child) > * {
	border-bottom: 1px solid var(--ma-sc-line);
}

/* Vignette */
#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-image {
	width: 6.25em;
}

#cfw-side-cart .cfw-cart-item-image-wrap {
	margin-top: 0;
	width: 6.25em;
	height: 6.25em;
	border-radius: 10px;
	overflow: hidden;
	background: var(--ma-sc-tile);
}

#cfw-side-cart .cfw-cart-item-image-wrap > a,
#cfw-side-cart .cfw-cart-item-image-wrap > span {
	display: block;
	width: 100%;
	height: 100%;
}

#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-image img {
	width: 100% !important;
	height: 100%;
	max-width: none;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	display: block;
}

/* Titre + meta */
#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-description {
	padding-left: 1.1em;
}

#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-title {
	font-family: var(--ma-sc-serif);
	font-size: 1.125em;
	line-height: 1.32;
	color: var(--ma-sc-ink);
	margin-bottom: 0.35rem;
}

#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-title a {
	color: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-cart-item-data {
	font-size: 0.8125em;
	line-height: 1.5;
	color: var(--ma-sc-soft);
}

/* Prix barre / prix remise sous le titre */
#cfw-side-cart .cfw-items-summary-item-discount {
	font-size: 0.8125em;
	line-height: 1.4;
	color: var(--ma-sc-soft);
}

#cfw-side-cart .cfw-items-summary-item-discount:empty {
	display: none;
}

#cfw-side-cart .cfw-items-summary-item-discount del {
	opacity: 0.75;
	margin-right: 0.35em;
}

#cfw-side-cart .cfw-items-summary-item-discount ins {
	text-decoration: none;
	font-weight: 600;
	color: var(--ma-sc-ink);
}

/* Selecteur de quantite */
#cfw-side-cart .cfw_side_cart_item_after_data {
	margin-top: 0.7em;
	gap: 0.85em;
}

#cfw-side-cart .cfw_side_cart_item_after_data .cfw-edit-item-quantity-control-wrap {
	margin-right: 0;
}

#cfw-side-cart .cfw-quantity-stepper {
	font-size: 0.875em;
	border-color: var(--ma-sc-line-strong);
	border-radius: 999px;
	opacity: 1;
	overflow: hidden;
}

#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-minus,
#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-plus {
	min-width: 32px;
	min-height: 30px;
	border-color: var(--ma-sc-line-strong);
	transition: background-color 0.2s ease;
}

#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-minus:hover,
#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-plus:hover {
	background: var(--ma-sc-tile);
}

#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-minus:hover svg,
#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-plus:hover svg {
	fill: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-value-label {
	min-width: 26px;
	font-weight: 600;
}

/* Lien "Modifier" (produits variables) */
#cfw-side-cart .cfw-cart-edit-item-variation {
	font-size: 0.8125em;
	color: var(--ma-sc-gold) !important;
	border-bottom: 1px solid rgba(154, 123, 79, 0.35);
	line-height: 1.2;
}

/* Colonne prix + corbeille.
   On garde volontairement le comportement table-cell (pas de flex ici) :
   c'est ce qui maintient les filets de separation alignes sur toute la ligne. */
#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-subtotal {
	padding-left: 0.9em;
	white-space: nowrap;
	font-weight: 600;
	color: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-cart-item-subtotal .amount {
	font-size: 1em;
	font-weight: 600;
}

/* Corbeille : toujours visible (avant, elle n'apparaissait qu'au survol),
   calee en bas a droite de la ligne. */
#cfw-side-cart .cfw-remove-item-button {
	position: absolute;
	top: 50%;
	right: 0;
	bottom: auto;
	transform: translateY(-50%);
	opacity: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	color: var(--ma-sc-soft) !important;
	transition: color 0.2s ease;
}

#cfw-side-cart .cfw-remove-item-button:hover {
	color: #b3392f !important;
}

/* On remplace la croix par une corbeille, sans toucher au bouton lui-meme */
#cfw-side-cart .cfw-remove-item-button svg {
	display: none;
}

#cfw-side-cart .cfw-remove-item-button::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5h16'/%3E%3Cpath d='M9.5 10.5v6.5M14.5 10.5v6.5'/%3E%3Cpath d='M6 6.5l1 13h10l1-13'/%3E%3Cpath d='M9 6.5v-3h6v3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5h16'/%3E%3Cpath d='M9.5 10.5v6.5M14.5 10.5v6.5'/%3E%3Cpath d='M6 6.5l1 13h10l1-13'/%3E%3Cpath d='M9 6.5v-3h6v3'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   4. Pied : code promo, totaux, bouton
   -------------------------------------------------------------------------- */

#cfw-side-cart .cfw-side-cart-contents-footer .cfw-side-cart-contents-footer-border-shim {
	border-top-color: var(--ma-sc-line);
	padding-top: 0.85em;
}

#cfw-side-cart .cfw-coupon-wrap a {
	font-size: 0.875em;
	color: var(--ma-sc-gold) !important;
}

/* Correctif du champ code promo (bug prealable a cette refonte).
   Le volet est anime par react-smooth-slide-toggle ; sur ce site l'animation
   s'interrompt et le bloc reste bloque a ~11 px de haut, donc le champ est
   inutilisable. Quand le volet est ouvert, CheckoutWC retire le lien
   .cfw-show-coupons-module : on s'appuie sur cette absence pour rendre au
   bloc sa hauteur naturelle. Etat replie : aucune regle appliquee. */
#cfw-side-cart .cfw-coupon-wrap .slide-toggle:not(:has(.cfw-show-coupons-module)) > div {
	height: auto !important;
}

/* .wrapper reste en overflow:auto et affichait une barre de defilement
   horizontale parasite (la grille interne deborde de 5 px). */
#cfw-side-cart .cfw-coupon-wrap .slide-toggle:not(:has(.cfw-show-coupons-module)) > div,
#cfw-side-cart .cfw-coupon-wrap .slide-toggle:not(:has(.cfw-show-coupons-module)) .wrapper {
	overflow: visible !important;
}

#cfw-side-cart .cfw-coupon-wrap .cfw-promo-row {
	margin-bottom: 0.9em;
}

/* Bouton « Appliquer » : il etait gris sur gris, on l'aligne sur le bouton
   principal (le plugin force la couleur du texte, d'ou le !important). */
#cfw-side-cart .cfw-coupon-wrap .cfw-secondary-btn {
	background: var(--ma-sc-ink);
	border-color: var(--ma-sc-ink);
	color: #fff !important;
	border-radius: 8px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

#cfw-side-cart .cfw-coupon-wrap .cfw-secondary-btn:hover {
	background: #47413a;
	border-color: #47413a;
	color: #fff !important;
}

#cfw-side-cart .cfw-side-cart-totals table {
	border-spacing: 0 0.3em;
}

#cfw-side-cart .cfw-side-cart-totals table tr {
	padding: 5px 0;
	font-size: 1em;
}

#cfw-side-cart .cfw-side-cart-totals table tr th {
	font-weight: 400;
	color: var(--ma-sc-soft);
}

#cfw-side-cart .cfw-side-cart-totals table tr td {
	font-weight: 600;
	color: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-side-cart-totals table tr.order-total {
	border-top: 1px solid var(--ma-sc-line-strong);
	padding-top: 11px;
	margin-top: 2px;
	font-size: 1.125em;
}

#cfw-side-cart .cfw-side-cart-totals table tr.order-total th {
	color: var(--ma-sc-ink);
	font-weight: 600;
}

#cfw-side-cart .cfw-side-cart-totals table tr.order-total .includes_tax {
	font-size: 0.72em;
	color: var(--ma-sc-soft);
	margin-top: 4px;
}

/* Bouton principal : plus de "Valider La Commande" en Capitales Bizarres */
#cfw-side-cart .wc-proceed-to-checkout .cfw-primary-btn {
	text-transform: none;
	font-size: 1.0625em;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 0.95em 1em;
	border-radius: 8px;
}

/* --------------------------------------------------------------------------
   5. Bandeau de reassurance sous le bouton (injecte par hook PHP)
   -------------------------------------------------------------------------- */

#cfw-side-cart .ma-sc-trust {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5em;
	margin-top: 0.9em;
	padding-top: 0.9em;
	border-top: 1px solid var(--ma-sc-line);
}

#cfw-side-cart .ma-sc-trust__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.45em;
	font-family: var(--cfw-body-font-family);
	font-size: 0.8125em;
	line-height: 1.35;
	color: var(--ma-sc-soft);
}

#cfw-side-cart .ma-sc-trust__item .ma-sc-ico {
	width: 20px;
	height: 20px;
	color: var(--ma-sc-ink);
}

/* --------------------------------------------------------------------------
   6. Ventes additionnelles : la liste verticale remplace le carrousel
   -------------------------------------------------------------------------- */

#cfw-side-cart .cfw-suggested-products-wrap {
	margin-top: 1.5em;
	padding: 1.15em 1.15em 1.25em;
	border: 1px solid var(--ma-sc-line);
	border-radius: 12px;
	background: var(--ma-sc-cream);
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products-heading {
	font-family: var(--ma-sc-serif) !important;
	font-size: 1.25em;
	font-weight: 400;
	color: var(--ma-sc-ink);
	text-align: left;
	margin: 0 0 0.85em;
}

/* On aplatit le carrousel Slick : les 3 suggestions s'empilent, image a gauche.
   Les styles en ligne poses par Slick sont neutralises avec !important, ce qui
   les emporte toujours (Slick n'ecrit jamais en !important). Aucun JS touche :
   le carrousel continue de tourner, il n'a simplement plus rien a masquer. */
#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products .slick-list {
	overflow: visible;
	padding: 0 !important;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products .slick-track {
	width: 100% !important;
	transform: none !important;
	display: block;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products .slick-slide {
	width: 100% !important;
	float: none !important;
	display: block !important;
	height: auto;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products .slick-slide + .slick-slide {
	margin-top: 0.85em;
	padding-top: 0.85em;
	border-top: 1px solid var(--ma-sc-line);
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-products .slick-dots {
	display: none !important;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.9em;
	margin: 0;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row > .col-2 {
	flex: 0 0 4.5em;
	width: 4.5em;
	max-width: 4.5em;
	padding: 0;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row > .col-2 img {
	width: 4.5em !important;
	height: 4.5em;
	max-width: none;
	object-fit: cover;
	border-radius: 8px;
	background: #fff;
	display: block;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-description.col {
	flex: 1 1 0%;
	min-width: 0;
	max-width: none;
	padding: 0;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-title {
	font-family: var(--ma-sc-serif);
	font-size: 1.0625em;
	line-height: 1.25;
	color: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-price {
	margin: 0.2em 0 0.55em;
	font-size: 0.875em;
	font-weight: 600;
	color: var(--ma-sc-ink);
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-price del {
	font-weight: 400;
	opacity: 0.6;
	margin-right: 0.35em;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-price ins {
	text-decoration: none;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-add-to-cart.cfw-secondary-btn {
	width: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.62em 1.15em !important;
	border: 1px solid var(--ma-sc-ink);
	border-radius: 999px;
	background: transparent;
	/* le plugin force la couleur du texte des boutons secondaires en !important */
	color: var(--ma-sc-ink) !important;
	font-size: 0.8125em;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
	line-height: 1.2;
	transition: background-color 0.2s ease, color 0.2s ease;
}

#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-add-to-cart.cfw-secondary-btn:hover {
	background: var(--ma-sc-ink);
	border-color: var(--ma-sc-ink);
	color: #fff !important;
}

/* --------------------------------------------------------------------------
   7. Grand ecran : les ventes additionnelles passent dans un volet a gauche
   --------------------------------------------------------------------------
   Le tiroir s'elargit a 740 px et se coupe en deux : 240 px de volet crème a
   gauche pour les suggestions, 500 px a droite pour le panier seul.

   Le bloc des suggestions reste EXACTEMENT au meme endroit dans le DOM (React
   le rend dans le pied) : on se contente de le sortir du flux en absolu. Rien
   n'est deplace en JavaScript, donc rien ne casse au rafraichissement du
   panier. Le volet est ancre sur #cfw-side-cart-form, qui est deja en
   position: relative dans le plugin.

   Deux conditions pour que ce mode s'active :
     - un ecran assez large ET assez haut (sinon on garde la colonne unique) ;
     - la presence reelle du bloc suggestions (:has) : panier vide ou aucune
       suggestion a proposer, le tiroir reprend sa largeur normale de 480 px.
   -------------------------------------------------------------------------- */

@media (min-width: 1180px) and (min-height: 620px) {
	/* Ouverture / fermeture.
	   Le plugin anime la propriete `right` avec des keyframes qui codent en dur
	   -480px : avec un tiroir de 740 px, le panneau apparaitrait deja a moitie
	   a l'ecran avant de glisser. Plutot que de reecrire ses keyframes, on
	   coupe l'animation sur ce mode precis et on glisse en `transform`, qui se
	   cale tout seul sur la largeur reelle du tiroir (translateX(100%)). */
	#cfw-side-cart:has(.cfw-suggested-products-wrap) {
		max-width: 740px;
		right: 0;
		overflow: hidden;
		animation: none;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform 0.4s ease, visibility 0s linear 0.4s;
	}

	body.cfw-side-cart-open #cfw-side-cart:has(.cfw-suggested-products-wrap) {
		right: 0;
		animation: none;
		transform: translateX(0);
		visibility: visible;
		transition: transform 0.4s ease, visibility 0s linear 0s;
	}

	body.cfw-side-cart-close #cfw-side-cart:has(.cfw-suggested-products-wrap) {
		right: 0;
		animation: none;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform 0.4s ease, visibility 0s linear 0.4s;
	}

	/* La colonne de droite commence apres le volet */
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) {
		padding-left: 240px;
		overflow: hidden;
	}

	/* En-tete et pied restent en place, seuls les articles defilent :
	   le total et le bouton de commande ne sortent plus jamais de l'ecran. */
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-side-cart-contents {
		overflow-y: auto;
		overscroll-behavior: contain;
		min-height: 0;
	}

	/* Les deux colonnes defilent chacune de leur cote : on rend les barres
	   discretes pour ne pas alourdir la separation entre les deux volets. */
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-side-cart-contents,
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-wrap {
		scrollbar-width: thin;
		scrollbar-color: var(--ma-sc-line-strong) transparent;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-side-cart-contents::-webkit-scrollbar,
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-wrap::-webkit-scrollbar {
		width: 6px;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-side-cart-contents::-webkit-scrollbar-track,
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-wrap::-webkit-scrollbar-track {
		background: transparent;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-side-cart-contents::-webkit-scrollbar-thumb,
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-wrap::-webkit-scrollbar-thumb {
		background: var(--ma-sc-line-strong);
		border-radius: 3px;
	}

	/* Le volet lui-meme */
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-wrap {
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		width: 240px;
		margin: 0;
		padding: 1.6em 1.15em 2em;
		border: 0;
		border-right: 1px solid var(--ma-sc-line);
		border-radius: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--ma-sc-rail);
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-products-heading {
		text-align: center;
		font-size: 1.15em;
		line-height: 1.25;
		margin-bottom: 1.1em;
	}

	/* Dans le volet, chaque suggestion s'empile : image centree, puis texte */
	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product > .row {
		display: block;
		text-align: center;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product > .row > .col-2 {
		flex: none;
		width: 100%;
		max-width: none;
		margin-bottom: 0.7em;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product > .row > .col-2 img {
		width: 7.5em !important;
		max-width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		margin: 0 auto;
		border-radius: 10px;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product-title {
		font-size: 1em;
		line-height: 1.3;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product-price {
		margin: 0.35em 0 0.7em;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .cfw-suggested-product-add-to-cart.cfw-secondary-btn {
		width: 100%;
		padding: 0.68em 0.5em !important;
	}

	#cfw-side-cart #cfw-side-cart-form:has(.cfw-suggested-products-wrap) .slick-slide + .slick-slide {
		margin-top: 1.4em;
		padding-top: 1.4em;
	}
}

/* --------------------------------------------------------------------------
   8. Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 480px) {
	/* Gouttieres reduites : sur un ecran de 360-390 px, les 24 px de marge de
	   chaque cote mangeaient la colonne du titre, qui partait sur 4 lignes. */
	#cfw-side-cart .cfw-side-cart-contents {
		padding-left: 1em;
		padding-right: 1em;
	}

	#cfw-side-cart .cfw-side-cart-contents-header,
	#cfw-side-cart .cfw-side-cart-contents-footer {
		margin-left: 1em;
		margin-right: 1em;
	}

	#cfw-side-cart .ma-sc-heading {
		font-size: 1.35em;
	}

	#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-image {
		width: 5.25em;
	}

	#cfw-side-cart .cfw-cart-item-image-wrap {
		width: 5.25em;
		height: 5.25em;
	}

	#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-description {
		padding-left: 0.85em;
	}

	#cfw-side-cart .cfw-cart-table .cart-item-row .cfw-cart-item-subtotal {
		padding-left: 0.6em;
	}

	#cfw-side-cart .cfw-cart-item-subtotal .amount {
		font-size: 0.875em;
	}

	/* Zones tactiles : on agrandit la surface cliquable sans grossir les icones. */
	#cfw-side-cart .cfw-remove-item-button {
		width: 34px;
		height: 34px;
	}

	#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-minus,
	#cfw-side-cart .cfw-quantity-stepper .cfw-quantity-stepper-btn-plus {
		min-width: 36px;
		min-height: 34px;
	}

	#cfw-side-cart .cfw-suggested-products-wrap {
		padding: 1em;
	}

	#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row {
		gap: 0.75em;
	}

	#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row > .col-2 {
		flex-basis: 4em;
		width: 4em;
		max-width: 4em;
	}

	#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product > .row > .col-2 img {
		width: 4em !important;
		height: 4em;
	}

	#cfw-side-cart .cfw-suggested-products-wrap .cfw-suggested-product-add-to-cart.cfw-secondary-btn {
		padding: 0.7em 1em !important;
	}

	#cfw-side-cart .ma-sc-trust {
		gap: 0.35em;
	}

	#cfw-side-cart .ma-sc-trust__item {
		font-size: 0.75em;
	}
}
