/* ==========================================================================
   6 — CATALOGUE B2B SUR MESURE
   Vue liste et grille avec saisie de quantité en direct.
   Le shortcode [lmd_catalogue] est fourni par le plugin Groupe LMD — Portail B2B.
   ========================================================================== */

.lmd-catalogue{ font-family: var(--lmd-texte); color: var(--lmd-bleu); }

/* --- Recherche --- */
.lmd-cat-recherche{ margin-bottom: 16px; }
.lmd-cat-recherche input{
  width: 100%; min-height: 52px;
  padding: 13px 16px !important;
  font-size: 16px !important;              /* 16px minimum : sinon iOS zoome */
  background: #fff !important;
  color: var(--lmd-bleu) !important;
  border: 1px solid var(--lmd-filet-fort) !important;
  border-radius: var(--lmd-rayon);
}
.lmd-cat-recherche input:focus{ border-color: var(--lmd-bleu) !important; }

/* --- Filtres par marque --- */
.lmd-filtres{
  display: flex; gap: 8px; overflow-x: auto;
  padding: 4px 0 8px;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.lmd-filtres::-webkit-scrollbar{ display: none; }
.lmd-puce{
  display: inline-flex; align-items: center; gap: 8px;
  white-space: nowrap; flex: none;
  border: 1px solid var(--lmd-filet-fort) !important;
  border-radius: 999px !important;
  background: var(--lmd-creme-clair) !important;
  color: var(--lmd-bleu) !important;
  padding: 9px 16px !important;
  min-height: 42px;
  font-size: 13px !important;
  font-weight: 400 !important;
  transition: background .2s, border-color .2s;
}
.lmd-puce[aria-pressed="true"]{
  background: var(--lmd-bleu) !important;
  color: var(--lmd-creme) !important;
  border-color: var(--lmd-bleu) !important;
}
.lmd-pastille{
  display: inline-block; width: 9px; height: 9px;
  border-radius: 50%; flex: none;
}

/* --- Compteur et bascule d'affichage --- */
.lmd-cat-outils{
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 10px 0 6px;
}
.lmd-compte{ margin: 0; font-size: 13px; color: var(--lmd-bleu-400); }
.lmd-bascule{
  display: inline-flex; flex: none;
  border: 1px solid var(--lmd-filet-fort); border-radius: var(--lmd-rayon);
  overflow: hidden;
}
.lmd-bascule button{
  width: 44px; height: 40px;
  display: grid; place-items: center;
  background: #fff !important; color: var(--lmd-bleu-600) !important;
  border: none !important; padding: 0 !important; min-height: 40px;
}
.lmd-bascule button[aria-pressed="true"]{
  background: var(--lmd-bleu) !important; color: var(--lmd-creme) !important;
}

/* --- Messages --- */
.lmd-messages:empty{ display: none; }
.lmd-messages{ margin: 12px 0; }
.lmd-messages a{ color: inherit; text-decoration: underline; }

/* ==========================================================================
   VUE LISTE
   ========================================================================== */

.lmd-produits--liste{ border-top: 1px solid var(--lmd-filet); }

.lmd-produit--liste{
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 16px; align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--lmd-filet);
  transition: background .2s, opacity .2s;
}
.lmd-produit--liste.lmd-produit--actif{ background: var(--lmd-creme-clair); }
.lmd-produit--envoi{ opacity: .55; }
.lmd-produit--erreur{ background: rgba(163,59,50,.07) !important; }

.lmd-produit__img{
  width: 72px; height: 72px; overflow: hidden;
  background: #fff; border: 1px solid var(--lmd-filet);
}
.lmd-produit__img img{ width: 100%; height: 100%; object-fit: contain; padding: 6%; }

.lmd-produit__info{ min-width: 0; }
.lmd-produit__ref{
  margin: 0; font-size: 11px; letter-spacing: .09em;
  color: var(--lmd-dore-texte); font-variant-numeric: tabular-nums;
}
.lmd-produit__nom{
  margin: 2px 0 0; font-family: var(--lmd-texte) !important;
  font-size: 15px !important; font-weight: 500 !important;
  line-height: 1.32 !important; letter-spacing: 0 !important;
}
.lmd-produit__nom a{ color: var(--lmd-bleu) !important; }
.lmd-produit__nom a:hover{ color: var(--lmd-dore-texte) !important; }
.lmd-produit__meta{
  margin: 5px 0 0; font-size: 12px; color: var(--lmd-bleu-400);
  display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
}
.lmd-produit__marque{ display: inline-flex; align-items: center; gap: 6px; }

.lmd-produit__action{
  display: flex; align-items: center; gap: 16px; flex: none;
}
.lmd-produit__prix{
  margin: 0; font-size: 16px; font-weight: 500;
  font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right;
}
.lmd-produit__prix small{
  display: block; font-size: 11px; font-weight: 400;
  color: var(--lmd-bleu-400); letter-spacing: .04em;
}
.lmd-produit__prix .woocommerce-price-suffix,
.lmd-produit__prix .lmd-mention-ht{ display: none; }

/* --- Sélecteur de quantité --- */
.lmd-stepper{
  display: inline-flex; align-items: center; flex: none;
  border: 1px solid var(--lmd-filet-fort);
  border-radius: var(--lmd-rayon); background: #fff; overflow: hidden;
}
.lmd-stepper button{
  width: 42px; height: 46px; min-height: 46px;
  background: transparent !important; color: var(--lmd-bleu) !important;
  border: none !important; padding: 0 !important;
  font-size: 19px !important; line-height: 1 !important;
}
.lmd-stepper button:hover{ background: var(--lmd-creme-clair) !important; }
.lmd-stepper button:disabled{ color: var(--lmd-bleu-200) !important; cursor: not-allowed; }
.lmd-stepper input.lmd-qte{
  width: 56px; height: 46px; min-height: 46px;
  border: none !important; text-align: center;
  font-size: 16px !important; font-variant-numeric: tabular-nums;
  background: transparent !important; color: var(--lmd-bleu) !important;
  padding: 0 !important; -moz-appearance: textfield;
}
.lmd-stepper input.lmd-qte::-webkit-outer-spin-button,
.lmd-stepper input.lmd-qte::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }

.lmd-choisir{
  font-size: 13px; color: var(--lmd-dore-texte) !important;
  border-bottom: 1px solid var(--lmd-dore); padding-bottom: 2px; white-space: nowrap;
}
.lmd-indispo{ font-size: 13px; color: var(--lmd-bleu-400); white-space: nowrap; }

/* ==========================================================================
   VUE GRILLE
   ========================================================================== */

.lmd-produits--grille{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px; padding-top: 8px;
}
@media (min-width: 640px){ .lmd-produits--grille{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 1000px){ .lmd-produits--grille{ grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; } }

.lmd-produit--grille{
  display: flex; flex-direction: column; min-width: 0;
  border: 1px solid var(--lmd-filet);
  background: var(--lmd-creme-clair);
  transition: border-color .2s, opacity .2s;
}
.lmd-produit--grille.lmd-produit--actif{
  border-color: var(--lmd-dore);
  box-shadow: inset 0 0 0 1px var(--lmd-dore);
}
.lmd-produit--grille .lmd-produit__img{
  width: 100%; height: auto; aspect-ratio: 1/1;
  border: none; border-bottom: 1px solid var(--lmd-filet);
}
.lmd-produit--grille .lmd-produit__img img{ padding: 9%; }
.lmd-produit--grille .lmd-produit__info{ padding: 12px 13px 0; }
.lmd-produit--grille .lmd-produit__meta{ flex-direction: column; align-items: flex-start; gap: 3px; }
.lmd-produit--grille .lmd-produit__action{
  flex-direction: column; align-items: stretch; gap: 10px;
  padding: 10px 13px 13px; margin-top: auto;
}
.lmd-produit--grille .lmd-produit__prix{ text-align: left; }
.lmd-produit--grille .lmd-stepper{ width: 100%; justify-content: space-between; }
.lmd-produit--grille .lmd-stepper input.lmd-qte{ flex: 1; width: auto; min-width: 0; }

/* ==========================================================================
   ÉTATS
   ========================================================================== */

.lmd-resultats.lmd-chargement{ opacity: .5; pointer-events: none; transition: opacity .2s; }
.lmd-vide{ padding: 50px 0; text-align: center; color: var(--lmd-bleu-400); font-size: 15px; }

.lmd-plus-wrap{ text-align: center; padding: 26px 0 10px; }
.lmd-voir-plus{
  background: transparent !important;
  color: var(--lmd-bleu) !important;
  border: 1px solid var(--lmd-bleu) !important;
  border-radius: var(--lmd-rayon) !important;
  padding: 14px 30px !important; min-height: 48px;
  font-size: 14px !important; font-weight: 500 !important;
}
.lmd-voir-plus:hover{
  background: var(--lmd-bleu) !important; color: var(--lmd-creme) !important;
}

/* --- Mobile --- */
@media (max-width: 767px){
  .lmd-filtres{
    flex-wrap: wrap;
    overflow-x: visible;
    padding-right: 0;
  }
  .lmd-produit--liste{
    grid-template-columns: 60px 1fr;
    grid-template-areas: "img info" "action action";
    row-gap: 12px;
  }
  .lmd-produit__img{ grid-area: img; width: 60px; height: 60px; }
  .lmd-produit__info{ grid-area: info; }
  .lmd-produit__action{
    grid-area: action;
    justify-content: space-between; width: 100%;
  }
  .lmd-produit__prix{ text-align: left; }
  /* la règle « boutons pleine largeur » ne doit pas casser le stepper */
  .lmd-stepper button, .lmd-bascule button, .lmd-puce{
    width: auto !important; display: inline-flex !important;
  }
  .lmd-stepper button{ width: 44px !important; }
  .lmd-bascule button{ width: 44px !important; }
}
