/* Filtres (Phase 3) : habillage de Woo Product Filter (plugin conservé), disposition latérale et panneau mobile. Tailles en px. */

/* ---------- Disposition bureau : colonne de filtres à gauche, produits à droite ---------- */
@media (min-width:901px){
  body.pv-catalog .elementor:has(.wpfMainWrapper){display:grid;grid-template-columns:300px minmax(0,1fr);column-gap:32px;align-items:start}
  body.pv-catalog .elementor:has(.wpfMainWrapper)>.e-con,body.pv-catalog .elementor:has(.wpfMainWrapper)>.elementor-element{grid-column:1/-1}
  body.pv-catalog .elementor:has(.wpfMainWrapper)>.e-con:has(.wpfMainWrapper){grid-column:1;grid-row:2/span 30;position:sticky;top:190px;max-height:calc(100vh - 210px);overflow-y:auto;overscroll-behavior:contain;padding:0!important;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
  body.pv-catalog .elementor:has(.wpfMainWrapper)>.e-con:has(ul.products){grid-column:2;grid-row:2}
  body.pv-catalog .elementor:has(.wpfMainWrapper) ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:901px) and (max-width:1100px){
  body.pv-catalog .elementor:has(.wpfMainWrapper){grid-template-columns:260px minmax(0,1fr);column-gap:24px}
  body.pv-catalog .elementor:has(.wpfMainWrapper) ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Blocs de filtre ---------- */
.wpfMainWrapper{font-family:var(--pv-font-body);color:var(--pv-text);width:100%}
.wpfMainWrapper .wpfFilterWrapper{border-top:1px solid var(--pv-line);padding:0;margin:0}
.wpfMainWrapper .wpfFilterWrapper:first-child{border-top:0}
.wpfMainWrapper .wpfFilterTitle{margin:0;padding:0}
.wpfMainWrapper .wpfFilterTitle .wfpTitle{display:flex;justify-content:space-between;align-items:center;min-height:52px;font:600 16px/1.3 var(--pv-font-body)!important;color:var(--pv-text)!important;letter-spacing:0;text-transform:none;cursor:pointer;user-select:none}
.wpfMainWrapper .wpfFilterTitle .wfpTitle::after{content:"+";font-size:22px;line-height:1;color:var(--pv-muted);font-weight:400}
.wpfMainWrapper .wpfFilterWrapper:not(.pv-collapsed) .wpfFilterTitle .wfpTitle::after{content:"\2212"}
.wpfMainWrapper .wpfFilterWrapper.pv-collapsed .wpfFilterContent{display:none!important}
.wpfMainWrapper .wpfFilterContent{padding:0 0 14px}
.wpfMainWrapper .wpfFilterContent ul{list-style:none;margin:0;padding:0}
.wpfMainWrapper .wpfFilterVerScroll{max-height:264px;overflow-y:auto;padding-right:4px}
.wpfMainWrapper li{margin:0;padding:0;border:0;list-style:none}
.wpfMainWrapper li.pv-zero{display:none}
.wpfMainWrapper .wpfLiLabel{display:flex;align-items:center;gap:12px;min-height:44px;margin:0;padding:0;cursor:pointer;width:100%}
.wpfMainWrapper .wpfCheckbox{position:relative;display:inline-flex;flex:none;width:22px;height:22px}
.wpfMainWrapper .wpfCheckbox input[type=checkbox]{-webkit-appearance:none;appearance:none;opacity:1!important;position:static!important;display:grid;place-content:center;width:22px;height:22px;min-height:0;margin:0;border:1.5px solid var(--pv-field);border-radius:4px;background:var(--pv-surface);cursor:pointer}
.wpfMainWrapper .wpfCheckbox input[type=checkbox]:checked{background:var(--pv-accent);border-color:var(--pv-accent)}
.wpfMainWrapper .wpfCheckbox input[type=checkbox]:checked::after{content:"";width:10px;height:6px;border:solid var(--pv-on-accent);border-width:0 0 2px 2px;rotate:-45deg;translate:0 -1px}
.wpfMainWrapper .wpfCheckbox label{display:none!important}
.wpfMainWrapper .wpfDisplay{display:flex;flex:1;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;font-size:15px;color:var(--pv-text)}
.wpfMainWrapper .wpfValue,.wpfMainWrapper .wpfFilterTaxNameWrapper{color:var(--pv-text);font-weight:400}
.wpfMainWrapper .wpfCount{color:var(--pv-muted);font-size:13.5px;font-variant-numeric:tabular-nums;flex:none}
.wpfMainWrapper .wpfSearchWrapper{margin:0 0 8px}
.wpfMainWrapper .wpfSearchWrapper input{width:100%;min-height:44px}
.wpfMainWrapper .wpfFilterButtons{padding:12px 0 4px}
body.pv-catalog .wpfMainWrapper .wpfClearButton{background:none!important;border:0!important;color:var(--pv-accent-text)!important;text-decoration:underline;min-height:44px;padding:0;font:500 15px var(--pv-font-body);cursor:pointer;box-shadow:none}
.wpfMainWrapper .wpfLoaderLayout,.wpfMainWrapper .wpfPreLoader{border-radius:var(--pv-radius)}


/* ---------- Barre au-dessus de la liste : bouton mobile + pastilles actives ---------- */
.pv-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 16px}
.pv-filter-open{display:none;align-items:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid var(--pv-field);border-radius:var(--pv-radius);background:var(--pv-surface);color:var(--pv-text);font:600 15px var(--pv-font-body);cursor:pointer}
.pv-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;list-style:none;margin:0;padding:0}
.pv-chips li{margin:0}
.pv-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 6px 0 14px;border-radius:999px;background:var(--pv-surface-2);border:1px solid var(--pv-line);font-size:14.5px;color:var(--pv-text)}
.pv-chip button{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--pv-text);cursor:pointer;font-size:19px;line-height:1}
.pv-chip button:hover{background:var(--pv-line)}
.pv-chips-clear{background:none;border:0;padding:0 4px;min-height:40px;color:var(--pv-accent-text);text-decoration:underline;font:500 14.5px var(--pv-font-body);cursor:pointer}
.pv-result-count{color:var(--pv-muted);font-size:14.5px;margin-left:auto}
.pv-panel-head,.pv-panel-foot{display:none}

/* ---------- Mobile : panneau plein écran ---------- */
@media (max-width:900px){
  .pv-filter-open{display:inline-flex}
  html.pv-js body.pv-catalog .elementor>.e-con:has(.wpfMainWrapper){display:none}
  html.pv-js body.pv-catalog .elementor>.e-con:has(.wpfMainWrapper).pv-open{display:block;position:fixed;inset:0;z-index:2100;background:var(--pv-bg);overflow-y:auto;padding:0 16px 110px!important;margin:0!important;width:100%!important;max-width:none!important}
  body.pv-catalog .pv-open .pv-panel-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2;background:var(--pv-bg);padding:12px 0;border-bottom:1px solid var(--pv-line)}
  body.pv-catalog .pv-open .pv-panel-head strong{font:500 24px var(--pv-font-head)}
  body.pv-catalog .pv-open .pv-panel-head button{display:grid;place-items:center;width:48px;height:48px;border:0;background:transparent;font-size:28px;line-height:1;color:var(--pv-text);cursor:pointer}
  body.pv-catalog .pv-open .pv-panel-foot{display:flex;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:2;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--pv-bg);border-top:1px solid var(--pv-line)}
  body.pv-catalog .pv-open .pv-panel-foot button{flex:1;min-height:50px;border-radius:var(--pv-radius);font:600 15.5px var(--pv-font-body);cursor:pointer}
  .pv-panel-foot .pv-foot-reset{background:transparent;color:var(--pv-text);border:1px solid var(--pv-field)}
  .pv-panel-foot .pv-foot-apply{background:var(--pv-accent);color:var(--pv-on-accent);border:1px solid var(--pv-accent)}
  .pv-result-count{width:100%;margin-left:0}
}

/* ---------- Pages où le thème injecte lui-même le filtre (matériel, DIY) ---------- */
.pv-shop{width:min(1280px,100% - 32px);margin:0 auto;display:grid;grid-template-columns:300px minmax(0,1fr);column-gap:32px;align-items:start}
.pv-shop__main{min-width:0}
.pv-shop__main .elementor{width:100%}
.pv-filter-aside{position:sticky;top:190px;max-height:calc(100vh - 210px);overflow-y:auto;overscroll-behavior:contain}
body.pv-theme #main .pv-shop ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:901px) and (max-width:1100px){.pv-shop{grid-template-columns:260px minmax(0,1fr);column-gap:24px}body.pv-theme #main .pv-shop ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .pv-shop{display:block}
  html.pv-js .pv-filter-aside{display:none}
  html.pv-js .pv-filter-aside.pv-open{display:block;position:fixed;inset:0;z-index:2100;max-height:none;background:var(--pv-bg);overflow-y:auto;padding:0 16px 110px}
  body.pv-theme #main .pv-shop ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Titre Elementor d'origine au-dessus du filtre (« Quelles sont vos envies : ») : remplacé par l'en-tête « Filtrer » du panneau. */
body.pv-catalog .e-con:has(.wpfMainWrapper) .elementor-widget-heading{display:none}
/* Interrupteur par page : masque les blocs de texte d'origine (ni filtre ni liste de produits) des pages Elementor. */
body.pv-hide-legacy .elementor>.e-con:not(:has(.wpfMainWrapper)):not(:has(ul.products)):not(:has(.pv-shop)){display:none!important}

/* Finitions */
body.pv-catalog .e-con:has(.wpfMainWrapper) .elementor-widget-divider{display:none}
/* Le menu de tri WooCommerce ne s'applique pas aux listes actuelles (shortcodes) : masqué pour ne pas proposer un contrôle inactif. */
body.pv-catalog .oceanwp-toolbar,body.pv-catalog .woocommerce-ordering,body.pv-catalog .woocommerce-result-count{display:none!important}
/* Le bouton flottant de consentement (Complianz) ne recouvre pas les panneaux plein écran. */
html.pv-lock .cmplz-manage-consent,html.pv-lock #cmplz-manage-consent,html.pv-lock .cmplz-btn.cmplz-show-banner{display:none!important}

/* Archives — 09/10/2026 : panneau et grille, moteur AJAX conservé. */
body.pv-catalog #main .wpfMainWrapper{padding:4px 16px 16px;border:1px solid var(--pv-line);border-radius:16px;background:var(--pv-surface);box-sizing:border-box}
body.pv-catalog #main .wpfMainWrapper .wpfFilterTitle .wfpTitle{font-size:14px!important;min-height:50px}
body.pv-catalog #main .wpfMainWrapper .wpfLiLabel{gap:10px;padding:3px 6px;box-sizing:border-box;border-radius:8px;transition:background .2s}
body.pv-catalog #main .wpfMainWrapper .wpfLiLabel:hover{background:var(--pv-surface-2)}
body.pv-catalog #main .wpfMainWrapper .wpfLiLabel:has(input:checked){background:var(--pv-surface-2)}
body.pv-catalog #main .wpfMainWrapper .wpfLiLabel:has(input:checked) .wpfFilterTaxNameWrapper{font-weight:600}
body.pv-catalog #main .wpfMainWrapper .wpfDisplay{font-size:13px;align-items:center}
body.pv-catalog #main .wpfMainWrapper .wpfCount{font-size:12px;min-width:26px;text-align:right}
body.pv-catalog #main .wpfMainWrapper .wpfCheckbox input:checked{background:var(--pv-ink);border-color:var(--pv-ink)}
body.pv-catalog #main .wpfMainWrapper .wpfSearchWrapper input{border-radius:10px;font-size:14px}
body.pv-catalog #main .wpfMainWrapper .wpfClearButton{font-size:13px;letter-spacing:.02em}
body.pv-catalog #main .pv-filterbar{min-height:48px;gap:8px 12px;padding:8px 0;margin-bottom:12px;border-bottom:1px solid var(--pv-line);background:var(--pv-bg)}
body.pv-catalog #main .pv-filterbar:has(.pv-chips:empty){border:0;padding:0;min-height:0}
body.pv-catalog #main .pv-chip{padding:0 2px 0 12px;min-height:44px;background:var(--pv-surface);border-color:var(--pv-field);font-size:13px}
body.pv-catalog #main .pv-chip button{width:44px;height:44px;flex:none}
body.pv-catalog #main .pv-chips-clear{min-height:44px;font-size:13px}
body.pv-catalog #main .pv-result-count{font-size:13px;font-variant-numeric:tabular-nums}
body.pv-catalog #main .pv-filter-open{border-radius:999px;background:var(--pv-ink);border-color:var(--pv-ink);color:var(--pv-on-ink);min-height:48px}
body.pv-catalog #main :is(.wfpTitle,.pv-chip button,.pv-chips-clear,.pv-filter-open,.pv-panel-head button,.pv-panel-foot button):focus-visible{outline:3px solid var(--pv-text);outline-offset:3px}
body.pv-catalog #main .pv-open .pv-panel-head{padding:12px 0 16px;margin-bottom:12px}
body.pv-catalog #main .pv-open .pv-panel-foot button{border-radius:999px}
body.pv-catalog #main .pv-open .pv-panel-foot .pv-foot-apply{background:#e95120;color:#16110d;border-color:#e95120}
@media(min-width:901px){
  body.pv-catalog #main .elementor:has(.wpfMainWrapper),body.pv-catalog #main .pv-shop{grid-template-columns:260px minmax(0,1fr);column-gap:24px}
  body.pv-catalog #main .elementor:has(.wpfMainWrapper) ul.products,body.pv-catalog #main .pv-shop ul.products{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px}
  body.pv-catalog #main .elementor:has(.wpfMainWrapper)>.e-con:has(.wpfMainWrapper),body.pv-catalog #main .pv-filter-aside{top:calc(var(--pv-header-h) + 16px);max-height:calc(100vh - var(--pv-header-h) - 32px);scrollbar-width:thin}
}
@media(min-width:901px) and (max-width:1100px){body.pv-catalog #main .elementor:has(.wpfMainWrapper),body.pv-catalog #main .pv-shop{grid-template-columns:230px minmax(0,1fr);column-gap:20px}body.pv-catalog #main .elementor:has(.wpfMainWrapper) ul.products,body.pv-catalog #main .pv-shop ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:641px) and (max-width:900px){body.pv-catalog #main ul.products{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}}
@media(max-width:640px){body.pv-catalog #main ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}}
@media(max-width:900px){body.pv-catalog #main .pv-filterbar{position:sticky;top:var(--pv-header-h);z-index:15;padding:8px 0;box-shadow:0 6px 12px rgb(34 30 25/.04)}body.pv-catalog #main .pv-filterbar:has(.pv-chips:empty){padding:8px 0;min-height:64px;border-bottom:1px solid var(--pv-line)}body.pv-catalog #main .pv-result-count:empty{display:none}}
@media(prefers-reduced-motion:reduce){body.pv-catalog #main .wpfLiLabel{transition:none}}

/* Les pages avec filtre injecté (.pv-shop) suivent aussi les trois colonnes tablette. */
@media(min-width:641px) and (max-width:900px){body.pv-catalog #main .pv-shop ul.products{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}}
