/**
 * L'Épicerie de Margaux - Thème Custom
 * =====================================
 * Palette de couleurs du logo :
 * - Primary (Vert foncé): #0D5B4C
 * - Secondary (Beige/Pêche): #F5D1B7
 * - Accent (Orange/Caramel): #DD7E0C
 */

/* ==========================================
   VARIABLES CSS - OVERRIDE BOOTSTRAP
   ========================================== */

/* IMPORTANT: Force override des variables Bootstrap pour tout le site */
:root,
html,
body,
*,
*::before,
*::after {
  --epicerie-primary: #0D5B4C;
  --epicerie-primary-light: #0f6d5c;
  --epicerie-primary-dark: #0a4a3e;
  --epicerie-secondary: #F5D1B7;
  --epicerie-secondary-light: #faf0e6;
  --epicerie-secondary-dark: #e8b88e;
  --epicerie-accent: #DD7E0C;
  --epicerie-accent-light: #f59422;
  --epicerie-accent-dark: #b8690a;
  
  /* Neutres */
  --epicerie-white: #ffffff;
  --epicerie-cream: #fffaf5;
  --epicerie-text: #2d2d2d;
  --epicerie-text-light: #666666;
  
  /* FORCE Override Bootstrap - remplace le bleu par vert */
  --bs-primary: #0D5B4C !important;
  --bs-primary-rgb: 13, 91, 76 !important;
  --bs-link-color: #0D5B4C;
  --bs-link-hover-color: #DD7E0C;
  --bs-link-color-rgb: 13, 91, 76;
  
  /* Typography */
  --epicerie-font-heading: system-ui, -apple-system, sans-serif;
  --epicerie-font-body: system-ui, -apple-system, sans-serif;
}

/* Override Bootstrap primary colors partout */
.bg-primary {
  background-color: #0D5B4C !important;
}

.btn-primary {
  --bs-btn-bg: #0D5B4C;
  --bs-btn-border-color: #0D5B4C;
  --bs-btn-hover-bg: #0a4a3e;
  --bs-btn-hover-border-color: #0a4a3e;
  background-color: #0D5B4C !important;
  border-color: #0D5B4C !important;
}

.btn-primary:hover {
  background-color: #0a4a3e !important;
  border-color: #0a4a3e !important;
}

.text-primary {
  color: #0D5B4C !important;
}

/* ==========================================
   GLOBAL / BODY
   ========================================== */

body {
  background-color: var(--epicerie-secondary-light) !important;
  color: var(--epicerie-text);
  font-family: var(--epicerie-font-body);
  /* Espace pour le header sticky */
  padding-top: 0;
}

#wrapper {
  background-color: var(--epicerie-cream);
}

main {
  background-color: transparent;
  min-height: calc(100vh - 400px);
  padding-bottom: 2rem;
}

/* ==========================================
   HEADER
   ========================================== */

/* Header background */
#header,
.header {
  background-color: var(--epicerie-primary) !important;
}

/* ==========================================
   HEADER TOP - Bande supérieure
   Contact, Connexion, Panier
   ========================================== */

.header-top {
  background-color: var(--epicerie-primary) !important;
  padding: 0.25rem 0 !important;
  margin: 0 !important;
  line-height: 1.3;
  border-bottom: 2px solid rgba(13, 91, 76, 0.1);
  z-index: 900 !important; /* Toujours sous le menu offcanvas */
}

.header-top .container-md {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Desktop header-top */
.header-top-desktop {
  margin: 0 !important;
  padding: 0.15rem 0 !important;
  align-items: center !important;
  min-height: 32px;
}

/* Partie gauche - Contact */
.header-top__left {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.header-top__contact {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: 1rem;
  padding-left: 1rem;
  border-left: 1px solid rgba(13, 91, 76, 0.2);
}

/* Partie centrale - Réseaux sociaux */
.header-top__center {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.5rem !important;
}

.header-top__center .social-link {
  color: rgb(230, 183, 142) !important;
  font-size: 1.2rem !important;
  transition: all 0.3s ease;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15) !important;
  text-decoration: none !important;
}

.header-top__center .social-link:hover {
  color: var(--epicerie-white) !important;
  background: rgba(255, 255, 255, 0.25) !important;
  transform: translateY(-2px);
}

.header-top__center .social-link i {
  font-size: 1.1rem !important;
  line-height: 1 !important;
}

/* Partie droite - Compte et Panier */
.header-top__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.5rem; /* Augmenté de 1rem à 1.5rem pour plus d'espace */
}

/* Espacement supplémentaire entre user_info et cart */
#_desktop_user_info {
  margin-right: 0.75rem; /* Augmenté de 0.25rem à 0.75rem */
}

#_desktop_cart {
  margin-left: 0.75rem; /* Augmenté de 0.25rem à 0.75rem */
  padding-left: 0.75rem; /* Augmenté de 0.25rem à 0.75rem */
}

/* Boutons Connexion et Panier dans header-top - sans bordure */
.header-top #_desktop_user_info .header-block__action-btn,
.header-top #_desktop_cart .header-block__action-btn,
#_desktop_user_info .header-block,
#_desktop_cart .header-block {
  background: transparent !important;
  border: none !important;
  padding: 0.25rem 0.5rem;
  width: auto !important;
  height: auto !important;
  min-width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: rgb(230, 183, 142) !important;
}

.header-top #_desktop_user_info .header-block__action-btn:hover,
.header-top #_desktop_cart .header-block__action-btn:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border: none !important;
  color: var(--epicerie-white) !important;
}

/* Icônes utilisateur et panier */
.header-top #_desktop_user_info .material-icons,
.header-top #_desktop_user_info .header-block__icon,
.header-top #_desktop_cart .material-icons,
.header-top #_desktop_cart .header-block__icon {
  color: rgb(230, 183, 142) !important;
}

.header-top #_desktop_user_info:hover .material-icons,
.header-top #_desktop_user_info:hover .header-block__icon,
.header-top #_desktop_cart:hover .material-icons,
.header-top #_desktop_cart:hover .header-block__icon {
  color: var(--epicerie-white) !important;
}

/* Liens dans header-top */
.header-top a,
.header-top-desktop a,
.header-top__left a,
.header-top__right a,
.header-top__contact a {
  color: rgb(230, 183, 142) !important;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
}

/* Textes dans header-top */
.header-top span,
.header-top .header-block__title {
  color: rgb(230, 183, 142) !important;
}

.header-top a:hover,
.header-top-desktop a:hover,
.header-top__contact a:hover {
  color: var(--epicerie-white) !important;
  background-color: rgba(255, 255, 255, 0.1);
  transform: translateY(-1px);
}

/* Icônes dans header-top */
.header-top .material-icons,
.header-top i,
.header-top__contact i {
  color: rgb(230, 183, 142) !important;
  font-size: 1.1rem;
  transition: color 0.2s ease;
}

.header-top a:hover .material-icons,
.header-top a:hover i {
  color: var(--epicerie-white) !important;
}

/* Tagline header - défilement continu seamless */
#_desktop_contact_link {
  overflow: hidden;
  flex: 1 1 0%;
  min-width: 0;
  white-space: nowrap;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

#_desktop_contact_link,
#_desktop_contact_link div,
#contact-link,
.contact-link,
#_desktop_contact_link a {
  color: rgb(230, 183, 142) !important;
  font-weight: 700 !important;
}

.epicerie-tagline {
  display: inline-block;
  color: rgb(230, 183, 142) !important;
  font-weight: 700 !important;
  white-space: nowrap;
  animation: epicerie-tagline-scroll 18s linear infinite;
}

@keyframes epicerie-tagline-scroll {
  from { transform: translateX(0); }    /* 1ère copie à gauche */
  to   { transform: translateX(-50%); } /* 2ème copie à gauche = loop parfait sans espace */
}

#_desktop_contact_link .tagline-daisy {
  width: 18px;
  height: auto;
  vertical-align: middle;
  margin: 0 4px;
  opacity: 0.9;
  animation: spin 4s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Lien Téléphone (Appelez-nous) - Style crème chaud et gras */
.header-top__contact a[href^="tel:"],
.header-top__contact a {
  color: rgb(230, 183, 142) !important;
  font-weight: 700 !important;
}

.header-top__contact a:hover {
  color: var(--epicerie-white) !important;
}

.header-top__contact i {
  color: rgb(230, 183, 142) !important;
}

/* Badges (panier) - header-top scoped: position absolute to avoid pushing the icon */
.header-top .header-block {
  position: relative; /* container for absolute badge */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.header-top .header-block__badge {
  background-color: var(--epicerie-accent);
  color: var(--epicerie-primary) !important;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2rem 0.45rem;
  border-radius: 50%;
  min-width: 22px;
  min-height: 22px;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;

  position: absolute;
  top: 50%;
  right: -12px; /* Décalé plus loin : de 2px à -12px */
  transform: translate(25%, -50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}

/* Desktop : badge inline (position static) pour ne pas chevaucher le texte «Panier» */
@media (min-width: 768px) {
  .header-top .header-block__badge {
    position: static;
    transform: none;
    top: auto;
    right: auto;
    margin-left: 0.3rem;
  }
}

/* Mobile tweaks: smaller badge, slightly more inset */
@media (max-width: 767px) {
  .header-top-mobile .header-block {
    min-width: 32px; /* ensure space for icon */
  }
  .header-top-mobile .header-block__badge {
    min-width: 18px;
    min-height: 18px;
    font-size: 0.65rem;
    right: -8px; /* Décalé plus loin pour ne pas toucher l'icône */
    transform: translate(35%, -50%);
  }
}

/* Version mobile du header-top */
.header-top-mobile {
  padding: 0.5rem 0;
  position: relative;
}

.header-top-mobile a {
  font-size: 0.85rem;
  padding: 0.3rem 0.5rem;
}

/* Affichage du numéro de téléphone en mobile */
.header-top-mobile .header-top__contact,
.header-top-mobile #_desktop_contact_link {
  display: block;
}

.header-top-mobile .header-top__contact a,
.header-top-mobile #_desktop_contact_link a {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}

.header-top-mobile .header-top__contact i,
.header-top-mobile #_desktop_contact_link i {
  font-size: 1rem;
}

/* Icônes utilisateur et panier en mobile */
.header-top-mobile #_desktop_user_info,
.header-top-mobile #_desktop_cart {
  display: inline-flex;
  margin: 0 0.25rem;
}

/* Décalage du caddie + badge vers la gauche */
.header-top-mobile #_desktop_cart {
  margin-right: 1.5rem; /* Décalage vers la gauche */
}

.header-top-mobile .header-block__action-btn {
  padding: 0.3rem 0.5rem;
}

/* ==========================================
   HEADER BOTTOM - Bande principale
   Logo, Menu, Recherche
   ========================================== */

.header-bottom {
  background: linear-gradient(180deg, var(--epicerie-cream) 0%, var(--epicerie-secondary-light) 100%) !important;
  padding: 0.75rem 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  position: relative;
  z-index: 100;
}

.header-bottom__container {
  padding-top: 0;
  padding-bottom: 0;
}

/* ==========================================
   HEADER PRINCIPAL (Logo + Recherche)
   ========================================== */

/* Logo */
.logo img,
.header-bottom .logo img,
.header-bottom__row .logo img,
#header .logo img {
  max-height: 80px !important;
  height: auto !important;
  filter: none;
  transition: all 0.3s ease;
}

/* Effet hover sur le logo */
.logo:hover img,
.header-bottom .logo:hover img,
#header .logo:hover img {
  filter: none;
  transform: translateY(-3px);
}

.header-bottom .logo,
.header-bottom__row .logo {
  display: flex;
  align-items: center;
}

/* ==========================================
   BARRE MOBILE STYLE GREENWEEZ
   Icônes propres et espacées uniformément
   ========================================== */

/* Conteneur de la barre mobile */
.mobile-header-bar {
  background: var(--epicerie-white);
  padding: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 999;
}

.mobile-header-bar__container {
  max-width: 100%;
  margin: 0 auto;
  gap: 0.5rem;
  padding: 0.5rem 0;
}

/* Barre de recherche mobile permanente */
.mobile-search-bar {
  display: none;
}

/* Modale de recherche mobile */
.mobile-search-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  align-items: flex-start;
  justify-content: center;
  padding-top: 72px;
}
.mobile-search-modal.active {
  display: flex;
}
.mobile-search-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.mobile-search-modal__box {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 14px;
  padding: 18px 16px 20px;
  width: calc(100% - 32px);
  max-width: 480px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
  animation: mobileSearchSlideIn 0.2s ease;
}
@keyframes mobileSearchSlideIn {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mobile-search-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.mobile-search-modal__title {
  font-weight: 700;
  font-size: 1.1rem;
  color: #0D5B4C;
}
.mobile-search-modal__close {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #888;
  display: flex;
  align-items: center;
  border-radius: 50%;
  transition: color 0.15s;
}
.mobile-search-modal__close:hover {
  color: #333;
}

.mobile-search-bar__container {
  position: relative;
}

.mobile-search-bar__container form {
  display: flex;
  align-items: center;
  background: #f0f0f0;
  border-radius: 20px;
  padding: 10px 16px;
  border: none;
  box-shadow: none;
}

.mobile-search-bar__container form:focus-within {
  background: #e8e8e8;
}

.mobile-search-bar__container input[type="text"],
.mobile-search-bar__container .js-search-input {
  flex: 1;
  border: none !important;
  background: transparent !important;
  padding: 0 10px;
  font-size: 14px;
  color: #666;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.mobile-search-bar__container input[type="text"]:focus,
.mobile-search-bar__container .js-search-input:focus {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.mobile-search-bar__container input[type="text"]::placeholder {
  color: #aaa;
  font-weight: 400;
}

/* Masquer le bouton X natif des navigateurs */
.mobile-search-bar__container input[type="text"]::-webkit-search-cancel-button,
.mobile-search-bar__container input[type="text"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

/* Masquer le bouton de suppression (croix) */
.mobile-search-bar__container .clear,
.mobile-search-bar__container button.clear,
.mobile-search-bar__container .btn-close,
.mobile-search-bar__container button[aria-label*="Clear"],
.mobile-search-bar__container button[type="reset"] {
  display: none !important;
}

.mobile-search-bar__container button[type="submit"] {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  color: #999;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.mobile-search-bar__container button[type="submit"] i {
  font-size: 22px;
  color: #999;
}

.mobile-header-bar__container {
  max-width: 100%;
  margin: 0 auto;
  gap: 0;
  justify-content: flex-start !important;
}

.mobile-header-bar__item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Logo central - flex-grow via Bootstrap flex-grow-1, on corrige juste l'alignement */
.mobile-header-bar__logo {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

.mobile-logo-img {
  height: 38px;
  width: auto;
  max-width: 170px;
  object-fit: contain;
  filter: drop-shadow(0 1px 2px rgba(13, 91, 76, 0.15));
}

/* Boutons icônes mobiles */
.mobile-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 44px;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: var(--epicerie-primary);
  transition: all 0.2s ease;
  cursor: pointer;
  position: relative;
  line-height: 1;
  vertical-align: middle;
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
}

.mobile-icon-btn:hover,
.mobile-icon-btn:active {
  background: rgba(13, 91, 76, 0.1);
  color: var(--epicerie-accent);
}

.mobile-icon-btn .material-icons {
  font-size: 24px;
  line-height: 1;
}

/* Badge panier mobile */
.mobile-cart-badge {
  position: absolute;
  top: 6px;
  right: 6px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: var(--epicerie-accent);
  color: white;
  font-size: 11px;
  font-weight: 600;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* Panneau recherche mobile */
.search__offcanvas {
  background: var(--epicerie-white);
  border-bottom: 2px solid var(--epicerie-secondary);
}

.search__offcanvas .offcanvas-header {
  padding: 1rem;
  gap: 0.5rem;
  border: none;
}

.search__offcanvas #_mobile_search {
  flex: 1;
}

.search__offcanvas .btn-close {
  flex-shrink: 0;
  opacity: 0.6;
}

/* Masquer les anciens éléments mobiles */
.search__mobile {
  display: none !important;
}

/* Masquer uniquement les header-block à l'intérieur des conteneurs responsive PrestaShop */
#_mobile_user_info .header-block,
#_mobile_cart .header-block {
  display: none !important;
}

/* Icônes mobiles custom epicerie - toujours en vert */
#_epicerie_mobile_user .mobile-icon-btn,
#_epicerie_mobile_cart .mobile-icon-btn {
  color: var(--epicerie-primary) !important;
}

#_epicerie_mobile_user .mobile-icon-btn .material-icons,
#_epicerie_mobile_cart .mobile-icon-btn .material-icons {
  color: var(--epicerie-primary) !important;
  font-size: 26px;
}

/* Sur desktop, masquer la barre mobile */
@media (min-width: 768px) {
  .mobile-header-bar {
    display: none !important;
  }
}

/* Assurer que le header-bottom ne prend pas trop d'espace sur mobile */
@media (max-width: 767px) {
  .header-bottom {
    padding: 0;
  }
  
  .header-bottom__container {
    padding: 0;
  }
  
  .header-bottom__row {
    margin: 0;
  }
  
  /* Masquer le header-top sur mobile pour économiser de l'espace */
  .header-top {
    display: none !important;
  }
  
  /* Masquer le menu desktop sur mobile */
  #_desktop_top_menu,
  .main-menu.d-xl-none,
  .main-menu {
    display: none !important;
  }
  
  /* Masquer les hooks desktop user et cart sur mobile */
  #_desktop_user_info,
  #_desktop_cart {
    display: none !important;
  }
  
  /* Masquer le bouton menu burger du thème de base */
  .main-menu .header-block,
  .main-menu .d-xl-none,
  .header-block__action-btn[data-bs-target="#mobileMenu"]:not(.mobile-icon-btn) {
    display: none !important;
  }
  
  /* Masquer la recherche desktop sur mobile */
  .search-widget,
  #search_widget,
  #_desktop_ps_searchbar {
    display: none !important;
  }
}

/* Améliorer le z-index de la recherche offcanvas */
.search__offcanvas.offcanvas {
  z-index: 9999;
}

/* Offcanvas recherche mobile (#searchCanvas) */
#searchCanvas.offcanvas {
  z-index: 9999;
}
#searchCanvas .offcanvas-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 16px;
}
#searchCanvas .ps-searchbar__container,
#searchCanvas #_mobile_ps_searchbar {
  flex: 1;
  max-width: 480px;
}
#searchCanvas .ps-searchbar__container form,
#searchCanvas #_mobile_ps_searchbar form {
  display: flex;
  align-items: center;
  background: #f4f4f4;
  border-radius: 10px;
  padding: 8px 14px;
  border: none;
}
#searchCanvas .ps-searchbar__container input[type="text"],
#searchCanvas #_mobile_ps_searchbar input[type="text"] {
  flex: 1;
  border: none !important;
  background: transparent !important;
  font-size: 1rem;
  outline: none !important;
  box-shadow: none !important;
}
#searchCanvas .btn-link {
  flex-shrink: 0;
  color: #0D5B4C;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
  padding: 0;
}



.offcanvas-backdrop.show {
  z-index: 9998;
}

/* Améliorer l'affichage de la barre de recherche mobile dans l'offcanvas */
.search__offcanvas #_mobile_search .search__container,
.search__offcanvas #_mobile_search form {
  width: 100%;
}

.search__offcanvas #_mobile_search input[type="text"] {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--epicerie-secondary);
  border-radius: 25px;
  font-size: 1rem;
}

.search__offcanvas #_mobile_search input[type="text"]:focus {
  outline: none;
  border-color: var(--epicerie-primary);
  box-shadow: 0 0 0 3px rgba(13, 91, 76, 0.1);
}

/* Animation d'apparition de la barre mobile */
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mobile-header-bar {
  animation: slideDown 0.3s ease-out;
}

/* Animation des boutons au clic */
.mobile-icon-btn:active {
  transform: scale(0.95);
}

/* Améliorer l'accessibilité : zone de clic plus grande */
.mobile-icon-btn,
.mobile-icon-btn .material-icons {
  -webkit-tap-highlight-color: rgba(13, 91, 76, 0.1);
  touch-action: manipulation;
}

/* GARANTIR ACCESSIBILITÉ DU PANIER MOBILE */
#_epicerie_mobile_cart,
#_epicerie_mobile_cart .mobile-icon-btn,
#_epicerie_mobile_cart a {
  position: relative !important;
  z-index: 1000 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* S'assurer que le lien panier mobile est bien cliquable */
#_epicerie_mobile_cart a.mobile-icon-btn {
  min-width: 44px;
  min-height: 44px;
  text-decoration: none;
}

/* Empêcher tout élément de bloquer la barre mobile */
.mobile-header-bar,
.mobile-header-bar__container,
.mobile-header-bar__item {
  position: relative;
  z-index: 999;
  pointer-events: auto;
}

/* Assurer que les icônes sont centrées */
.mobile-header-bar__item .material-icons {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================
   FIN BARRE MOBILE
   ========================================== */

/* Conteneur logo - pas de cadre */

/* Barre de recherche */
.header .search-widget {
  flex-grow: 1;
  max-width: 500px;
}

.header .search-widget form {
  background: var(--epicerie-white);
  border-radius: 25px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.header .search-widget input[type="text"] {
  border: none;
  padding: 0.75rem 1.25rem;
  font-size: 1rem;
  background: transparent;
}

.header .search-widget input[type="text"]:focus {
  outline: none;
  box-shadow: none;
}

.header .search-widget button {
  background: var(--epicerie-accent);
  border: none;
  padding: 0.75rem 1.25rem;
  color: white;
}

.header .search-widget button:hover {
  background: var(--epicerie-accent-dark);
}

/* Barre de recherche Hummingbird (.ps-searchbar__form)
   Problème : notre règle .form-control { padding: 0.75rem 1rem } (ligne ~2542)
   override le padding-inline:2.5rem de Hummingbird pour .ps-searchbar__input
   qui porte aussi la classe form-control → l'icône loupe chevauche le texte.
   Fix : on réaffirme le bon padding avec double classe (spécificité 0,2,0). */
.ps-searchbar__form {
  background: var(--epicerie-white);
  border-radius: 25px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  max-width: 500px;
  flex-grow: 1;
}

.ps-searchbar__input.form-control {
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none !important;
  padding-left: 2.5rem;
  padding-right: 2.5rem;
  font-size: 1rem;
}

.ps-searchbar__input.form-control:focus {
  outline: none;
  box-shadow: none !important;
  border: none;
}

/* Icônes header (panier, compte) */
.header-block a,
.header__right a {
  color: var(--epicerie-white) !important;
}

.header-block a:hover,
.header__right a:hover {
  color: var(--epicerie-secondary) !important;
}

.header-block__badge,
.cart-products-count {
  background: var(--epicerie-accent) !important;
  color: white !important;
}

/* ==========================================
   NAVIGATION / MENU CATÉGORIES - Style React
   ========================================== */

.menu,
.main-menu,
.main-menu.col-xl,
.main-menu.col-auto,
#_desktop_top_menu {
  background: linear-gradient(180deg, var(--epicerie-cream) 0%, var(--epicerie-secondary-light) 100%) !important;
  border: none !important;
  padding: 0;
  margin: 0;
  margin-top: 0 !important;
  box-shadow: none;
}

/* Relief/ombre sous le header-bottom */
.header-bottom {
  border: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
}

/* Assurer que le header n'a pas de marge basse */
.header {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Supprimer tout gap entre éléments du header */
#header > *,
.header__wrapper > * {
  margin-bottom: 0;
}

.main-menu__tree,
.menu__list,
.top-menu {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  width: 100%;
}

/* Le conteneur interne du menu doit prendre toute la largeur */
.main-menu .js-menu-desktop,
.main-menu > div {
  width: 100%;
}

/* Items du menu - Style React avec pills */
.main-menu__tree > li > a,
.menu__item > a,
.top-menu > li > a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  color: var(--epicerie-primary) !important;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 1.1rem;
  letter-spacing: 2px;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  background: transparent;
  border: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Indicateur animé sous le texte */
.main-menu__tree > li > a::after,
.top-menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--epicerie-accent);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform: translateX(-50%);
  border-radius: 2px;
}

/* Hover - effet glassmorphism léger */
.main-menu__tree > li > a:hover,
.menu__item > a:hover,
.top-menu > li > a:hover {
  color: var(--epicerie-accent) !important;
  background: rgba(221, 126, 12, 0.08);
  transform: translateY(-1px);
}

.main-menu__tree > li > a:hover::after,
.top-menu > li > a:hover::after {
  width: 60%;
}

/* État actif */
.main-menu__tree > li.active > a,
.top-menu > li.current > a {
  color: var(--epicerie-accent) !important;
  background: rgba(221, 126, 12, 0.12);
}

.main-menu__tree > li.active > a::after,
.top-menu > li.current > a::after {
  width: 80%;
  background: var(--epicerie-accent);
}

/* Icône dropdown */
.main-menu__tree > li > a .material-icons,
.top-menu > li > a .icon-chevron,
.main-menu__tree > li > a i {
  font-size: 1rem;
  transition: transform 0.3s ease;
}

.main-menu__tree > li:hover > a .material-icons,
.main-menu__tree > li:hover > a i {
  transform: rotate(180deg);
}

/* Sous-menus - Style moderne */
.main-menu__tree > li {
  position: relative;
}

/* Le dropdown - positionné plus proche du menu (desktop) */
/* IMPORTANT: Le theme.js définit top dynamiquement, on doit forcer avec !important */
.main-menu__tree .menu-container,
.main-menu__tree .js-sub-menu:not(.d-none),
.sub-menu {
  background: #ffffff;
  border: none;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(13, 91, 76, 0.15);
  padding: 1rem;
  padding-top: 1.5rem; /* Extra padding en haut pour absorber le pont */
  position: absolute;
  top: 100% !important; /* Force: ignore le JS qui met top: Xpx */
  left: -10px;
  min-width: max-content;
  z-index: 1000;
  pointer-events: auto;
  margin-top: 0px; /* Collé au menu */
}

/* PONT invisible - zone de survol entre le lien et le dropdown */
/* Crée une zone transparente au-dessus du dropdown pour garder le hover */
.main-menu__tree .menu-container::before,
.main-menu__tree .js-sub-menu:not(.d-none)::before {
  content: '';
  position: absolute;
  top: -20px; /* Remonte de 20px au-dessus du dropdown */
  left: 0;
  right: 0;
  height: 25px; /* Zone invisible de 25px */
  background: transparent;
  pointer-events: auto; /* Capture les événements souris */
}

/* Zone de survol étendue sur l'élément parent du menu */
.main-menu__tree > li {
  position: relative;
  /* Padding-bottom pour étendre la zone de survol vers le bas */
  padding-bottom: 5px;
  margin-bottom: -5px;
}

@keyframes menuFadeIn {
  from {
    opacity: 0;
    transform: translateY(-5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Liste des sous-catégories - disposition en colonne */
.main-menu__tree .menu-container > ul,
.main-menu__tree .menu-container .menu__list,
.sub-menu > ul {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.15rem !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  width: max-content !important;
}

.main-menu__tree .menu-container li,
.sub-menu li {
  width: 100% !important;
}

.main-menu__tree .menu-container a,
.sub-menu a {
  color: var(--epicerie-text) !important;
  padding: 0.6rem 1rem;
  border-radius: 8px;
  display: block !important;
  transition: all 0.2s ease;
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
}

/* Icône avant le texte */
.main-menu__tree .menu-container a::before,
.sub-menu a::before {
  content: '•';
  color: var(--epicerie-secondary-dark);
  margin-right: 0.5rem;
  transition: all 0.2s ease;
}

.main-menu__tree .menu-container a:hover,
.sub-menu a:hover {
  background: rgba(221, 126, 12, 0.1);
  color: var(--epicerie-accent) !important;
}

.main-menu__tree .menu-container a:hover::before,
.sub-menu a:hover::before {
  color: var(--epicerie-accent);
}

/* Masquer les sous-sous-catégories dans le menu CAVE */
.main-menu__tree .menu-container ul ul,
.main-menu__tree .menu-container [data-depth="2"],
.main-menu__tree .menu-container .menu__list--depth-2,
.sub-menu ul ul,
.top-menu .menu-container ul ul {
  display: none !important;
}

/* Masquer le chevron dans les sous-menus */
.main-menu__tree .menu-container a i,
.main-menu__tree .menu-container a .material-icons,
.sub-menu a i {
  display: none !important;
}

/* ==========================================
   PAGE D'ACCUEIL - SLIDER / BANNIÈRE
   ========================================== */

.carousel,
.slider-container,
#carousel,
.homeslider,
#homeslider {
  margin-bottom: 0;
  width: 100%;
  overflow: hidden;
}

.carousel .carousel-inner,
.homeslider .carousel-inner {
  border-radius: 0;
}

/* Images du carrousel - dimensions fixes et responsive */
.carousel .carousel-item,
.homeslider .carousel-item {
  width: 100%;
  height: 400px; /* Hauteur fixe */
  overflow: hidden;
}

@media (min-width: 768px) {
  .carousel .carousel-item,
  .homeslider .carousel-item {
    height: 500px;
  }
}

@media (min-width: 1200px) {
  .carousel .carousel-item,
  .homeslider .carousel-item {
    height: 550px;
  }
}

.carousel .carousel-item img,
.homeslider .carousel-item img,
.carousel-item figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.carousel .carousel-caption {
  background: linear-gradient(135deg, rgba(13, 91, 76, 0.9), rgba(13, 91, 76, 0.7));
  padding: 2rem;
  border-radius: 12px;
  max-width: 500px;
  left: 5%;
  right: auto;
  bottom: 15%;
  text-align: left;
}

.carousel .carousel-caption h2 {
  font-family: var(--epicerie-font-heading);
  font-size: 2rem;
  margin-bottom: 1rem;
}

.carousel .carousel-caption p {
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
}

.carousel .carousel-caption .btn {
  background: var(--epicerie-accent);
  border: none;
  padding: 0.75rem 2rem;
  font-weight: 600;
}

.carousel-indicators button {
  background-color: var(--epicerie-secondary) !important;
}

.carousel-indicators button.active {
  background-color: var(--epicerie-accent) !important;
}

.carousel-control-next,
.carousel-control-prev {
  width: 45px;
  height: 45px;
  background: rgba(255, 255, 255, 0.95) !important;
  border: 2px solid var(--epicerie-primary);
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.carousel-control-next:hover,
.carousel-control-prev:hover {
  background: var(--epicerie-primary) !important;
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 4px 12px rgba(13, 91, 76, 0.3);
}

.carousel-control-next-icon,
.carousel-control-prev-icon {
  filter: invert(0.3) sepia(1) saturate(3) hue-rotate(145deg);
  width: 24px;
  height: 24px;
}

.carousel-control-next:hover .carousel-control-next-icon,
.carousel-control-prev:hover .carousel-control-prev-icon {
  filter: brightness(0) invert(1);
}

/* ==========================================
   SECTION ACCUEIL - INTRODUCTION
   ========================================== */

.cms-block,
.custom-text-block,
#content-wrapper .cms_content,
.elementor-widget-text-editor {
  background: var(--epicerie-white);
  padding: 3rem 2rem;
  margin: 2rem auto;
  max-width: 900px;
  text-align: center;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(13, 91, 76, 0.08);
}

.cms-block h2,
.custom-text-block h2 {
  font-family: var(--epicerie-font-heading);
  color: var(--epicerie-primary);
  font-size: 2rem;
  margin-bottom: 1.5rem;
  position: relative;
}

.cms-block h2::after,
.custom-text-block h2::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: var(--epicerie-accent);
  margin: 1rem auto 0;
}

.cms-block p,
.custom-text-block p {
  color: var(--epicerie-text-light);
  font-size: 1.1rem;
  line-height: 1.8;
}

/* ==========================================
   SECTIONS HOMEPAGE
   ========================================== */

.featured-products,
.product-accessories,
.products-section,
section[id^="content"] {
  padding: 3rem 0;
  background: var(--epicerie-cream);
}

.featured-products h2,
.new-products h2,
.products-section h2,
.section-title,
h2.section-title,
.h2.section-title {
  font-family: system-ui, -apple-system, sans-serif !important;
  color: var(--epicerie-primary) !important;
  font-size: 1.6em;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-align: center;
  margin-bottom: 2.5rem;
  position: relative;
}

.featured-products h2::after,
.new-products h2::after,
.products-section h2::after,
.section-title::after {
  content: '';
  display: block;
  width: 50px;
  height: 3px;
  background: var(--epicerie-accent);
  margin: 0.75rem auto 0;
}

/* ==========================================
   GRILLE PRODUITS - CSS Grid Responsive
   ========================================== */

/* Conteneur principal - CSS Grid auto-responsive */
#js-product-list .products,
.products.row,
.module-products__list .products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1rem;
  padding: 0.5rem;
  margin: 0 !important;
  width: 100% !important;
}

/* Grand écran: plus de colonnes */
@media (min-width: 1400px) {
  #js-product-list .products,
  .products.row,
  .module-products__list .products {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1.25rem;
  }
}

/* Très grand écran */
@media (min-width: 1800px) {
  #js-product-list .products,
  .products.row,
  .module-products__list .products {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  }
}

/* Tablette */
@media (max-width: 991px) {
  #js-product-list .products,
  .products.row,
  .module-products__list .products {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.75rem;
  }
}

/* Mobile */
@media (max-width: 575px) {
  #js-product-list .products,
  .products.row,
  .module-products__list .products {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
    padding: 0.25rem;
  }
}

/* ==========================================
   CARTES PRODUITS - Design Compact & Modern
   ========================================== */

.product-miniature {
  /* Reset des classes Bootstrap col-* */
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.product-miniature .card,
.product-miniature .product-card {
  background: var(--epicerie-white);
  border: none;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(13, 91, 76, 0.06);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  height: 100%;
  display: flex;
  flex-direction: column;
  /* CRITICAL: Empêcher débordement du contenu sur mobile */
  max-width: 100%;
  min-width: 0;
}

.product-miniature .card:hover,
.product-miniature .product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(13, 91, 76, 0.12);
}

/* ==========================================
   IMAGE PRODUIT - Compacte avec ratio fixe
   ========================================== */

.product-miniature .product-thumbnail,
.product-miniature .thumbnail-container,
.product-miniature__image-container {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--epicerie-secondary-light) 0%, #f8f4f0 100%);
  aspect-ratio: 1;
}

/* Le lien et picture doivent remplir le conteneur pour que l'img se dimensionne correctement */
.product-miniature .product-thumbnail > a,
.product-miniature .thumbnail-container > a,
.product-miniature__image-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.product-miniature .product-thumbnail picture,
.product-miniature .thumbnail-container picture,
.product-miniature__image-container picture {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.product-miniature .product-thumbnail img,
.product-miniature .thumbnail-container img,
.product-miniature__image {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-miniature:hover .product-thumbnail img,
.product-miniature:hover .thumbnail-container img,
.product-miniature:hover .product-miniature__image {
  transform: scale(1.08);
}

/* ==========================================
   BADGES PRODUIT - Compacts et lisibles
   ========================================== */

.product-miniature .product-flags,
.product-flags {
  position: absolute;
  top: 6px;
  left: 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 5;
}

.product-flags .badge,
.product-flag {
  background: var(--epicerie-accent);
  color: white;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

.product-flags .badge.discount,
.product-flag.discount {
  background: #dc3545;
}

.product-flags .badge.new,
.product-flag.new {
  background: var(--epicerie-primary);
}

/* ==========================================
   BOUTON QUICK VIEW - Overlay sur l'image
   ========================================== */

.product-miniature__quickview_touch,
.product-miniature .js-quickview {
  position: absolute;
  bottom: 8px;
  right: 8px;
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.95);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  color: var(--epicerie-primary);
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.25s ease;
  cursor: pointer;
  z-index: 10;
}

.product-miniature__quickview_touch .material-icons,
.product-miniature .js-quickview .material-icons {
  font-size: 18px;
}

.product-miniature:hover .product-miniature__quickview_touch,
.product-miniature:hover .js-quickview {
  opacity: 1;
  transform: scale(1);
}

.product-miniature__quickview_touch:hover,
.product-miniature .js-quickview:hover {
  background: var(--epicerie-primary);
  color: white;
  transform: scale(1.1);
}

/* ==========================================
   INFOS PRODUIT - Compact avec tout visible
   ========================================== */

.product-miniature__infos,
.product-miniature .card-body {
  padding: 0.6rem 0.75rem 0.75rem !important;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 0.4rem;
}

/* Cacher le bouton quick view desktop (large barre), garder seulement l'icône ronde */
.product-miniature__quickview {
  display: none !important;
}
.product-miniature__quickview-button {
  display: none !important;
}

/* Titre produit - compact et lisible */
.product-miniature .product-title,
.product-miniature .product-name,
.product-miniature__title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--epicerie-text);
  margin: 0 !important;
  padding: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.2em;
  /* CRITICAL: Forcer la coupure des mots longs pour éviter débordement sur mobile */
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  max-width: 100%;
}

.product-miniature .product-title a,
.product-miniature .product-name a,
.product-miniature__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.product-miniature .product-title a:hover,
.product-miniature .product-name a:hover,
.product-miniature__title a:hover {
  color: var(--epicerie-accent);
}

/* ==========================================
   VARIANTES PRODUIT - Compact
   ========================================== */

.product-miniature__variants,
.product-miniature .variant-links {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin: 0.2rem 0;
}

.product-miniature .variant-links a {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15);
  transition: transform 0.2s ease;
}

.product-miniature .variant-links a:hover {
  transform: scale(1.2);
}

/* ==========================================
   PRIX - Bien visible et hiérarchisé
   ========================================== */

.product-miniature .product-price-and-shipping,
.product-miniature .product-prices,
.product-miniature__prices {
  padding: 0;
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.product-miniature .price,
.product-miniature .product-price,
.product-miniature__price {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--epicerie-primary);
  line-height: 1;
}

.product-miniature .regular-price,
.product-miniature__regular-price {
  color: var(--epicerie-text-light);
  text-decoration: line-through;
  font-size: 0.75rem;
  font-weight: 400;
}

/* Prix unitaire */
.product-miniature .unit-price,
.product-miniature [data-product-unit-price] {
  font-size: 0.65rem;
  color: var(--epicerie-text-light);
  width: 100%;
}

/* ==========================================
   FORMULAIRE AJOUT PANIER - Compact & UX
   ========================================== */

.product-miniature form,
.product-miniature .add-to-cart-form {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 0.5rem;
}

/* Sélecteur de quantité - Compact */
.product-miniature .quantity-button,
.product-miniature .js-quantity-button,
.product-miniature .qty-input-group {
  flex: 0 0 auto;
  width: auto !important;
}

.product-miniature .qty-input,
.product-miniature .quantity-button input,
.product-miniature .js-quantity-button input {
  width: 36px !important;
  height: 34px;
  text-align: center;
  border: 1px solid var(--epicerie-secondary-dark);
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0;
  -moz-appearance: textfield;
}

.product-miniature .qty-input::-webkit-outer-spin-button,
.product-miniature .qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Boutons +/- sur mobile et desktop */
.product-miniature .quantity-button .qty-btn,
.product-miniature .js-quantity-button button {
  width: 28px;
  height: 34px;
  background: var(--epicerie-secondary-light);
  border: 1px solid var(--epicerie-secondary-dark);
  color: var(--epicerie-primary);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-miniature .quantity-button .qty-btn:first-child,
.product-miniature .js-quantity-button button:first-child {
  border-radius: 6px 0 0 6px;
  border-right: none;
}

.product-miniature .quantity-button .qty-btn:last-child,
.product-miniature .js-quantity-button button:last-child {
  border-radius: 0 6px 6px 0;
  border-left: none;
}

.product-miniature .quantity-button .qty-btn:hover,
.product-miniature .js-quantity-button button:hover {
  background: var(--epicerie-secondary);
}

/* ==========================================
   BOUTON AJOUTER AU PANIER - Visible & Clair
   ========================================== */

.product-miniature .add-to-cart,
.product-miniature form .btn-primary,
.product-miniature [data-button-action="add-to-cart"] {
  flex: 1;
  min-width: 0;
  background: var(--epicerie-accent) !important;
  border: none !important;
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  color: white !important;
  font-weight: 600;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  transition: all 0.2s ease;
  cursor: pointer;
  height: 34px;
}

.product-miniature .add-to-cart .material-icons,
.product-miniature [data-button-action="add-to-cart"] .material-icons {
  font-size: 18px;
}

.product-miniature .add-to-cart:hover,
.product-miniature form .btn-primary:hover,
.product-miniature [data-button-action="add-to-cart"]:hover {
  background: var(--epicerie-accent-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(221, 126, 12, 0.35);
}

/* Bouton "Voir détails" quand pas d'ajout panier */
.product-miniature .btn-outline-primary {
  flex: 1;
  font-size: 0.8rem;
  padding: 0.5rem 0.75rem;
  height: 34px;
  border-color: var(--epicerie-primary);
  color: var(--epicerie-primary);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-miniature .btn-outline-primary:hover {
  background: var(--epicerie-primary);
  color: white;
}

/* ==========================================
   WISHLIST / FAVORIS - Overlay discret
   ========================================== */

.product-miniature .wishlist-button,
.product-miniature .product-favorite {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 28px;
  height: 28px;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  color: var(--epicerie-text-light);
  opacity: 0;
  transition: all 0.2s ease;
  z-index: 10;
  cursor: pointer;
}

.product-miniature:hover .wishlist-button,
.product-miniature:hover .product-favorite {
  opacity: 1;
}

.product-miniature .wishlist-button:hover,
.product-miniature .product-favorite:hover {
  color: #dc3545;
  transform: scale(1.15);
  background: white;
}

.product-miniature .wishlist-button .material-icons,
.product-miniature .product-favorite .material-icons {
  font-size: 16px;
}

/* ==========================================
   REVIEWS / AVIS - Compact
   ========================================== */

.product-miniature .product-reviews,
.product-miniature [data-hook="displayProductListReviews"] {
  font-size: 0.7rem;
  color: var(--epicerie-text-light);
}

.product-miniature .star-content .star {
  font-size: 0.75rem;
}

/* ==========================================
   RESPONSIVE MOBILE - Optimisations tactiles
   ========================================== */

@media (max-width: 575px) {
  .product-miniature .card-body,
  .product-miniature__infos {
    padding: 0.5rem !important;
  }
  
  .product-miniature__title,
  .product-miniature .product-title {
    font-size: 0.75rem;
    -webkit-line-clamp: 2;
    min-height: 2em;
  }
  
  .product-miniature .price,
  .product-miniature__price {
    font-size: 1rem;
  }
  
  /* Sur mobile: boutons toujours visibles */
  .product-miniature .wishlist-button,
  .product-miniature .product-favorite,
  .product-miniature__quickview_touch,
  .product-miniature .js-quickview {
    opacity: 1;
  }
  
  /* Formulaire compact sur mobile */
  .product-miniature form {
    flex-wrap: wrap;
  }
  
  .product-miniature .quantity-button,
  .product-miniature .js-quantity-button {
    display: none; /* Cache la quantité sur mobile, clique = ajoute 1 */
  }
  
  .product-miniature .add-to-cart,
  .product-miniature [data-button-action="add-to-cart"] {
    width: 100%;
    height: 36px;
    font-size: 0.8rem;
  }
}

/* ==========================================
   LOADING STATE - Skeleton
   ========================================== */

.product-miniature.loading .card {
  position: relative;
  overflow: hidden;
}

.product-miniature.loading .card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* ==========================================
   BARRE PRODUITS TOP - Tri & Filtres
   ========================================== */

/* Masquer le bloc de catégorie (titre + description KEZIA_REF) */
.block-category {
  display: none !important;
}

/* Masquer le titre H1 des listes de produits (redondant avec breadcrumb + category-tree) */
#js-product-list-header {
  display: none !important;
}

/* Masquer les sous-catégories */
#subcategories,
.subcategories {
  display: none !important;
}

/* Remonter le conteneur principal sur les pages catégories */
.category #main .container,
.category #content-wrapper,
body.category .container {
  margin-top: 0 !important;
  padding-top: 1rem !important;
}

#js-product-list-top,
.products-selection {
  background: var(--epicerie-white);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 2px 8px rgba(13, 91, 76, 0.05);
}

.products-selections-filters {
  align-items: center;
}

/* Total produits */
.total-products p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--epicerie-text-light);
}

/* Tri par */
.sort-by-row {
  gap: 0.75rem;
}

.products-sort-order,
.sort-by-row .dropdown {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.products-sort-order .select-title,
.sort-by-row label {
  font-size: 0.8rem;
  color: var(--epicerie-text-light);
  margin: 0;
  white-space: nowrap;
}

.products-sort-order .dropdown-toggle,
.products-sort-order .btn-outline-primary {
  background: var(--epicerie-secondary-light);
  border: 1px solid var(--epicerie-secondary-dark);
  color: var(--epicerie-text);
  font-size: 0.85rem;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.products-sort-order .dropdown-toggle:hover,
.products-sort-order .btn-outline-primary:hover {
  background: var(--epicerie-secondary);
  border-color: var(--epicerie-secondary);
}

.products-sort-order .dropdown-menu {
  border: none;
  box-shadow: 0 8px 24px rgba(13, 91, 76, 0.15);
  border-radius: 8px;
  padding: 0.5rem;
  min-width: 180px;
}

.products-sort-order .dropdown-item {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.85rem;
  color: var(--epicerie-text);
}

.products-sort-order .dropdown-item:hover {
  background: var(--epicerie-secondary-light);
  color: var(--epicerie-primary);
}

.products-sort-order .dropdown-item.active,
.products-sort-order .dropdown-item:active {
  background: var(--epicerie-primary);
  color: white;
}

/* Bouton Filtre Mobile */
.filter-button .btn-outline-primary {
  background: var(--epicerie-secondary-light);
  border-color: var(--epicerie-secondary-dark);
  color: var(--epicerie-primary);
  font-size: 0.85rem;
  padding: 0.5rem 1rem;
}

.filter-button .btn-outline-primary:hover {
  background: var(--epicerie-primary);
  color: white;
}

/* ==========================================
   BOUTONS GÉNÉRAUX
   ========================================== */ */

.btn-primary {
  background-color: var(--epicerie-primary) !important;
  border-color: var(--epicerie-primary) !important;
  color: var(--epicerie-white) !important;
  border-radius: 6px;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  transition: all 0.2s ease;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--epicerie-primary-dark) !important;
  border-color: var(--epicerie-primary-dark) !important;
  transform: translateY(-1px);
}

.btn-secondary,
.btn-outline-primary {
  background-color: transparent;
  border: 2px solid var(--epicerie-primary);
  color: var(--epicerie-primary);
  border-radius: 6px;
}

.btn-secondary:hover,
.btn-outline-primary:hover {
  background-color: var(--epicerie-primary);
  color: var(--epicerie-white);
}

/* CTA principal (Ajouter au panier) */
.btn-accent,
.product__add-to-cart .btn-primary,
.cart-detailed__actions .btn-primary {
  background: linear-gradient(135deg, var(--epicerie-accent), var(--epicerie-accent-dark)) !important;
  border: none !important;
  padding: 1rem 2rem;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ==========================================
   FOOTER
   ========================================== */

footer,
.footer {
  background: var(--epicerie-primary) !important;
  color: var(--epicerie-secondary);
  padding-top: 3rem;
  position: relative;
  z-index: 200; /* Au-dessus des éléments sticky (z-index: 100) */
}

.footer__main {
  background: transparent !important;
}

.footer h4,
.footer .footer__block__title,
.footer .block-title {
  color: var(--epicerie-white);
  font-family: var(--epicerie-font-heading);
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.footer a {
  color: var(--epicerie-secondary) !important;
  transition: color 0.2s ease;
}

.footer a:hover {
  color: var(--epicerie-white) !important;
}

.footer ul {
  list-style: none;
  padding: 0;
}

.footer li {
  margin-bottom: 0.75rem;
}

/* Google Maps dans le footer */
.footer__map {
  margin-top: 2rem;
  padding: 2rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer__map-container {
  max-width: 600px;
  margin: 0 auto;
}

.footer__map-title {
  color: var(--epicerie-white) !important;
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  margin-bottom: 1.5rem !important;
  text-align: center;
  font-family: var(--epicerie-font-heading) !important;
}

.footer__map-embed {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  background: var(--epicerie-white);
  padding: 0;
}

.footer__map-embed iframe {
  display: block;
  border: none;
  border-radius: 12px;
}

.footer__bottom,
.footer-bottom {
  background: var(--epicerie-primary-dark);
  padding: 1.5rem 0;
  margin-top: 2rem;
  font-size: 0.9rem;
}

/* Newsletter */
.email-subscription,
.newsletter-block {
  background: rgba(255,255,255,0.1);
  padding: 2rem;
  border-radius: 12px;
  margin-bottom: 2rem;
}

.email-subscription .email-subscription__label,
.newsletter-block h4 {
  color: var(--epicerie-white);
  margin-bottom: 1rem;
}

.email-subscription input[type="email"] {
  border: none;
  border-radius: 25px 0 0 25px;
  padding: 0.75rem 1.25rem;
}

.email-subscription button {
  background: var(--epicerie-accent);
  border: none;
  border-radius: 0 25px 25px 0;
  padding: 0.75rem 1.5rem;
  color: white;
}

/* ==========================================
   PAGES CATALOGUE
   ========================================== */

/* Breadcrumb - Fil d'ariane horizontal + STICKY */
.breadcrumb__wrapper,
.breadcrumb-wrapper {
  background: var(--epicerie-secondary-light);
  padding: 0.75rem 0;
  margin-bottom: 1rem;
  box-shadow: 0 2px 6px -1px rgba(0, 0, 0, 0.16), 0 1px 4px -1px rgba(0, 0, 0, 0.04);
}

/* Breadcrumb sticky state - conserver exactement le style initial */
.breadcrumb__wrapper.js-sticky {
  position: fixed;
  /* top est géré dynamiquement par JavaScript */
  left: 0;
  right: 0;
  z-index: 99; /* Sous le header-bottom (z-index: 100) pour que son ombre reste visible */
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Optimisations GPU pour category tree et filtres sticky */
.ps_categorytree.js-sticky,
.category-tree.js-sticky,
.left-block.js-sticky,
#search_filters_wrapper.js-sticky {
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
}

/* Placeholder pour éviter le saut de page - hauteur réduite */
.breadcrumb-placeholder {
  display: none;
}

.breadcrumb-placeholder.active {
  display: block;
  height: 20px !important; /* Hauteur minimale au lieu de masquer */
  min-height: 20px !important;
}

/* Force le breadcrumb en ligne horizontale */
.breadcrumb,
nav.breadcrumb,
.breadcrumb ol {
  display: flex !important;
  flex-wrap: wrap;
  flex-direction: row !important;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.85rem;
}

.breadcrumb li,
.breadcrumb .breadcrumb-item {
  display: inline-flex !important;
  align-items: center;
  white-space: nowrap;
}

/* Séparateur entre les éléments */
.breadcrumb li + li::before,
.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  content: "›" !important;
  padding: 0 0.5rem;
  color: var(--epicerie-text-light);
  font-weight: bold;
}

.breadcrumb a {
  color: var(--epicerie-text-light);
  text-decoration: none;
}

.breadcrumb a:hover {
  color: var(--epicerie-accent);
  text-decoration: underline;
}

.breadcrumb .breadcrumb-item.active,
.breadcrumb li:last-child,
.breadcrumb li:last-child span {
  color: var(--epicerie-primary);
  font-weight: 500;
}

/* Filtres */
.left-column,
.sidebar {
  background: var(--epicerie-white);
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 4px 15px rgba(13, 91, 76, 0.05);
  overflow: visible !important; /* Permettre aux dropdowns de déborder */
}

/* Permettre le sticky sur la colonne gauche */
#left-column {
  align-self: flex-start;
  overflow: visible !important; /* Permettre aux dropdowns de déborder */
}

/* Sticky filters via JavaScript */
#search_filters_wrapper.is-sticky {
  position: fixed !important;
  z-index: 100 !important;
  background-color: #fff;
  box-shadow: 0 4px 15px rgba(13, 91, 76, 0.1);
}

.left-column h4,
.sidebar h4,
.filter-title {
  color: var(--epicerie-primary);
  font-family: var(--epicerie-font-heading);
  font-size: 1rem;
  padding-bottom: 0.75rem;
  margin-bottom: 1rem;
  border-bottom: 2px solid var(--epicerie-secondary);
}

/* Pagination */
.pagination .page-link {
  border: none;
  color: var(--epicerie-text);
  margin: 0 0.25rem;
  border-radius: 6px;
}

.pagination .page-item.active .page-link {
  background: var(--epicerie-primary);
  color: var(--epicerie-white);
}

.pagination .page-link:hover {
  background: var(--epicerie-secondary-light);
  color: var(--epicerie-accent);
}

/* ==========================================
   PAGE PRODUIT
   ========================================== */

.page-product .product__images {
  background: var(--epicerie-white);
  padding: 1rem;
  border-radius: 12px;
}

/* Annule les dimensions fixes du carousel générique pour les photos produit */
/* Fix sélecteur : l'id réel est product-images-{id}, on cible la classe .js-product-carousel */
.page-product .js-product-carousel .carousel-item,
.page-product .js-product-carousel .carousel-inner,
.js-product-images-modal .carousel-item,
.js-product-images-modal .carousel-inner {
  height: auto !important;
  overflow: visible !important;
}

/* Autoriser le débordement pour les images portrait */
.page-product .product__carousel {
  overflow: visible !important;
}

.page-product .js-product-carousel .carousel-item img,
.js-product-images-modal .carousel-item img {
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none !important;
}

/* Curseur loupe sur l'image pour indiquer le clic */
.page-product .js-product-carousel .carousel-item img {
  cursor: zoom-in;
}

.page-product .product__current-price {
  color: var(--epicerie-primary);
  font-size: 2rem;
  font-weight: 700;
}

.page-product .product__discount {
  background: var(--epicerie-accent);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  font-size: 0.85rem;
}

.page-product .product-tabs .nav-link {
  color: var(--epicerie-text);
  border: none;
  border-bottom: 3px solid transparent;
  padding: 1rem 1.5rem;
}

.page-product .product-tabs .nav-link.active {
  color: var(--epicerie-primary);
  border-bottom-color: var(--epicerie-accent);
}

/* ==========================================
   PANIER
   ========================================== */

.cart-summary {
  background: var(--epicerie-white);
  border: 2px solid var(--epicerie-secondary);
  border-radius: 12px;
  padding: 1.5rem;
}

.cart-summary .cart-summary__title {
  color: var(--epicerie-primary);
  font-family: var(--epicerie-font-heading);
}

.cart-summary .cart-summary__totals {
  border-top: 1px solid var(--epicerie-secondary);
  padding-top: 1rem;
  margin-top: 1rem;
}

/* ==========================================
   FORMULAIRES
   ========================================== */

.form-control,
.form-select {
  border: 1px solid var(--epicerie-secondary);
  border-radius: 6px;
  padding: 0.75rem 1rem;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--epicerie-primary);
  box-shadow: 0 0 0 3px rgba(13, 91, 76, 0.15);
}

.form-label {
  color: var(--epicerie-text);
  font-weight: 500;
  margin-bottom: 0.5rem;
}

/* ==========================================
   ALERTES
   ========================================== */

.alert-success {
  background: rgba(13, 91, 76, 0.1);
  border: 1px solid var(--epicerie-primary);
  color: var(--epicerie-primary);
}

.alert-info {
  background: var(--epicerie-secondary-light);
  border: 1px solid var(--epicerie-secondary);
  color: var(--epicerie-text);
}

.alert-warning {
  background: rgba(221, 126, 12, 0.1);
  border: 1px solid var(--epicerie-accent);
  color: var(--epicerie-accent-dark);
}

/* ==========================================
   RESPONSIVE
   ========================================== */

@media (max-width: 991px) {
  .header__logo img {
    max-height: 70px;
  }
  
  .carousel .carousel-caption {
    padding: 1rem;
    font-size: 0.9rem;
  }
  
  .carousel .carousel-caption h2 {
    font-size: 1.5rem;
  }
  
  .featured-products h2 {
    font-size: 1.5rem;
  }
}

@media (max-width: 767px) {
  .header {
    padding: 0.5rem 0;
  }
  
  .header__logo img {
    max-height: 60px;
  }
  
  .carousel .carousel-caption {
    display: none;
  }
  
  .footer {
    text-align: center;
  }
}

/* ==========================================
   SELECTION & SCROLLBAR
   ========================================== */

::selection {
  background-color: var(--epicerie-secondary);
  color: var(--epicerie-primary);
}

::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: var(--epicerie-secondary-light);
}

::-webkit-scrollbar-thumb {
  background: var(--epicerie-primary);
  border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--epicerie-primary-dark);
}

/* ==========================================
   ANIMATIONS
   ========================================== */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Animation staggered pour les produits */
.product-miniature {
  animation: fadeIn 0.35s ease-out backwards;
}

.product-miniature:nth-child(1) { animation-delay: 0ms; }
.product-miniature:nth-child(2) { animation-delay: 30ms; }
.product-miniature:nth-child(3) { animation-delay: 60ms; }
.product-miniature:nth-child(4) { animation-delay: 90ms; }
.product-miniature:nth-child(5) { animation-delay: 120ms; }
.product-miniature:nth-child(6) { animation-delay: 150ms; }
.product-miniature:nth-child(n+7) { animation-delay: 180ms; }

/* ==========================================
   FIX HUMMINGBIRD SPECIFICS
   ========================================== */

/* Force les couleurs sur éléments Hummingbird */
.header__wrapper,
.header-top,
.header-top__wrapper {
  background: var(--epicerie-primary) !important;
}

/* Menu mobile */
.menu-btn {
  color: var(--epicerie-white) !important;
}

/* Container principal */
#content-wrapper {
  background: transparent;
}

/* Cards sans bordures disgracieuses */
.card {
  border: none;
}

/* ==========================================
   FILTRES À FACETTES - Style moderne (Bootstrap 5)
   ========================================== */

/* Container principal des filtres */
#search-filters,
.search-filters {
  background: #fffdf8 !important;
  border-radius: 16px !important;
  padding: 1.25rem !important;
  box-shadow: 0 4px 20px rgba(13, 91, 76, 0.1) !important;
  border: 1px solid #f5d1b7 !important;
  overflow: visible !important; /* Permettre au dropdown de déborder */
}

/* Permettre au dropdown de déborder du facet */
#search-filters .facet,
#search-filters .accordion-item,
.search-filters .facet,
.search-filters .accordion-item {
  overflow: visible !important;
  position: relative !important;
}

/* Dropdown menu - doit s'afficher au-dessus */
#search-filters .dropdown-menu,
.search-filters .dropdown-menu,
#search-filters .facet .dropdown-menu,
.search-filters .facet .dropdown-menu {
  position: absolute !important;
  z-index: 1050 !important;
  max-height: 300px !important;
  overflow-y: auto !important;
}

/* Titre "Filtrer par" */
.search-filters-title {
  font-family: inherit !important;
  color: #0D5B4C !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 0.75rem !important;
  border-bottom: 2px solid #f5d1b7 !important;
}

/* Chaque section de filtre (accordion-item) */
#search-filters .facet,
#search-filters .accordion-item,
.search-filters .facet,
.search-filters .accordion-item {
  background: transparent !important;
  border: none !important;
  overflow: visible !important;
  position: relative !important;
}
  border: none !important;
}

/* Séparateur HR */
#search-filters hr,
.search-filters hr {
  border-color: rgba(245, 209, 183, 0.5) !important;
  opacity: 1 !important;
}

/* Titre du filtre (facet-title + accordion-button) */
.search-filters-subtitle,
.facet-title {
  display: block !important;
}

#search-filters .accordion-button,
.search-filters .accordion-button {
  background: transparent !important;
  color: #0D5B4C !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 0.85rem 0 !important;
  box-shadow: none !important;
  border: none !important;
  transition: color 0.2s ease !important;
}

#search-filters .accordion-button:hover,
.search-filters .accordion-button:hover {
  color: #DD7E0C !important;
}

#search-filters .accordion-button:focus,
.search-filters .accordion-button:focus {
  box-shadow: none !important;
  border: none !important;
}

#search-filters .accordion-button:not(.collapsed),
.search-filters .accordion-button:not(.collapsed) {
  color: #DD7E0C !important;
  background: transparent !important;
}

/* Icône chevron orange */
#search-filters .accordion-button::after,
.search-filters .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23DD7E0C'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
  transition: transform 0.3s ease !important;
}

/* Contenu de l'accordéon */
#search-filters .accordion-collapse,
#search-filters .accordion-body,
.search-filters .accordion-collapse,
.search-filters .accordion-body {
  padding: 0 !important;
  overflow: visible !important; /* Permettre aux dropdowns de déborder */
}

#search-filters .accordion-body ul,
.search-filters .accordion-body ul {
  list-style: none !important;
  padding: 0.5rem 0 !important;
  margin: 0 !important;
}

#search-filters .accordion-body li,
.search-filters .accordion-body li {
  margin: 0 !important;
  padding: 0 !important;
}

/* Labels des options (facet-label) */
.search-filters-label,
.facet-label {
  padding: 0.4rem 0.5rem !important;
  margin: 0.1rem 0 !important;
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
}

.search-filters-label:hover,
.facet-label:hover {
  background: rgba(13, 91, 76, 0.06) !important;
  padding-left: 0.75rem !important;
}

/* Form check (checkbox + label) */
#search-filters .form-check,
.search-filters .form-check {
  display: flex !important;
  align-items: center !important;
  padding-left: 0 !important;
  margin: 0 !important;
}

#search-filters .form-check-label,
.search-filters .form-check-label {
  cursor: pointer !important;
  font-size: 0.9rem !important;
  color: #333 !important;
  transition: color 0.2s ease !important;
}

#search-filters .form-check-label:hover,
.search-filters .form-check-label:hover {
  color: #DD7E0C !important;
}

/* Checkboxes custom - Style orange */
#search-filters .form-check-input,
.search-filters .form-check-input {
  width: 18px !important;
  height: 18px !important;
  margin-right: 0.6rem !important;
  margin-top: 0 !important;
  border: 2px solid #ccc !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: all 0.2s ease !important;
}

#search-filters .form-check-input:hover,
.search-filters .form-check-input:hover {
  border-color: #DD7E0C !important;
}

#search-filters .form-check-input:checked,
.search-filters .form-check-input:checked {
  background-color: #DD7E0C !important;
  border-color: #DD7E0C !important;
}

#search-filters .form-check-input:focus,
.search-filters .form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(221, 126, 12, 0.25) !important;
  border-color: #DD7E0C !important;
}

/* Liens de recherche */
.search-filters-link,
#search-filters .search-link,
.search-filters .search-link {
  color: inherit !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.25rem !important;
}

.search-filters-link:hover,
#search-filters .search-link:hover,
.search-filters .search-link:hover {
  color: #DD7E0C !important;
}

/* Compteur (magnitude) */
#search-filters .magnitude,
.search-filters .magnitude {
  color: #888 !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
}

.facet-label:hover .magnitude,
.search-filters-label:hover .magnitude {
  color: #DD7E0C !important;
}

/* ==========================================
   FILTRES - Renommage des labels (Bootstrap 5)
   ========================================== */

/* Sticky natif CSS pour la colonne gauche - zéro layout shift */
@media (min-width: 992px) {
  #left-column {
    position: sticky;
    top: 185px;
    align-self: flex-start;
    max-height: calc(100vh - 195px);
    overflow-y: auto !important;
    overflow-x: visible !important;
  }
}

/* Sticky filters - géré par JavaScript */
#left-column {
  align-self: flex-start;
}

#search_filters_wrapper {
  z-index: 10;
  transition: all 0.15s ease-out;
  background-color: transparent !important;
}

/* Quand sticky via JS - garder transparent */
#search_filters_wrapper.js-sticky {
  position: fixed;
  background-color: transparent !important;
}

/* Assurer que les filtres ont le bon background */
#search-filters,
#search_filters,
.search-filters {
  background-color: var(--epicerie-white);
  border-radius: 12px;
  box-shadow: 0 4px 15px rgba(13, 91, 76, 0.1);
}

/* Limiter la hauteur max pour éviter les débordements */
#search-filters,
#search_filters {
  overflow-y: auto;
  transition: max-height 0.15s ease-out;
}

/* Scrollbar personnalisée pour le conteneur de filtres */
#search-filters::-webkit-scrollbar,
#search_filters::-webkit-scrollbar {
  width: 6px;
}

#search-filters::-webkit-scrollbar-track,
#search_filters::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
}

#search-filters::-webkit-scrollbar-thumb,
#search_filters::-webkit-scrollbar-thumb {
  background: var(--epicerie-accent);
  border-radius: 10px;
}

#search-filters::-webkit-scrollbar-thumb:hover,
#search_filters::-webkit-scrollbar-thumb:hover {
  background: var(--epicerie-accent-dark);
}

/* Renommer via attribut data-name */
#search_filters .facet[data-name="Catégories"] .accordion-button,
#search_filters .facet[data-name="Categories"] .accordion-button {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Catégories"] .accordion-button::before,
#search_filters .facet[data-name="Categories"] .accordion-button::before {
  content: "Appellations";
  font-size: 0.95rem;
  font-weight: 600;
}

#search_filters .facet[data-name="Couleur du Vin"] .accordion-button {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Couleur du Vin"] .accordion-button::before {
  content: "Couleur";
  font-size: 0.95rem;
  font-weight: 600;
}

#search_filters .facet[data-name="Région Viticole"] .accordion-button {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Région Viticole"] .accordion-button::before {
  content: "Régions";
  font-size: 0.95rem;
  font-weight: 600;
}

#search_filters .facet[data-name="Marque"] .accordion-button,
#search_filters .facet[data-name="Brand"] .accordion-button {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Marque"] .accordion-button::before,
#search_filters .facet[data-name="Brand"] .accordion-button::before {
  content: "Domaines";
  font-size: 0.95rem;
  font-weight: 600;
}

#search_filters .facet[data-name="Sélections"] .accordion-button {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Sélections"] .accordion-button::before {
  content: "Collections";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Compteur (magnitude) - les nombres entre parenthèses */
#search_filters .magnitude {
  font-size: 0.8rem !important;
  color: #888 !important;
  background: transparent !important;
  padding: 0 !important;
  margin-left: 0.25rem !important;
  font-weight: 400 !important;
}

#search_filters .facet-label:hover .magnitude,
#search_filters .facet label:hover .magnitude {
  color: var(--epicerie-accent) !important;
}

#search_filters .facet-label.active .magnitude {
  color: var(--epicerie-accent) !important;
  font-weight: 600 !important;
}

/* Icône chevron pour accordéon */
#search_filters .facet .collapse-icons,
#search_filters .facet .material-icons {
  color: var(--epicerie-accent) !important;
  font-size: 1.2rem !important;
  transition: transform 0.3s ease !important;
}

/* Bouton "Tout effacer" */
#search_filters .clear-all-wrapper {
  margin-bottom: 1rem;
}

#search_filters .js-search-filters-clear-all {
  width: 100%;
  background: transparent;
  border: 2px dashed var(--epicerie-secondary-dark);
  color: var(--epicerie-text-light);
  padding: 0.6rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

#search_filters .js-search-filters-clear-all:hover {
  background: rgba(220, 53, 69, 0.1);
  border-color: #dc3545;
  color: #dc3545;
}

#search_filters .js-search-filters-clear-all i {
  font-size: 1rem;
}

/* Slider de prix */
#search_filters .faceted-slider {
  padding: 1rem;
}

#search_filters .faceted-slider .ui-slider {
  background: var(--epicerie-secondary);
  border: none;
  height: 6px;
  border-radius: 3px;
}

#search_filters .faceted-slider .ui-slider-range {
  background: linear-gradient(90deg, var(--epicerie-primary) 0%, var(--epicerie-accent) 100%);
}

#search_filters .faceted-slider .ui-slider-handle {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--epicerie-white);
  border: 3px solid var(--epicerie-accent);
  top: -6px;
  cursor: grab;
  transition: transform 0.2s ease;
}

#search_filters .faceted-slider .ui-slider-handle:hover,
#search_filters .faceted-slider .ui-slider-handle:active {
  transform: scale(1.2);
  cursor: grabbing;
}

/* Animation d'ouverture des filtres */
#search_filters .facet ul.collapse {
  transition: all 0.3s ease;
}

#search_filters .facet ul.collapse.in,
#search_filters .facet ul.collapse.show {
  animation: slideDown 0.3s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive mobile */
@media (max-width: 991px) {
  /* Désactiver sticky sur mobile */
  #search_filters_wrapper {
    position: static !important;
  }
  
  #search-filters,
  #search_filters {
    max-height: none !important;
    overflow-y: visible !important;
    padding: 1rem;
    border-radius: 12px;
  }
  
  #search-filters .facet-title,
  #search_filters .facet-title {
    padding: 0.75rem;
    font-size: 0.9rem !important;
  }
  
  #search-filters .facet-label,
  #search_filters .facet-label {
    padding: 0.5rem 0.6rem;
    font-size: 0.85rem;
  }
}

/* Bouton "Filtrer" mobile */
#_mobile_search_filters_wrapper .btn,
.js-search-filters-clear-all.btn-link {
  background: var(--epicerie-primary);
  color: var(--epicerie-white);
  border: none;
  border-radius: 25px;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  transition: all 0.3s ease;
}

#_mobile_search_filters_wrapper .btn:hover {
  background: var(--epicerie-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(13, 91, 76, 0.3);
}

/* ==========================================
   FILTRES - Renommage des labels
   ========================================== */

/* Renommer "Catégories" → "Appellations" */
#search_filters .facet[data-name="Catégories"] .facet-title,
#search_filters .facet[data-name="Categories"] .facet-title {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Catégories"] .facet-title::after,
#search_filters .facet[data-name="Categories"] .facet-title::after {
  content: "Appellations";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Renommer "Couleur du Vin" → "Couleur" */
#search_filters .facet[data-name="Couleur du Vin"] .facet-title {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Couleur du Vin"] .facet-title::after {
  content: "Couleur";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Renommer "Région Viticole" → "Régions" */
#search_filters .facet[data-name="Région Viticole"] .facet-title {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Région Viticole"] .facet-title::after {
  content: "Régions";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Renommer "Marque" → "Domaines" */
#search_filters .facet[data-name="Marque"] .facet-title,
#search_filters .facet[data-name="Brand"] .facet-title {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Marque"] .facet-title::after,
#search_filters .facet[data-name="Brand"] .facet-title::after {
  content: "Domaines";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Renommer "Sélections" → "Collections" */
#search_filters .facet[data-name="Sélections"] .facet-title,
#search_filters .facet[data-name="Features"] .facet-title {
  font-size: 0 !important;
}
#search_filters .facet[data-name="Sélections"] .facet-title::after,
#search_filters .facet[data-name="Features"] .facet-title::after {
  content: "Collections";
  font-size: 0.95rem;
  font-weight: 600;
}

/* Filtres actifs - Pills */
#js-active-search-filters {
  padding: 0.10rem 0; /* Réduit de 1rem à 0.25rem */
  margin-bottom: 0.2rem; /* Réduit de 1rem à 0.5rem */
}

#js-active-search-filters .filter-block {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, var(--epicerie-primary) 0%, var(--epicerie-primary-dark) 100%);
  color: var(--epicerie-white);
  padding: 0.4rem 0.8rem;
  border-radius: 20px;
  margin: 0.25rem;
  font-size: 0.85rem;
  transition: all 0.2s ease;
}

#js-active-search-filters .filter-block:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(13, 91, 76, 0.3);
}

#js-active-search-filters .filter-block .close {
  margin-left: 0.5rem;
  color: var(--epicerie-white);
  opacity: 0.8;
  font-size: 1.1rem;
  line-height: 1;
  transition: opacity 0.2s ease;
}

#js-active-search-filters .filter-block .close:hover {
  opacity: 1;
}

/* Style du total résultats */
.showing {
  color: var(--epicerie-text-light);
  font-size: 0.9rem;
  padding: 0.5rem 0;
}

/* ========================================
   CATEGORY TREE - Style identique à search-filters
   ======================================== */

/* Conteneur principal */
/* ==========================================
   CATEGORY TREE - COMPACT
   ========================================== */

.block-categories,
.category-tree,
.ps_categorytree,
#left-column .category-tree,
#left-column .block-categories {
  background: #fffdf8 !important;
  border-radius: 12px !important;
  padding: 0.75rem !important;
  box-shadow: 0 2px 10px rgba(13, 91, 76, 0.08) !important;
  border: 1px solid #f5d1b7 !important;
  margin-bottom: 1rem !important;
}

/* Reset listes */
.category-tree ul,
.block-categories ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.category-tree li,
.block-categories li {
  margin: 0 !important;
  padding: 0 !important;
}

/* Liens catégories - Styles harmonisés avec faceted filters */
.category-tree a,
.block-categories a {
  display: inline !important;
  padding: 0.1rem 0.3rem !important;
  color: #0D5B4C !important; /* Vert comme faceted */
  text-decoration: none !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  transition: color 0.2s !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

.category-tree a:hover,
.block-categories a:hover {
  color: var(--epicerie-accent) !important; /* Même hover que faceted */
}

/* Titre du bloc catégorie (titre principal avec trait) */
.left-block__title {
  display: inline-block !important;
  padding-bottom: 0.6rem !important;
  margin-bottom: 0.6rem !important;
  border-bottom: 1px solid #f5d1b7 !important;
}

.left-block__title__link {
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  color: var(--epicerie-primary) !important;
  text-decoration: none !important;
}

.left-block__title__link:hover {
  color: var(--epicerie-accent) !important;
}

/* Catégories niveau 1 - Style titre faceted avec trait */
.category-tree > ul > li > a,
.block-categories > ul > li > a {
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: var(--epicerie-primary) !important;
  display: inline-block !important;
  padding-bottom: 0.6rem !important;
  margin-bottom: 0.6rem !important;
  border-bottom: 1px solid #f5d1b7 !important;
}

/* Sous-catégories indentation - Alignées sous parent */
.category-tree ul ul,
.block-categories ul ul {
  padding-left: 0 !important;
  margin-left: 0.8rem !important;
  border-left: none !important;
}

/* Masquer UNIQUEMENT les sous-catégories de VINS (structure: li avec lien + li avec ul) */
.category-tree li:has(> a[href*="4030-vins"]) + li > ul,
.block-categories li:has(> a[href*="4030-vins"]) + li > ul {
  display: none !important;
}

.category-tree ul ul a,
.block-categories ul ul a {
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  color: #0D5B4C !important; /* Vert comme tous les liens faceted */
  padding-left: 0 !important;
}

/* ACCORDION BUTTONS - Ne pas casser ! */
.category-tree .navbar-toggler,
.category-tree .collapse-icons,
.category-tree [data-toggle="collapse"],
.category-tree [data-bs-toggle="collapse"],
.block-categories .navbar-toggler,
.block-categories .collapse-icons,
.block-categories [data-toggle="collapse"],
.block-categories [data-bs-toggle="collapse"] {
  color: #DD7E0C !important;
  cursor: pointer !important;
  background: transparent !important;
  border: none !important;
  padding: 0.1rem !important;
  font-size: 0.9rem !important;
}

.category-tree .material-icons,
.block-categories .material-icons {
  font-size: 1rem !important;
  color: #DD7E0C !important;
  vertical-align: middle !important;
}

/* Mobile */
@media (max-width: 991px) {
  .category-tree, .block-categories {
    padding: 0.5rem !important;
  }
}
@media (max-width: 991px) {
  .block-categories,
  .category-tree,
  .ps_categorytree {
    margin-bottom: 1rem !important;
    padding: 1rem !important;
  }
  
  .category-tree a,
  .block-categories a {
    padding: 0.6rem 0.5rem !important;
  }
}

/* ============================================
   STYLE DES SOUS-CATÉGORIES (en haut des produits)
   ============================================ */
/* Conteneur des sous-catégories - style compact */
.subcategories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  padding: 0;
}

.subcategories .row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  width: 100%;
}

/* Wrapper de chaque sous-catégorie - style compact */
.subcategory__wrapper {
  flex: 0 0 auto;
  width: auto !important;
  padding: 0;
  margin: 0;
}

/* Style des tuiles sous-catégories - compact et élégant */
.subcategory {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.75rem;
  border: 0.10rem solid #e8a83a;
  border-radius: 20px;
  background: #fff;
  transition: all 0.2s ease;
  height: auto;
  min-height: auto;
}

.subcategory:hover {
  border-color: #d4922e;
  background: #fef8f0;
  box-shadow: 0 2px 6px rgba(232, 168, 58, 0.25);
}

/* Image de la sous-catégorie - petite et compacte */
.subcategory__image {
  width: 28px !important;
  height: 28px;
  flex-shrink: 0;
  margin: 0 !important;
  border-radius: 50%;
  overflow: hidden;
}

.subcategory__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

/* Nom de la sous-catégorie */
.subcategory__name {
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  margin: 0;
  white-space: nowrap;
}

/* Responsive - sur mobile, un peu plus petit */
@media (max-width: 767.98px) {
  .subcategory {
    padding: 0.35rem 0.6rem;
  }
  
  .subcategory__image {
    width: 24px !important;
    height: 24px;
  }
  
  .subcategory__name {
    font-size: 0.8rem;
  }
}

/* ============================================
   MASQUER LES SOUS-CATÉGORIES - UNIQUEMENT POUR VINS
   ============================================ */
/* Cache le bloc de sous-catégories uniquement sur la page VINS (id: 4030) */
body.category-id-4030 .subcategories,
body.category-id-4030 .subcategory__wrapper,
body.category-id-4030 #subcategories {
  display: none !important;
}

/* Sur la page VINS : afficher le sidebar mais cacher uniquement l'accordéon (garder le breadcrumb) */
body.category-id-4030 #category-tree-sidebar .accordion.accordion--category {
  display: none !important;
}
/* Sur la page VINS : afficher le lien Accords mets & vins */
body.category-id-4030 #category-tree-sidebar .category-tree__vins-guide {
  display: flex !important;
}

/* ============================================
   MENU BURGER MOBILE - Style compact et élégant
   ============================================ */

/* Bouton burger dans le header - compact et bien centré */
.header-block__action-btn,
.d-xl-none .header-block__action-btn,
.main-menu .header-block__action-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  min-width: 38px;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 6px;
  color: var(--epicerie-primary) !important;
  transition: all 0.2s ease;
  margin: 0;
}

.header-block__action-btn:hover,
.header-block__action-btn:focus {
  background: rgba(13, 91, 76, 0.1) !important;
  border: none !important;
}

/* Icône burger - taille raisonnable */
.header-block__action-btn .material-icons,
.header-block__action-btn .header-block__icon {
  font-size: 22px !important;
  color: var(--epicerie-primary) !important;
  line-height: 1 !important;
}

/* ============================================
   MENU OFFCANVAS MOBILE - Style moderne
   ============================================ */

/* Container offcanvas */
.main-menu__offcanvas,
#mobileMenu.offcanvas,
.offcanvas,
.offcanvas.show,
.offcanvas.showing {
  max-width: 320px !important;
  width: 85vw !important;
  background: var(--epicerie-cream) !important;
  border-right: 3px solid var(--epicerie-secondary) !important;
  z-index: 99999 !important; /* Au-dessus de tout */
}

/* Backdrop du menu offcanvas */
.offcanvas-backdrop,
.offcanvas-backdrop.show,
.offcanvas-backdrop.fade {
  z-index: 99998 !important; /* Juste en dessous du menu */
}

/* Masquer le header-top quand le menu offcanvas est ouvert */
body.offcanvas-open .header-top,
body:has(.offcanvas.show) .header-top,
body:has(.offcanvas.showing) .header-top {
  z-index: 1 !important;
  position: relative !important;
}

/* Header du menu offcanvas - structure à deux barres */
.main-menu__offcanvas .offcanvas-header,
#mobileMenu .offcanvas-header {
  padding: 0 !important;
  border-bottom: none !important;
  background: transparent !important;
}

/* Bouton retour dans barre verte */
.menu-back-btn,
.main-menu__offcanvas .js-back-button {
  color: var(--epicerie-white) !important;
}

.main-menu__back-button .material-icons {
  color: var(--epicerie-white) !important;
}

/* Bouton fermer (dans barre racine blanche) */
.menu-header-root .btn-close,
.main-menu__offcanvas .btn-close,
#mobileMenu .btn-close {
  background-color: transparent !important;
  opacity: 0.55 !important;
  border-radius: 50%;
  padding: 0.4rem !important;
  filter: none !important;
}
.menu-header-root .btn-close:hover,
.main-menu__offcanvas .btn-close:hover {
  opacity: 1 !important;
}

/* Corps du menu mobile */
.main-menu__mobile {
  padding: 0 !important;
  overflow-y: auto;
}

/* Navigation mobile */
.menu--mobile,
.menu.menu--mobile {
  background: var(--epicerie-cream) !important;
  width: 100% !important;
}

/* Liste du menu mobile - FORCER AFFICHAGE VERTICAL */
.menu--mobile .menu__list,
.main-menu__mobile .menu__list,
.main-menu__mobile ul,
.menu--mobile ul,
#mobileMenu ul,
#mobileMenu .menu__list {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Supprimer tout affichage en grille/row */
.main-menu__mobile .row,
.menu--mobile .row,
#mobileMenu .row {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  margin: 0 !important;
}

.main-menu__mobile [class*="col-"],
.menu--mobile [class*="col-"],
#mobileMenu [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
}

/* Titre dans le menu mobile */
.main-menu__title {
  background: var(--epicerie-primary) !important;
  color: var(--epicerie-white) !important;
  padding: 0.75rem 1.25rem !important;
  margin: 0 !important;
  font-weight: 600;
  width: 100% !important;
  display: block !important;
}

/* Items du menu mobile - UN PAR LIGNE */
.menu--mobile .menu__list li,
.main-menu__mobile li,
#mobileMenu li {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
  width: 100% !important;
  border-bottom: 1px solid rgba(13, 91, 76, 0.1);
}

/* Liens du menu mobile */
.menu--mobile .menu__link,
.main-menu__mobile .menu__link,
.menu--mobile a,
#mobileMenu .menu__link {
  display: flex !important;
  flex: 1;
  align-items: center;
  padding: 0.9rem 1.25rem !important;
  color: var(--epicerie-primary) !important;
  font-size: 1rem !important;
  font-weight: 500;
  text-decoration: none !important;
  transition: all 0.2s ease;
}

.menu--mobile .menu__link:hover,
.main-menu__mobile .menu__link:hover,
.menu--mobile a:hover {
  background: rgba(13, 91, 76, 0.08) !important;
  color: var(--epicerie-accent) !important;
}

/* Flèche pour sous-menus */
.main-menu__toggle-child,
.menu--mobile .js-menu-open-child {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: var(--epicerie-secondary-light) !important;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-right: 0.5rem;
}

.main-menu__toggle-child:hover {
  background: var(--epicerie-secondary) !important;
}

.main-menu__toggle-child .material-icons {
  color: var(--epicerie-primary) !important;
  font-size: 24px !important;
}

/* Bas du menu offcanvas */
.main-menu__additionnals,
.offcanvas-body {
  background: var(--epicerie-cream) !important;
  border-top: 1px solid var(--epicerie-secondary-light);
  padding: 1rem !important;
}

/* Sélecteurs langue/devise */
.main-menu__selects {
  display: flex;
  gap: 0.75rem;
}

.main-menu__selects select {
  border: 1px solid var(--epicerie-secondary);
  border-radius: 6px;
  padding: 0.5rem;
  background: white;
}

/* ============================================
   RESPONSIVE MOBILE - Ajustements header
   ============================================ */

@media (max-width: 1199.98px) {
  /* Afficher le bouton burger */
  .main-menu .d-xl-none {
    display: flex !important;
  }
  
  /* Cacher le menu desktop */
  .main-menu .js-menu-desktop,
  .main-menu .d-none.d-xl-block {
    display: none !important;
  }
  
  /* Header bottom ajustements */
  .header-bottom {
    padding: 0.5rem 0;
  }
  
  .header-bottom .logo img {
    max-height: 50px;
  }
}

@media (max-width: 767.98px) {
  /* Réduire padding header */
  .header-bottom {
    padding: 0.35rem 0;
  }
  
  /* Logo plus petit */
  .header-bottom .logo img {
    max-height: 42px;
  }
  
  /* Bouton burger compact sur mobile */
  .header-block__action-btn {
    width: 36px;
    height: 36px;
    min-width: 36px;
  }
  
  .header-block__action-btn .material-icons {
    font-size: 20px !important;
  }
  
  /* Menu offcanvas prend plus de place */
  .main-menu__offcanvas,
  #mobileMenu.offcanvas {
    width: 90vw !important;
    max-width: 300px !important;
  }
  
  /* Breadcrumb mobile - plus compact */
  .breadcrumb__wrapper,
  .breadcrumb-wrapper {
    padding: 0.5rem 0;
    margin-bottom: 0.75rem;
  }
  
  .breadcrumb,
  .breadcrumb ol {
    font-size: 0.75rem;
  }
  
  .breadcrumb li + li::before,
  .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    padding: 0 0.35rem;
  }
}

@media (max-width: 575.98px) {
  /* Très petit écran */
  .header-bottom .logo img {
    max-height: 38px;
  }
  
  .header-block__action-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 5px;
  }
  
  .header-block__action-btn .material-icons {
    font-size: 18px !important;
  }
  
  /* Breadcrumb très compact */
  .breadcrumb,
  .breadcrumb ol {
    font-size: 0.7rem;
  }
}

/* ==========================================
   SÉLECTEUR NOMBRE DE PRODUITS PAR PAGE
   ========================================== */

.products-per-page {
  margin-right: 0.5rem;
}

.products-per-page .btn {
  background-color: var(--epicerie-white);
  border: 1px solid #dee2e6;
  color: var(--epicerie-text);
  font-size: 0.875rem;
  min-width: 100px;
  transition: all 0.2s ease;
}

.products-per-page .btn:hover,
.products-per-page .btn:focus {
  background-color: var(--epicerie-secondary-light);
  border-color: var(--epicerie-primary);
  color: var(--epicerie-primary);
}

.products-per-page .btn .material-icons {
  font-size: 20px;
  vertical-align: middle;
}

.products-per-page .dropdown-menu {
  min-width: 80px;
  padding: 0.25rem 0;
}

.products-per-page .dropdown-item {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  text-align: center;
  transition: all 0.2s ease;
}

.products-per-page .dropdown-item:hover {
  background-color: var(--epicerie-secondary-light);
  color: var(--epicerie-primary);
}

.products-per-page .dropdown-item.active {
  background-color: var(--epicerie-primary);
  color: var(--epicerie-white);
  font-weight: 600;
}

/* Responsive */
@media (max-width: 767px) {
  .products-per-page {
    margin-right: 0.25rem;
  }
  
  .products-per-page .btn {
    min-width: 70px;
    font-size: 0.8rem;
    padding: 0.375rem 0.5rem;
  }
  
  /* Header-top sticky en mobile */
  .header-top {
    position: sticky;
    top: 0;
    z-index: 900; /* Sous le menu offcanvas (9999) et le backdrop (9998) */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  }
  
  /* Ajuster le padding du header-top-mobile */
  .header-top-mobile {
    padding: 0.6rem 0;
  }
  
  /* Améliorer l'affichage du texte "Appelez-nous" */
  .header-top-mobile #_desktop_contact_link span,
  .header-top-mobile .header-top__contact span {
    font-size: 0.75rem;
    white-space: nowrap;
  }
  
  /* Assurer que les icônes du panier et compte sont visibles */
  .header-top-mobile .header-block__icon {
    font-size: 1.3rem !important;
  }
  
  /* Décalage vers la gauche des icônes utilisateur/panier */
  .header-top-mobile .header-top__right,
  .header-top-mobile > div > div > .col-6.text-end {
    padding-right: 1rem;
  }
  
  /* Badge du panier en mobile */
  .header-top-mobile .header-block__badge {
    min-width: 20px;
    min-height: 20px;
    font-size: 0.7rem;
  }
}

/* Pages catégorie : masquer le breadcrumb (remplacé par le mini-breadcrumb du category tree) */
body#category .breadcrumb__wrapper {
  display: none !important;
}
