/* ===== BASE ===== */
* { box-sizing: border-box; }

html {
  overflow-x: hidden;
}

/* Bandeau blanc sous footer */
body {
  margin: 0 !important;
  padding-bottom: 0 !important;
}
#footer {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.footer-container-bottom {
  margin: 0 !important;
  padding: 0 !important;
}

/* ===== LADIES CBD - HOMEPAGE ===== */

.home-hero {
  background: #1a3a2a;
  border-radius: 16px;
  margin: 20px 20px 12px;
  padding: 50px 40px;
}
.home-hero__badge {
  display: inline-block;
  background: #2d6a4f;
  color: #9FE1CB;
  font-size: 12px;
  padding: 5px 14px;
  border-radius: 99px;
  margin-bottom: 16px;
}
.home-hero__title {
  font-size: 36px;
  font-weight: 700;
  color: #f5f0e8;
  line-height: 1.2;
  margin-bottom: 12px;
}
.home-hero__title em {
  font-style: normal;
  color: #EF9F27;
}
.home-hero__sub {
  font-size: 15px;
  color: #9FE1CB;
  margin-bottom: 24px;
  max-width: 480px;
}
.home-hero__ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.btn-hero-primary {
  background: #EF9F27;
  color: #412402;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 10px;
  text-decoration: none;
  display: inline-block;
}
.btn-hero-ghost {
  background: transparent;
  color: #f5f0e8;
  font-size: 14px;
  font-weight: 500;
  padding: 12px 20px;
  border-radius: 10px;
  border: 1px solid rgba(245,240,232,0.3);
  text-decoration: none;
  display: inline-block;
}

.home-cats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 12px 20px;
}
.home-cat {
  background: #fff;
  border: 0.5px solid #e0e0e0;
  border-radius: 14px;
  padding: 18px 12px 14px;
  text-align: center;
  text-decoration: none;
  color: inherit;
  display: block;
}
.home-cat__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.home-cat__name {
  font-size: 13px;
  font-weight: 600;
  color: #1a3a2a;
  margin-bottom: 3px;
}
.home-cat__sub { font-size: 11px; color: #888; }

.home-section-title {
  font-size: 22px;
  font-weight: 700;
  color: #1a3a2a;
  margin-bottom: 4px;
}
.home-section-sub {
  font-size: 13px;
  color: #888;
  margin-bottom: 16px;
}

.featured-products::before {
  content: 'Nos coups de cœur';
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: #1a3a2a;
  margin-bottom: 4px;
  padding: 0 20px;
}
.featured-products h2,
.featured-products .products-section-title {
  display: none !important;
}

.home-avis {
  background: #1a3a2a;
  border-radius: 16px;
  margin: 12px 20px;
  padding: 28px 32px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.home-avis__note {
  font-size: 44px;
  font-weight: 700;
  color: #EF9F27;
  line-height: 1;
}
.home-avis__stars { color: #EF9F27; font-size: 18px; margin: 4px 0; }
.home-avis__label { font-size: 12px; color: #9FE1CB; }
.home-avis__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  flex: 1;
}
.home-avis__card {
  background: rgba(245,240,232,0.07);
  border-radius: 10px;
  padding: 14px;
  border: 1px solid rgba(245,240,232,0.12);
}
.home-avis__stars-small { color: #EF9F27; font-size: 13px; margin-bottom: 6px; }
.home-avis__card p { font-size: 12px; color: #c8e6d4; line-height: 1.55; margin-bottom: 6px; }
.home-avis__card small { font-size: 11px; color: #6b9080; }

.home-nl { margin: 12px 20px 30px; }

/* ===== FOOTER ===== */
#footer .footer-container {
  background: #1a3a2a !important;
}
#footer p.h3 { color: #EF9F27 !important; }
#footer .links a,
#footer .block-contact a { color: #9FE1CB !important; }
#footer .links a:hover { color: #EF9F27 !important; }
.block_newsletter h3 { display: none !important; }
.block_newsletter .btn,
.block_newsletter button {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}
a.app-store,
a.google-play {
  display: none !important;
}

/* Header desktop : décoller l'icône compte du menu central.
   Le thème positionne #_desktop_user_info via le sélecteur
   #header .header-top .position-static #_desktop_user_info, qui dépend de
   la classe .position-static sur un parent. Cette classe peut disparaître
   selon les modules greffés (cas du reset ps_customersigninlink notamment).
   On force donc toutes les coordonnées en ciblant directement l'élément. */
@media (min-width: 992px) {
  #header #_desktop_user_info {
    position: absolute !important;
    top: 18px !important;
    right: 100px !important;
    z-index: 50;
  }
}

/* Wrapper du lien : pas de padding (créait un décalage vertical avec les autres
   icônes du header), juste assurer une zone cliquable suffisante via la taille
   du <i> + display inline-flex pour centrer verticalement avec les voisins. */
#_desktop_user_info .bon-tooltip,
#_desktop_user_info .user-info > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  z-index: 51;
  vertical-align: middle;
  line-height: 1;
}

#_desktop_user_info .bon-tooltip i {
  display: inline-block;
  font-size: 22px;
  line-height: 1;
  vertical-align: middle;
}

/* Mobile : aligner verticalement le wrapper avec les autres icônes du header
   (burger, search, cart). Le module ps_customersigninlink est greffé sur
   displayTop et apparaît dans la même ligne d'icônes en mobile. */
@media (max-width: 991px) {
  #_desktop_user_info {
    display: inline-flex !important;
    align-items: center;
    vertical-align: middle;
  }
  /* Cacher le popup login en mobile : pas de hover possible, et c'est moche
     si jamais ça apparaît. Le clic emmène directement sur /mon-compte. */
  #_desktop_user_info .bon-login-popup {
    display: none !important;
  }
}

/* Quickview : style du modal-header qui contient maintenant le titre du produit
   (déplacé depuis le modal-body pour qu'il soit toujours visible, pas scrollable) */
.modal.quickview .modal-header {
  border-bottom: 1px solid #c8e6d4;
  padding: 18px 24px;
  background: #fff;
  align-items: center;
}
.modal.quickview .modal-header h1.h1.quickview-title {
  font-size: 19px;
  font-weight: 700;
  color: #1a3a2a;
  margin: 0;
  flex: 1;
  text-transform: none;
  line-height: 1.3;
  letter-spacing: 0;
}
.modal.quickview .modal-header .popup-close {
  margin-left: 16px;
  flex-shrink: 0;
}

/* Logo Ladies CBD dans le footer (.block-contact-logo) :
   le thème Flowers utilise img-responsive (Bootstrap 3) qui ne contraint pas
   l'image sur cette version → le logo s'affichait à sa taille brute (2268×2835px).
   On force une taille raisonnable façon signature de marque. */
.block-contact-logo {
  display: inline-block;
  max-width: 160px;
  margin-bottom: 18px;
}
.block-contact-logo img,
.block-contact-logo .logo {
  max-width: 100% !important;
  height: auto !important;
}

/* ===== BADGES PRODUIT (listing) ===== */
/* Fond du badge — tous types */
li.product-flag,
li.product-flag.new,
li.product-flag.discount,
li.product-flag.pack,
li.product-flag.on-sale,
li.product-flag.online-only,
ul.product-flags li.product-flag {
  background: #1a3a2a !important;
  color: #fff !important;
}
/* Pseudo-éléments ruban du thème Flowers — override rose */
li.product-flag::before,
li.product-flag::after,
ul.product-flags li.product-flag::before,
ul.product-flags li.product-flag::after {
  background: #1a3a2a !important;
  border-color: #1a3a2a transparent transparent transparent !important;
  border-top-color: #1a3a2a !important;
  border-left-color: #1a3a2a !important;
}
li.product-flag.out_of_stock {
  background: #888 !important;
  color: #fff !important;
}

/* ===== PAGES CATÉGORIES ===== */

#category h1 {
  font-size: 28px;
  font-weight: 700;
  color: #1a3a2a;
  text-transform: none;
}

.subcategory-image { display: none !important; }

.subcategories h2,
.subcategories .h2 { display: none !important; }

h2.subcategory-heading { display: none !important; }

ul.subcategories-list.row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 0 0 24px 0 !important;
  padding: 0 !important;
}

ul.subcategories-list.row li {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

ul.subcategories-list.row li a.subcategory-name {
  display: block !important;
  background: #f0f7f4 !important;
  border: 0.5px solid #c8e6d4 !important;
  border-radius: 12px !important;
  padding: 14px 12px !important;
  text-align: center !important;
  color: #1a3a2a !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

ul.subcategories-list.row li a.subcategory-name:hover {
  background: #1a3a2a !important;
  color: #fff !important;
}

#category .product-miniature .card-img-top {
  height: 220px;
  overflow: hidden;
}
#category .product-miniature .card-img-top img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.btn-tertiary {
  background: #1a3a2a !important;
  color: #fff !important;
  border-color: #1a3a2a !important;
  border-radius: 8px !important;
}

/* Bouton Filtrer */
#search_filters_wrapper .btn,
button[data-target="#js-product-list-filter"],
.btn-filter {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
}

/* ===== BOUTONS LISTING PRODUITS ===== */

a.btn-view {
  display: none !important;
}

.product-miniature .thumbnail-container .ajax_add_to_cart_button,
.featured-products .thumbnail-container .ajax_add_to_cart_button {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #ffffff !important;
  border-radius: 8px !important;
}

.product-miniature .thumbnail-container .ajax_add_to_cart_button:hover,
.featured-products .thumbnail-container .ajax_add_to_cart_button:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
}

/* ===== BADGE QUICK VIEW (APERÇU RAPIDE) ===== */
/* Fix contraste 4.47 -> ~14:1, couleurs on-brand */

.thumbnail-container button.quick-view,
.product-miniature button.quick-view {
  background: #1a3a2a !important;
  color: #f5f0e8 !important;
  border: none !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  padding: 10px 20px !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  transition: background 0.2s ease, color 0.2s ease !important;
}

.thumbnail-container button.quick-view:hover,
.product-miniature button.quick-view:hover {
  background: #EF9F27 !important;
  color: #412402 !important;
}

/* ===== PAGE PRODUIT ===== */

/* Prix */
#product .current-price span,
#product .current-price,
body#product .price {
  color: #1a3a2a !important;
}

/* Bouton Ajouter au panier */
#product .add-to-cart,
#add-to-cart-or-refresh .add-to-cart {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  border-radius: 8px !important;
}
#product .add-to-cart:hover,
#add-to-cart-or-refresh .add-to-cart:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
}

/* Masquer les éléments sticky dupliqués */
#product .image-sticky-wrapper,
#product .bon-sticky-name {
  display: none !important;
}

/* Badge Nouveau — page produit */
body#product .product-cover ul.product-flags li.product-flag.new,
body#product .product-cover ul.product-flags li.product-flag {
  display: block !important;
  background: #1a3a2a !important;
  color: #fff !important;
}
body#product .product-cover ul.product-flags li.product-flag.out_of_stock {
  display: block !important;
  background: #888 !important;
  color: #fff !important;
}

/* Onglet "Détails du produit" */
#product .nav-tabs #tab-CREATIVE_TAB_DESCRIPTION_SHORT,
#product .nav-tabs .nav-item:first-child {
  display: none !important;
}
#product #CREATIVE_TAB_DESCRIPTION_SHORT {
  display: none !important;
}

/* Description pleine largeur */
.product-description-full {
  padding: 24px 0;
  border-top: 1px solid #eee;
  margin-top: 8px;
}

/* === FICHE PRODUIT : miniatures de photos additionnelles ===
   Slick.js (réintégré récemment via theme.js) wrappe les <li.thumb-container>
   dans une structure slick-list > slick-track et applique des styles INLINE
   (width: 0px, transform: translate3d..., width: 71500px sur le track...)
   qui ruinent complètement le layout des miniatures.
   
   On NEUTRALISE entièrement la machinerie slick avec !important pour battre
   les styles inline, et on force un layout flex-wrap simple :
   - le track perd ses translations et son width démesuré
   - les <li> reprennent leur 80x80
   - les flèches/dots slick sont cachées
   
   Note : on touche pas à JS, juste à du CSS. Slick continue de tourner en
   tâche de fond mais son rendu visuel est invisible. Si on veut vraiment
   le désactiver côté JS un jour, on appellera $('...').slick('unslick'). */

/* ─── Le conteneur ul redevient un simple flex ─── */
#product ul.product-images,
#product ul.product-images.slick-initialized,
#product ul.product-images.slick-slider {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 0 !important;
  margin: 12px 0 0 0 !important;
  list-style: none !important;
  width: auto !important;
}

/* ─── slick-list : neutralisée ─── */
#product .product-images .slick-list {
  overflow: visible !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

/* ─── slick-track : pas de translation, pas de width démesurée ─── */
#product .product-images .slick-track {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
  opacity: 1 !important;
  left: auto !important;
  top: auto !important;
}

/* ─── Les <li> miniatures : taille fixe 80x80 dans tous les états slick ─── */
#product ul.product-images > li.thumb-container,
#product .product-images li.thumb-container,
#product .product-images li.thumb-container.slick-slide,
#product .product-images li.thumb-container.slick-current,
#product .product-images li.thumb-container.slick-active,
#product .product-images li.thumb-container.slick-cloned {
  display: inline-block !important;
  width: 80px !important;
  height: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  flex: 0 0 80px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #c8e6d4 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  cursor: pointer;
  transition: border-color 0.15s ease;
  box-sizing: border-box;
}

/* Cacher les éventuels clones slick (slick duplique les slides pour le mode
   infinite, on n'en a pas besoin et ça crée des miniatures fantômes).
   Spécificité boostée (4 classes + 1 id + 1 élément) pour battre la règle
   d'inclusion ci-dessus qui inclut .slick-cloned dans ses cibles. */
#product .product-images li.thumb-container.slick-slide.slick-cloned,
#product .product-images li.thumb-container.slick-cloned,
#product ul.product-images li.slick-cloned,
#product ul.product-images li[aria-hidden="true"].slick-cloned {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  flex: 0 0 0 !important;
  border: none !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

/* ─── L'image dans la miniature : remplit le 80x80 ─── */
#product .product-images li.thumb-container img,
#product .product-images li.thumb-container img.thumb,
#product .product-images li.thumb-container img.js-thumb {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ─── Hover et état sélectionné ─── */
#product .product-images li.thumb-container:hover {
  border-color: #1a3a2a !important;
}
#product .product-images li.thumb-container img.selected,
#product .product-images li.thumb-container.slick-current {
  outline: 2px solid #1a3a2a !important;
  outline-offset: -2px;
  border-color: #1a3a2a !important;
}

/* ─── Flèches et dots slick : invisibles ─── */
#product .product-images .slick-prev,
#product .product-images .slick-next,
#product .product-images .slick-arrow,
#product .product-images .slick-dots,
#product .images-container .slick-prev,
#product .images-container .slick-next,
#product .images-container .slick-arrow {
  display: none !important;
}

/* ─── Sécurité : forcer le conteneur images à ne PAS déborder ─── */
#product .images-container,
#product .images-container .js-qv-mask {
  overflow: hidden !important;
}

/* Prix à partir de — masquer uniquement le doublon */
body#product .pricefrom-miniature {
  display: none !important;
}

/* Prix à partir de — style propre */
body#product .pricefrom {
  font-size: 12px;
  color: #888;
  font-weight: 400;
  text-transform: none;
}
body#product .pricefrom .pricefrom-price {
  color: #1a3a2a;
  font-weight: 600;
}

/* Boutons variantes — span.radio-label (structure Flowers/bontheme) */
body#product .product-variants-item span.radio-label {
  display: inline-block !important;
  border: 1px solid #c8e6d4 !important;
  border-radius: 8px !important;
  color: #1a3a2a !important;
  background: #f0f7f4 !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  outline: none !important;
  box-shadow: none !important;
  transition: all 0.15s ease !important;
  margin: 2px !important;
}
/* Sélectionné — .check ajouté par bontheme au clic */
body#product .product-variants-item span.radio-label.check {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  box-shadow: none !important;
}
/* Hover via label parent */
body#product .product-variants-item label:hover span.radio-label {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
}
/* Indisponible */
body#product .product-variants-item li.bon-attribute-disabled span.radio-label {
  opacity: 0.4 !important;
  cursor: not-allowed !important;
}
/* Masquer le radio natif */
body#product .product-variants-item input.input-radio {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 1px !important;
  height: 1px !important;
}

/* ===== BLOC RÉASSURANCE ===== */
.product-reassurance {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #eee;
}

.product-reassurance__item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f0f7f4;
  border: 0.5px solid #c8e6d4;
  border-radius: 10px;
  padding: 12px 14px;
}

.product-reassurance__icon {
  font-size: 22px;
  flex-shrink: 0;
}

.product-reassurance__item strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #1a3a2a;
  margin-bottom: 2px;
}

.product-reassurance__item span {
  font-size: 11px;
  color: #666;
}

/* ===== TABLEAU REMISES QUANTITÉ ===== */
#product .table-product-discounts {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 16px;
  border-radius: 10px;
  overflow: hidden;
  border: none;
}

#product .table-product-discounts thead tr {
  background: #1a3a2a;
}

#product .table-product-discounts thead th {
  color: #9FE1CB;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 10px 14px;
  border: none;
  text-align: center;
}

#product .table-product-discounts tbody tr {
  background: #f0f7f4;
  border-bottom: 1px solid #c8e6d4;
}

#product .table-product-discounts tbody tr:last-child {
  border-bottom: none;
}

#product .table-product-discounts tbody tr:hover {
  background: #e0f0ea;
}

#product .table-product-discounts tbody td {
  font-size: 13px;
  color: #1a3a2a;
  padding: 10px 14px;
  border: none;
  text-align: center;
}

#product .product-discounts-title {
  font-size: 12px;
  font-weight: 600;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

/* ===== PAGES COMPTE CLIENT ===== */

/* Dashboard — cards (ciblé sur #main uniquement, pas le footer) */
#my-account #main .links a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  background: #f0f7f4 !important;
  border: 1px solid #c8e6d4 !important;
  border-radius: 14px !important;
  padding: 28px 20px !important;
  text-decoration: none !important;
  color: #1a3a2a !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  min-height: 130px !important;
  transition: all 0.2s ease;
}

#my-account #main .links a:hover {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(26,58,42,0.15);
}

#my-account #main .links a i {
  font-size: 28px !important;
  color: #1a3a2a !important;
  margin-bottom: 12px !important;
}

#my-account #main .links a:hover i,
#my-account #main .links a:hover svg,
#my-account #main .links a:hover .material-icons {
  color: #EF9F27 !important;
  fill: #EF9F27 !important;
}

/* Déconnexion */
#my-account .logout {
  display: inline-block;
  color: #888;
  font-size: 13px;
  text-decoration: none;
  margin-top: 8px;
  padding: 8px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
}
#my-account .logout:hover {
  color: #1a3a2a;
  border-color: #1a3a2a;
}

/* Tableaux compte client */
body#history .table thead tr,
body#order-slip .table thead tr,
body#discount .table thead tr {
  background: #1a3a2a !important;
}

body#history .table thead th,
body#order-slip .table thead th,
body#discount .table thead th {
  color: #9FE1CB !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 12px 16px !important;
  border: none !important;
}

body#history .table tbody tr:hover,
body#order-slip .table tbody tr:hover,
body#discount .table tbody tr:hover {
  background: #f0f7f4;
}

body#history .table tbody td,
body#order-slip .table tbody td,
body#discount .table tbody td {
  font-size: 13px;
  color: #333;
  padding: 12px 16px;
  border: none;
  vertical-align: middle;
}

/* ===== PAGES CMS ===== */
.lcms { font-family: 'Segoe UI', Arial, sans-serif; color: #222; max-width: 860px; margin: 0 auto; padding: 0; }
.lcms-hero { background: #1a3a2a; border-radius: 14px; padding: 32px 36px; margin-bottom: 24px; }
.lcms-hero h2 { font-size: 26px; font-weight: 700; color: #f5f0e8; margin: 0 0 8px; }
.lcms-hero p { color: #9FE1CB; font-size: 14px; margin: 0; }
.lcms-badge { display: inline-block; background: #EF9F27; color: #412402; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 99px; margin-bottom: 14px; letter-spacing: .04em; text-transform: uppercase; }
.lcms-alert { background: #fff8ec; border: 1px solid #EF9F27; border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; font-size: 13px; color: #412402; display: flex; gap: 10px; align-items: flex-start; }
.lcms-alert strong { display: block; margin-bottom: 4px; }
.lcms-section { background: #fff; border: 1px solid #e8eee8; border-radius: 14px; overflow: hidden; margin-bottom: 18px; }
.lcms-section-head { background: #f0f7f4; border-bottom: 1px solid #e0ece6; padding: 16px 22px; display: flex; align-items: center; gap: 12px; }
.lcms-section-head h3 { font-size: 16px; font-weight: 700; color: #1a3a2a; margin: 0; }
.lcms-section-ico { width: 36px; height: 36px; background: #1a3a2a; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 17px; flex-shrink: 0; }
.lcms-section-body { padding: 20px 22px; }
.lcms-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.lcms-table tr { border-bottom: 1px solid #f0f0f0; }
.lcms-table tr:last-child { border-bottom: none; }
.lcms-table td { padding: 10px 8px; vertical-align: top; }
.lcms-table td:first-child { font-weight: 600; color: #1a3a2a; width: 60%; }
.lcms-table td:last-child { color: #EF9F27; font-weight: 700; text-align: right; }
.lcms-free { display: inline-block; background: #e8f5ee; color: #1a3a2a; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; margin-left: 8px; }
.lcms-tip { background: #f0f7f4; border-radius: 8px; padding: 12px 16px; font-size: 13px; color: #2d6a4f; margin-top: 16px; }
.lcms-zones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
.lcms-zone { background: #f8fbf9; border: 1px solid #e0ece6; border-radius: 8px; padding: 10px 14px; font-size: 12px; }
.lcms-zone strong { display: block; color: #1a3a2a; font-size: 13px; margin-bottom: 4px; }
.lcms-zone span { color: #888; }
.lcms-zone b { color: #EF9F27; }
.lcms-card { background: #fff; border: 1px solid #e8eee8; border-radius: 14px; padding: 26px 30px; margin-bottom: 16px; }
.lcms-card h3 { font-size: 15px; font-weight: 700; color: #1a3a2a; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 2px solid #f0f7f4; }
.lcms-row { display: flex; gap: 10px; margin-bottom: 10px; font-size: 13px; align-items: flex-start; }
.lcms-row-label { color: #888; min-width: 200px; flex-shrink: 0; }
.lcms-row-val { color: #222; font-weight: 500; }
.lcms-features { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 4px; }
.lcms-feature { background: #f0f7f4; border-radius: 10px; padding: 14px 16px; display: flex; gap: 12px; align-items: flex-start; }
.lcms-feature-ico { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.lcms-feature strong { display: block; font-size: 13px; color: #1a3a2a; margin-bottom: 3px; }
.lcms-feature span { font-size: 12px; color: #666; }
.lcms-cards-list { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.lcms-card-pill { background: #f5f5f5; border: 1px solid #ddd; border-radius: 8px; padding: 8px 14px; font-size: 12px; font-weight: 600; color: #333; }
.lcms-warn { background: #fff8ec; border: 1px solid #EF9F27; border-radius: 10px; padding: 14px 18px; font-size: 13px; color: #412402; margin-top: 16px; }
.lcms-art { background: #fff; border: 1px solid #e8eee8; border-radius: 14px; padding: 24px 28px; margin-bottom: 14px; }
.lcms-art h3 { font-size: 15px; font-weight: 700; color: #1a3a2a; margin: 0 0 14px; display: flex; align-items: center; gap: 10px; }
.lcms-art-num { display: inline-flex; align-items: center; justify-content: center; background: #1a3a2a; color: #EF9F27; font-size: 11px; font-weight: 700; min-width: 26px; height: 26px; border-radius: 99px; padding: 0 6px; flex-shrink: 0; }
.lcms-art p { font-size: 13px; color: #444; line-height: 1.75; margin: 0 0 10px; }
.lcms-art p:last-child { margin: 0; }
.lcms-art ul { font-size: 13px; color: #444; line-height: 1.8; padding-left: 18px; margin: 8px 0; }
.lcms-art a { color: #1a3a2a; }
.lcms-toc { background: #f0f7f4; border-radius: 12px; padding: 18px 22px; margin-bottom: 22px; font-size: 13px; }
.lcms-toc strong { display: block; color: #1a3a2a; margin-bottom: 10px; }
.lcms-toc a { color: #2d6a4f; text-decoration: none; display: block; padding: 4px 0; border-bottom: 1px solid #e0ece6; }
.lcms-toc a:last-child { border-bottom: none; }
.lcms-toc a:hover { color: #EF9F27; }
.lcms-steps { counter-reset: step; list-style: none; padding: 0; margin: 10px 0; }
.lcms-steps li { counter-increment: step; font-size: 13px; color: #444; padding: 8px 0 8px 36px; border-bottom: 1px solid #f5f5f5; position: relative; }
.lcms-steps li::before { content: counter(step); position: absolute; left: 0; top: 8px; background: #EF9F27; color: #412402; font-size: 11px; font-weight: 700; width: 22px; height: 22px; border-radius: 99px; display: flex; align-items: center; justify-content: center; }
.lcms-rights { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-top: 14px; }
.lcms-right { background: #f0f7f4; border-radius: 10px; padding: 14px; text-align: center; }
.lcms-right-ico { font-size: 22px; margin-bottom: 6px; }
.lcms-right strong { display: block; font-size: 12px; font-weight: 700; color: #1a3a2a; margin-bottom: 3px; }
.lcms-right span { font-size: 11px; color: #666; }
.lcms-contact-box { background: #1a3a2a; border-radius: 12px; padding: 20px 24px; margin-top: 20px; display: flex; align-items: center; gap: 16px; }
.lcms-contact-box p { color: #9FE1CB; font-size: 13px; margin: 0; }
.lcms-contact-box a { color: #EF9F27; font-weight: 600; text-decoration: none; }

/* ===== PAGE CONNEXION ===== */
body#authentication #content-wrapper {
  background: #f0f7f4;
  padding: 48px 20px;
}
body#authentication #main {
  max-width: 560px;
  margin: 0 auto;
}
/* Titre */
body#authentication h1 {
  font-size: 22px;
  font-weight: 700;
  color: #1a3a2a;
  text-align: center;
  margin-bottom: 24px;
}
/* Reset wrappers PrestaShop / Flowers */
body#authentication section.card,
body#authentication .page-content,
body#authentication .login-form {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
/* Card = div#login-form */
body#authentication #login-form {
  background: #fff !important;
  border-radius: 16px !important;
  border: 1px solid #c8e6d4 !important;
  border-top: 4px solid #1a3a2a !important;
  padding: 36px 48px !important;
  box-shadow: 0 4px 20px rgba(26,58,42,0.07) !important;
}
/* Reset inner cards */
body#authentication #login-form form,
body#authentication #login-form .card,
body#authentication #login-form .card-block {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
/* Casser le layout Bootstrap horizontal : col-* → full width */
body#authentication .form-group [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
}
body#authentication .form-group .row {
  margin: 0 !important;
}
/* Labels verticaux */
body#authentication .form-group {
  display: block !important;
  margin-bottom: 20px !important;
}
body#authentication .form-group label {
  display: block !important;
  width: 100% !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1a3a2a !important;
  margin-bottom: 7px !important;
  text-align: left !important;
}
/* Inputs full-width */
body#authentication .form-control {
  display: block !important;
  width: 100% !important;
  border: 1px solid #c8e6d4 !important;
  border-radius: 8px !important;
  padding: 11px 14px !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box !important;
}
body#authentication .form-control:focus {
  border-color: #1a3a2a !important;
  box-shadow: 0 0 0 3px rgba(26,58,42,0.08) !important;
  outline: none !important;
}
/* Input-group mot de passe — contenu dans le card */
body#authentication .input-group {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
body#authentication .input-group .form-control {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  border-radius: 8px 0 0 8px !important;
}
body#authentication .input-group-btn {
  flex-shrink: 0 !important;
  display: flex !important;
}
body#authentication .input-group-btn .btn,
body#authentication .btn-show-password {
  border: 1px solid #c8e6d4 !important;
  border-left: none !important;
  background: #f0f7f4 !important;
  color: #1a3a2a !important;
  border-radius: 0 8px 8px 0 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 0 14px !important;
  white-space: nowrap !important;
}
body#authentication .forgot-password {
  text-align: center;
  margin: 16px 0 4px;
}
body#authentication .forgot-password a {
  font-size: 13px;
  color: #2d6a4f;
  text-decoration: none;
}
body#authentication .btn-primary {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  width: 100% !important;
  padding: 13px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0.04em !important;
  margin-top: 10px !important;
  display: block !important;
}
body#authentication .btn-primary:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}
/* "Pas de compte" hors card */
body#authentication .no-account {
  text-align: center;
  margin-top: 20px;
  font-size: 13px;
  color: #666;
}
body#authentication .no-account a {
  color: #1a3a2a;
  font-weight: 600;
  text-decoration: none;
}

body#authentication .no-account a {
  color: #1a3a2a;
  font-weight: 600;
  text-decoration: none;
}

/* ===== MODAL AJOUT PANIER ===== */
#blockcart-modal .modal-content {
  border-radius: 16px !important;
  border: none !important;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(26,58,42,0.15) !important;
}
#blockcart-modal .modal-header {
  background: #f0f7f4;
  border-bottom: 1px solid #c8e6d4;
  padding: 14px 24px;
}
#blockcart-modal .modal-title h4,
#blockcart-modal .modal-title {
  color: #1a3a2a !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
#blockcart-modal .modal-title i,
#blockcart-modal .modal-title .material-icons {
  color: #2d6a4f !important;
}
#blockcart-modal .modal-body {
  padding: 24px !important;
}
/* Infos produit dans la modal */
#blockcart-modal .product-name {
  font-weight: 700 !important;
  color: #1a3a2a !important;
  font-size: 15px !important;
}
#blockcart-modal .cart-products-count {
  color: #666;
  font-size: 13px;
}
#blockcart-modal .divide-right {
  border-right: 1px solid #eee;
}
/* Footer boutons */
#blockcart-modal .modal-footer,
#blockcart-modal .cart-content-btn {
  padding: 16px 24px !important;
  border-top: 1px solid #eee;
  display: flex !important;
  gap: 12px !important;
  justify-content: flex-end !important;
  flex-wrap: wrap;
}
/* Bouton continuer les achats */
#blockcart-modal .btn-secondary {
  background: transparent !important;
  border: 1px solid #c8e6d4 !important;
  color: #1a3a2a !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
#blockcart-modal .btn-secondary:hover {
  background: #f0f7f4 !important;
  border-color: #1a3a2a !important;
}
/* Bouton commander */
#blockcart-modal .btn-primary,
#blockcart-modal a.btn.btn-primary {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
#blockcart-modal .btn-primary:hover,
#blockcart-modal a.btn.btn-primary:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}

/* ===== PAGE PANIER ===== */
body#cart h1 {
  font-size: 22px;
  font-weight: 700;
  color: #1a3a2a;
  text-transform: none;
}
/* Résumé panier — card avec accent vert */
body#cart .cart-grid-right .card,
body#cart .cart-summary {
  border-radius: 16px !important;
  border: 1px solid #c8e6d4 !important;
  border-top: 4px solid #1a3a2a !important;
  box-shadow: 0 2px 12px rgba(26,58,42,0.05) !important;
}
body#cart .cart-grid-right .card-block {
  padding: 20px !important;
}
/* Bouton commander panier */
body#cart .btn-primary,
body#cart a.btn-primary {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 12px 20px !important;
  font-weight: 600 !important;
}
body#cart .btn-primary:hover,
body#cart a.btn-primary:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}
/* Input code promo */
body#cart .promo-name .cart-summary-line {
  color: #EF9F27;
  font-weight: 600;
}

/* ===== TUNNEL DE COMMANDE (checkout) ===== */

/* Étapes — numéros et titres */
body#checkout .step-title {
  font-weight: 700 !important;
  color: #1a3a2a !important;
  font-size: 15px !important;
  letter-spacing: 0.03em !important;
}
body#checkout .-complete .step-title,
body#checkout .step-done .step-title {
  color: #2d6a4f !important;
}
body#checkout .step-number,
body#checkout .step-title .step-number {
  background: #1a3a2a !important;
  color: #fff !important;
}
body#checkout .-complete .step-number,
body#checkout .step-done .step-number {
  background: #2d6a4f !important;
}

/* Champs du tunnel */
body#checkout .form-control {
  border: 1px solid #c8e6d4 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
}
body#checkout .form-control:focus {
  border-color: #1a3a2a !important;
  box-shadow: 0 0 0 3px rgba(26,58,42,0.08) !important;
  outline: none !important;
}
body#checkout label {
  font-size: 13px;
  font-weight: 500;
  color: #333;
}

/* Bouton CONTINUER */
body#checkout .btn-primary {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 12px 24px !important;
  font-weight: 600 !important;
}
body#checkout .btn-primary:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}
/* Bouton final paiement */
body#checkout #payment-confirmation button,
body#checkout #payment-confirmation .btn {
  background: #1a3a2a !important;
  border-color: #1a3a2a !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 14px 28px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
}
body#checkout #payment-confirmation button:hover,
body#checkout #payment-confirmation .btn:hover {
  background: #EF9F27 !important;
  border-color: #EF9F27 !important;
  color: #412402 !important;
}
/* Alertes d'erreur → amber */
body#checkout .alert-danger,
body#checkout .js-error,
body#checkout .notification.alert-danger {
  background: #fff8ec !important;
  border: 1px solid #EF9F27 !important;
  border-radius: 10px !important;
  color: #412402 !important;
  padding: 12px 16px !important;
}
/* Résumé commande côté droit */
body#checkout .cart-grid-right .card,
body#checkout .checkout-step .card {
  border-radius: 14px !important;
  border: 1px solid #c8e6d4 !important;
}
body#checkout .cart-grid-right .card {
  border-top: 4px solid #1a3a2a !important;
}
/* Liens du tunnel */
body#checkout a {
  color: #2d6a4f;
}
body#checkout a:hover {
  color: #EF9F27;
}
/* Ligne total */
body#checkout .cart-summary-totals {
  font-weight: 700;
  color: #1a3a2a;
}

/* ============================================ */
/* ===== ANTI-ROSE — Overrides résiduels Flowers ===== */
/* ============================================ */

/* Header dropdown utilisateur (clic sur icône compte → CONNEXION + CREATE ACCOUNT) */
#_desktop_user_info .btn,
#_desktop_user_info a.btn,
#_desktop_user_info .btn-primary,
#_desktop_user_info .btn-secondary,
#_mobile_user_info .btn,
#_mobile_user_info a.btn,
.user-info .btn,
.user-info a.btn,
.popup-over .btn,
.popup-over a.btn,
.popup-content .btn,
.popup-content a.btn,
.dropdown-menu .btn,
.dropdown-menu a.btn {
  background: #1a3a2a !important;
  background-color: #1a3a2a !important;
  color: #f5f0e8 !important;
  border-color: #1a3a2a !important;
  background-image: none !important;
}

#_desktop_user_info .btn:hover,
#_desktop_user_info a.btn:hover,
#_mobile_user_info .btn:hover,
.user-info .btn:hover,
.user-info a.btn:hover,
.popup-over .btn:hover,
.popup-content .btn:hover,
.dropdown-menu .btn:hover {
  background: #EF9F27 !important;
  background-color: #EF9F27 !important;
  color: #412402 !important;
  border-color: #EF9F27 !important;
  background-image: none !important;
}

/* Comportement dropdown pour le popup login Flowers (.bon-login-popup)
   Après reset du module ps_customersigninlink, le popup s'affichait inline
   au lieu d'être caché par défaut. On rétablit le comportement attendu :
   caché par défaut, visible au survol de l'icône utilisateur.
   IMPORTANT : ne pas toucher au position de #_desktop_user_info — il est déjà
   en position:absolute dans le thème Flowers, ce qui en fait déjà un
   contexte de positionnement pour notre popup absolu. */
#_desktop_user_info .bon-login-popup {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 100;
  background: #ffffff;
  border: 1px solid #c8e6d4;
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
  min-width: 200px;
  margin-top: 6px;
}

/* Au survol de tout le bloc user-info, on révèle le popup */
#_desktop_user_info:hover .bon-login-popup,
#_desktop_user_info .user-info:hover .bon-login-popup {
  display: block;
}

/* Pseudo-élément invisible qui crée un pont entre l'icône et le popup
   pour éviter que le hover se casse quand la souris traverse le gap */
#_desktop_user_info .bon-login-popup::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 0;
  right: 0;
  height: 10px;
}

/* Boutons CONNEXION et CREATE empilés en colonne pleine largeur dans le popup */
#_desktop_user_info .bon-login-popup-button {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#_desktop_user_info .bon-login-popup-button .bon-login {
  width: 100%;
  text-align: center;
  display: inline-block;
  margin: 0;
}

/* Bouton "Prévenez-moi quand disponible" sur fiche produit en rupture
   (module ps_emailalerts — vrai sélecteur sur ce site : .js-mailalert-add) */
button.js-mailalert-add,
.js-mailalert-add,
.js-mailalert button,
.js-mailalert .btn,
.js-mailalert .btn-primary {
  background: #1a3a2a !important;
  background-color: #1a3a2a !important;
  background-image: none !important;
  color: #f5f0e8 !important;
  border-color: #1a3a2a !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

button.js-mailalert-add:hover,
.js-mailalert-add:hover,
.js-mailalert button:hover,
.js-mailalert .btn:hover {
  background: #EF9F27 !important;
  background-color: #EF9F27 !important;
  background-image: none !important;
  color: #412402 !important;
  border-color: #EF9F27 !important;
}

/* État disabled (avant cocher CGV) : garder l'identité visuelle mais opacité réduite */
button.js-mailalert-add:disabled,
.js-mailalert-add:disabled,
.js-mailalert button:disabled {
  background: #1a3a2a !important;
  background-color: #1a3a2a !important;
  background-image: none !important;
  color: #f5f0e8 !important;
  border-color: #1a3a2a !important;
  opacity: 0.65;
  cursor: not-allowed;
}

/* Input email du module Prévenez-moi (template override flowers-child) */
.js-mailalert input[type="email"],
.js-mailalert .js-mailalert-email,
.js-mailalert .form-control {
  display: block;
  width: 100%;
  border: 1px solid #c8e6d4;
  border-radius: 8px;
  padding: 11px 14px;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 10px 0;
  text-align: left;
  background: #ffffff;
  color: #1a3a2a;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}

.js-mailalert input[type="email"]:focus,
.js-mailalert .js-mailalert-email:focus {
  border-color: #1a3a2a;
  box-shadow: 0 0 0 3px rgba(26,58,42,0.08);
  outline: none;
}

.js-mailalert input[type="email"]::placeholder {
  color: #aaa;
  font-style: italic;
}

/* ============================================ */
/* ===== FILTRES FACETTES — Style Ladies CBD ===== */
/* ============================================ */

/* Si la page n'a aucune facette à afficher (catégorie sans filtres
   configurés, ou produits sans attributs filtrables), on cache tout
   le système de filtres (wrapper desktop + bouton FILTRER mobile)
   pour éviter d'afficher un container vide. Nécessite :has() — supporté
   par tous les navigateurs modernes depuis 2022/2023. */
#search_filters_wrapper:not(:has(.facet)) {
  display: none !important;
}

body:not(:has(.facet)) #search_filter_toggler,
body:not(:has(.facet)) .filter-button.hidden-md-up,
body:not(:has(.facet)) .hidden-md-up.filter-button {
  display: none !important;
}

.lcd-filters-wrapper {
  max-width: 1400px;
  margin: 0 auto 28px;
  padding: 0 15px;
}

.lcd-filters-wrapper #search_filters {
  background: #f0f7f4;
  border: 1px solid #c8e6d4;
  border-radius: 12px;
  padding: 4px 28px;
}

/* Cache TOUT heading direct dans #search_filters (FILTRER PAR, Filter By, etc.) */
.lcd-filters-wrapper #search_filters > h1,
.lcd-filters-wrapper #search_filters > h2,
.lcd-filters-wrapper #search_filters > h3,
.lcd-filters-wrapper #search_filters > h4,
.lcd-filters-wrapper #search_filters > h5,
.lcd-filters-wrapper #search_filters > h6,
.lcd-filters-wrapper #search_filters > .h2,
.lcd-filters-wrapper #search_filters > .h3,
.lcd-filters-wrapper #search_filters > .h4,
.lcd-filters-wrapper #search_filters > .h5,
.lcd-filters-wrapper #search_filters > .h6 {
  display: none !important;
}

/* Anti-doublon : le module rend 2 titres par facette
   (un .facet-title statique + un .title dans le trigger collapse mobile).
   On garde uniquement le premier .facet-title, on cache tout le reste */
.lcd-filters-wrapper .facet h6:not(.facet-title),
.lcd-filters-wrapper .facet .filter-selector,
.lcd-filters-wrapper .facet .filter-selector-wrapper,
.lcd-filters-wrapper .facet .facet-header .filter-selector-wrapper {
  display: none !important;
}

/* Chaque facette = bloc séparé par une ligne fine */
.lcd-filters-wrapper .facet {
  padding: 18px 0;
  margin: 0;
  border-bottom: 1px solid #c8e6d4;
}

.lcd-filters-wrapper .facet:last-child {
  border-bottom: none;
}

/* Titre de facette (TYPE DE SAVEUR, RATIO PG/VG, MARQUE…) */
.lcd-filters-wrapper .facet .facet-title,
.lcd-filters-wrapper .facet .h6.facet-title,
.lcd-filters-wrapper .facet > h6 {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #1a3a2a;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin: 0 0 14px 0;
  padding: 0;
  border: none;
}

/* Cache les icônes/flèches collapse natives du module */
.lcd-filters-wrapper .facet .navbar-toggler,
.lcd-filters-wrapper .facet .material-icons,
.lcd-filters-wrapper .facet .arrow,
.lcd-filters-wrapper .facet .title .pull-xs-right {
  display: none !important;
}

/* Liste des items : verticale, 2 colonnes en desktop */
.lcd-filters-wrapper .facet ul,
.lcd-filters-wrapper .facet ul.collapse {
  list-style: none;
  margin: 0;
  padding: 0;
  display: block !important;
  height: auto !important;
}

.lcd-filters-wrapper .facet li {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
  width: 49%;
  vertical-align: top;
}

/* Cache l'input natif TOTALEMENT (display:none plus aggressif qu'opacity)
   Le clic sur le label déclenche quand même l'input via l'attribut for=" */
.lcd-filters-wrapper input[type="checkbox"],
.lcd-filters-wrapper input[type="radio"],
.lcd-filters-wrapper .facet input[type="checkbox"],
.lcd-filters-wrapper .facet input[type="radio"],
#search_filters_wrapper input[type="checkbox"],
#search_filters_wrapper input[type="radio"] {
  display: none !important;
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Cache les éventuels spans visuels custom checkbox du module
   (sauf .magnitude qui contient le compteur "(N)") */
.lcd-filters-wrapper .facet .custom-checkbox,
.lcd-filters-wrapper .facet .custom-checkbox span.color,
.lcd-filters-wrapper .facet .custom-checkbox > span:not(.magnitude),
.lcd-filters-wrapper .facet .ps-shown-by-js,
.lcd-filters-wrapper .facet i.material-icons {
  display: none !important;
}

/* Le label = la ligne cliquable */
.lcd-filters-wrapper .facet .facet-label,
.lcd-filters-wrapper .facet label.facet-label {
  display: flex !important;
  align-items: center;
  padding: 5px 0;
  margin: 0;
  cursor: pointer;
  font-size: 14px;
  color: #1a3a2a;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  transition: color .15s ease;
}

.lcd-filters-wrapper .facet .facet-label:hover {
  color: #EF9F27;
}

/* Custom checkbox visuel devant chaque label */
.lcd-filters-wrapper .facet .facet-label::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  min-width: 16px;
  border: 1.5px solid #c8e6d4;
  border-radius: 3px;
  margin-right: 10px;
  background: #ffffff center center no-repeat;
  background-size: 12px 12px;
  flex-shrink: 0;
  transition: all .15s ease;
}

/* État coché : carré vert foncé + check amber */
.lcd-filters-wrapper .facet .facet-label.active::before,
.lcd-filters-wrapper .facet .facet-label.checked::before,
.lcd-filters-wrapper .facet li.active .facet-label::before {
  background-color: #1a3a2a;
  border-color: #1a3a2a;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23EF9F27' d='M6.2 11.5l-3.5-3.5 1.4-1.4L6.2 8.7l5.7-5.7 1.4 1.4z'/%3E%3C/svg%3E");
}

/* Le lien à l'intérieur du label : transparent, hérite couleur */
.lcd-filters-wrapper .facet .facet-label a,
.lcd-filters-wrapper .facet .facet-label .search-link {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;
  display: inline;
}

.lcd-filters-wrapper .facet .facet-label a:hover {
  color: inherit;
  text-decoration: none;
}

/* Compteur (1) (2) (33)… */
.lcd-filters-wrapper .facet .facet-label .magnitude {
  color: #6a8073;
  font-size: 12px;
  font-weight: 400;
  margin-left: 4px;
}

/* Bouton "Tout effacer" en bas du widget */
.lcd-filters-wrapper .js-search-filters-clear-all,
.lcd-filters-wrapper a.clear-all-wrapper {
  display: inline-block;
  padding: 6px 14px;
  background: #EF9F27;
  color: #412402;
  border: none;
  border-radius: 100px;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
  margin-top: 10px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.lcd-filters-wrapper .js-search-filters-clear-all:hover,
.lcd-filters-wrapper a.clear-all-wrapper:hover {
  background: #1a3a2a;
  color: #f5f0e8;
  text-decoration: none;
}

/* Filtres actifs (chips au-dessus du listing) */
#js-active-search-filters {
  max-width: 1400px;
  margin: 0 auto 16px;
  padding: 0 15px;
}

#js-active-search-filters .active-filter-title {
  display: none;
}

#js-active-search-filters .filter-block {
  display: inline-flex;
  align-items: center;
  background: #1a3a2a;
  color: #f5f0e8;
  padding: 5px 12px;
  border-radius: 100px;
  font-size: 12px;
  margin: 0 6px 6px 0;
  gap: 6px;
}

#js-active-search-filters .filter-block .close {
  color: #EF9F27;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  text-shadow: none;
  opacity: 1;
  font-weight: 700;
}

/* Bouton "Fermer" caché par défaut (visible seulement en mobile via media query) */
#lcd-filters-close {
  display: none;
}

/* ===== MOBILE — en dernier pour écraser toutes les règles desktop ===== */
@media (max-width: 767px) {

  .home-hero {
    margin: 10px;
    padding: 30px 20px;
    border-radius: 12px;
  }
  .home-hero__title { font-size: 26px; }
  .home-hero__ctas { flex-direction: column; }
  .btn-hero-primary, .btn-hero-ghost {
    width: 100%;
    text-align: center;
    display: block;
  }
  .home-cats {
    grid-template-columns: repeat(2, 1fr);
    margin: 10px;
    gap: 8px;
  }
  .home-avis {
    flex-direction: column;
    margin: 10px;
    padding: 20px;
    gap: 16px;
  }
  .home-avis__cards { grid-template-columns: 1fr; }
  .home-nl { margin: 10px; }

  /* Sous-catégories : 2 colonnes */
  ul.subcategories-list.row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  ul.subcategories-list.row li a.subcategory-name {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
  }

  /* Produits : 2 colonnes */
  .products-grid {
    display: flex !important;
    flex-wrap: wrap !important;
  }
  .products-grid .product-miniature {
    width: 50% !important;
    float: left !important;
    padding: 4px !important;
  }
  .product-miniature .card-img-top {
    height: 160px !important;
  }
  .product-miniature .card-img-top img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* Listing mobile */
  #js-product-list-top { overflow: hidden; }
  .products-selection { flex-wrap: wrap; }

  /* Réassurance mobile : 1 colonne */
  .product-reassurance {
    grid-template-columns: 1fr;
  }

  /* CMS mobile */
  .lcms-hero { padding: 22px 18px; }
  .lcms-features, .lcms-zones, .lcms-rights { grid-template-columns: 1fr; }
  .lcms-row { flex-direction: column; gap: 2px; }
  .lcms-row-label { min-width: unset; }

  /* Footer mobile */
  #footer .footer-container * {
    color: #9FE1CB !important;
  }
  #footer p.h3,
  #footer .links__title {
    color: #EF9F27 !important;
  }

  /* Breadcrumb visible sur mobile (override du hidden-sm-down du thème Flowers) */
  nav.breadcrumb.hidden-sm-down {
    display: flex !important;
    flex-wrap: wrap;
    font-size: 12px;
    padding: 8px 12px;
    margin: 8px 10px 12px 10px;
    background: transparent;
    line-height: 1.4;
  }

  /* Bouton FILTRER mobile : passer du rose du thème Flowers (.btn-secondary)
     à la charte Ladies CBD (vert foncé / amber au hover) */
  body #search_filter_toggler.btn,
  body #search_filter_toggler.btn-secondary {
    background: #1a3a2a !important;
    background-color: #1a3a2a !important;
    border: 1px solid #1a3a2a !important;
    color: #f5f0e8 !important;
    box-shadow: none !important;
    font-weight: 600;
    letter-spacing: 0.5px;
  }
  body #search_filter_toggler.btn:hover,
  body #search_filter_toggler.btn:active,
  body #search_filter_toggler.btn:focus,
  body #search_filter_toggler.btn-secondary:hover,
  body #search_filter_toggler.btn-secondary:active,
  body #search_filter_toggler.btn-secondary:focus {
    background: #EF9F27 !important;
    background-color: #EF9F27 !important;
    border-color: #EF9F27 !important;
    color: #412402 !important;
    box-shadow: none !important;
  }

  /* ===== FILTRES FACETTES MOBILE — Panel overlay ===== */
  /* En mobile : 1 colonne au lieu de 2 pour les items de chaque facette */
  .lcd-filters-wrapper .facet li {
    width: 100%;
    display: block;
  }

  /* GARDE-FOU : si theme.js a quand même caché #content-wrapper avant
     notre intercept, on le force visible quand notre overlay est ouvert.
     La classe lcd-filters-open est ajoutée au body par notre JS. */
  body.lcd-filters-open #content-wrapper,
  body.lcd-filters-open #footer {
    display: block !important;
  }

  /* FORCE VISIBILITY : quand l'overlay est ouvert, on déverrouille
     tous les éléments internes au cas où le module ps_facetedsearch
     aurait posé des classes Bootstrap hide-* sur ses descendants */
  .lcd-filters-wrapper:not(.hidden-sm-down) #search_filters,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet-title,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet h6,
  .lcd-filters-wrapper:not(.hidden-sm-down) .h6 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .lcd-filters-wrapper:not(.hidden-sm-down) .facet ul,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet ul.collapse,
  .lcd-filters-wrapper:not(.hidden-sm-down) .collapse {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
  }

  .lcd-filters-wrapper:not(.hidden-sm-down) .facet li,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet li.facet-label-wrapper {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    opacity: 1 !important;
  }

  .lcd-filters-wrapper:not(.hidden-sm-down) .facet-label,
  .lcd-filters-wrapper:not(.hidden-sm-down) label.facet-label {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Force la visibilité des éléments .hidden-sm-down internes pour que
     les checkboxes et leurs containers s'affichent dans l'overlay mobile */
  .lcd-filters-wrapper:not(.hidden-sm-down) .hidden-sm-down,
  .lcd-filters-wrapper:not(.hidden-sm-down) .hidden-xs-down {
    display: block !important;
  }

  /* MAIS : cache spécifiquement le titre DESKTOP des facettes (enfant direct
     de .facet) qui ferait doublon avec le titre MOBILE dans .title.hidden-md-up.
     Specificité 0,0,4,1 > 0,0,3,0 de la règle force-visibility ci-dessus */
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet > p.facet-title.hidden-sm-down,
  .lcd-filters-wrapper:not(.hidden-sm-down) .facet > .facet-title.hidden-sm-down {
    display: none !important;
  }

  /* Quand le bouton FILTRER retire la classe hidden-sm-down, le panel s'ouvre en plein écran */
  .lcd-filters-wrapper:not(.hidden-sm-down) {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: #ffffff;
    margin: 0;
    padding: 70px 16px 24px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .lcd-filters-wrapper:not(.hidden-sm-down) #search_filters {
    background: transparent;
    border: none;
    padding: 0;
  }

  /* Bouton Fermer visible quand le panel est ouvert en mobile */
  .lcd-filters-wrapper:not(.hidden-sm-down) #lcd-filters-close {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 10000;
    background: #1a3a2a;
    color: #f5f0e8;
    border: none;
    padding: 9px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
  }

  .lcd-filters-wrapper:not(.hidden-sm-down) #lcd-filters-close span {
    font-size: 16px;
    line-height: 1;
  }

  /* ===== BLOG ets_blog — Sidebar (left-column) en bas sur mobile ===== */
  body#ets_blog_page #content-wrapper {
    display: flex;
    flex-direction: column;
  }
  body#ets_blog_page #content-wrapper > #left-column {
    order: 2;
    margin-top: 30px;
  }
  body#ets_blog_page #content-wrapper > #content,
  body#ets_blog_page #content-wrapper > #center-column,
  body#ets_blog_page #content-wrapper > .col-xs-12:not(#left-column):not(#right-column) {
    order: 1;
  }
  body#ets_blog_page #content-wrapper > #right-column {
    order: 3;
  }

}