.elementor-3803 .elementor-element.elementor-element-2c7ed76{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-3803 .elementor-element.elementor-element-4911912{--display:flex;--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-3803 .elementor-element.elementor-element-4911912.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-3803 .elementor-element.elementor-element-88ae686 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:600;}.elementor-3803 .elementor-element.elementor-element-da63c6a{text-align:center;}.elementor-3803 .elementor-element.elementor-element-da63c6a .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:600;}.elementor-3803 .elementor-element.elementor-element-0c1157c{--display:flex;}.elementor-3803 .elementor-element.elementor-element-77b8965{text-align:center;}.elementor-3803 .elementor-element.elementor-element-77b8965 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:600;}.elementor-3803 .elementor-element.elementor-element-9475443{--display:flex;}.elementor-3803 .elementor-element.elementor-element-9475443.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-3803 .elementor-element.elementor-element-ec43d34{text-align:center;}.elementor-3803 .elementor-element.elementor-element-ec43d34 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:600;}.elementor-3803 .elementor-element.elementor-element-0149f01{--grid-columns:3;--grid-row-gap:0px;--grid-column-gap:0px;}.elementor-3803 .elementor-element.elementor-element-4516818{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-3803 .elementor-element.elementor-element-4911912{--width:15.33%;}.elementor-3803 .elementor-element.elementor-element-9475443{--width:100%;}}@media(max-width:1024px){.elementor-3803 .elementor-element.elementor-element-0149f01{--grid-columns:2;}}@media(max-width:767px){.elementor-3803 .elementor-element.elementor-element-0149f01{--grid-columns:1;}}/* Start custom CSS for container, class: .elementor-element-0c1157c *//* ---- Titre cliquable + flèche ---- */
.cat-filter__title{
  display:flex;align-items:center;justify-content:space-between;
  font-weight:800;font-size:18px;color:#1f2937;
  border-bottom:2px solid #e7edf5;padding:8px 6px;cursor:pointer;
  user-select:none;
}
.cat-filter__title::after{
  content:"▾"; font-size:14px; color:#0046b8; transition:transform .25s ease;
}
.cat-filter.is-open .cat-filter__title::after{ transform:rotate(180deg); }

/* ---- Corps pliable ---- */
.cat-filter__content{
  overflow:hidden; max-height:0; opacity:.0;
  transition:max-height .35s ease, opacity .25s ease;
  padding-left:0; /* garde clean le bord */
}
.cat-filter.is-open .cat-filter__content{
  max-height:1000px; /* assez grand pour tout le contenu */
  opacity:1;
}

/* (Optionnel) petit espace entre les cartes */
.cat-filter__content .jet-visual-filter{
  margin-bottom:12px;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-0149f01 *//* ===== ProPulv — Uniformisation cartes Loop Grid ===== */
/* Scope : ajoute la classe "pp-grid" au Loop Grid Elementor */
.pp-grid {
  --pp-card-radius: 14px;
  --pp-card-border: 1px solid #e9eef6;
  --pp-card-bg: #fff;
  --pp-shadow: 0 6px 16px rgba(31,78,140,.08);
  --pp-shadow-hover: 0 12px 28px rgba(31,78,140,.14);
  --pp-blue: #265BA2;
  --pp-dark: #1b1f23;
  --pp-mid: #5b6470;
}

/* Grille : espace régulier entre cartes */
.pp-grid .elementor-grid,
.pp-grid .e-con {
  gap: 18px !important;
}

/* Carte produit */
.pp-grid .e-loop-item,
.pp-grid .product {
  display: flex;
  flex-direction: column;
  background: var(--pp-card-bg);
  border: var(--pp-card-border);
  border-radius: var(--pp-card-radius);
  box-shadow: var(--pp-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow: hidden;
}

/* Hover lift */
.pp-grid .e-loop-item:hover,
.pp-grid .product:hover {
  transform: translateY(-2px);
  box-shadow: var(--pp-shadow-hover);
  border-color: #dfe6f3;
}

/* ========= Image (uniforme) ========= */
/* wrapper image : crée un ratio carré avec centrage */
.pp-grid .e-loop-item .woocommerce-LoopProduct-link,
.pp-grid .product a.woocommerce-LoopProduct-link {
  display: block;
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* image au même format partout */
.pp-grid img,
.pp-grid .woocommerce-LoopProduct-link img,
.pp-grid .attachment-woocommerce_thumbnail {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1;      /* carré */
  object-fit: contain;
  background: #fff;
}

/* ========= Contenu ========= */
.pp-grid .e-loop-item .elementor-widget-container,
.pp-grid .product .woocommerce-loop-product__title,
.pp-grid .product .price,
.pp-grid .product .button {
  padding-left: 14px;
  padding-right: 14px;
}

/* Titre : 2 lignes max, hauteur fixe pour aligner les cartes */
.pp-grid .woocommerce-loop-product__title,
.pp-grid .elementor-heading-title,
.pp-grid .e-loop-item .product_title {
  margin: 10px 14px 6px !important;
  font-weight: 700;
  color: var(--pp-dark);
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;         /* max 2 lignes */
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;             /* réserve la place de 2 lignes */
}

/* Meta / sous-catégorie si affichée */
.pp-grid .posted_in, 
.pp-grid .product-category,
.pp-grid .product_meta {
  margin: 0 14px 6px;
  color: var(--pp-mid);
  font-size: 12.5px;
}

/* Prix */
.pp-grid .price {
  margin: 6px 14px 10px !important;
  color: var(--pp-dark);
  font-weight: 700;
}
.pp-grid .price .amount,
.pp-grid .woocommerce-Price-amount {
  font-size: 16px;
}

/* Boutons : toujours alignés en bas et largeur pleine */
.pp-grid .product { /* conteneur principal */
  min-height: 100%;
}
.pp-grid .product .button,
.pp-grid .e-loop-item .button {
  margin: 10px 14px 14px;
  margin-top: auto;                 /* pousse le bouton en bas */
  width: calc(100% - 28px);         /* largeur visuelle = carte - padding */
  text-align: center;
  border-radius: 999px;
  background: var(--pp-blue);
  color: #fff;
  border: 1px solid rgba(0,0,0,0.0);
  box-shadow: 0 10px 20px rgba(38,91,162,.18);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.pp-grid .product .button:hover,
.pp-grid .e-loop-item .button:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(38,91,162,.22);
  background: #1f4e8c;
}

/* Badge promo / “Nouveau” / “En stock” si WooCommerce */
.pp-grid .onsale,
.pp-grid .wc-new-badge,
.pp-grid .pp-badge {
  position: absolute;
  top: 10px; left: 10px;
  z-index: 3;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px; font-weight: 700;
  background: #ff3b30; color: #fff;
  box-shadow: 0 8px 16px rgba(0,0,0,.15);
}
.pp-grid .wc-new-badge { background:#00c853; }   /* exemple badge "Nouveau" */

/* Espacement interne de la carte (au cas où widgets Elementor imbriqués) */
.pp-grid .e-loop-item .elementor-widget:not(:last-child) {
  margin-bottom: 6px;
}

/* Accessibilité au focus */
.pp-grid a:focus-visible, 
.pp-grid button:focus-visible {
  outline: 2px solid #92b4ff;
  outline-offset: 2px;
}/* End custom CSS */