/* ============================================================
   BODYFLOAT — Variant Transformer (produit 11392)
   Les polices Outfit / Figtree sont chargées par le plugin (PHP),
   plus besoin d'@import ici.
   ============================================================ */

/* === TYPOGRAPHIE BODYFLOAT === */
/* Chaque classe cible aussi les balises internes (h1/h2/p/span) des modules Divi
   avec assez de spécificité pour battre les règles Open Sans du thème. */

.bf-kicker, .bf-kicker *,
.single-product .bf-kicker{
  font-family:'Outfit',sans-serif !important;
  font-weight:700 !important; font-size:13px !important;
  letter-spacing:2px !important; text-transform:uppercase !important;
  color:#e07d3b !important;
}

.bf-h1, .bf-h1 h1, .bf-h1 .et_pb_module_header, .bf-h1 .product_title,
h1.bf-h1, .single-product .bf-h1 h1{
  font-family:'Outfit',sans-serif !important;
  font-weight:800 !important; font-size:38px !important;
  line-height:1.08 !important; letter-spacing:-.5px !important;
  color:#102a3e !important;
}

.bf-desc, .bf-desc p, .bf-desc *,
.single-product .bf-desc p{
  font-family:'Figtree',sans-serif !important;
  font-weight:400 !important; font-size:16px !important;
  line-height:1.6 !important; color:#16314a !important;
}

.bf-price, .bf-price *, .bf-price .woocommerce-Price-amount,
.single-product .bf-price{
  font-family:'Outfit',sans-serif !important;
  font-weight:800 !important; font-size:46px !important;
  line-height:1 !important; color:#c75f1e !important;
}

.bf-price-unit, .bf-price-unit *{
  font-family:'Figtree',sans-serif !important;
  font-weight:400 !important; font-size:15px !important;
  color:#6b7884 !important;
}

.bf-rating, .bf-rating *{
  font-family:'Figtree',sans-serif !important;
  font-weight:700 !important; font-size:14px !important;
  color:#16314a !important;
}

.bf-breadcrumb, .bf-breadcrumb *,
.single-product .bf-breadcrumb a{
  font-family:'Figtree',sans-serif !important;
  font-weight:500 !important; font-size:13px !important;
}

.bf-label, .bf-label *{
  font-family:'Figtree',sans-serif !important;
  font-weight:700 !important; font-size:14px !important;
  color:#16314a !important;
}

/* Force l'image PRINCIPALE de la page produit en carré */
.single-product .woocommerce-product-gallery__image img,
.single-product .et_pb_wc_images img{
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  width: 100% !important;
  height: auto !important;
}

/* ============================================================
   SÉLECTEURS CUSTOM (cartes + dropdown)
   — sorti du JS (ancien bloc injecté #bf-sel-style)
   ============================================================ */

.bf-wrap{font-family:'Figtree',system-ui,sans-serif;margin:0 0 16px;}
.bf-l{font-weight:700;font-size:14px;color:#16314a;margin:0 0 10px;display:flex;align-items:center;gap:8px;}
.bf-req{color:#c75f1e;}
.bf-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.bf-opt{display:flex;flex-direction:column;text-align:left;width:100%;font:inherit;background:#fff;border:2px solid #e7e3da;border-radius:14px;padding:13px 15px;cursor:pointer;transition:border-color .15s,background .15s;}
.bf-opt:hover{border-color:#b9c4d4;}
.bf-opt.on{border-color:#002870;background:#eef5fb;}
.bf-opt__r{display:flex;align-items:center;width:100%;}
.bf-opt__t{font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;color:#16314a;}
.bf-opt__n{font-size:12.5px;color:#6b7884;margin-top:5px;}
.bf-opt__m{margin-left:auto;width:22px;height:22px;border-radius:50%;border:2px solid #d8d3c8;flex:none;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;}
.bf-opt.on .bf-opt__m{background:#002870;border-color:#002870;}
.bf-opt.on .bf-opt__m::after{content:"";width:11px;height:11px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 12 12'><path d='M2 6.5l2.5 2.5L10 3' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;}
.bf-dd{position:relative;}
.bf-dd select{width:100%;font-family:'Figtree',sans-serif;font-size:15px;font-weight:500;color:#16314a;background:#fff;border:2px solid #e7e3da;border-radius:12px;padding:14px 44px 14px 15px;cursor:pointer;appearance:none;-webkit-appearance:none;}
.bf-dd select:hover{border-color:#b9c4d4;}
.bf-dd select:focus{outline:none;border-color:#002870;}
.bf-dd__a{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;width:14px;height:9px;font-size:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%23002870' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;}

/* ============================================================
   BOUTON AJOUTER AU PANIER
   Logique inversée anti-clignotement :
   gris par défaut, orange UNIQUEMENT via .bf-btn-on (posée par le JS
   quand un centre est choisi). Ne jamais raccrocher le style aux
   classes WooCommerce (.disabled / .wc-variation-selection-needed).
   ============================================================ */

/* ---- Base (commun aux deux états) ---- */
.single-product .single_add_to_cart_button.button.alt {
  width: 100% !important;
  padding: 17px !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  cursor: pointer !important;
  transition: none !important;
}

/* État par défaut = GRIS. L'orange n'apparaît que via .bf-btn-on (JS) */
body .single-product .single_add_to_cart_button.button.alt{
  background:#e9e4db !important;
  background-color:#e9e4db !important;
  background-image:none !important;
  color:#a99f8f !important;
  box-shadow:none !important;
  opacity:1 !important;
  cursor:not-allowed !important;
}

/* État ACTIF — uniquement quand le JS pose .bf-btn-on */
body .single-product .single_add_to_cart_button.button.alt.bf-btn-on{
  background:#e07d3b !important;
  background-color:#e07d3b !important;
  color:#fff !important;
  box-shadow:0 12px 26px -10px rgba(224,125,59,.6) !important;
  cursor:pointer !important;
}
body .single-product .single_add_to_cart_button.button.alt.bf-btn-on:hover{
  background:#c75f1e !important;
  background-color:#c75f1e !important;
}

/* Empêche WooCommerce de rendre le bouton translucide pendant le chargement variation */
body .single-product .single_add_to_cart_button.button.alt,
body .single-product .single_add_to_cart_button.button.alt.bf-btn-on{
  opacity:1 !important;
}
.woocommerce div.product form.cart.variations_button,
.woocommerce div.product form.cart .wc-no-matching-variations{
  opacity:1 !important;
}
body .single-product .single_add_to_cart_button.button.alt::before,
body .single-product .single_add_to_cart_button.button.alt::after{
  display:none !important;
}

/* ============================================================
   PRIX — un seul affichage (en haut)
   Le prix de variation que WooCommerce insère au-dessus du bouton
   est masqué ; le prix du haut est mis à jour par le JS (bloc 6)
   avec le prix de la variation sélectionnée.
   ============================================================ */
/* Les assets ne chargent QUE sur les produits ciblés → sélecteur simple et sûr */
form.variations_form .woocommerce-variation-price{
  display:none !important;
}

/* WooCommerce grise tout le formulaire pendant le chargement → on neutralise */
body .single-product form.variations_form,
body .single-product .woocommerce-variation-add-to-cart{
  opacity:1 !important;
}
.woocommerce div.product form.cart .variations_button{
  opacity:1 !important;
}

/* ============================================================
   FAQ PAR PRODUIT — shortcode [bf_faq]
   Accordéon <details> natif : aucun JS, accessible au clavier.
   ============================================================ */
.bf-faq{max-width:760px;margin:0 auto;font-family:'Figtree',system-ui,sans-serif;}
.bf-faq__title{font-family:'Outfit',sans-serif;font-weight:800;font-size:30px;color:#102a3e;letter-spacing:-.5px;margin:0 0 24px;text-align:center;}
.bf-faq__item{background:#fff;border:1px solid #ece8df;border-radius:14px;margin-bottom:10px;overflow:hidden;}
.bf-faq__q{font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;color:#16314a;padding:18px 46px 18px 20px;cursor:pointer;list-style:none;position:relative;}
.bf-faq__q::-webkit-details-marker{display:none;}
.bf-faq__q::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:#002870;line-height:1;}
.bf-faq__item[open] .bf-faq__q::after{content:"–";}
.bf-faq__q:hover{background:#fafafa;}
.bf-faq__a{padding:0 20px 18px;font-size:15px;line-height:1.6;color:#5d6b78;}

/* ============================================================
   AVIS PAR PRODUIT — shortcode [bf_avis]
   ============================================================ */
.bf-avis{font-family:'Figtree',system-ui,sans-serif;}
.bf-avis__title{font-family:'Outfit',sans-serif;font-weight:800;font-size:30px;color:#102a3e;letter-spacing:-.5px;margin:0 0 24px;}
.bf-avis__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
.bf-avis__card{
  background:#fff;border:1px solid #ece8df;border-radius:18px;padding:24px;margin:0;
  display:flex;flex-direction:column; /* note+texte en haut, signature en bas */
}
.bf-avis__meta{margin-top:auto;padding-top:4px;}
.bf-avis__stars{position:relative;display:inline-block;font-size:14px;letter-spacing:2px;margin-bottom:12px;line-height:1;color:#e3ddd2;}
.bf-avis__stars-bg{color:#e3ddd2;}
.bf-avis__stars-fill{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:#f5a623;pointer-events:none;}
.bf-avis__txt{
  font-family:'Figtree',sans-serif;font-size:14px;line-height:1.6;color:#3f4e5a;
  margin:0 0 16px;quotes:"«\00a0" "\00a0»";
  /* neutralise le style blockquote de Divi (barre latérale, italique, padding) */
  border:none !important;padding:0 !important;background:none !important;
  font-style:normal !important;
}
.bf-avis__txt::before{content:open-quote;}
.bf-avis__txt::after{content:close-quote;}
.bf-avis__meta{display:flex;flex-direction:column;gap:2px;}
.bf-avis__auteur{font-weight:700;font-size:14px;color:#16314a;}
.bf-avis__centre{font-size:13px;color:#8a95a1;}

@media (max-width:600px){
  .bf-faq__title,.bf-avis__title{font-size:24px;}
}

/* ============================================================
   CARTES « AUTRES EXPÉRIENCES »
   Module Divi « Vente incitative de produits Woo » (.et_pb_wc_upsells)
   Contenu ajouté par includes/bf-upsells.php (badge, desc, prix, bouton).
   Grille : 4 cartes / ligne → 2 (tablette) → 1 (mobile).
   ============================================================ */

.et_pb_wc_upsells{background:#fff;border-top:1px solid #ece8df;}
.et_pb_wc_upsells .et_pb_module_inner{max-width:1080px;margin:0 auto;padding:64px 24px;}

/* Titre de section */
.et_pb_wc_upsells h2{
  font-family:'Outfit',sans-serif !important;
  font-weight:800 !important; font-size:30px !important;
  color:#102a3e !important; letter-spacing:-.5px !important;
  margin:0 0 32px !important; text-align:left !important;
}

/* Grille responsive */
.et_pb_wc_upsells ul.products{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
  margin:0 !important; padding:0 !important; list-style:none !important;
}
.et_pb_wc_upsells ul.products::before,
.et_pb_wc_upsells ul.products::after{display:none !important;}

/* Carte */
.et_pb_wc_upsells ul.products li.product{
  position:relative;
  width:auto !important; float:none !important; clear:none !important;
  margin:0 !important; padding:0 0 24px !important;
  display:flex; flex-direction:column;
  background:#fff; border:1px solid #ece8df; border-radius:18px;
  overflow:hidden; box-sizing:border-box;
  transition:box-shadow .2s, transform .2s;
}
.et_pb_wc_upsells ul.products li.product:hover{
  box-shadow:0 18px 40px -22px rgba(16,42,62,.35);
  transform:translateY(-2px);
}

/* Le lien qui englobe image + titre + prix — étiré sur TOUTE la carte
   (un clic n'importe où mène à la fiche produit) */
.et_pb_wc_upsells li.product a.woocommerce-LoopProduct-link{
  display:flex !important; flex-direction:column; flex:1;
  text-decoration:none !important; position:static;
}
.et_pb_wc_upsells li.product a.woocommerce-LoopProduct-link::after{
  content:""; position:absolute; inset:0; z-index:1;
}
.et_pb_wc_upsells ul.products li.product{cursor:pointer;}

/* Image — pleine largeur en haut de carte.
   Divi enveloppe l'img dans span.et_shop_image : c'est LUI qui porte
   l'espacement sous l'image, pas l'img. */
.et_pb_wc_upsells li.product .et_shop_image,
.et_pb_wc_upsells li.product span.et_shop_image{
  display:block !important;
  margin:0 0 28px !important;
  padding:0 !important;
  line-height:0;
}
.et_pb_wc_upsells li.product .et_shop_image img,
.et_pb_wc_upsells li.product img{
  width:100% !important; height:auto !important;
  aspect-ratio:4/3; object-fit:cover;
  margin:0 !important; border-radius:0 !important;
  display:block;
}

/* Badge — en haut à gauche de l'image (champ « Badge » de la fiche produit) */
.et_pb_wc_upsells li.product .bf-up__kicker{
  position:absolute; top:12px; left:12px; z-index:3;
  display:inline-block; margin:0;
  background:#eef5fb; color:#002870;
  font-family:'Outfit',sans-serif; font-weight:700;
  font-size:10px; letter-spacing:1px; text-transform:uppercase;
  padding:5px 11px; border-radius:20px;
  box-shadow:0 2px 8px rgba(16,42,62,.18);
}

/* Titre produit (h2 : sélecteur qualifié pour battre les règles Divi) */
.et_pb_wc_upsells li.product h2.woocommerce-loop-product__title,
.et_pb_wc_upsells li.product h3.woocommerce-loop-product__title,
.et_pb_wc_upsells li.product .woocommerce-loop-product__title{
  font-family:'Outfit',sans-serif !important;
  font-weight:700 !important; font-size:17px !important;
  letter-spacing:.2px !important;
  color:#16314a !important; padding:0 20px !important;
  margin:0 0 12px !important; line-height:1.4 !important;
}

/* Description courte */
.et_pb_wc_upsells li.product .bf-up__desc{
  font-family:'Figtree',sans-serif; font-size:13.5px; line-height:1.65;
  letter-spacing:.2px;
  color:#5d6b78; margin:0 0 16px; padding:0 20px;
}

/* Prix « dès X € » */
.et_pb_wc_upsells li.product .price,
.et_pb_wc_upsells li.product .bf-up__price,
.et_pb_wc_upsells li.product .bf-up__price .amount,
.et_pb_wc_upsells li.product .bf-up__price bdi{
  font-family:'Outfit',sans-serif !important;
  font-weight:800 !important; font-size:24px !important;
  letter-spacing:.2px !important;
  color:#c75f1e !important; line-height:1 !important;
}
.et_pb_wc_upsells li.product .price{
  display:block; padding:0 20px;
  margin:auto 0 0 !important; /* pousse prix+bouton vers le bas de la carte */
}
.et_pb_wc_upsells li.product .price del,
.et_pb_wc_upsells li.product .price ins{display:none !important;}

/* Bouton « Découvrir » — espacement FIXE au-dessus et en dessous,
   identique sur toutes les cartes */
.et_pb_wc_upsells li.product a.bf-up__btn,
.et_pb_wc_upsells li.product .bf-up__btn{
  position:relative; z-index:2;
  display:block !important; margin:16px 20px 0 !important;
  text-align:center; text-decoration:none !important;
  border:2px solid #002870 !important; border-radius:12px !important;
  padding:11px !important; background:#fff !important;
  font-family:'Outfit',sans-serif !important;
  font-weight:700 !important; font-size:13.5px !important;
  letter-spacing:.4px !important;
  color:#002870 !important;
  transition:background .15s, color .15s;
}
.et_pb_wc_upsells li.product .bf-up__btn:hover,
.et_pb_wc_upsells ul.products li.product:hover .bf-up__btn{
  background:#002870 !important; color:#fff !important;
}
.et_pb_wc_upsells li.product .bf-up__btn::before,
.et_pb_wc_upsells li.product .bf-up__btn::after{display:none !important;}

/* Supprime l'overlay "+" de Divi au survol de l'image */
.et_pb_wc_upsells li.product .et_overlay{display:none !important;}

/* Masque tout bouton natif résiduel — seul notre « Découvrir » reste */
.et_pb_wc_upsells li.product .added_to_cart,
.et_pb_wc_upsells li.product a.add_to_cart_button,
.et_pb_wc_upsells li.product .button:not(.bf-up__btn){display:none !important;}

/* Responsive :
   - tablette (768–1024) : grille 2 colonnes
   - mobile (≤767)       : carrousel horizontal à glissement (scroll-snap),
     avec un aperçu de la carte suivante pour inviter au swipe */
@media (max-width:1024px){
  .et_pb_wc_upsells ul.products{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width:767px){
  .et_pb_wc_upsells h2{font-size:24px !important;}
  .et_pb_wc_upsells ul.products{
    display:flex !important;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:14px;
    padding:4px 4px 12px !important; /* petit dégagement pour l'ombre au survol */
    scroll-padding-left:4px;
    /* masque la barre de défilement (le geste suffit) */
    scrollbar-width:none;
  }
  .et_pb_wc_upsells ul.products::-webkit-scrollbar{display:none;}
  .et_pb_wc_upsells ul.products li.product{
    flex:0 0 78%;
    max-width:78%;
    scroll-snap-align:start;
  }
}

/* ============================================================
   UTILITAIRES RESPONSIVE — classes à poser sur des ROWS Divi
   (réglages de la Row → Avancé → Classe CSS)
   ============================================================ */

/* .bf-2x2 — les 4 colonnes de la Row passent en grille 2×2 sur mobile
   (ex. bandeau « 4 centres / 4,9/5 / 35°C / 3x ») */
@media (max-width:767px){
  .et_pb_row.bf-2x2, .bf-2x2{
    display:flex !important;
    flex-wrap:wrap !important;
    overflow-x:visible !important;
    scroll-snap-type:none !important;
  }
  .et_pb_row.bf-2x2 > .et_pb_column, .bf-2x2 > .et_pb_column{
    flex:0 0 50% !important;
    width:50% !important;
    max-width:50% !important;
    margin:0 !important;
    padding:12px 8px !important;
    box-sizing:border-box;
    text-align:center;
  }
}

/* .bf-scroll-x — les colonnes de la Row deviennent un carrousel horizontal
   à glissement sur mobile (ex. la Row des cartes d'avis).
   Ligne 1 = votre module note 4,9/5 dans sa propre Row au-dessus,
   Ligne 2 = cette Row avec la classe. */
@media (max-width:767px){
  .bf-scroll-x{
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:14px;
    padding:4px 4px 12px !important;
    scroll-padding-left:4px;
    scrollbar-width:none;
  }
  .bf-scroll-x::-webkit-scrollbar{display:none;}
  .bf-scroll-x > .et_pb_column{
    flex:0 0 80% !important;
    width:80% !important;
    max-width:80% !important;
    margin:0 !important;
    scroll-snap-align:start;
  }
}

/* .bf-first-full (à combiner avec .bf-scroll-x) — sur mobile, la 1re colonne
   de la Row (ex. le bloc 4,9/5) est sortie du carrousel et affichée en pleine
   largeur au-dessus. Le déplacement est géré par le JS (bloc 8). */
.bf-scroll-x__head{display:none;}
@media (max-width:767px){
  .bf-scroll-x__head{display:block;margin:0 0 14px;}
  .bf-scroll-x__head > .et_pb_column{
    width:100% !important; max-width:100% !important;
    flex:none !important; margin:0 !important;
  }
}

/* Le carrousel d'avis du shortcode [bf_avis] suit le même comportement mobile */
@media (max-width:767px){
  .bf-avis__grid{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:14px;
    padding:4px 4px 12px;
    scrollbar-width:none;
  }
  .bf-avis__grid::-webkit-scrollbar{display:none;}
  .bf-avis__card{
    flex:0 0 80%;
    scroll-snap-align:start;
  }
}

/* Image du hero une fois déplacée sous le prix (mobile) : respiration */
@media (max-width:767px){
  .et_pb_wc_images{margin:6px 0 22px !important;}
}

/* ============================================================
   BANDEAU KPI (.bf-kpi) — module Code Divi, HTML par classes
   Desktop : 4 colonnes · Mobile : grille 2×2
   ============================================================ */
.bf-kpi{background:#002870;margin-top:20px;}
.bf-kpi__grid{
  max-width:1080px;margin:0 auto;padding:26px 32px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:30px;
}
.bf-kpi__item{text-align:center;color:#fff;}
.bf-kpi__num{font-family:'Outfit',sans-serif;font-weight:800;font-size:24px;color:#fff;}
.bf-kpi__label{font-family:'Figtree',sans-serif;font-size:13px;color:#9bb6c9;margin-top:2px;}
@media (max-width:767px){
  .bf-kpi__grid{grid-template-columns:repeat(2,1fr);gap:20px 14px;padding:22px 20px;}
  .bf-kpi__num{font-size:21px;}
  .bf-kpi__label{font-size:12px;}
}

/* ============================================================
   SECTION AVIS (.bf-rev) — module Code Divi, HTML par classes
   Desktop : note 300px à gauche + 3 cartes
   Mobile  : note pleine largeur au-dessus, cartes en carrousel
             latéral — larges (85%) et basses (texte limité à 5 lignes)
   ============================================================ */
.bf-rev{font-family:'Outfit',sans-serif;background:#f6f4ef;}
.bf-rev__inner{max-width:1080px;margin:0 auto;padding:64px 24px;}
.bf-rev__layout{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:center;}
.bf-rev__num{font-weight:800;font-size:72px;color:#102a3e;line-height:1;}
.bf-rev__num span{font-size:30px;color:#9aa6b1;}
.bf-rev__num .bf-js-note{font-size:inherit;color:inherit;font-weight:inherit;} /* la note garde le style du chiffre principal */
.bf-rev__stars{color:#f5a623;font-size:22px;letter-spacing:3px;margin-top:6px;}
.bf-rev__sub{font-family:'Figtree',sans-serif;font-size:15px;color:#5d6b78;margin-top:10px;}
.bf-rev__sub strong{color:#16314a;}
.bf-rev__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.bf-rev__card{
  background:#fff;border-radius:16px;padding:24px;border:1px solid #ece8df;
  display:flex;flex-direction:column; /* note+texte en haut, signature en bas */
}
.bf-rev__author{margin-top:auto;padding-top:4px;}
.bf-rev__card-stars{color:#f5a623;letter-spacing:1px;margin-bottom:10px;}
.bf-rev__quote{font-family:'Figtree',sans-serif;font-size:14px;line-height:1.6;color:#3f4e5a;margin:0 0 16px;}
.bf-rev__author{font-weight:700;font-size:13px;color:#16314a;}
.bf-rev__place{font-family:'Figtree',sans-serif;font-size:12px;color:#9aa6b1;}

@media (max-width:767px){
  .bf-rev__inner{padding:44px 20px;}
  /* niveau 1 : la note, pleine largeur */
  .bf-rev__layout{display:block;}
  .bf-rev__score{text-align:center;margin-bottom:26px;}
  .bf-rev__num{font-size:56px;}
  /* niveau 2 : carrousel latéral, cartes larges et basses */
  .bf-rev__cards{
    display:flex;overflow-x:auto;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    gap:14px;padding:4px 4px 12px;scroll-padding-left:4px;
    scrollbar-width:none;
  }
  .bf-rev__cards::-webkit-scrollbar{display:none;}
  .bf-rev__card{
    flex:0 0 85%;max-width:85%;
    scroll-snap-align:start;
    padding:18px 20px;
  }
  .bf-rev__quote{
    font-size:13.5px;line-height:1.55;margin-bottom:12px;
    display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;
    overflow:hidden; /* limite à 5 lignes → cartes basses et homogènes */
  }
}

/* ============================================================
   AJUSTEMENTS MOBILE — hero produit (≤767px)
   ============================================================ */
@media (max-width:767px){

  /* 1. Espacement entre le header et le titre
        (.et_pb_section_0_tb_body = 1re section du template produit Divi) */
  .et_pb_section_0_tb_body{
    padding-top:44px !important;
  }

  /* 2 & 3. Image placée entre la description et le prix */
  .et_pb_wc_images{
    margin:18px 0 22px !important;
  }

  /* 4. Galerie compacte : image principale réduite,
        vignettes empilées à droite */
  .et_pb_wc_images .woocommerce-product-gallery{
    display:flex !important;
    gap:10px;
    align-items:flex-start;
  }
  .et_pb_wc_images .woocommerce-product-gallery .flex-viewport,
  .et_pb_wc_images .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper{
    flex:1 1 auto;
    min-width:0;
  }
  .et_pb_wc_images .woocommerce-product-gallery ol.flex-control-thumbs{
    flex:0 0 62px;
    width:62px;
    display:flex;
    flex-direction:column;
    gap:8px;
    margin:0 !important;
    padding:0 !important;
  }
  .et_pb_wc_images .flex-control-thumbs li{
    width:100% !important;
    float:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  .et_pb_wc_images .flex-control-thumbs img{
    width:100% !important;
    border-radius:8px;
  }
}

/* ============================================================
   « AUTRES EXPÉRIENCES » — suppression du filet et des marges
   extérieures de la section (le trait visible au-dessus)
   ============================================================ */
.et_pb_wc_upsells{
  border-top:none !important;
  margin:0 !important;
}
@media (max-width:767px){
  .et_pb_wc_upsells .et_pb_module_inner{padding:40px 20px 48px !important;}
}

/* ============================================================
   SECTION BIENFAITS (.bf-ben) — module Code Divi, HTML par classes
   Desktop : 4 cartes en ligne · Mobile : grille 2×2 compacte
   ============================================================ */
.bf-ben{font-family:'Outfit',sans-serif;background:#f6f4ef;}
.bf-ben__inner{max-width:1080px;margin:0 auto;padding:72px 24px 20px;}
.bf-ben__head{text-align:center;max-width:640px;margin:0 auto 44px;}
.bf-ben__kicker{font-size:13px;font-weight:700;letter-spacing:2px;color:#e07d3b;text-transform:uppercase;}
.bf-ben__title{font-weight:800;font-size:34px;margin:10px 0 0;color:#102a3e;letter-spacing:-.5px;}
.bf-ben__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;}
.bf-ben__card{background:#fff;border-radius:18px;padding:28px;border:1px solid #ece8df;}
.bf-ben__icon{width:48px;height:48px;border-radius:12px;background:#eef5fb;display:flex;align-items:center;justify-content:center;font-size:24px;}
.bf-ben__name{font-weight:700;font-size:18px;margin:18px 0 8px;color:#16314a;}
.bf-ben__txt{font-family:'Figtree',sans-serif;font-size:14px;line-height:1.55;color:#5d6b78;margin:0;}

@media (max-width:767px){
  .bf-ben__inner{padding:44px 20px 12px;}
  .bf-ben__head{margin-bottom:28px;}
  .bf-ben__title{font-size:26px;}
  /* grille 2×2 compacte, façon KPI */
  .bf-ben__grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .bf-ben__card{padding:16px 14px;border-radius:14px;}
  .bf-ben__icon{width:38px;height:38px;border-radius:10px;font-size:19px;}
  .bf-ben__name{font-size:15px;margin:12px 0 6px;}
  .bf-ben__txt{font-size:12.5px;line-height:1.5;}
}

/* ============================================================
   GALERIE — suppression de la loupe (zoom plein écran)
   mobile ET desktop
   ============================================================ */
.woocommerce-product-gallery__trigger{
  display:none !important;
}

/* ============================================================
   BANNIÈRE BOUTIQUE — shortcode [bf_banner]
   ============================================================ */
.bf-banner{
  display:flex;align-items:center;gap:22px;
  background:#eef5fb;border:1px solid #d5e6f2;border-radius:16px;
  padding:20px 26px;
  font-family:'Figtree',system-ui,sans-serif;
}
.bf-banner__icon{
  width:46px;height:46px;border-radius:50%;flex:none;
  background:#002870;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.bf-banner__body{flex:1;min-width:0;}
.bf-banner__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.bf-banner__title{font-family:'Outfit',sans-serif;font-weight:800;font-size:18px;color:#102a3e;}
.bf-banner__badge{
  background:#e07d3b;color:#fff;font-family:'Outfit',sans-serif;font-weight:700;
  font-size:10px;letter-spacing:.6px;padding:3px 9px;border-radius:20px;
  text-transform:uppercase;white-space:nowrap;
}
.bf-banner__text{font-size:14px;line-height:1.5;color:#5d6b78;margin-top:4px;}
.bf-banner__text strong,
.bf-banner__text .woocommerce-Price-amount{color:#16314a;font-weight:700;}
.bf-banner__btn{
  flex:none;text-decoration:none !important;
  background:#002870;color:#fff !important;border-radius:12px;
  padding:13px 24px;font-family:'Outfit',sans-serif;font-weight:700;font-size:14px;
  white-space:nowrap;transition:background .15s;
}
.bf-banner__btn:hover{background:#0a3a8f;}

@media (max-width:767px){
  .bf-banner{flex-wrap:wrap;padding:18px;gap:14px;}
  .bf-banner__icon{width:40px;height:40px;font-size:17px;}
  .bf-banner__btn{flex:1 1 100%;text-align:center;}
}

/* ============================================================
   GRILLE BOUTIQUE (.bf-shop-grid) — module Boutique Divi
   Mêmes cartes que « Autres expériences », en 3 colonnes
   (3 → 2 tablette → 1 mobile)
   ============================================================ */
.bf-shop-grid ul.products{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  margin:0 !important;padding:0 !important;list-style:none !important;
}
.bf-shop-grid ul.products::before,
.bf-shop-grid ul.products::after{display:none !important;}

.bf-shop-grid ul.products li.product{
  position:relative;
  width:auto !important;float:none !important;clear:none !important;
  margin:0 !important;padding:0 0 24px !important;
  display:flex;flex-direction:column;
  background:#fff;border:1px solid #ece8df;border-radius:20px;
  overflow:hidden;box-sizing:border-box;cursor:pointer;
  transition:box-shadow .2s, transform .2s;
}
.bf-shop-grid ul.products li.product:hover{
  box-shadow:0 22px 44px -24px rgba(0,40,112,.5);
  transform:translateY(-4px);
}
.bf-shop-grid ul.products li.product:hover .bf-up__btn{
  background:#002870 !important;color:#fff !important;
}

.bf-shop-grid li.product a.woocommerce-LoopProduct-link{
  display:flex !important;flex-direction:column;flex:1;
  text-decoration:none !important;position:static;
}
.bf-shop-grid li.product a.woocommerce-LoopProduct-link::after{
  content:"";position:absolute;inset:0;z-index:1;
}

.bf-shop-grid li.product .et_shop_image,
.bf-shop-grid li.product span.et_shop_image{
  display:block !important;margin:0 0 24px !important;padding:0 !important;line-height:0;
}
.bf-shop-grid li.product .et_shop_image img,
.bf-shop-grid li.product img{
  width:100% !important;height:auto !important;
  aspect-ratio:4/3;object-fit:cover;
  margin:0 !important;border-radius:0 !important;display:block;
}
.bf-shop-grid li.product .et_overlay{display:none !important;}

.bf-shop-grid li.product .bf-up__kicker{
  position:absolute;top:14px;left:14px;z-index:3;
  display:inline-block;margin:0;
  background:rgba(255,255,255,.92);color:#002870;
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;
  padding:6px 12px;border-radius:20px;
  box-shadow:0 2px 8px rgba(16,42,62,.18);
}

.bf-shop-grid li.product h2.woocommerce-loop-product__title,
.bf-shop-grid li.product h3.woocommerce-loop-product__title,
.bf-shop-grid li.product .woocommerce-loop-product__title{
  font-family:'Outfit',sans-serif !important;
  font-weight:700 !important;font-size:20px !important;
  letter-spacing:.2px !important;color:#16314a !important;
  padding:0 24px !important;margin:0 0 10px !important;line-height:1.35 !important;
}
.bf-shop-grid li.product .bf-up__desc{
  font-family:'Figtree',sans-serif;font-size:14px;line-height:1.6;
  letter-spacing:.2px;color:#5d6b78;margin:0 0 16px;padding:0 24px;
}
.bf-shop-grid li.product .price,
.bf-shop-grid li.product .bf-up__price,
.bf-shop-grid li.product .bf-up__price .amount,
.bf-shop-grid li.product .bf-up__price bdi{
  font-family:'Outfit',sans-serif !important;
  font-weight:800 !important;font-size:28px !important;
  color:#c75f1e !important;line-height:1 !important;
}
.bf-shop-grid li.product .price{
  display:block;padding:0 24px;margin:auto 0 0 !important;
}
.bf-shop-grid li.product .price del,
.bf-shop-grid li.product .price ins{display:none !important;}

.bf-shop-grid li.product a.bf-up__btn,
.bf-shop-grid li.product .bf-up__btn{
  position:relative;z-index:2;
  display:block !important;margin:16px 24px 0 !important;
  text-align:center;text-decoration:none !important;
  border:2px solid #002870 !important;border-radius:12px !important;
  padding:13px !important;background:#fff !important;
  font-family:'Outfit',sans-serif !important;
  font-weight:700 !important;font-size:14.5px !important;
  color:#002870 !important;
  transition:background .15s,color .15s;
}
.bf-shop-grid li.product .added_to_cart,
.bf-shop-grid li.product a.add_to_cart_button,
.bf-shop-grid li.product .button:not(.bf-up__btn){display:none !important;}

@media (max-width:1024px){
  .bf-shop-grid ul.products{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width:560px){
  .bf-shop-grid ul.products{grid-template-columns:1fr;}
}

/* Mention « via Plateforme » sous la signature d'un avis */
.bf-avis__src{
  font-family:'Figtree',sans-serif;font-size:11.5px;color:#9aa6b1;
  text-decoration:none;margin-top:2px;display:inline-block;
}
a.bf-avis__src:hover{color:#5d6b78;text-decoration:underline;}

/* Cartes [bf_avis] intégrées dans la mise en page bf-rev (note à gauche, cartes à droite) */
.bf-rev__dyn{min-width:0;}
.bf-rev__dyn .bf-avis__grid{grid-template-columns:repeat(3,1fr);}
.bf-rev__dyn .bf-avis__card{border-radius:16px;}
@media (max-width:1024px){
  .bf-rev__dyn .bf-avis__grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:767px){
  /* mobile : la note pleine largeur au-dessus (déjà géré par bf-rev__layout),
     puis les cartes en carrousel (déjà géré par .bf-avis__grid) */
  .bf-rev__dyn .bf-avis__grid{display:flex;}
}

/* Étoiles du bloc de note généré par [bf_avis note="oui"] (partielles, grandes) */
.bf-rev__score .bf-avis__stars{font-size:22px;letter-spacing:3px;margin:6px 0 0;}
.bf-rev__score .bf-avis__stars + .bf-rev__sub{margin-top:10px;}

/* ============================================================
   [bf_avis] utilisé SEUL (sans note="oui") : conteneur centré
   avec marges latérales — plus de cartes bord à bord
   ============================================================ */
.bf-avis{
  max-width:1080px;
  margin-left:auto;margin-right:auto;
  padding-left:24px;padding-right:24px;
  box-sizing:border-box;
}
/* dans la section complète (note="oui"), le conteneur bf-rev__inner
   gère déjà largeur et marges : on neutralise le double cadrage */
.bf-rev__dyn .bf-avis{
  max-width:none;margin:0;padding:0;
}
@media (max-width:767px){
  .bf-avis{padding-left:16px;padding-right:16px;}
  .bf-rev__dyn .bf-avis{padding:0;}
}

/* ============================================================
   GRILLE D'AVIS — colonnes strictement égales (anti-débordement)
   minmax(0,1fr) empêche le contenu de dicter la largeur des cartes
   ============================================================ */
.bf-avis__grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}
.bf-rev__dyn .bf-avis__grid{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:18px;
}
.bf-avis__card{min-width:0;}
@media (max-width:1024px){
  .bf-rev__dyn .bf-avis__grid{grid-template-columns:repeat(2, minmax(0, 1fr)) !important;}
}
@media (max-width:767px){
  /* mobile : le carrousel reprend la main */
  .bf-avis__grid,
  .bf-rev__dyn .bf-avis__grid{
    display:flex !important;
    grid-template-columns:none !important;
  }
}

/* ============================================================
   AJUSTEMENTS ÉQUIPE (v1.19.0)
   ============================================================ */

/* 1. Textes justifiés (avis + réponses FAQ) — césure française
   pour éviter les grands blancs dans les colonnes étroites */
.bf-avis__txt,
.bf-rev__quote,
.bf-faq__a{
  text-align:justify;
  hyphens:auto;
  -webkit-hyphens:auto;
}

/* 3. Masquer le centre et la provenance sous les avis
   (données conservées en base — réactivable en supprimant ces lignes) */
.bf-avis__centre,
.bf-avis__src{
  display:none !important;
}

/* 2. Grille KPI : s'adapte à 3 OU 4 items (colonnes égales) */
.bf-kpi__grid{
  grid-template-columns:repeat(auto-fit, minmax(0, 1fr));
}
@media (max-width:767px){
  /* mobile : toujours 2 par ligne (3 items → 2 + 1 centré) */
  .bf-kpi__grid{grid-template-columns:repeat(2, 1fr);}
  .bf-kpi__item:last-child:nth-child(odd){grid-column:1 / -1;}
}

/* ============================================================
   3 ÉTAPES — shortcode [bf_etapes]
   ============================================================ */
.bf-steps{
  max-width:1080px;margin:0 auto;padding:0 24px;
  font-family:'Outfit',sans-serif;box-sizing:border-box;
}
.bf-steps__card{
  background:#fff;border:1px solid #ece8df;border-radius:18px;
  padding:34px 32px;
  display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:30px;
}
.bf-steps__num{font-weight:800;font-size:26px;color:#e07d3b;line-height:1;}
.bf-steps__title{font-weight:700;font-size:17px;color:#16314a;margin:10px 0 8px;}
.bf-steps__txt{
  font-family:'Figtree',sans-serif;font-size:14px;line-height:1.6;
  color:#5d6b78;margin:0;text-align:justify;hyphens:auto;-webkit-hyphens:auto;
}
@media (max-width:767px){
  .bf-steps{padding:0 16px;}
  .bf-steps__card{grid-template-columns:1fr;gap:22px;padding:24px 20px;}
}
