/* Filtre de la boutique (modèle Elementor « DP Product list », facettes FacetWP) — 29/10/2026 */

/* Colonne des filtres : rubriques repliables */
.dp-filtres { gap: 0 !important; }
.dp-filtres .facetwp-facet { margin-bottom: 0; }
.dp-filtres .dp-filtre-titre { cursor: pointer; margin: 0 !important; padding: 16px 0 8px; border-bottom: 1px solid #DDE7EA; }
.dp-filtres .dp-filtre-titre .elementor-heading-title {
	display: flex; align-items: center; justify-content: space-between;
	font-size: 16px !important; text-transform: none !important; letter-spacing: 0 !important;
}
.dp-filtres .dp-filtre-titre .elementor-heading-title::after {
	content: ""; width: 7px; height: 7px; margin-right: 4px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-135deg);
}
.dp-filtres .dp-filtre-titre.dp-replie .elementor-heading-title::after { transform: rotate(45deg); }
.dp-filtres .dp-filtre-titre.dp-replie + .elementor-widget-shortcode { display: none; }
.dp-filtres .dp-filtre-titre:focus-visible { outline: 2px solid #00AEEF; outline-offset: 2px; }
.dp-filtres .elementor-widget-shortcode { padding: 10px 0 4px; }
.dp-filtres .facetwp-checkbox { margin-bottom: 7px; font-size: 14px; color: #0B1D51; }
.dp-filtres .facetwp-checkbox.checked { font-weight: 600; }
.dp-filtres .facetwp-counter { color: #6D758C; font-weight: 400; }
.dp-filtres .facetwp-toggle { color: #00AEEF; font-size: 14px; cursor: pointer; }
.dp-recherche-marque {
	width: 100%; margin: 10px 0 0; padding: 7px 10px; font-size: 14px;
	border: 1px solid #DDE7EA; border-radius: 5px; background: #fff;
}
.dp-recherche-marque + .facetwp-facet { margin-top: 10px; }

/* Fil d'Ariane (toutes les pages WooCommerce) */
.woocommerce-breadcrumb { font-size: 14px !important; line-height: 1.5; color: #0B1D51 !important; font-weight: 500; }
.woocommerce-breadcrumb a { color: #6D758C !important; font-weight: 400; text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: #00AEEF !important; text-decoration: underline; }
.woocommerce-breadcrumb .dp-ariane-sep { margin: 0 8px; color: #B4B9C6; }

/* Au-dessus des produits : titre et nombre, filtres choisis, tri */
.dp-archive-title { margin-bottom: 0 !important; }
.dp-nb-produits {
	margin-left: 14px; font-size: 16px; font-weight: 400; letter-spacing: 0;
	text-transform: none; color: #6D758C; vertical-align: middle; white-space: nowrap;
}
.dp-barre { align-items: center; margin-left: auto; }
.dp-selections { display: none !important; }
.dp-a-filtres .dp-selections { display: block !important; }
.dp-selections .elementor-shortcode { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dp-selections .facetwp-selections ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.dp-selections .facetwp-selections li { display: contents; }
.dp-selections .facetwp-selection-label,
.dp-selections li[data-facet="sort_"] { display: none; }
.dp-selections .facetwp-selection-value {
	padding: 5px 10px; border-radius: 5px; font-size: 14px; cursor: pointer;
	background: #E6F6FD; color: #0B1D51;
}
.dp-selections .facetwp-selection-value:hover { background: #CCEEFB; }
/* Croix de FacetWP à 10 px du bord, comme le texte à gauche, et 6 px après le texte (30/10/2026) */
.dp-selections .facetwp-selections .facetwp-selection-value { padding: 5px 28px 5px 10px; background-position: right 10px center; }
.dp-tout-effacer { display: none; margin-left: 4px; font-size: 14px; color: #6D758C; text-decoration: underline; }
.dp-a-filtres .dp-tout-effacer { display: inline; }
.dp-barre-tri .elementor-shortcode { display: flex; align-items: center; gap: 10px; }
.dp-tri { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: #6D758C; }
.dp-tri .facetwp-facet { margin: 0 !important; }
.dp-tri select { padding: 6px 28px 6px 10px; font-size: 14px; color: #0B1D51; border: 1px solid #DDE7EA; border-radius: 5px; background-color: #fff; }
.dp-bouton-filtrer, .dp-volet-entete, .dp-volet-pied { display: none; }

/* Cartes produits : marque, majuscule en début de nom, emplacement « Photo à venir » */
ul.products li.product .dp-carte-marque {
	display: block; margin: 10px 0 2px; font-size: 12px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase; color: #0B1D51;
}
ul.products li.product .woocommerce-loop-product__title::first-letter,
.elementor-widget-loop-carousel .elementor-widget-woocommerce-product-title h4::first-letter { text-transform: uppercase; }
/* Noms écrits selon la charte depuis le 30/10/2026 : plus de mise en minuscules par le style global d'Elementor
   (les noms Sage restés en majuscules sont adoucis par noms-produits.php) */
ul.products li.product .woocommerce-loop-product__title,
.elementor-widget-woocommerce-product-title h4 { text-transform: none !important; }
ul.products li.product a.woocommerce-LoopProduct-link:has(img.woocommerce-placeholder) { position: relative; }
ul.products li.product img.woocommerce-placeholder { opacity: .15; filter: grayscale(1); }
ul.products li.product a.woocommerce-LoopProduct-link:has(img.woocommerce-placeholder)::before {
	content: "Photo à venir"; position: absolute; top: 0; left: 0; right: 0; height: 220px; z-index: 1;
	display: flex; align-items: center; justify-content: center; font-size: 14px; color: #6D758C;
}

/* Grille des produits : autant de colonnes que la largeur le permet, cartes d'au moins 200 px (6 par ligne sur 1 900 px, 4 sur 1 280 px) */
@media (min-width: 1025px) {
	.product-list ul.products.elementor-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important; }
}
/* Colonne des produits : toute la largeur laissée par la colonne des filtres (280 px, 250 px sur tablette) */
@media (min-width: 768px) {
	.dp-colonne-produits { --width: auto !important; flex: 1 1 0 !important; min-width: 0; }
	.dp-barre { --width: auto !important; flex: 0 0 auto !important; }   /* à droite du titre, sur la même ligne */
}

/* Bande « Produits du moment » sous la liste : cartes compactes (le modèle de carte répartissait la hauteur entre image, nom et prix) */
.dp-bande-moment .swiper-slide .e-con { justify-content: flex-start !important; gap: 6px !important; padding: 8px !important; }
/* Bloc auteur et date du modèle de carte, caché sous la carte mais qui imposait 371 px de haut à toutes les cartes */
.dp-bande-moment .swiper-slide .e-con:has(> .e-con-inner > .elementor-widget-post-info),
.dp-bande-moment .swiper-slide .e-con:has(> .elementor-widget-post-info) { display: none !important; }
.dp-bande-moment .elementor-widget-theme-post-featured-image img { width: 100% !important; height: 120px !important; object-fit: contain; }
.dp-bande-moment .elementor-widget-woocommerce-product-title h4,
.dp-bande-moment .elementor-widget-woocommerce-product-title .product_title { font-size: 14px !important; line-height: 1.3 !important; margin: 0 !important; }
.dp-bande-moment .elementor-widget-woocommerce-product-title h4::first-letter { text-transform: uppercase; }
/* Moins de 4 produits du moment (petite catégorie) : bande masquée, elle ne ferait que répéter la liste (30/10/2026) */
.dp-bande-moment:not(:has(.swiper-slide:nth-child(4))) { display: none !important; }
.dp-bande-moment .elementor-widget-woocommerce-product-price p { margin: 0 !important; font-size: 14px !important; line-height: 1.4 !important; }
.dp-bande-moment .elementor-widget-woocommerce-product-price .price { font-size: 15px !important; }
.dp-bande-moment .elementor-widget-heading { margin: 0 !important; }

/* Téléphone : 2 produits par ligne, barre Filtrer / Trier qui reste visible, filtres en volet plein écran */
@media (max-width: 767px) {
	.product-list ul.products.elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 10px !important; row-gap: 14px !important; }
	.product-list ul.products li.product a img { height: 140px !important; }
	ul.products li.product a.woocommerce-LoopProduct-link:has(img.woocommerce-placeholder)::before { height: 140px; font-size: 13px; }
	.product-list ul.products li.product .woocommerce-loop-product__title { font-size: 14px !important; line-height: 18px !important; min-height: 54px !important; }
	.product-list ul.products li.product .price { font-size: 15px !important; }
	.product-list ul.products li.product .button { padding: 8px 10px !important; font-size: 13px !important; }
	.dp-colonne-filtres { display: none !important; }
	body.dp-volet-ouvert { overflow: hidden; }
	body.dp-volet-ouvert .dp-colonne-filtres {
		display: block !important; position: fixed !important; inset: 0; z-index: 100000;
		width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 16px !important;
		overflow-y: auto; background: #fff !important;
	}
	.dp-volet-entete {
		display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 2;
		padding: 14px 0; border-bottom: 1px solid #DDE7EA; background: #fff;
		font-size: 18px; font-weight: 700; color: #0B1D51;
	}
	.dp-volet-fermer { padding: 0 4px; border: 0; background: none; font-size: 30px; line-height: 1; color: #0B1D51; }
	.dp-colonne-filtres > .e-con, .dp-colonne-filtres .e-con { background: transparent !important; padding-left: 0 !important; padding-right: 0 !important; }
	.dp-volet-pied { display: block; position: sticky; bottom: 0; padding: 12px 0 16px; border-top: 1px solid #DDE7EA; background: #fff; }
	.dp-volet-voir {
		width: 100%; padding: 14px; border: 0; border-radius: 5px;
		background: #0B1D51; color: #fff; font-size: 16px; font-weight: 600;
	}
	.dp-barre { --width: 100% !important; margin-left: 0; position: sticky; top: 0; z-index: 50; padding: 8px 0 !important; background: #fff; }
	.dp-barre-tri { width: 100%; }
	.dp-barre-tri .elementor-shortcode { justify-content: space-between; }
	.dp-barre .elementor-widget-text-editor, .dp-barre .elementor-widget-icon, .dp-tri-libelle { display: none; }
	.dp-bouton-filtrer {
		display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px;
		border: 1px solid #0B1D51; border-radius: 5px; background: #fff; color: #0B1D51; font-size: 15px; font-weight: 600;
	}
	.dp-bouton-filtrer .dp-compte { padding: 0 7px; border-radius: 10px; background: #0B1D51; color: #fff; font-size: 12px; }
	.dp-nb-produits { display: block; margin: 4px 0 0; }
}
