/* ------------------------------------------------------------------
 * MELIMEL HOME — Grille catalogue (carte produit unifiée)
 * Cadres et proportions inspirés de la maquette validée le 08/09/2026.
 * Portée : body.mm-grid-v1 uniquement (voir mmg_active() dans le PHP).
 * Classes à inscrire dans la safelist RUCSS de WP Rocket :
 *   mm-grid-v1 mmg-brand mmg-stock mmg-dot mmg-actions mmg-cart mmg-tip
 * ------------------------------------------------------------------ */

body.mm-grid-v1{
	--mmg-char:#2c2925; --mmg-clay:#c8a882; --mmg-warm:#fdfaf6;
	--mmg-accent:#8b6b4a; --mmg-mid:#6b5f52; --mmg-border:#e8e0d5; --mmg-imgbg:#ede8e1;
}

/* Marges latérales : la grille ne touche plus les bords de l'écran, les
   cadres ne semblent donc plus coupés (repère : 24 px chez Takoori). */
body.mm-grid-v1 .elementor-widget-woocommerce-products .woocommerce{
	padding-left:40px;padding-right:40px;
	box-sizing:border-box;
}
/* 21/09/2026 : au-dessus de 1280 px, toutes les listes du site partagent le
   meme retrait de 95 px, celui des pages categories. Source unique. */
@media(min-width:1281px){
	body.mm-grid-v1 .elementor-widget-woocommerce-products .woocommerce{
		padding-left:95px;padding-right:95px;max-width:none;margin-left:0;margin-right:0;
	}
}

/* Gouttières de la grille */
body.mm-grid-v1 ul.products.elementor-grid{
	--grid-column-gap:20px !important;
	--grid-row-gap:24px !important;
	gap:24px 20px !important;
}

/* ---------- La carte ---------- */
body.mm-grid-v1 ul.products li.product{
	position:relative;
	display:flex !important;
	/* Le widget Elementor impose l'orientation via --button-align-direction
	   (« row » sur les modèles d'archive) : on la neutralise. */
	--button-align-direction:column;
	flex-direction:column !important;
	background:var(--mmg-warm);
	border:1px solid var(--mmg-border);
	border-radius:14px;
	overflow:hidden;
	padding:0 !important;
	transition:box-shadow .35s ease, transform .35s ease, border-color .35s ease;
}
/* Survol — variante C : filet doré doublé + relief */
body.mm-grid-v1 ul.products li.product:hover{
	border-color:var(--mmg-clay);
	box-shadow:0 0 0 1px rgba(200,168,130,.55), 0 12px 30px rgba(44,41,37,.10);
	transform:translateY(-3px);
}

/* ---------- Vignette ---------- */
/* La vignette est strictement carrée : sans cela, l'interligne du bloc
   laissait apparaître une bande de fond sous l'image (13 px). */
body.mm-grid-v1 ul.products li.product .astra-shop-thumbnail-wrap{
	position:relative;
	aspect-ratio:1/1;
	background:var(--mmg-imgbg);
	overflow:hidden;
	margin:0 !important;padding:0 !important;
	font-size:0 !important;line-height:0 !important;
	border-radius:0 !important;
}
body.mm-grid-v1 ul.products li.product .astra-shop-thumbnail-wrap > a{display:block;line-height:0}
body.mm-grid-v1 ul.products li.product img{
	width:100% !important;
	aspect-ratio:1/1;
	height:auto !important;
	object-fit:cover;
	display:block;
	border-radius:0 !important;
	transition:transform .6s cubic-bezier(.2,.6,.2,1);
}
body.mm-grid-v1 ul.products li.product:hover img{transform:scale(1.035)}

/* Badge promo : conserve la charte posée le 21/08 (anthracite + clay), coins adoucis */
body.mm-grid-v1 ul.products li.product span.onsale{border-radius:6px !important}

/* Cœur « Ma sélection » : rond, pour s'accorder aux coins arrondis */
body.mm-grid-v1 ul.products li.product .mm-wl-loop{z-index:4}
body.mm-grid-v1 ul.products li.product .mm-wl-btn{border-radius:50% !important;padding:9px !important}

/* ---------- Bouton panier discret ---------- */
/* Le bouton est un frère du bloc vignette (hors du lien produit) : on le
   recale sur la zone image, qui est carrée et pleine largeur de carte. */
body.mm-grid-v1 .mmg-actions{
	position:absolute;top:0;left:0;width:100%;aspect-ratio:1/1;z-index:3;
	display:flex;align-items:flex-end;justify-content:flex-end;padding:12px;
	pointer-events:none;
	opacity:0;transform:translateY(8px);
	transition:opacity .28s ease, transform .28s ease;
}
body.mm-grid-v1 ul.products li.product:hover .mmg-actions{opacity:1;transform:none}
body.mm-grid-v1 .mmg-cart{
	position:relative;pointer-events:auto;display:grid;place-items:center;
	width:40px;height:40px;border-radius:50%;
	background:rgba(253,250,246,.94);border:1px solid var(--mmg-border);
	color:var(--mmg-char);box-shadow:0 3px 10px rgba(44,41,37,.10);
	transition:background .25s ease,color .25s ease,border-color .25s ease;
	padding:0 !important;margin:0 !important;font-size:0 !important;min-height:0 !important;
}
body.mm-grid-v1 .mmg-cart:hover{background:var(--mmg-char);color:var(--mmg-warm);border-color:var(--mmg-char)}
body.mm-grid-v1 .mmg-cart svg{width:17px;height:17px;display:block}
body.mm-grid-v1 .mmg-cart.loading{opacity:.55}
body.mm-grid-v1 .mmg-cart.added::after{content:none !important}
body.mm-grid-v1 .mmg-tip{
	position:absolute;bottom:calc(100% + 8px);right:0;
	background:var(--mmg-char);color:var(--mmg-warm);
	font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.11em;text-transform:uppercase;
	padding:5px 9px;border-radius:4px;white-space:nowrap;
	opacity:0;pointer-events:none;transition:opacity .2s ease;
}
body.mm-grid-v1 .mmg-cart:hover .mmg-tip{opacity:1}
/* Le lien « Voir le produit » ajouté par WooCommerce après un ajout : masqué */
body.mm-grid-v1 ul.products li.product .added_to_cart{display:none !important}

/* ---------- Bloc texte ---------- */
/* Astra rend marque / titre / prix comme frères : une grille les place sans
   wrapper supplémentaire — prix et disponibilité sur la même ligne, en bas. */
body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap{
	display:grid !important;
	grid-template-columns:1fr auto;
	grid-template-rows:minmax(21px,auto) auto 1fr; /* place réservée à la marque, même quand un produit n'en a pas */
	flex:1;
	padding:15px 16px 17px !important;
	text-align:left !important;
}
body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .mmg-brand{grid-column:1/-1;grid-row:1}
body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .ast-loop-product__link,
body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .woocommerce-loop-product__title{grid-column:1/-1;grid-row:2}
/* Les deux blocs sont étirés sur la même ligne de grille : leur filet
   supérieur est ainsi parfaitement aligné, quelles que soient leurs hauteurs. */
body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .mmg-foot{
	grid-column:1/-1;grid-row:3;align-self:end;
	display:flex;align-items:flex-end;justify-content:space-between;gap:10px;
	border-top:1px solid var(--mmg-border);padding-top:11px;margin-top:11px;
}
body.mm-grid-v1 ul.products li.product .mmg-foot > .price{margin:0 !important;padding:0 !important;border:0 !important}
body.mm-grid-v1 .mmg-brand{
	display:block;font-family:'Jost',sans-serif;font-size:9.5px;font-weight:300;
	letter-spacing:.15em;text-transform:uppercase;color:var(--mmg-clay);
	margin:0 0 7px;line-height:1.4;
}
body.mm-grid-v1 ul.products li.product .woocommerce-loop-product__title{
	font-family:'Cormorant Garamond',serif !important;
	font-size:18px !important;line-height:1.25 !important;font-weight:400 !important;
	color:var(--mmg-char) !important;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
	min-height:45px;margin:0 0 11px !important;padding:0 !important;
}
body.mm-grid-v1 ul.products li.product .ast-loop-product__link{text-decoration:none}

body.mm-grid-v1 ul.products li.product .price{
	display:flex !important;align-items:baseline;gap:8px;
	font-family:'Jost',sans-serif !important;font-size:14px !important;font-weight:300 !important;
	color:var(--mmg-char) !important;margin:0 !important;
}
body.mm-grid-v1 ul.products li.product .price del{color:#a89c8d !important;font-size:12.5px;opacity:1}
body.mm-grid-v1 ul.products li.product .price ins{text-decoration:none !important;color:var(--mmg-accent) !important;font-weight:400 !important;background:none}
body.mm-grid-v1 .mmg-stock{
	font-family:'Jost',sans-serif;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
	color:var(--mmg-mid);white-space:nowrap;display:flex;align-items:center;gap:5px;
}
body.mm-grid-v1 .mmg-stock.is-out{color:#a89c8d}
body.mm-grid-v1 .mmg-stock-short{display:none}
body.mm-grid-v1 .mmg-dot{width:5px;height:5px;border-radius:50%;background:#7f9a72;flex:none;display:inline-block}
body.mm-grid-v1 .mmg-dot.is-reappro{background:var(--mmg-clay)}
body.mm-grid-v1 .mmg-dot.is-out{background:#c2b8ab}
/* Mention « Rupture de stock » d'Astra : remplacée par notre ligne de disponibilité */
body.mm-grid-v1 ul.products li.product .ast-shop-product-out-of-stock{display:none !important}

/* ---------- Tablette / mobile ---------- */
@media(max-width:1024px){
	body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap{padding:13px 13px 15px !important}
	body.mm-grid-v1 .elementor-widget-woocommerce-products .woocommerce{
		padding-left:24px;padding-right:24px}
}
@media(max-width:767px){
	body.mm-grid-v1 ul.products.elementor-grid{gap:14px 10px !important;--grid-column-gap:10px !important;--grid-row-gap:14px !important}
	body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap{padding:11px 11px 13px !important}
	body.mm-grid-v1 ul.products li.product .woocommerce-loop-product__title{font-size:15px !important;min-height:38px;margin-bottom:8px !important}
	/* Prix sur une seule ligne : sinon les cartes en promo sont plus hautes
	   que les autres et l'alignement de la rangée est cassé. */
	body.mm-grid-v1 ul.products li.product .price{
		font-size:12px !important;white-space:nowrap;gap:6px}
	body.mm-grid-v1 ul.products li.product .price del{font-size:10.5px !important}
	body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .mmg-foot{
		flex-direction:column;align-items:flex-start;gap:4px}
	body.mm-grid-v1 .elementor-widget-woocommerce-products .woocommerce{
		padding-left:16px;padding-right:16px}
	body.mm-grid-v1 .mmg-stock{font-size:8.5px}
	/* Pas de survol sur mobile : le bouton panier quitte la photo et vient
	   se placer dans la bande de texte, à droite de l'état du stock. */
	body.mm-grid-v1 .mmg-actions{
		top:auto;left:auto;right:11px;bottom:13px;
		width:auto;height:auto;aspect-ratio:auto;padding:0;
		opacity:1;transform:none;
	}
	body.mm-grid-v1 .mmg-cart{width:34px;height:34px;box-shadow:none}
	/* Place réservée dans le pied pour que le texte ne passe jamais dessous */
	body.mm-grid-v1 ul.products li.product .astra-shop-summary-wrap > .mmg-foot{padding-right:40px}
	body.mm-grid-v1 .mmg-stock-long{display:none}
	body.mm-grid-v1 .mmg-stock-short{display:inline}
	body.mm-grid-v1 .mmg-tip{display:none}
	body.mm-grid-v1 ul.products li.product .mm-wl-btn{padding:7px !important}
}
