/* =========================================================
   Car Marketplace Filters - Styles
   ========================================================= */
:root{
	--cmf-navy:#12294d;
	--cmf-navy-light:#e8f0fb;
	--cmf-orange:#ef5b25;
	--cmf-orange-dark:#d94a17;
	--cmf-border:#e7e9ee;
	--cmf-text:#1c2430;
	--cmf-muted:#6b7280;
	--cmf-bg-card:#ffffff;
	--cmf-radius:14px;
	--cmf-shadow:0 2px 10px rgba(18,41,77,0.06);
}

/* ---------- Fiche technique produit ---------- */
.cmf-specs-box{
	background:var(--cmf-bg-card);
	border:1px solid var(--cmf-border);
	border-radius:var(--cmf-radius);
	box-shadow:var(--cmf-shadow);
	padding:20px 24px;
	margin:24px 0;
	max-width:640px;
}
.cmf-specs-title{
	font-size:16px; font-weight:700; color:var(--cmf-specs-title, var(--cmf-navy));
	margin:0 0 12px; display:flex; align-items:center; gap:8px;
}
.cmf-specs-title::before{ content:""; width:6px;height:18px; background:var(--cmf-specs-bar, var(--cmf-orange)); border-radius:3px; display:inline-block; }
.cmf-spec-row{ display:flex; justify-content:space-between; padding:11px 4px; border-bottom:1px solid var(--cmf-border); font-size:14.5px; }
.cmf-spec-row:last-child{ border-bottom:none; }
.cmf-spec-label{ color:var(--cmf-muted); }
.cmf-spec-value{ color:var(--cmf-text); font-weight:600; }

/* ---------- Filtre lateral sticky ---------- */
.cmf-sidebar-filter{
	position:sticky; top:20px;
	background:var(--cmf-v-bg, var(--cmf-bg-card)) !important;
	border:1px solid var(--cmf-v-border, var(--cmf-border)) !important;
	border-radius:var(--cmf-radius);
	box-shadow:var(--cmf-shadow);
	padding:20px;
	width:100%;
	max-width:320px;
}
.cmf-sidebar-filter-plain{ position:static; max-width:100%; }
.cmf-sidebar-header{
	display:flex; align-items:center; justify-content:space-between;
	font-weight:700; font-size:16px; color:var(--cmf-v-title, var(--cmf-text));
	padding-bottom:14px; border-bottom:1px solid var(--cmf-border); margin-bottom:14px;
}
.cmf-reset-btn{
	width:26px;height:26px; display:flex;align-items:center;justify-content:center;
	background:var(--cmf-reset-bg, #fdece4) !important; color:var(--cmf-reset-icon, var(--cmf-orange)) !important;
	border-radius:10px !important; text-decoration:none; font-size:13px;
	transition:background .15s ease, color .15s ease;
}
.cmf-reset-btn:hover{
	background:var(--cmf-reset-bg-hover, var(--cmf-orange)) !important; color:var(--cmf-reset-icon-hover, #fff) !important;
}
.cmf-fields-wrap-sidebar .cmf-filter-group{ margin-bottom:16px; padding-top:14px; padding-bottom:14px; border-bottom:1px solid var(--cmf-border); }
.cmf-fields-wrap-sidebar .cmf-filter-group:last-of-type{ border-bottom:none; }
.cmf-fields-wrap-sidebar .cmf-submit-btn{ margin-top:4px; margin-bottom:16px; }
.cmf-filter-group label{ display:block; font-size:13px; font-weight:600; color:var(--cmf-v-title, var(--cmf-navy)); margin-bottom:8px; }

.cmf-filter-group select, .cmf-filter-group input[type="number"], .cmf-filter-group input[type="text"]{
	width:100%; padding:9px 10px; border:1px solid var(--cmf-v-field-border, var(--cmf-border)) !important; border-radius:10px;
	font-size:13.5px; color:var(--cmf-text); background:var(--cmf-v-field-bg, #fafbfc) !important; box-sizing:border-box;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.cmf-hfield select, .cmf-hfield input[type="number"], .cmf-hfield input[type="text"]{
	width:100%; padding:9px 10px; border:1px solid var(--cmf-h-field-border, #dfe6f0) !important; border-radius:10px;
	font-size:13.5px; color:var(--cmf-text); background:var(--cmf-h-field-bg, #fff) !important; box-sizing:border-box;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.cmf-filter-group select:focus, .cmf-filter-group input:focus,
.cmf-hfield select:focus, .cmf-hfield input:focus{ outline:none; }

/* Focus/click feedback (Reglages > 3 > "Champ - bordure (focus/clic)") - the
   field's border switches to a configurable colour the moment you click into
   it or start typing, with a soft glow, then eases back on blur. Applies to
   every plain select/number/text field in both filters. */
.cmf-filter-group select:focus, .cmf-filter-group input[type="number"]:focus, .cmf-filter-group input[type="text"]:focus{
	border-color:var(--cmf-v-field-border-focus, var(--cmf-orange)) !important;
	box-shadow:0 0 0 3px rgba(239,91,37,.18);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--cmf-v-field-border-focus, var(--cmf-orange)) 18%, transparent);
}
.cmf-hfield select:focus, .cmf-hfield input[type="number"]:focus, .cmf-hfield input[type="text"]:focus{
	border-color:var(--cmf-h-field-border-focus, var(--cmf-orange)) !important;
	box-shadow:0 0 0 3px rgba(239,91,37,.18);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--cmf-h-field-border-focus, var(--cmf-orange)) 18%, transparent);
}

/* "Selected" state (Reglages > 3 > "Champ - couleur si valeur choisie") -
   filters.js adds .cmf-field-active to a field's wrapper for as long as it
   holds a non-empty value (a category picked, text typed, a min/max range
   filled...), independently of focus - so you can see at a glance which
   filters are currently active, even after clicking away. Covers plain
   selects/inputs, the min-max range pair, and the search box. */
.cmf-filter-group.cmf-field-active select,
.cmf-filter-group.cmf-field-active input[type="number"],
.cmf-filter-group.cmf-field-active input[type="text"],
.cmf-filter-group.cmf-field-active .cmf-search-wrap{
	border-color:var(--cmf-v-field-selected, var(--cmf-orange)) !important;
}
.cmf-hfield.cmf-field-active select,
.cmf-hfield.cmf-field-active input[type="number"],
.cmf-hfield.cmf-field-active input[type="text"],
.cmf-hfield.cmf-field-active .cmf-search-wrap{
	border-color:var(--cmf-h-field-selected, var(--cmf-orange)) !important;
}
.cmf-filter-group.cmf-field-active > label{ color:var(--cmf-v-field-selected, var(--cmf-orange)); }
.cmf-hfield.cmf-field-active > label{ color:var(--cmf-h-field-selected, var(--cmf-orange)); }

.cmf-range{ display:flex; align-items:center; gap:8px; }
.cmf-range span{ color:var(--cmf-muted); }

.cmf-submit-btn{
	width:100%; border:none;
	padding:13px 16px 15px; border-radius:10px !important; font-weight:700; font-size:14px;
	letter-spacing:.3px; cursor:pointer; transition:background .15s ease, transform .05s ease, box-shadow .15s ease;
	margin-top:4px;
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	box-shadow:0 2px 8px rgba(18,41,77,.1);
}
.cmf-submit-btn svg{ flex:none; }
/* Vertical (sidebar) submit button colors - Reglages > 3 */
.cmf-filter-form-sidebar .cmf-submit-btn{ background:var(--cmf-v-btn-bg, var(--cmf-orange)) !important; color:var(--cmf-v-btn-text, #fff) !important; }
.cmf-filter-form-sidebar .cmf-submit-btn:hover{ background:var(--cmf-v-btn-bg-hover, var(--cmf-orange-dark)) !important; color:var(--cmf-v-btn-text-hover, #fff) !important; }
.cmf-submit-btn:active{ transform:scale(0.98); }

/* ---------- Filtre horizontal ---------- */
.cmf-horizontal-filter{
	background:var(--cmf-h-bg, var(--cmf-navy-light)) !important;
	border:1px solid var(--cmf-h-border, transparent) !important;
	border-radius:20px; padding:16px 20px;
	max-width:1100px; margin:0 auto 24px;
}
.cmf-fields-wrap-horizontal{ display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.cmf-hfield{ flex:1; min-width:150px; }
.cmf-hfield label{ display:block; font-size:12px; font-weight:600; color:var(--cmf-h-title, var(--cmf-navy)); margin-bottom:6px; }
.cmf-hfield select, .cmf-hfield input{ border-radius:999px; padding:11px 14px; }
.cmf-field-search{ flex:2; min-width:220px; }
.cmf-search-wrap{
	position:relative; display:flex; align-items:stretch; border-radius:999px; overflow:hidden;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.cmf-search-wrap input{ flex:1; border:none !important; background:transparent !important; padding:11px 16px; font-size:14px; outline:none; min-width:0; }

/*
 * A real, colored search button with a compact icon inside (not a wide
 * text pill) - flush against the input, clipped cleanly to the field's
 * rounded/pill shape by the overflow:hidden on .cmf-search-wrap above, so
 * its own border-radius doesn't need to be hand-matched. Reuses the SAME
 * colours already set for "FILTRER" / "La recherche" (Reglages > 3), so it
 * matches the rest of the filter automatically.
 */
.cmf-search-submit,
.cmf-search-submit:hover,
.cmf-search-submit:focus,
.cmf-search-submit:active,
.cmf-search-submit:visited{
	-webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important;
	box-sizing:border-box !important;
	display:inline-flex !important; align-items:center !important; justify-content:center !important;
	width:44px !important; flex:none !important; align-self:stretch !important;
	margin:0 !important; padding:0 !important; border:0 !important; outline:0 !important;
	border-radius:0 !important;
	box-shadow:none !important; text-shadow:none !important;
	font:inherit !important; line-height:normal !important; text-indent:0 !important;
	cursor:pointer !important;
}
.cmf-search-submit::-moz-focus-inner{ border:0 !important; padding:0 !important; }
.cmf-search-submit svg{ display:block; flex:none; pointer-events:none; overflow:visible; }
.cmf-search-submit{ background:var(--cmf-search-btn-bg, var(--cmf-orange)) !important; color:var(--cmf-search-btn-icon, #fff) !important; }
.cmf-search-submit:hover{ background:var(--cmf-search-btn-bg-hover, var(--cmf-orange-dark)) !important; color:var(--cmf-search-btn-icon-hover, #fff) !important; }
.cmf-fields-wrap-sidebar .cmf-search-wrap{ background:var(--cmf-v-field-bg, #fafbfc) !important; border:1px solid var(--cmf-v-field-border, var(--cmf-border)) !important; border-radius:10px; }
.cmf-fields-wrap-horizontal .cmf-search-wrap{ background:var(--cmf-h-field-bg, #fff) !important; border:1px solid var(--cmf-h-field-border, #dfe6f0) !important; }
.cmf-fields-wrap-horizontal .cmf-range{ background:var(--cmf-h-field-bg, #fff) !important; border-radius:999px; border:1px solid var(--cmf-h-field-border, #dfe6f0) !important; padding:2px 10px; }
.cmf-fields-wrap-horizontal .cmf-range input{ border:none !important; background:transparent !important; padding:9px 4px; }

/*
 * Fixes the "double border" bug for good: the search <input> now carries its
 * own dedicated .cmf-search-input class (in addition to type="text") and an
 * inline border:none!important as a second safety net directly on the
 * element - inline styles win over ANY stylesheet rule that isn't also
 * !important, and this one IS !important, so nothing (a theme's generic
 * input[type=text]{border:...} reset included, no matter how it's written)
 * can put a border back on the input itself. Only the single outer
 * .cmf-search-wrap pill (the one that also wraps the button) ever shows a
 * border, in both the vertical and horizontal filter.
 */
.cmf-search-wrap input.cmf-search-input[type="text"]{
	border:0 !important;
	box-shadow:none !important;
	background:transparent !important;
}

/* Focus/click feedback for the search field (Reglages > 3 > "Champ -
   bordure (focus/clic)"): the moment you click into it or start typing, the
   single outer border (the one wrapping both the input AND the button)
   switches to the configurable focus colour with a soft glow - a clear but
   calm "active" cue instead of a second border appearing. Uses
   :focus-within so it reacts to the input inside it. */
.cmf-fields-wrap-sidebar .cmf-search-wrap:focus-within{
	border-color:var(--cmf-v-field-border-focus, var(--cmf-orange)) !important;
	box-shadow:0 0 0 3px rgba(239,91,37,.18);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--cmf-v-field-border-focus, var(--cmf-orange)) 18%, transparent);
}
.cmf-fields-wrap-horizontal .cmf-search-wrap:focus-within{
	border-color:var(--cmf-h-field-border-focus, var(--cmf-orange)) !important;
	box-shadow:0 0 0 3px rgba(239,91,37,.18);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--cmf-h-field-border-focus, var(--cmf-orange)) 18%, transparent);
}



.cmf-submit-btn-round{ width:auto; white-space:nowrap; padding:12px 28px; align-self:flex-end; margin-top:0; }
/* Horizontal submit button colors - Reglages > 3. Combined into one rule per
   state (instead of splitting background/color across two separate
   selectors) so there's no specificity gap between them. */
.cmf-filter-form-horizontal .cmf-submit-btn{ background:var(--cmf-h-btn-bg, var(--cmf-navy)) !important; color:var(--cmf-h-btn-text, #fff) !important; }
.cmf-filter-form-horizontal .cmf-submit-btn:hover{ background:var(--cmf-h-btn-bg-hover, #0b1c38) !important; color:var(--cmf-h-btn-text-hover, #fff) !important; }

/* ---------- Page combinee : filtre + resultats [car_marketplace] ---------- */
.cmf-marketplace{ display:flex; gap:28px; align-items:flex-start; max-width:1300px; margin:0 auto; }
.cmf-marketplace-sidebar{ flex:0 0 300px; }
.cmf-marketplace-main{ flex:1; min-width:0; }
.cmf-results-count{ font-size:14px; color:var(--cmf-muted); margin-bottom:14px; }
.cmf-products-grid.products{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; list-style:none; margin:0; padding:0; }
.cmf-products-grid.products li.product{ list-style:none; }
#cmf-product-grid.cmf-loading{ opacity:.45; pointer-events:none; transition:opacity .15s ease; }
.cmf-no-results{ padding:40px; text-align:center; color:var(--cmf-muted); background:#fafbfc; border-radius:var(--cmf-radius); }
.cmf-pagination{ display:flex; gap:6px; justify-content:center; margin-top:28px; }
.cmf-pagination a, .cmf-pagination span{
	display:inline-flex; align-items:center; justify-content:center;
	min-width:36px; height:36px; border-radius:8px; border:1px solid var(--cmf-border);
	color:var(--cmf-text); text-decoration:none; font-size:13.5px;
}
.cmf-pagination .current{ background:var(--cmf-navy); color:#fff; border-color:var(--cmf-navy); }
.cmf-pagination a:hover{ border-color:var(--cmf-orange); color:var(--cmf-orange); }

/* ---------- Grille des marques (logos) ---------- */
.cmf-brands-wrap{
	height:auto !important; min-height:0 !important; flex:0 0 auto !important; align-self:start !important;
}
.cmf-brands-grid{
	display:grid;
	grid-template-columns:repeat(var(--cmf-brand-cols-desk,6),1fr);
	gap:16px;
	align-content:start;
	height:auto;
}
@media (max-width:768px){
	.cmf-brands-grid{ grid-template-columns:repeat(var(--cmf-brand-cols-mob,3),1fr); }
}
.cmf-brand-item{
	display:flex; flex-direction:column; align-items:center; gap:8px;
	background:var(--cmf-bg-card); border:1px solid var(--cmf-border); border-radius:12px;
	padding:16px 10px; text-decoration:none; transition:box-shadow .15s ease, transform .1s ease;
}
.cmf-brand-item:hover{ box-shadow:var(--cmf-shadow); transform:translateY(-2px); }
.cmf-brand-logo-box{
	display:flex; align-items:center; justify-content:center;
	width:100%; height:60px; overflow:hidden;
}
.cmf-brand-logo{
	max-width:100% !important; max-height:100% !important;
	width:auto !important; height:auto !important;
	object-fit:contain !important;
}
.cmf-brand-name-only{ font-weight:700; color:var(--cmf-brands-title, var(--cmf-navy)); font-size:14px; text-align:center; }
.cmf-brand-label{ font-size:12.5px; color:var(--cmf-brands-title, var(--cmf-muted)); text-align:center; }

/* ---------- [car_brands] "Charger plus" (Reglages > 1) ---------- */
.cmf-brand-item.cmf-brand-hidden{ display:none; }
.cmf-brands-loadmore-wrap{ display:flex; justify-content:center; margin-top:20px; }
.cmf-brands-loadmore-btn{
	background:var(--cmf-loadmore-bg, var(--cmf-navy)) !important; color:var(--cmf-loadmore-text, #fff) !important;
	border:none; border-radius:10px !important; padding:11px 28px; font-weight:700; font-size:14px;
	cursor:pointer; transition:background .15s ease, color .15s ease;
}
.cmf-brands-loadmore-btn:hover{
	background:var(--cmf-loadmore-bg-hover, #0b1c38) !important; color:var(--cmf-loadmore-text-hover, #fff) !important;
}

/* ---------- Grille des marques : version carrousel ([car_brands_carousel]) ---------- */
.cmf-brands-carousel{
	display:grid;
	grid-auto-flow:column;
	grid-template-rows:repeat(var(--cmf-carousel-rows-desk,2), 1fr);
	grid-auto-columns:calc((100% - (var(--cmf-carousel-cols-desk,6) - 1) * 16px) / var(--cmf-carousel-cols-desk,6));
	gap:16px;
	overflow-x:auto;
	scroll-snap-type:x proximity;
	padding:4px 2px 12px;
	-webkit-overflow-scrolling:touch;
	cursor:grab;
	user-select:none;
}
.cmf-brands-carousel.cmf-dragging{
	cursor:grabbing;
	scroll-snap-type:none;
	scroll-behavior:auto;
}
.cmf-brands-carousel .cmf-brand-item{ scroll-snap-align:start; }
@media (max-width:768px){
	.cmf-brands-carousel{
		grid-template-rows:repeat(var(--cmf-carousel-rows-mob,2), 1fr);
		grid-auto-columns:calc((100% - (var(--cmf-carousel-cols-mob,3) - 1) * 12px) / var(--cmf-carousel-cols-mob,3));
		gap:12px;
		cursor:auto;
	}
}
.cmf-brands-carousel::-webkit-scrollbar{ height:6px; }
.cmf-brands-carousel::-webkit-scrollbar-thumb{ background:var(--cmf-border); border-radius:999px; }

/* ---------- Admin : liste triable des filtres ---------- */
.cmf-sortable-list{ max-width:420px; background:#fff; border:1px solid #dcdcde; border-radius:6px; padding:6px; margin:0 0 20px; }
.cmf-sortable-list li{
	display:flex; align-items:center; gap:10px; padding:9px 10px;
	border-bottom:1px solid #f0f0f1; background:#fff; cursor:default;
}
.cmf-sortable-list li:last-child{ border-bottom:none; }
.cmf-drag-handle{ cursor:grab; color:#a7aaad; }
.cmf-sortable-list li.ui-sortable-helper{ box-shadow:0 2px 8px rgba(0,0,0,.15); background:#fff; }

body.cmf-sidebar-noscroll{ overflow:hidden; }

/* ---------- Filtre lateral mobile (panneau glissant) ---------- */
.cmf-mobile-filter-toggle{
	display:none !important; align-items:center; gap:8px;
	background:var(--cmf-toggle-bg, var(--cmf-navy)) !important; color:var(--cmf-toggle-text, #fff) !important;
	border:none; border-radius:10px !important;
	padding:11px 20px; font-weight:700; font-size:14px; cursor:pointer; margin-bottom:14px;
	transition:background .15s ease, color .15s ease;
}
.cmf-mobile-filter-toggle:hover{
	background:var(--cmf-toggle-bg-hover, #0b1c38) !important; color:var(--cmf-toggle-text-hover, #fff) !important;
}
.cmf-mobile-filter-toggle-icon{
	font-size:15px; line-height:1; color:var(--cmf-toggle-icon, inherit) !important;
	transition:color .15s ease;
}
.cmf-mobile-filter-toggle:hover .cmf-mobile-filter-toggle-icon{ color:var(--cmf-toggle-icon-hover, inherit) !important; }
body.cmf-toggle-full-width .cmf-marketplace-sidebar .cmf-mobile-filter-toggle{ width:100%; justify-content:center; }

.cmf-sidebar-backdrop{ display:none; }
.cmf-sidebar-close-btn{ display:none !important; }

@media (max-width:1024px){
	.cmf-mobile-filter-toggle{ display:inline-flex !important; }
	body.cmf-toggle-full-width .cmf-mobile-filter-toggle{ width:100%; justify-content:center; }

	.cmf-sidebar-backdrop{
		display:block; position:fixed; inset:0; background:rgba(12,20,35,.55);
		opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:9998;
	}
	.cmf-sidebar-filter-wrap.cmf-sidebar-open .cmf-sidebar-backdrop{ opacity:1; pointer-events:auto; }

	.cmf-sidebar-filter-wrap .cmf-sidebar-filter{
		position:fixed; top:0; left:0; height:100vh; width:80%; max-width:80%;
		border-radius:0; margin:0; overflow-y:auto; box-sizing:border-box;
		transform:translateX(-100%); transition:transform .3s ease; z-index:9999;
	}
	.cmf-sidebar-filter-wrap.cmf-sidebar-open .cmf-sidebar-filter{ transform:translateX(0); box-shadow:2px 0 24px rgba(0,0,0,.25); }

	.cmf-sidebar-close-btn{
		display:flex !important; align-items:center; justify-content:center; gap:4px;
		position:sticky; top:0; margin-left:auto; margin-bottom:10px; z-index:2;
		min-width:28px; height:28px; padding:0 8px; border-radius:8px !important;
		background:var(--cmf-close-bg, #fff) !important; color:var(--cmf-close-text, var(--cmf-text)) !important;
		border:1px solid var(--cmf-border);
		box-shadow:0 1px 4px rgba(18,41,77,.1);
		font-size:12px; font-weight:600; cursor:pointer; transition:background .15s ease, color .15s ease, transform .1s ease;
	}
	.cmf-sidebar-close-btn.cmf-has-text{ width:auto; }
	.cmf-sidebar-close-btn svg{
		width:13px !important; height:13px !important; display:block !important;
		stroke:var(--cmf-close-icon, currentColor) !important; fill:none !important; flex:none;
		transition:stroke .15s ease;
	}
	.cmf-sidebar-close-btn:hover{
		background:var(--cmf-close-bg-hover, var(--cmf-orange)) !important;
		color:var(--cmf-close-text-hover, #fff) !important;
		border-color:var(--cmf-close-bg-hover, var(--cmf-orange));
	}
	.cmf-sidebar-close-btn:hover svg{ stroke:var(--cmf-close-icon-hover, #fff) !important; }
	.cmf-sidebar-close-btn:active{ transform:scale(0.92); }
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
	.cmf-marketplace{ flex-direction:column; }
	.cmf-marketplace-sidebar{ flex:1 1 auto; width:100%; }
	.cmf-sidebar-filter{ position:static; max-width:100%; }
	.cmf-products-grid.products{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
	.cmf-fields-wrap-horizontal{ flex-direction:column; align-items:stretch; }
	.cmf-hfield{ width:100%; }
	.cmf-submit-btn-round{ width:100%; }
}
@media (max-width:600px){
	.cmf-products-grid.products{ grid-template-columns:1fr; }
}
/* ---------- Enforce User Grid Variables ---------- */
.cmf-products-wrapper ul.products {
	display: grid !important;
	grid-template-columns: repeat(var(--cmf-cols-desk, 4), 1fr) !important;
	gap: 20px;
}
.cmf-products-wrapper ul.products::before,
.cmf-products-wrapper ul.products::after {
    display: none !important; /* Removes default theme floats */
}

@media (max-width: 768px) {
	.cmf-products-wrapper ul.products {
		grid-template-columns: repeat(var(--cmf-cols-mob, 1), 1fr) !important;
	}
}

/* ---------- Colonnes appliquees globalement (Reglages > 2, case a cocher) ---------- */
body.cmf-global-grid ul.products {
	display: grid !important;
	grid-template-columns: repeat(var(--cmf-cols-desk, 4), 1fr) !important;
	gap: 20px;
}
body.cmf-global-grid ul.products::before,
body.cmf-global-grid ul.products::after {
	display: none !important;
}
@media (max-width: 768px) {
	body.cmf-global-grid ul.products {
		grid-template-columns: repeat(var(--cmf-cols-mob, 1), 1fr) !important;
	}
}