.elementor-18170101 .elementor-element.elementor-element-2c7351d3{padding:0px 50px 0px 50px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters__tab-icon{order:1;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters--shown .ce-filters{width:300px;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.2);}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-heading-title{font-size:24px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-group{padding:calc(10px / 2) 0;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-group:not(:last-child){border-bottom:1px solid;border-bottom-color:rgba(47, 43, 54, 0.2);}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters__title{color:#2C2C2C;font-size:18px;font-weight:500;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters__title:not([data-count="0"]):after{content:"(" attr(data-count) ")";}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters__title:after{-webkit-padding-start:0.2em;padding-inline-start:0.2em;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-filters__tab{padding:10px 0px 10px 0px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-subgroup{max-height:502px;overflow:auto;padding:10px 20px 10px 0px;gap:6px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option{gap:10px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-label{color:#434347;font-family:"Nunito Sans", sans-serif;font-size:16px;line-height:1.4em;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-label[data-magnitude]:after{content:"(" attr(data-magnitude) ")";}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-label:after{-webkit-padding-start:0.2em;padding-inline-start:0.2em;font-size:0.8em;color:rgba(0, 0, 0, 0.4);}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-checkbox{font-size:18px;border-radius:0px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 input:checked ~ .ce-checkbox{background-color:#000000;border-color:#000000;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option i[style]{font-size:24px;border-color:rgba(0, 0, 0, 0);border-width:1px;border-radius:22px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-type-color .ce-checkbox::before{transform:scale(0.5);}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option input:checked ~ i[style]{border-color:#000000;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option input:checked ~ i.ce-color--light{color:#000000;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option i.ce-color--light[style]{box-shadow:0px 0px 0px 1px rgba(0, 0, 0, 0.3) inset;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .elementor-field-option i.ce-color--light{border-color:rgba(0, 0, 0, 0);}.elementor-18170101 .elementor-element.elementor-element-4baf1838 .ce-dual-range{--ce-range-height:2px;background-color:#F3F3F3;--ce-range-active-color:#000000;border-radius:14px;--ce-range-thumb-size:14px;--ce-range-thumb-color:#000000;--ce-range-thumb-border-radius:0px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838 > .elementor-widget-container{margin:10px 0px 0px 0px;}.elementor-18170101 .elementor-element.elementor-element-4baf1838{order:-99999;}.elementor-18170101 .elementor-element.elementor-element-5877e30a > .elementor-column-wrap > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial, .elementor-widget__width-calc):not(:last-child):not(.elementor-absolute){margin-bottom:0px;}.elementor-18170101 .elementor-element.elementor-element-5b0e22ec .ce-listing-info{text-align:left;}.elementor-18170101 .elementor-element.elementor-element-5b0e22ec{color:#76747B;width:auto;align-self:center;flex-grow:1;}.elementor-18170101 .elementor-element.elementor-element-5b0e22ec > .elementor-widget-container{margin:0px 10px 10px 0px;}.elementor-18170101 .elementor-element.elementor-element-33e5304c .elementor-button-content-wrapper{gap:10px;}.elementor-18170101 .elementor-element.elementor-element-33e5304c .elementor-button-text{flex-grow:min(0, 10);}.elementor-18170101 .elementor-element.elementor-element-33e5304c a.elementor-button{background-color:#000000;border-radius:0px 0px 0px 0px;}.elementor-18170101 .elementor-element.elementor-element-33e5304c > .elementor-widget-container{margin:0px 10px 10px 0px;}.elementor-18170101 .elementor-element.elementor-element-33e5304c{width:auto;align-self:center;}.elementor-18170101 .elementor-element.elementor-element-5c5fa297 .elementor-field-group{gap:8px;}.elementor-18170101 .elementor-element.elementor-element-5c5fa297 .elementor-field{font-family:"Nunito Sans", sans-serif;font-size:15px;font-weight:500;line-height:2.4em;}.elementor-18170101 .elementor-element.elementor-element-5c5fa297 .elementor-field-textual{background-color:#F8F8F8;border-color:#E9E9E9;border-width:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;}.elementor-18170101 .elementor-element.elementor-element-5c5fa297 > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-18170101 .elementor-element.elementor-element-5c5fa297{width:auto;align-self:center;}.elementor-18170101 .elementor-element.elementor-element-23180953 .ce-active-filters__clear{order:1;}.elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-heading-title{margin-bottom:20px;}.elementor-18170101 .elementor-element.elementor-element-23180953 .ce-active-filters{flex-wrap:nowrap;gap:10px;}.elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-button-text{white-space:pre;}.elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-button{font-weight:400;background-color:rgba(255, 0, 220, 0.1);border-radius:0px;padding:6px 10px 6px 10px;}.elementor-18170101 .elementor-element.elementor-element-23180953 a.elementor-button:not(#e){color:#D5D5D5;}.elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-button:hover, .elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-button:active{background-color:rgba(47, 43, 54, 0.2);}.elementor-18170101 .elementor-element.elementor-element-23180953 .elementor-button.ce-active-filters__clear{font-weight:500;text-decoration:underline;background-color:rgba(255, 255, 255, 0);padding:6px 0px 6px 0px;}.elementor-18170101 .elementor-element.elementor-element-23180953 a.elementor-button.ce-active-filters__clear:not(#e){color:#000000;}.elementor-18170101 .elementor-element.elementor-element-23180953 a.elementor-button.ce-active-filters__clear:not(#e):hover{color:#434347;}.elementor-18170101 .elementor-element.elementor-element-23180953 > .elementor-widget-container{margin:-10px -10px 0px -10px;padding:10px 10px 10px 10px;background-color:#FFFFFF;}.elementor-18170101 .elementor-element.elementor-element-454eb516 .ce-products{grid-column-gap:10px;grid-row-gap:10px;}.elementor-18170101 .elementor-element.elementor-element-454eb516 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc .elementor-row{justify-content:right;}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc .elementor-icon-box-wrapper{text-align:right;}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc .ce-pagination{margin:0 calc(-16px/2);}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc .ce-pagination .elementor-icon-list-item{margin:0 calc(16px/2);}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc .elementor-icon-list-item:after{inset-inline-end:calc(-16px/2);}.elementor-18170101 .elementor-element.elementor-element-6dc8b6fc > .elementor-widget-container{padding:20px 0px 0px 0px;}@media(min-width:768px){.elementor-18170101 .elementor-element.elementor-element-3b531d91{width:20%;}.elementor-18170101 .elementor-element.elementor-element-5877e30a{width:80%;}}@media(max-width:1024px) and (min-width:768px){.elementor-18170101 .elementor-element.elementor-element-5877e30a{width:100%;}}@media(max-width:1024px){.elementor-18170101 .elementor-element.elementor-element-2c7351d3{margin-top:0px;margin-bottom:0px;padding:0px 20px 0px 20px;}.elementor-18170101 .elementor-element.elementor-element-5877e30a > .elementor-element-populated{padding:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-18170101 .elementor-element.elementor-element-5877e30a.elementor-column > .elementor-column-wrap > .elementor-widget-wrap{justify-content:space-between;}.elementor-18170101 .elementor-element.elementor-element-5b0e22ec > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-18170101 .elementor-element.elementor-element-5b0e22ec{width:100%;}.elementor-18170101 .elementor-element.elementor-element-454eb516 .ce-products{grid-column-gap:0px;grid-row-gap:0px;}}/* Start custom CSS for listing-active-filters, class: .elementor-element-23180953 */.svg-inline--fa.fa-w-16 {
    width: 1em;
    DISPLAY: NONE;
}/* End custom CSS */
/* Start custom CSS for listing-products, class: .elementor-element-454eb516 */.elementor-14170101 .elementor-element.elementor-element-b5187e0 > .elementor-widget-container {
    margin: 0px 0px 0px 0px !important ;
}/* End custom CSS */
/* Start custom CSS for page-settings *//* ============================================================
   LUXE FOR YOU — Miniature produit (Creative Elements / PrestaShop)
   Ciblé sur le markup réel : .ce-product-image / .ce-product-name /
   .ce-product-prices / .heyLight-inline / add-to-cart.

   À coller dans themes/<theme>/assets/css/custom.css
   Aucun sélecteur elementor-element-XXXX n'est utilisé : ces ids
   changent si le template est dupliqué. Tout passe par les classes
   sémantiques .ce-*, donc ça survit à une modif dans le builder.
   ============================================================ */

:root{
  --lfy-encre:#1A1A1A;
  --lfy-gris:#8A8A8A;
  --lfy-ligne:#E8E4DE;
  --lfy-or:#BE9A4C;
  --lfy-sans:"Helvetica Neue", Inter, Arial, sans-serif;
}

/* ---------- 1. La carte ------------------------------------- */
[data-elementor-type="product-miniature"]{
  background:#fff;
  height:100%;
  position:relative;
  transition:box-shadow .35s ease, transform .35s ease;
}
[data-elementor-type="product-miniature"]:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(0,0,0,.09);
  z-index:3;
}
[data-elementor-type="product-miniature"] > article{
  display:flex; flex-direction:column; height:100%;
}
/* le builder ajoute des paddings sur chaque niveau : on nettoie */
[data-elementor-type="product-miniature"] .elementor-column-wrap,
[data-elementor-type="product-miniature"] .elementor-widget-wrap,
[data-elementor-type="product-miniature"] > article > section{
  padding:0 !important;
}
[data-elementor-type="product-miniature"] .elementor-widget-wrap{
  display:flex; flex-direction:column; height:100%;
}
[data-elementor-type="product-miniature"] .elementor-widget{
  margin-bottom:0 !important;
}
/* marges internes du bloc texte, une seule fois */
[data-elementor-type="product-miniature"] .elementor-widget-product-miniature-name,
[data-elementor-type="product-miniature"] .elementor-widget-product-miniature-price,
[data-elementor-type="product-miniature"] .elementor-widget-shortcode,
[data-elementor-type="product-miniature"] .elementor-widget-product-miniature-add-to-cart{
  padding-left:18px; padding-right:18px;
}
[data-elementor-type="product-miniature"] .elementor-widget-product-miniature-add-to-cart{
  padding-bottom:18px;
}

/* ---------- 2. L'image --------------------------------------
   Les visuels sont détourés sur blanc en 750×750 mais les montres
   n'y occupent pas la même surface. Ratio + padding constants =
   les boîtiers s'alignent optiquement d'une carte à l'autre.
   mix-blend-mode efface le liseré blanc résiduel du détourage.
------------------------------------------------------------- */
.ce-product-image{ display:block; overflow:hidden; background:#fff; }
.ce-product-image img{
  display:block;
  width:100%; height:auto;
  aspect-ratio:1/0.88;          /* vignette légèrement moins haute que large */
  object-fit:contain;
  padding:3%;                   /* le produit occupe presque tout le cadre */
  mix-blend-mode:multiply;
  transition:transform .7s cubic-bezier(.2,.7,.3,1);
}
[data-elementor-type="product-miniature"]:hover .ce-product-image img{
  transform:scale(1.045);
}

/* ---------- 3. Le magasin -----------------------------------
   Micro-label : l'info est utile (elle rassure sur la dispo et
   permet de venir voir la pièce) mais elle ne doit pas occuper
   le point le plus fort de la carte, juste au-dessus du titre.
------------------------------------------------------------- */
.product-mini-location,
.ce-product-location{
  font-family:var(--lfy-sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#C0C0C0;
  margin:10px 0 0;
  text-align:center;
}
/* le titre se recolle dessous */
.product-mini-location + .product-title,
.product-mini-location + .ce-product-name,
.ce-product-location + .ce-product-name{ margin-top:4px !important; }

/* ---------- 4. Le nom ---------------------------------------- */
.ce-product-name{ margin:9px 0 4px !important; }
.ce-product-name a{
  font-size:15px;
  line-height:1.35;
  letter-spacing:.01em;
  color:var(--lfy-encre);
  display:-webkit-box;
  -webkit-line-clamp:2;          /* 2 lignes max : plus de carte à rallonge */
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:41px;               /* et jamais moins : les prix s'alignent */
  transition:color .25s ease;
}
[data-elementor-type="product-miniature"]:hover .ce-product-name a{ color:var(--lfy-or); }

/* ---------- 4. Le prix --------------------------------------
   Un prix se scanne, il ne se lit pas. Sans-serif + chiffres
   tabulaires : les montants s'alignent verticalement dans la
   grille, l'œil compare sans effort.
------------------------------------------------------------- */
.ce-product-prices{ margin:0; }
.ce-product-price,
.ce-product-price span{
  font-family:var(--lfy-sans);
  font-size:15px;
  font-weight:500;
  letter-spacing:.045em;
  font-variant-numeric:tabular-nums;
  color:var(--lfy-encre);
}
.ce-product-price--regular,
.ce-product-price--regular span{
  font-size:12.5px; font-weight:400; color:#B4B4B4; text-decoration:line-through;
}

/* ---------- 5. HeyLight -------------------------------------
   Le pill rouge est le point le plus agressif de la page : c'est
   le seul aplat saturé au milieu d'acier et d'or. Variante noire
   (fournie par HeyLight), taille réduite, gris.
   Le min-height réserve la place sur TOUTES les cartes, y compris
   celles sans facilité de paiement → plus de grille en escalier.
------------------------------------------------------------- */
[data-elementor-type="product-miniature"] .elementor-widget-shortcode{
  min-height:46px;
}
.heyLight-inline.widget-summary-simple{
  padding:3px 0 !important;
  gap:7px !important;
  justify-content:center;
  flex-wrap:nowrap;
  font-size:11px !important;
  line-height:1.4 !important;
}
.heyLight-inline .color-secondary{ color:#A0A0A0; }
.heyLight-inline .color-primary{
  color:#666;
  font-weight:600;
  /* le point décimal disparaît à petite taille dans la police
     HeyLight Sans : chiffres tabulaires + un peu d'interlettrage
     le rendent visible, "547.50" cesse de se lire "54750" */
  font-family:var(--lfy-sans);
  font-variant-numeric:tabular-nums;
  letter-spacing:.03em;
  white-space:nowrap;
}
.heyLight-inline .heyLightLogo{
  width:54px; min-width:54px; height:20px;
  border:1px solid var(--lfy-ligne);
  border-radius:3px;
  background-image:url("https://storage.googleapis.com/heidi-public-images/heylight_assets/heylight_pill_black_on_white.svg") !important;
}
.heyLight-inline a{ color:#BDBDBD; }

/* ---------- 6. Ajouter au panier ----------------------------
   Le bouton or plein tire le regard avant le produit. En outline
   noir il reste visible et lisible sans concurrencer la montre,
   et se remplit d'or au survol.
------------------------------------------------------------- */
[data-elementor-type="product-miniature"] .elementor-widget-product-miniature-add-to-cart{
  margin-top:auto;
}
[data-elementor-type="product-miniature"] .elementor-button{
  display:block;
  width:100%;
  background:transparent !important;
  color:var(--lfy-encre) !important;
  border:1px solid var(--lfy-encre);
  border-radius:0;
  padding:11px 14px;
  font-family:var(--lfy-sans);
  font-size:9.5px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  transition:background .25s ease, color .25s ease;
}
[data-elementor-type="product-miniature"] .elementor-button:hover,
[data-elementor-type="product-miniature"] .elementor-button:focus-visible{
  background:var(--lfy-or) !important;
  border-color:var(--lfy-or);
  color:#fff !important;
}
[data-elementor-type="product-miniature"] .elementor-button-icon{ display:none; }

/* ---------- 7. Accessibilité / confort ---------------------- */
[data-elementor-type="product-miniature"] a:focus-visible{
  outline:2px solid var(--lfy-or); outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  [data-elementor-type="product-miniature"],
  [data-elementor-type="product-miniature"] *{ transition:none !important; }
}

/* ---------- 8. Mobile ----------------------------------------
   IMPORTANT — problème de priorité CSS sur mobile.
   Creative Elements génère ses propres règles avec des sélecteurs
   .elementor-14170101 .elementor-element-XXXX, et HeyLight injecte
   un <style> DANS le body (donc chargé après ta feuille). Résultat :
   sur mobile, où le builder pose des marges spécifiques, ces règles
   gagnent contre les nôtres.
   D'où le préfixe "body" + les !important ci-dessous : c'est laid,
   mais c'est ce qui rend le bloc réellement appliqué. Ne les retire
   pas sans vérifier dans l'inspecteur.

   Parti pris : 2 colonnes. Sur 1788 pièces, une colonne = un produit
   par écran, donc un scroll interminable.
------------------------------------------------------------- */
@media (max-width:767px){

  /* --- 0. Neutraliser les marges posées par le builder ---------
     C'est la cause des grands vides entre image, titre, prix
     et bouton sur ta capture. --------------------------------- */
  body [data-elementor-type="product-miniature"] .elementor-element,
  body [data-elementor-type="product-miniature"] .elementor-widget,
  body [data-elementor-type="product-miniature"] .elementor-widget-container{
    margin:0 !important;
  }
  body [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-name,
  body [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-price,
  body [data-elementor-type="product-miniature"] .elementor-widget-shortcode{
    padding:0 10px !important;
  }

  /* --- 0 bis. Chaîne flex complète -----------------------------
     C'est LE correctif du décalage des boutons. Creative Elements
     empile 7 niveaux entre la carte et les widgets ; si un seul
     ne s'étire pas, le margin-top:auto du bouton n'a rien sur quoi
     s'appuyer et le bouton suit simplement le contenu au-dessus —
     donc plus bas quand HeyLight est là. On étire toute la chaîne :
     le bouton se cale en bas, quel que soit le contenu. --------- */
  #js-product-list .products > *{ display:flex !important; }
  body [data-elementor-type="product-miniature"],
  body [data-elementor-type="product-miniature"] > article,
  body [data-elementor-type="product-miniature"] > article > section,
  body [data-elementor-type="product-miniature"] .elementor-container,
  body [data-elementor-type="product-miniature"] .elementor-row,
  body [data-elementor-type="product-miniature"] .elementor-column,
  body [data-elementor-type="product-miniature"] .elementor-column-wrap,
  body [data-elementor-type="product-miniature"] .elementor-widget-wrap{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    width:100% !important;
  }

  /* --- 1. Grille pleine largeur -------------------------------
     Le conteneur du thème impose des gouttières latérales. Plutôt
     que de dépadder tous les parents (ce qui casserait aussi le
     header), on sort la grille du flux sur toute la largeur de
     l'écran. Chaque carte gagne ~18px : autant d'image en plus. */
  #js-product-list .products{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px 1px;              /* rangées aérées, colonnes jointives */
    /* Pleine largeur SANS transform ni overflow:hidden.
       Les marges négatives calées sur le viewport suffisent, et
       elles ne créent ni contexte d'empilement (qui pouvait
       recouvrir le bouton Filtres) ni rognage du panneau de
       filtres et du sticky. */
    width:auto;
    margin-inline:calc(50% - 50vw);
  }   /* garde-fou anti-scroll horizontal */

  /* image au maximum : les visuels ont déjà leur marge blanche */
  body [data-elementor-type="product-miniature"] .ce-product-image{ overflow:hidden; }
  body [data-elementor-type="product-miniature"] .ce-product-image img{
    padding:0 !important;
    aspect-ratio:1/1 !important;
    transform:scale(1.06);     /* rogne la marge blanche propre à la photo */
  }

  /* --- 2. Titre : il est coupé en un mot parce qu'un
     white-space:nowrap le bloque sur une ligne. On force le
     retour à la ligne, puis on limite proprement à 2 lignes. -- */
  body [data-elementor-type="product-miniature"] .ce-product-name{
    margin:7px 0 1px !important;
  }
  body [data-elementor-type="product-miniature"] .ce-product-name a{
    display:-webkit-box !important;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    white-space:normal !important;       /* ← le correctif */
    overflow:hidden;
    overflow-wrap:break-word;
    text-overflow:ellipsis;
    font-size:12.5px !important;
    line-height:1.3 !important;
    min-height:33px;
  }

  /* --- 3. Magasin + prix ------------------------------------- */
  body .product-mini-location, body .ce-product-location{
    font-size:8px !important; letter-spacing:.2em; margin:8px 0 0 !important;
  }
  /* le widget prix porte encore un padding du builder : on le vide */
  body [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-price .elementor-widget-container,
  body [data-elementor-type="product-miniature"] .ce-product-prices,
  body [data-elementor-type="product-miniature"] .ce-product-price{
    margin:0 !important; padding:0 !important; line-height:1.25 !important;
  }
  body [data-elementor-type="product-miniature"] .ce-product-price,
  body [data-elementor-type="product-miniature"] .ce-product-price span{
    font-size:14px !important;
  }

  /* --- 4. HeyLight : le logo a un min-width de 64px, il écrase
     le texte à ~90px de large d'où les 6 lignes. On enlève la
     mention longue, on réduit le logo, on autorise le wrap. --- */
  /* plus de hauteur figée : l'alignement est assuré par la chaîne
     flex ci-dessus, la carte n'embarque donc plus de vide inutile */
  body [data-elementor-type="product-miniature"] .elementor-widget-shortcode{
    min-height:0 !important;
    padding-top:6px !important;
  }
  body .heyLight-inline.widget-summary-simple{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:center !important;
    align-items:center !important;
    gap:5px !important;
    padding:2px 0 !important;
    font-size:10px !important;
    line-height:1.3 !important;
  }
  body .heyLight-inline .color-secondary > span{ display:none !important; }  /* "sans frais, 25% acompte" */
  /* le montant reste un cran plus grand que le "ou" qui le précède */
  body .heyLight-inline .color-primary{
    font-size:11px !important;
    letter-spacing:.04em !important;
    font-weight:600 !important;
  }
  body .heyLight-inline .heyLightLogo{
    width:42px !important; min-width:42px !important; height:15px !important;
  }
  body .heyLight-inline a::after{ font-size:9px; }

  /* --- 5. Bouton panier : visible, comme sur desktop.
     Compacté pour tenir sur une seule ligne dans une carte de
     ~190px : sur deux lignes il doublait la hauteur du bas de
     carte et déséquilibrait la grille. ---------------------- */
  body [data-elementor-type="product-miniature"] .elementor-widget-product-miniature-add-to-cart{
    display:block !important;
    padding:8px 10px 26px !important;   /* le 26 du bas fait remonter le bouton
                                            dans la carte : le vide passe SOUS lui,
                                            donc il se rattache au produit du dessus */
    margin-top:auto !important;         /* garde l'alignement entre les 2 colonnes */
    /* le widget porte la classe elementor-widget__width-initial :
       il se rétrécit à son contenu et se cale à gauche. C'est LA
       cause du décalage avec le prix. On le remet pleine largeur. */
    width:100% !important;
    max-width:100% !important;
    align-self:stretch !important;
    text-align:center !important;
  }
  /* centrage par le conteneur, indépendant de text-align et du
     display que le builder impose au lien */
  body [data-elementor-type="product-miniature"] .elementor-button-wrapper{
    display:flex !important;
    justify-content:center !important;
    width:100% !important;
  }
  /* bouton recentré et plus étroit : il ne touche plus les bords,
     donc il se lit comme un élément DE la carte, pas comme une
     barre de séparation entre deux rangées */
  body [data-elementor-type="product-miniature"] .elementor-button{
    width:auto !important;
    max-width:86% !important;
    margin:0 !important;
    padding:10px 14px !important;
    text-align:center !important;
    font-size:9px !important;
    letter-spacing:.14em !important;
    white-space:nowrap !important;
  }

  /* --- 6. Tactile : pas de :hover au doigt -------------------- */
  body [data-elementor-type="product-miniature"]:hover{ transform:none !important; box-shadow:none !important; }
  body [data-elementor-type="product-miniature"]:active{ background:#FCFBFA; }
}

/* ============================================================
   9. BADGES ET PRODUITS VENDUS
   ------------------------------------------------------------
   Le widget "Badges" de Creative Elements est maintenant dans le
   template. Il sort :
     <div class="ce-product-badges">
       <div class="ce-product-badge ce-product-badge-out">…</div>
     </div>
   placé AVANT l'image dans le flux. On le passe en overlay sur
   l'image : plus de bandeau qui pousse le contenu vers le bas.

   Le :where() est volontaire : sa liste est "forgiving", donc un
   navigateur sans :has() ignore ces parties au lieu d'invalider
   toute la règle. Ne le remplace jamais par une virgule.
   ============================================================ */

/* ---------- 9.1 Le bloc badges en overlay ------------------- */
[data-elementor-type="product-miniature"]{ position:relative; }
[data-elementor-type="product-miniature"] .elementor-widget-product-badges{
  position:absolute !important;
  top:12px; right:12px;
  z-index:3;
  width:auto !important;
  max-width:calc(100% - 24px) !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none;
}
[data-elementor-type="product-miniature"] .elementor-widget-product-badges .elementor-widget-container{
  padding:0 !important; margin:0 !important;
}
[data-elementor-type="product-miniature"] .ce-product-badges{
  display:flex !important;
  flex-direction:column;
  align-items:flex-end;      /* badges alignés à droite les uns sous les autres */
  gap:6px;
  margin:0; padding:0;
}

/* ---------- 9.2 Badge générique : contour fin ---------------
   Un pavé plein attire le regard avant le produit. Contour fin
   et micro-typo espacée : présent sans crier.
------------------------------------------------------------- */
[data-elementor-type="product-miniature"] .ce-product-badge{
  background:transparent !important;
  color:var(--lfy-encre) !important;
  border:1px solid var(--lfy-ligne);
  border-radius:0 !important;
  font-family:var(--lfy-sans);
  font-size:9px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:5px 9px;
  line-height:1;
  min-height:0;
  box-shadow:none;
  white-space:nowrap;
}

/* ---------- 9.3 "Ce produit n'est plus en stock" → "Vendu" --
   Le libellé natif est trop long pour une vignette et sonne
   administratif. Fond dense pour contraster avec l'image grisée.
------------------------------------------------------------- */
[data-elementor-type="product-miniature"] .ce-product-badge-out{
  font-size:0 !important;
  background:var(--lfy-encre) !important;
  border-color:var(--lfy-encre) !important;
  padding:0 !important;
}
[data-elementor-type="product-miniature"] .ce-product-badge-out::after{
  content:"Vendu";
  display:block;
  color:#fff;
  font-size:9px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:6px 10px;
  line-height:1;
}
html[lang="en"] [data-elementor-type="product-miniature"] .ce-product-badge-out::after{ content:"Sold"; }

/* promo : le seul badge qui mérite une couleur */
[data-elementor-type="product-miniature"] .ce-product-badge-discount,
[data-elementor-type="product-miniature"] .ce-product-badge-sale{
  background:var(--lfy-or) !important;
  border-color:var(--lfy-or) !important;
  color:#fff !important;
}

/* ---------- 9.4 Traitement de la vignette vendue ------------ */
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .ce-product-image img{
  filter:grayscale(1);
  opacity:.42;
  transform:none !important;
  transition:filter .4s ease, opacity .4s ease;
}

/* Au survol, la pièce vendue reprend ses couleurs : elle reste
   consultable et désirable (une Daytona vendue fait vendre la
   suivante), le badge "Vendu" continuant de porter l'information.
   Scopé en (hover:hover) : sur mobile, un :hover reste "collé"
   après un tap et laisserait une vignette colorée au hasard. */
@media (hover:hover){
  [data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)):hover .ce-product-image img{
    filter:grayscale(0);
    opacity:1;
  }
  [data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)):hover .ce-product-name a{ color:var(--lfy-encre) !important; }
}
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .ce-product-name a{ color:#9A9A9A !important; }
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .ce-product-price,
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .ce-product-price span{
  color:#B0B0B0 !important;
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-decoration-color:#D6D6D6;
}
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)):hover{ transform:none; box-shadow:none; }

/* proposer un 3x ou un ajout au panier sur une pièce vendue
   abîme la confiance : on les retire */
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .elementor-widget-shortcode,
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .elementor-widget-product-miniature-add-to-cart{
  display:none !important;
}

/* "Nouveau" et "Vendu" ensemble se contredisent */
[data-elementor-type="product-miniature"]:where(.is-sold, :has(.ce-product-badge-out), :has(.product-flag.out_of_stock), :has(.elementor-button.ce-disabled)) .ce-product-badge-new{ display:none !important; }

/* le flag natif du thème ferait doublon avec le widget */
[data-elementor-type="product-miniature"] .product-flag.out_of_stock{ display:none !important; }

@media (max-width:767px){
  [data-elementor-type="product-miniature"] .elementor-widget-product-badges{
    top:8px; right:8px;
  }
  [data-elementor-type="product-miniature"] .ce-product-badge{ font-size:8px; padding:4px 7px; }
  [data-elementor-type="product-miniature"] .ce-product-badge-out::after{ font-size:8px; padding:5px 8px; }
}

/* ============================================================
   10. BARRE D'OUTILS — bouton Filtres non cliquable sur mobile
   ------------------------------------------------------------
   Le widget "filtres actifs" (listing-active-filters) est en
   sticky avec un conteneur VIDE quand aucun filtre n'est appliqué.
   Le JS de Creative Elements le fige quand même : un bloc
   invisible se retrouve par-dessus la barre d'outils et
   intercepte les taps destinés au bouton Filtres.

   Vérification : clic droit sur le bouton → Inspecter. Si
   l'élément surligné n'est pas le <a href="#ce-action=toggle">,
   c'est bien ça.
   ============================================================ */

/* un widget vide ne doit ni s'afficher ni capter les clics */
.elementor-widget-listing-active-filters .elementor-widget-container:empty{
  display:none !important;
}
.elementor-widget-listing-active-filters:not(:has(a)):not(:has(button)){
  pointer-events:none !important;
}

/* ceinture et bretelles : le bouton Filtres passe au-dessus */
.elementor-widget-button > .elementor-widget-container,
.elementor-widget-button .elementor-button-wrapper{
  position:relative;
  z-index:5;
}
.elementor-widget-button a.elementor-button{
  position:relative;
  z-index:5;
  pointer-events:auto !important;
}/* End custom CSS */