/* ============================================================
   B2B pro.ordesplantes.fr — Thème "L'Or des Plantes" (dev)
   Rendu pro + artisanal, aligné sur les tokens du site WP (lodp-*)
   Surcharge Bootstrap / styles existants — appliqué sur DEV uniquement
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;1,400&family=Inter:wght@400;500;600&family=EB+Garamond:ital@0;1&display=swap');

:root{
  --lodp-creme:#FBF8F2;
  --lodp-papier:#F4EEE3;
  --lodp-border:#e8e0d4;
  --lodp-foret:#2c3e2c;
  --lodp-sauge:#6b8063;
  --lodp-sauge-clair:#8FA88A;
  --lodp-terracotta:#c05a24;
  --lodp-or:#bc9646;
  --lodp-sepia:#3D2817;
  --lodp-sepia-clair:#5C4A40;
  --lodp-texte:#2C2420;
  --lodp-font-display:'Playfair Display', Georgia, serif;
  --lodp-font-body:'Inter', 'DM Sans', sans-serif;
  --lodp-font-italique:'EB Garamond', serif;
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;}
body{
  font-family: var(--lodp-font-body);
  background-color: var(--lodp-creme);
  background-image:
     radial-gradient(circle at 1px 1px, rgba(60,41,23,.05) 1px, transparent 0);
  background-size: 26px 26px;
  color: var(--lodp-texte);
  font-size: 15px;
  line-height: 1.6;
}
h1,h2,h3,h4,h5,h6,.navbar-brand{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-weight: 600;
}
a{color: var(--lodp-sauge);}
a:hover{color: var(--lodp-terracotta);}

/* ---------- Header / barre d'infos ---------- */
body > .d-flex.my-3, body > div.my-3{
  background: var(--lodp-creme);
}
p, .navbar p{margin-bottom:.35rem;}

/* ---------- Navigation ---------- */
.navbar{
  background: var(--lodp-foret) !important;
  font-family: var(--lodp-font-body);
}
.navbar .nav-link, .navbar a{
  color: var(--lodp-creme) !important;
  letter-spacing:.02em;
}
.navbar .nav-link:hover, .navbar a:hover{
  color: var(--lodp-or) !important;
}
.navbar .dropdown-menu{
  background: var(--lodp-papier);
  border:1px solid var(--lodp-border);
}
.navbar .dropdown-item{color: var(--lodp-texte);}
.navbar .dropdown-item:hover{background: var(--lodp-sauge-clair); color:#fff;}

/* ---------- Boutons ---------- */
.btn-primary, .btn-success, .btn{
  font-family: var(--lodp-font-body);
}
.btn-primary, .btn-success{
  background: var(--lodp-terracotta) !important;
  border-color: var(--lodp-terracotta) !important;
  font-weight:500;
  letter-spacing:.03em;
}
.btn-primary:hover, .btn-success:hover{
  background: var(--lodp-sepia) !important;
  border-color: var(--lodp-sepia) !important;
  color: var(--lodp-creme) !important;
}

/* ---------- Cartes / catalogue ---------- */
.card, .card-article {
  background: #fffefb;
  border:1px solid var(--lodp-border);
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(60,41,23,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.card:hover, .card-article:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(60,41,23,.12);
}
.card-img-top, .card img{object-fit:cover;}
.card-title, .card h5, .card h4{color: var(--lodp-foret);}
.card-text{color: var(--lodp-texte);}
.badge.bg-success, .badge.bg-info{background: var(--lodp-sauge) !important;}
.badge{font-weight:500;}

/* ---------- Tableaux / fiches produit ---------- */
table, .table{
  color: var(--lodp-texte);
}
.table thead th{
  background: var(--lodp-papier);
  color: var(--lodp-foret);
  font-family: var(--lodp-font-display);
  border-bottom:2px solid var(--lodp-or);
}
.table td, .table th{border-color: var(--lodp-border);}

/* ---------- Bandeaux d'information ---------- */
.alert, .alert-info, .alert-warning{
  background: var(--lodp-papier);
  border:1px solid var(--lodp-border);
  border-left: 4px solid var(--lodp-terracotta);
  color: var(--lodp-sepia);
  border-radius: 0;
}
.alert-success{
  border-left-color: var(--lodp-sauge);
}

/* ---------- Formulaires ---------- */
.form-control, .form-select, input, select, textarea{
  border:1px solid var(--lodp-border);
  border-radius: 4px;
  background:#fff;
  color: var(--lodp-texte);
}
.form-control:focus, .form-select:focus{
  border-color: var(--lodp-sauge-clair);
  box-shadow: 0 0 0 .2rem rgba(106,127,94,.15);
}

/* ---------- Pied de page ---------- */
footer, .footer{
  background: var(--lodp-sepia) !important;
  color: var(--lodp-creme) !important;
}
footer a, .footer a{color: var(--lodp-or);}
footer a:hover{color:#fff;}

/* ---------- Touches artisanales ---------- */
hr{
  border:0; border-top:1px solid var(--lodp-border);
}
.display-cachet{
  font-family: var(--lodp-font-italique);
  color: var(--lodp-sepia-clair);
}
.img-thumbnail{border-color: var(--lodp-border);}

/* ============ Accueil B2B (dev) ============ */
.accueil-hero{
  background: linear-gradient(180deg, #FBF8F2 0%, #F4EEE3 100%);
  border-bottom: 1px solid var(--lodp-border);
  text-align:center;
  position:relative;
}
.accueil-cachet{
  display:inline-block;
  border:1px solid var(--lodp-terracotta);
  color: var(--lodp-terracotta);
  font-family: var(--lodp-font-italique);
  text-transform: uppercase;
  letter-spacing:.18em;
  font-size:.78rem;
  padding:.25rem .9rem;
  border-radius:2px;
  margin-bottom:.6rem;
}
.accueil-titre{
  font-family: var(--lodp-font-display);
  font-size: 2.6rem;
  color: var(--lodp-foret);
  margin-bottom:.1rem;
  letter-spacing:.02em;
}
.accueil-sous-titre{
  font-family: var(--lodp-font-italique);
  font-style:italic;
  color: var(--lodp-sepia-clair);
  font-size:1.2rem;
  margin-bottom:1.2rem;
}
.accueil-presentation{
  max-width: 620px; margin: 0 auto 1.2rem;
  color: var(--lodp-texte);
}
.accueil-marches p{ margin-bottom:.35rem; }
.accueil-marches-liste{
  display:inline-block; text-align:left; margin:0;
  padding-left:0; list-style:none;
}
.accueil-marches-liste li{
  padding:.12rem 0 .12rem 1.2rem;
  position:relative;
}
.accueil-marches-liste li::before{
  content:"✦";
  position:absolute; left:0; top:.1rem;
  color: var(--lodp-terracotta); font-size:.8rem;
}
.accueil-cta .btn-primary{
  padding:.6rem 1.6rem;
  border-radius:2px;
}
.accueil-section-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:2rem;
  position:relative;
  display:inline-block;
  padding-bottom:.4rem;
}
.accueil-section-titre::after{
  content:"";
  display:block; width:70px; height:2px;
  background: var(--lodp-or);
  margin:.5rem auto 0;
}
.accueil-section-sous-titre{
  color: var(--lodp-sepia-clair);
  font-style:italic;
  font-family: var(--lodp-font-italique);
}
.carte-categorie{ cursor:pointer; overflow:hidden; }
.carte-categorie img{
  transition: transform .35s ease;
}
.carte-categorie:hover img{
  transform: scale(1.04);
}
.carte-categorie .card-body{ text-align:center; }
.carte-categorie .card-title{
  color: var(--lodp-foret);
  font-size:1.15rem;
  margin-bottom:0;
}

/* ---------- Engagements (dev) ---------- */
.accueil-engagements{
  background: var(--lodp-papier);
  border-top:1px solid var(--lodp-border);
  border-bottom:1px solid var(--lodp-border);
}
.engagement{
  background:#fff;
  border:1px solid var(--lodp-border);
  padding:1.5rem 1rem;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.engagement:hover{
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(60,41,23,.10);
  border-color: var(--lodp-or);
}
.engagement-icone{
  font-size:2.2rem;
  line-height:1;
  margin-bottom:.7rem;
}
.engagement-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:1.1rem;
  margin-bottom:.5rem;
}
.engagement-texte{
  color: var(--lodp-texte);
  font-size:.9rem;
  margin-bottom:0;
}

/* ---------- À propos de nos produits (dev) ---------- */
.apropos-contenu{ font-size:1rem; line-height:1.7; }
.apropos-intro{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-left:3px solid var(--lodp-terracotta);
  padding:1.2rem 1.4rem;
  color: var(--lodp-texte);
}
.apropos-intro p:last-child{ margin-bottom:0; }
.apropos-block{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-radius:4px;
  padding:1.1rem 1.3rem;
  margin-bottom:1.1rem;
}
.apropos-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:1.25rem;
  margin-bottom:.5rem;
  position:relative;
  padding-left:1.1rem;
}
.apropos-titre::before{
  content:"✦";
  position:absolute; left:0; top:.1rem;
  color: var(--lodp-terracotta); font-size:.9rem;
}
.apropos-block p{ margin-bottom:0; color: var(--lodp-texte); }
.apropos-liste{
  padding-left:1.1rem;
  margin-bottom:0;
  color: var(--lodp-texte);
}
.apropos-liste li{ margin-bottom:.4rem; }
.apropos-liste li:last-child{ margin-bottom:0; }

/* Fournisseurs */
.apropos-fournisseurs-sous{
  color: var(--lodp-sepia-clair);
  font-style:italic;
  font-family: var(--lodp-font-italique);
  margin-bottom:1.2rem;
}
.logo-fournisseur{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-radius:4px;
  padding:.9rem .6rem;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  text-align:center;
  transition: transform .25s ease, box-shadow .25s ease;
}
.logo-fournisseur:hover{
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(60,41,23,.10);
}
.logo-fournisseur img{
  max-height:56px;
  max-width:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.logo-fournisseur span{
  font-size:.78rem;
  color: var(--lodp-sepia-clair);
  line-height:1.2;
}

/* ============ CATALOGUE PRO (dev) ============ */
.cat-page .table-responsive,
.catalogue-container .table-responsive{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-radius:8px;
  box-shadow: 0 6px 18px rgba(60,41,23,.06);
  padding:.25rem .5rem;
}
.cat-page h2,
.catalogue-titre-cat{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
}
.cat-page .table-striped,
.catalogue-container .table-striped{
  margin-bottom:0;
  border-collapse: separate;
  border-spacing:0;
}
.cat-page .table-striped thead th,
.catalogue-container .table-striped thead th{
  font-family: var(--lodp-font-body);
  text-transform: uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color: var(--lodp-foret);
  background: var(--lodp-papier);
  border-bottom:2px solid var(--lodp-or);
  padding:.7rem .6rem;
  white-space:nowrap;
}
.cat-page .table-striped tbody tr,
.catalogue-container .table-striped tbody tr{
  transition: background .2s ease;
  border-bottom:1px solid var(--lodp-border);
}
.cat-page .table-striped tbody tr:hover,
.catalogue-container .table-striped tbody tr:hover{
  background:#faf6ee;
}
.cat-page .table-striped td,
.catalogue-container .table-striped td{
  padding:.55rem .6rem;
  vertical-align:middle;
  border-top:1px solid #f0e9dd;
  font-size:.9rem;
  color: var(--lodp-texte);
}
.cat-page .table-striped td a,
.catalogue-container .table-striped td a{
  color: var(--lodp-foret);
  font-weight:600;
}
.cat-page .table-striped td a:hover,
.catalogue-container .table-striped td a:hover{
  color: var(--lodp-terracotta);
}
/* description repliable */
.cat-page [id^="description_"],
.catalogue-container [id^="description_"]{
  color: var(--lodp-texte) !important;
  font-size:.88rem;
  line-height:1.55;
  background:#fffdf8;
  border:1px solid var(--lodp-border);
  border-left:3px solid var(--lodp-terracotta);
  border-radius:4px;
  padding:.7rem .9rem;
  margin-top:.5rem;
  max-width: 560px;
}
.cat-page .badge,
.catalogue-container .badge{
  border-radius:3px;
  font-weight:500;
}
/* champs quantité */
.cat-page input[type="number"],
.catalogue-container input[type="number"]{
  border:1px solid var(--lodp-border);
  border-radius:4px;
  padding:.3rem .4rem;
  font-size:.85rem !important;
}
.cat-page input[type="number"]:focus,
.catalogue-container input[type="number"]:focus{
  border-color: var(--lodp-terracotta);
  outline:none;
  box-shadow:0 0 0 2px rgba(192,90,36,.12);
}
/* bouton panier */
.cat-page .btn-primary,
.catalogue-container .btn-primary{
  border:none;
  border-radius:4px;
}
.cat-page .btn-primary:hover,
.catalogue-container .btn-primary:hover{
  filter:brightness(1.08);
}
/* nombre de résultats */
.cat-page h5 span,
.catalogue-container .nb-results{
  font-family: var(--lodp-font-italique);
  font-style:italic;
  color: var(--lodp-sepia-clair) !important;
}
/* cellules enrichies */
.cat-page td.cat-nom{
  font-size:.95rem;
}
.cat-page td.cat-nom a{
  display:inline-block;
  max-width:100%;
  cursor:pointer;
}
.cat-page td.cat-nom strong{
  transition: color .2s ease;
}
.cat-page td.cat-nom:hover strong{
  color: var(--lodp-terracotta);
}
.cat-page .badge.cat-bio{
  background: var(--lodp-sauge) !important;
  font-size:.68rem;
  letter-spacing:.06em;
  vertical-align:middle;
  margin-left:.25rem;
  text-transform:uppercase;
}
.cat-page td.cat-latin{
  font-size:.85rem;
  color: var(--lodp-sepia-clair);
  max-width:170px;
}
.cat-page td.cat-latin em{
  white-space:normal;
  word-wrap:break-word;
}
.cat-page td.cat-origine{
  font-size:.85rem;
  color: var(--lodp-sepia);
  white-space:nowrap;
}
/* colonnes fixées large */
.cat-page .table-striped td[id],
.cat-page .table-striped td.fw-semibold{
  font-weight:600;
  color: var(--lodp-foret);
}

/* ============ CONTACT & FORMULAIRES (dev) ============ */
.contact-infos{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-radius:8px;
  padding:1.2rem 1rem;
  height:100%;
}
.contact-infos-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:1.3rem;
  padding-bottom:.4rem;
  border-bottom:2px solid var(--lodp-or);
  margin-bottom:1rem;
}
.contact-icone{
  background: var(--lodp-papier);
  color: var(--lodp-terracotta);
  width:40px; height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.contact-infos h6{ color: var(--lodp-foret); }
.contact-infos p{ color: var(--lodp-texte); font-size:.95rem; margin-bottom:0; }
.contact-horaires{
  border-top:1px dashed var(--lodp-border);
  margin-top:.5rem;
}
.contact-form{
  background:#fff;
  border:1px solid var(--lodp-border);
  border-radius:8px;
  box-shadow: 0 6px 18px rgba(60,41,23,.06);
}
.contact-form-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:1.3rem;
}
.contact-label{
  font-size:.82rem;
  font-weight:600;
  color: var(--lodp-sepia);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:.3rem;
}
.contact-input{
  border:1px solid var(--lodp-border);
  border-radius:4px;
  padding:.6rem .8rem;
  font-size:.95rem;
  color: var(--lodp-texte);
  background:#fffdf8;
}
.contact-input:focus{
  border-color: var(--lodp-terracotta);
  box-shadow:0 0 0 2px rgba(192,90,36,.12);
}
.contact-submit{
  background: var(--lodp-foret) !important;
  border:none;
  border-radius:4px;
  padding:.7rem 1rem;
  font-weight:600;
  letter-spacing:.03em;
}
.contact-submit:hover{
  background: var(--lodp-terracotta) !important;
}
.contact-alert{
  border-radius:6px;
  border:1px solid #cfe3d6;
  background:#f2faf4;
  color: var(--lodp-foret);
  padding:1rem 1.2rem;
}

/* ============ PAGE PARTENARIAT (dev) ============ */
.ap-pro-sous{
  font-size:1.05rem;
}
.ap-avantages{
  list-style:none;
  padding-left:1.2rem;
  margin:0 0 .5rem;
  color: var(--lodp-texte);
}
.ap-avantages li{
  position:relative;
  padding:.35rem 0;
  font-size:.95rem;
}
.ap-avantages li::before{
  content:"✦";
  position:absolute; left:-1.1rem; top:.3rem;
  color: var(--lodp-terracotta); font-size:.85rem;
}
.ap-section-label{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:1.05rem;
  border-bottom:1px solid var(--lodp-border);
  padding-bottom:.3rem;
  margin:0 0 .2rem;
}
.ap-mention{
  font-size:.8rem;
  font-style:italic;
  color: var(--lodp-sepia-clair);
}

/* ============ HARMONISATION PAGES GÉNÉRIQUES (dev) ============ */
/* Titres de pages encore en Bootstrap vert → version apothicaire */
.container h2.text-success{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret) !important;
  font-size:2rem;
  position:relative;
  padding-bottom:.4rem;
}
.container h3.text-success,
.container h5.text-success{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret) !important;
  font-size:1.3rem;
  position:relative;
  padding-bottom:.3rem;
}
h2[style*="forestgreen"]{
  font-family: var(--lodp-font-display) !important;
  color: var(--lodp-foret) !important;
}
/* connexion */
h2 span[style*="35, 35, 35"]{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret) !important;
}
.container h2 > span{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
}
/* panier vide — message élégant */
h2.text-danger.d-flex.justify-content-center{
  font-family: var(--lodp-font-display);
  color: var(--lodp-terracotta) !important;
  font-size:2.2rem;
}
.btn.btn-dark.btn-sm{ border-radius:4px; }
.btn.btn-warning, .btn.btn-warning.btn-sm, .btn.btn-warning.btn-lg{
  background: var(--lodp-or) !important;
  border:none !important;
  color:#fff !important;
  border-radius:4px;
}
.btn.btn-secondary{ background: var(--lodp-sepia-clair) !important; border:none; border-radius:4px; }
.panier-vide-icone{
  width:150px !important;
  height:150px !important;
  color: var(--lodp-papier) !important;
  opacity:.9;
}
.panier-vide-titre{
  font-family: var(--lodp-font-display);
  color: var(--lodp-foret);
  font-size:2rem;
}
.panier-vide-sous{
  color: var(--lodp-sepia-clair);
  font-family: var(--lodp-font-italique);
  font-style:italic;
  font-size:1.05rem;
}
