/* ==========================================================================
   BosArts — composants catalogue

   Habillage des seuls éléments ajoutés par inc/woocommerce.php. Rien ici
   ne touche à la grille, à la carte produit ni à la fiche produit :
   c'est le territoire de Woodmart, et il ne doit pas être disputé.

   Correspondance entre chaque bloc de règles et le code qui l'émet :
     .bos-prix        bosarts_prix_html()
     .bos-ref         bosarts_boucle_reference(), bosarts_produit_reference()
     .bos-marque      bosarts_produit_marque()
     .bos-pastille*   bosarts_boucle_pastilles()
     .bos-dispo       bosarts_boucle_disponibilite(), bosarts_produit_livraison()
     .bos-badge       bosarts_boucle_badge_pro()
     .bos-devis       bosarts_boucle_devis(), bosarts_produit_devis()
     .bos-matrice     bosarts_produit_matrice()  (rempli par le plugin B2B)
   ========================================================================== */

/* --- Prix : TTC en grand, HT et TVA en dessous pour les pros -------------- */

.bos-prix {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.bos-prix__barre {
  font-size: var(--bos-taille-sm);
  color: var(--bos-gris-clair);
  text-decoration: line-through;
}

.bos-prix__ttc {
  font-size: var(--bos-taille-lg);
  font-weight: 500;
  color: var(--bos-fusain);
}

.bos-prix__devise {
  font-size: var(--bos-taille-sm);
  font-weight: 400;
  color: var(--bos-gris);
}

.bos-prix__ht {
  font-size: var(--bos-taille-xs);
  color: var(--bos-gris);
}

.single-product .bos-prix__ttc { font-size: 1.625rem; }

/* --- Référence et marque --------------------------------------------------- */

.bos-ref {
  display: block;
  font-family: var(--bos-font-mono);
  font-size: var(--bos-taille-xs);
  color: var(--bos-gris-clair);
  letter-spacing: 0.01em;
  margin: 0;
}

.bos-marque {
  font-size: var(--bos-taille-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bos-azur);
  margin: 0 0 var(--bos-esp-1);
}

/* --- Disponibilité ---------------------------------------------------------- */

.bos-dispo {
  display: inline-flex;
  align-items: center;
  gap: var(--bos-esp-2);
  font-size: var(--bos-taille-xs);
}

.bos-dispo::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: currentColor;
  flex-shrink: 0;
}

.bos-dispo--stock   { color: var(--bos-stock); }
.bos-dispo--attente { color: var(--bos-attente); }
.bos-dispo--rupture { color: var(--bos-rupture); }

.bos-livraison {
  display: flex;
  align-items: center;
  gap: var(--bos-esp-2);
  font-size: var(--bos-taille-sm);
  color: var(--bos-gris);
  margin-block-start: var(--bos-esp-2);
}

/* --- Pastilles de variation : une palette de peintre, pas des cases -------- */

.bos-pastilles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bos-esp-1);
}

.bos-pastille {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 0.5px solid var(--bos-trait);
  flex-shrink: 0;
}

.bos-pastille--reste {
  font-size: var(--bos-taille-xs);
  color: var(--bos-gris-clair);
}

/* --- Badges ----------------------------------------------------------------- */

.bos-badge {
  display: inline-flex;
  align-items: center;
  font-size: var(--bos-taille-xs);
  font-weight: 500;
  line-height: 1.5;
  padding: 0.2rem 0.6rem;
  border-radius: var(--bos-rayon-pilule);
}

.bos-badge--pro     { background-color: var(--bos-pro);       color: var(--bos-blanc); }
.bos-badge--promo   { background-color: var(--bos-vermillon); color: var(--bos-blanc); }
.bos-badge--nouveau { background-color: var(--bos-jaune);     color: var(--bos-fusain); }

/* Le badge pro se pose dans la vignette, sous les étiquettes de Woodmart
   (z-index 3 chez lui) pour ne jamais recouvrir « Promo ». */
.bos-badge--flottant {
  position: absolute;
  inset-block-start: var(--bos-esp-2);
  inset-inline-start: var(--bos-esp-2);
  z-index: 2;
}

.bos-compte-pro {
  display: inline-flex;
  align-items: center;
  gap: var(--bos-esp-1);
  background-color: var(--bos-pro-bg);
  color: var(--bos-nuit);
  font-size: var(--bos-taille-xs);
  padding: 0.3rem 0.7rem;
  border-radius: var(--bos-rayon-pilule);
  white-space: nowrap;
}

/* --- Demande de devis --------------------------------------------------------
   Sur la fiche produit : un bouton secondaire à côté de l'ajout au panier.
   Dans le catalogue : un simple lien, pour ne pas concurrencer le bouton
   d'achat de la carte Woodmart.                                          */

.bos-devis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--bos-taille-sm);
  color: var(--bos-pro);
  background: transparent;
  border: 1px solid var(--bos-pro);
  border-radius: var(--bos-rayon-pilule);
  padding: 0.55rem 1.25rem;
  margin-block-start: var(--bos-esp-2);
  cursor: pointer;
  text-decoration: none;
}

.bos-devis:hover {
  background-color: var(--bos-pro-bg);
  color: var(--bos-nuit);
}

.products .bos-devis,
.wd-products .bos-devis {
  font-size: var(--bos-taille-xs);
  border: 0;
  padding: 0;
  margin-block-start: var(--bos-esp-1);
}

.products .bos-devis:hover,
.wd-products .bos-devis:hover {
  background: transparent;
  text-decoration: underline;
}

/* --- Encart de prix sur la fiche produit ------------------------------------- */

.bos-encart-prix {
  background-color: var(--bos-blanc);
  border: var(--bos-bordure);
  border-radius: var(--bos-rayon);
  padding: var(--bos-esp-3);
  margin-block: var(--bos-esp-4);
}

/* --- Grille de commande de gamme (emplacement réservé au plugin B2B) --------- */

.bos-matrice {
  background-color: var(--bos-blanc);
  border: var(--bos-bordure);
  border-radius: var(--bos-rayon);
  padding: var(--bos-esp-4);
  margin-block-start: var(--bos-esp-6);
}

.bos-matrice__entete {
  display: flex;
  align-items: center;
  gap: var(--bos-esp-2);
  margin-block-end: var(--bos-esp-1);
}

.bos-matrice__titre {
  font-family: var(--bos-font-titre);
  font-size: var(--bos-taille-lg);
  margin: 0;
}

.bos-matrice__aide {
  font-size: var(--bos-taille-sm);
  color: var(--bos-gris);
  margin: 0 0 var(--bos-esp-4);
}

.bos-matrice table { width: 100%; border-collapse: collapse; }

.bos-matrice thead th {
  font-size: var(--bos-taille-xs);
  font-weight: 400;
  color: var(--bos-gris-clair);
  text-align: center;
  padding-block-end: var(--bos-esp-2);
}

.bos-matrice thead th:first-child { text-align: start; }

.bos-matrice tbody td {
  border-top: 0.5px solid var(--bos-toile);
  padding: var(--bos-esp-2) var(--bos-esp-1);
}

.bos-matrice tbody td:first-child { font-size: var(--bos-taille-sm); }

.bos-matrice input[type="number"] {
  width: 100%;
  text-align: center;
  padding: 0.35rem 0;
}

.bos-matrice__pied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bos-esp-4);
  margin-block-start: var(--bos-esp-3);
  padding-block-start: var(--bos-esp-3);
  border-top: var(--bos-bordure);
}

/* --- Mention de règlement hors ligne, affichée aux pros à la commande ------- */

.bos-reglement-entreprise {
  background-color: var(--bos-pro-bg);
  border-radius: var(--bos-rayon);
  padding: var(--bos-esp-3) var(--bos-esp-4);
  font-size: var(--bos-taille-md);
  color: var(--bos-nuit);
}

@media (max-width: 782px) {
  .bos-matrice { padding: var(--bos-esp-3); }
  .bos-matrice__pied { flex-direction: column; align-items: stretch; }
}
