@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Montserrat:wght@400;500;600&display=swap");

/* ==========================================================================
   Thème enfant "BS Wine" — style cave sombre & or, pour Hummingbird
   Couleurs modifiables dans :root
   ========================================================================== */

:root {
  --bsw-noir: #0a0908;
  --bsw-noir-2: #141110;
  --bsw-ligne: rgba(212, 172, 106, .22);
  --bsw-ligne-claire: rgba(255, 255, 255, .08);
  --bsw-bordeaux: #6b0a2c;
  --bsw-bordeaux-vif: #a80d48;
  --bsw-bordeaux-profond: #340416;
  --bsw-or: #d4ac6a;
  --bsw-or-fonce: #b28a4f;
  --bsw-creme: #f3f0e8;
  --bsw-carte: #ebe5dc;
  --bsw-texte: #e9e3da;
  --bsw-gris: #9a918a;
  --bsw-encre: #1b1716;
  --bsw-serif: "Cormorant Garamond", Georgia, serif;
  --bsw-sans: "Montserrat", system-ui, sans-serif;

  /* Variables Bootstrap 5 de Hummingbird */
  --bs-primary: var(--bsw-bordeaux);
  --bs-primary-rgb: 107, 10, 44;
  --bs-body-bg: var(--bsw-noir);
  --bs-body-color: var(--bsw-texte);
  --bs-body-font-family: var(--bsw-sans);
  --bs-link-color: var(--bsw-or);
  --bs-link-color-rgb: 212, 172, 106;
  --bs-link-hover-color: #fff;
  --bs-border-color: var(--bsw-ligne-claire);
  --bs-border-radius: 0;
  --bs-heading-color: #fff;
}

/* ---------- Base ---------- */
body {
  background: var(--bsw-noir);
  color: var(--bsw-texte);
  font-family: var(--bsw-sans);
}
h1, h2, h3, .h1, .h2, .h3,
.page-title, .product__name, .section-title {
  font-family: var(--bsw-serif);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #fff;
}
/* Dans la couche de base de Hummingbird pour ne pas écraser la couleur des boutons-liens */
@layer bs-base {
  a { color: var(--bsw-or); text-decoration: none; }
  a:hover { color: #fff; }
}

/* ---------- En-tête ---------- */
#header,
.header-top,
.header-bottom,
.header-nav {
  background: rgba(10, 9, 8, .97);
  color: #fff;
  border-color: var(--bsw-ligne-claire);
}
#header { border-bottom: 1px solid var(--bsw-ligne-claire); }
#header a,
#header .material-icons { color: #fff; }
#header .logo { max-height: 44px; width: auto; }

.main-menu a,
.ps-mainmenu a,
.js-menu a {
  font-family: var(--bsw-sans);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  border-bottom: 2px solid transparent;
}
.main-menu a:hover,
.ps-mainmenu a:hover,
.main-menu .current > a {
  color: #fff;
  border-bottom-color: var(--bsw-bordeaux-vif);
}
.dropdown-menu,
.main-menu__dropdown,
.ps-mainmenu .submenu {
  background: var(--bsw-noir-2);
  border: 1px solid var(--bsw-ligne);
}

/* Badge panier */
.header-block__badge,
.blockcart .cart-products-count {
  background: var(--bsw-or);
  color: var(--bsw-noir);
}

/* ---------- Boutons ---------- */
.btn { border-radius: 0; }
.btn:not(.btn-square-icon):not(.btn-link):not(.btn-close) {
  font-family: var(--bsw-sans);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: .85rem 1.5rem;
}
.btn-primary {
  --bs-btn-bg: var(--bsw-bordeaux);
  --bs-btn-border-color: var(--bsw-bordeaux);
  --bs-btn-hover-bg: var(--bsw-bordeaux-vif);
  --bs-btn-hover-border-color: var(--bsw-bordeaux-vif);
  --bs-btn-active-bg: var(--bsw-bordeaux-vif);
  --bs-btn-active-border-color: var(--bsw-bordeaux-vif);
  --bs-btn-disabled-bg: var(--bsw-bordeaux);
  --bs-btn-disabled-border-color: var(--bsw-bordeaux);
  background-color: var(--bsw-bordeaux);
  border-color: var(--bsw-bordeaux);
  color: #fff;
}
.btn-outline-primary,
.btn-secondary {
  --bs-btn-color: var(--bsw-or);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--bsw-or);
  --bs-btn-hover-color: var(--bsw-noir);
  --bs-btn-hover-bg: var(--bsw-or);
  --bs-btn-hover-border-color: var(--bsw-or);
}

/* ---------- Formulaires ---------- */
.form-control,
.form-select {
  background-color: var(--bsw-noir-2);
  border-color: var(--bsw-ligne);
  color: #fff;
  border-radius: 0;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--bsw-or);
  box-shadow: 0 0 0 .15rem rgba(212, 172, 106, .2);
}

/* ---------- Carrousel d'accueil (module Image slider) ---------- */
.carousel .carousel-item img { filter: brightness(.9); }
.carousel .caption,
.carousel .carousel-caption {
  text-align: left;
  left: 6%;
  right: auto;
  max-width: 480px;
}
.carousel .caption h2,
.carousel .display-1,
.carousel .carousel-caption h2 {
  font-family: var(--bsw-serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  letter-spacing: .04em;
  color: #fff;
}
.carousel-indicators [data-bs-target] { width: 24px; height: 2px; }

/* ---------- Section produits sur fond crème (accueil) ---------- */
#index .featured-products,
#index .ps-featuredproducts,
#index .new-products,
#index .bestsellers {
  background: var(--bsw-creme);
  color: var(--bsw-encre);
  padding: 3.5rem 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}
#index .featured-products h2,
#index .ps-featuredproducts h2 { color: var(--bsw-encre); }

/* ---------- Miniatures produit ---------- */
.product-miniature,
.product-miniature .card {
  background: #fff;
  border: 1px solid #e3ddd4;
  border-radius: 0;
  color: var(--bsw-encre);
  transition: box-shadow .25s ease, transform .25s ease;
}
.product-miniature:hover {
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
  transform: translateY(-3px);
}
.product-miniature__image,
.product-miniature .thumbnail-container img { background: var(--bsw-carte); }
.product-miniature__title,
.product-miniature .product-title a {
  font-family: var(--bsw-serif);
  font-size: 1.1rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--bsw-encre);
}
.product-miniature__price,
.product-miniature .price {
  font-family: var(--bsw-serif);
  font-size: 1.1rem;
  color: var(--bsw-encre);
}
.product-flag,
.product-flags .badge {
  background: var(--bsw-or);
  color: var(--bsw-noir);
  border-radius: 0;
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.wishlist-button-add { color: var(--bsw-bordeaux); }

/* ---------- Pages catégorie / fiche produit ---------- */
.block-category,
.category-header,
.breadcrumb { background: transparent; color: var(--bsw-texte); }
.breadcrumb a { color: var(--bsw-gris); }
.product__name { font-size: 2.4rem; }
.product__current-price,
.current-price-value {
  font-family: var(--bsw-serif);
  font-size: 1.8rem;
  color: var(--bsw-or);
}
.product__description-short,
.product-description { color: #cfc8bf; line-height: 1.75; }
.nav-tabs .nav-link { color: var(--bsw-gris); border-radius: 0; }
.nav-tabs .nav-link.active {
  background: transparent;
  color: #fff;
  border-color: var(--bsw-ligne) var(--bsw-ligne) var(--bsw-noir);
}
.card,
.cart-summary,
.checkout-step {
  background: var(--bsw-noir-2);
  border-color: var(--bsw-ligne-claire);
  color: var(--bsw-texte);
}

/* ---------- Réassurance (module blockreassurance) ---------- */
.blockreassurance,
#block-reassurance {
  border-top: 1px solid var(--bsw-ligne-claire);
  border-bottom: 1px solid var(--bsw-ligne-claire);
  background: var(--bsw-noir);
}
.blockreassurance .block-title,
#block-reassurance span {
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
}
.blockreassurance p { font-size: .7rem; color: var(--bsw-gris); }

/* ---------- Pied de page ---------- */
#footer,
.footer {
  background: var(--bsw-noir);
  color: #cfc8bf;
  border-top: 1px solid var(--bsw-ligne-claire);
}
#footer a, .footer a { color: #cfc8bf; font-size: .75rem; }
#footer a:hover, .footer a:hover { color: var(--bsw-or); }
#footer .h3, #footer h3, #footer .footer__title,
.footer .footer__title {
  font-family: var(--bsw-sans);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
}

/* ==========================================================================
   Blocs d'accueil personnalisés (HTML à coller dans le module
   « Bloc texte personnalisé » / ps_customtext — voir dossier blocs-accueil)
   ========================================================================== */
.bsw-full { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.bsw-wrap { max-width: 1180px; margin: auto; padding: 0 16px; }
.bsw-eyebrow {
  font-size: .72rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--bsw-or);
}
.bsw-titre {
  font-family: var(--bsw-serif);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  color: #fff;
  margin: .6rem 0 0;
}
.bsw-btn {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: .9rem 1.5rem;
  border: 1px solid var(--bsw-or);
  color: var(--bsw-or);
  transition: .25s;
}
.bsw-btn:hover { background: var(--bsw-or); color: var(--bsw-noir); }

/* Nos univers */
.bsw-univers { padding: 4rem 0; background: var(--bsw-noir); }
.bsw-cats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  margin-top: 1.8rem;
}
.bsw-cat {
  position: relative;
  aspect-ratio: .9;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 1.1rem;
  border: 1px solid var(--bsw-ligne);
  color: #fff;
  text-align: center;
}
.bsw-cat img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s;
}
.bsw-cat::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 45%, rgba(0, 0, 0, .85));
}
.bsw-cat span {
  position: relative;
  z-index: 1;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.bsw-cat span b { display: block; font-weight: 400; color: var(--bsw-or); }
.bsw-cat:hover { border-color: var(--bsw-or); color: #fff; }
.bsw-cat:hover img { transform: scale(1.06); }

/* Savoir-faire + coffrets */
.bsw-sf { display: grid; grid-template-columns: 34% 37% 29%; min-height: 300px; }
.bsw-sf__photo { position: relative; overflow: hidden; }
.bsw-sf__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bsw-sf__texte { padding: 2.6rem 2.4rem; background: var(--bsw-noir); }
.bsw-sf__texte h3 {
  font-family: var(--bsw-serif);
  font-size: 1.65rem;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.2;
  margin: .8rem 0 1.2rem;
}
.bsw-sf__texte p { font-size: .85rem; line-height: 1.75; color: #cfc8bf; margin-bottom: 1.6rem; }
.bsw-sf__cof {
  background: radial-gradient(circle at 90% 20%, #4a0a20, var(--bsw-bordeaux-profond) 60%);
  padding: 2.4rem 2rem;
}
.bsw-sf__cof h4 {
  font-family: var(--bsw-sans);
  font-size: .8rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--bsw-or);
  font-weight: 500;
}
.bsw-sf__cof em { font-family: var(--bsw-serif); font-size: 1.15rem; display: block; margin: .2rem 0 1rem; color: #fff; }
.bsw-sf__cof p { font-size: .8rem; color: #cfc8bf; }
.bsw-sf__cof .bsw-btn { width: 100%; justify-content: center; margin-top: .6rem; padding: .75rem; font-size: .65rem; }

@media (max-width: 960px) {
  .bsw-sf { grid-template-columns: 1fr; }
  .bsw-sf__photo { min-height: 220px; }
}
@media (max-width: 560px) {
  .bsw-cats { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ---------- Mention Loi Évin & vérification d'âge (custom.js) ---------- */
.cv-loi-evin {
  background: #000;
  color: #bfb8b0;
  text-align: center;
  font-size: .72rem;
  padding: .55rem 1rem;
  border-top: 1px solid var(--bsw-ligne-claire);
}
.cv-age {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(5, 4, 3, .9);
  backdrop-filter: blur(5px);
}
.cv-age__box {
  background: var(--bsw-noir-2);
  border: 1px solid var(--bsw-ligne);
  max-width: 440px;
  width: 100%;
  padding: 2.6rem 2rem;
  text-align: center;
  color: var(--bsw-texte);
}
.cv-age__box h2 { font-size: 2rem; margin: 0 0 .6rem; color: #fff; }
.cv-age__box p { color: var(--bsw-gris); margin: 0 0 1.6rem; }
.cv-age__actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
.cv-age__actions button {
  padding: .8rem 1.4rem;
  font-size: .72rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  cursor: pointer;
  font-family: var(--bsw-sans);
}
.cv-age__yes { background: var(--bsw-bordeaux); border: 1px solid var(--bsw-bordeaux); color: #fff; }
.cv-age__yes:hover { background: var(--bsw-bordeaux-vif); }
.cv-age__no { background: transparent; border: 1px solid var(--bsw-or); color: var(--bsw-or); }


/* ==========================================================================
   CORRECTIFS v1.1 — après test sur bswine.fr (Hummingbird / PrestaShop 9.2)
   ========================================================================== */

/* Fonds clairs de Bootstrap (bg-body-tertiary, bg-light…) passés en sombre */
:root {
  --bs-secondary-bg: #141110;
  --bs-secondary-bg-rgb: 20, 17, 16;
  --bs-tertiary-bg: #141110;
  --bs-tertiary-bg-rgb: 20, 17, 16;
  --bs-emphasis-color: #fff;
  --bs-emphasis-color-rgb: 255, 255, 255;
  --bs-secondary-color: rgba(233, 227, 218, .7);
  --bs-tertiary-color: rgba(233, 227, 218, .5);
}
.bg-body-tertiary, .bg-light, .bg-body-secondary {
  background-color: var(--bsw-noir-2) !important;
  color: var(--bsw-texte);
}

/* Fil d'Ariane : bandeau blanc -> sombre */
.breadcrumb__wrapper {
  background: var(--bsw-noir-2) !important;
  border-bottom: 1px solid var(--bsw-ligne-claire);
}
.breadcrumb, .breadcrumb-item, .breadcrumb-item.active { color: var(--bsw-gris); }
.breadcrumb a { color: var(--bsw-texte); }
.breadcrumb a:hover { color: var(--bsw-or); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--bsw-gris); }

/* Carrousel : légende sans boîte grise, alignée à gauche comme la maquette */
.ps-imageslider__figure { position: relative; margin: 0; }
.ps-imageslider__figure:has(figcaption)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10, 8, 7, .85) 0%, rgba(10, 8, 7, .35) 45%, rgba(10, 8, 7, 0) 70%);
  pointer-events: none;
}
.ps-imageslider__figcaption.carousel-caption {
  z-index: 2;
  background: none !important;
  top: 50% !important;
  bottom: auto !important;
  left: 6% !important;
  right: auto !important;
  transform: translateY(-50%);
  width: auto !important;
  max-width: 560px;
  padding: 0 !important;
  text-align: left;
}
.ps-imageslider__figcaption h2 {
  font-family: var(--bsw-serif);
  font-weight: 500;
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  letter-spacing: .04em;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, .5);
}
.ps-imageslider__figcaption p,
.ps-imageslider__figcaption .caption-description { color: #fff; font-size: 1rem; }
.carousel-control-prev, .carousel-control-next { background: transparent; border: 0; }

/* Titres de section : clairs sur fond sombre, foncés sur la section crème */
.section-title { color: #fff; }
#index .ps-featuredproducts .section-title { color: var(--bsw-encre); }
#index .ps-featuredproducts .btn-outline-primary,
#index .ps-featuredproducts .btn-secondary,
#index .ps-featuredproducts .all-product-link {
  color: var(--bsw-bordeaux) !important;
  border-color: var(--bsw-bordeaux) !important;
  --bs-btn-color: var(--bsw-bordeaux);
  --bs-btn-border-color: var(--bsw-bordeaux);
  --bs-btn-hover-bg: var(--bsw-bordeaux);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-border-color: var(--bsw-bordeaux);
}

/* Miniatures produit : carte blanche lisible partout */
.product-miniature { overflow: hidden; }
.product-miniature__inner {
  background: #fff !important;
  color: var(--bsw-encre);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.product-miniature__image-container { background: var(--bsw-carte); }
.product-miniature__image { background: transparent; mix-blend-mode: multiply; }
.product-miniature__bottom {
  padding: 1rem 1rem 1.1rem !important;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.product-miniature__infos { flex: 1; }
.product-miniature__title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.25;
  color: var(--bsw-encre) !important;
}
.product-miniature__title:hover { color: var(--bsw-bordeaux) !important; }
.product-miniature__price,
.product-miniature__regular-price { color: var(--bsw-encre); margin-top: .4rem; }
.product-miniature__discount-price { color: var(--bsw-bordeaux); }
.product-miniature .product-list-review { display: none; }

/* Actions : on masque le sélecteur de quantité, bouton pleine largeur */
.product-miniature .quantity-button { display: none !important; }
.product-miniature__form { display: block; margin-top: .9rem; }
.product-miniature__add.btn {
  width: 100%;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .65rem .5rem !important;
  font-family: var(--bsw-sans);
  font-size: .62rem !important;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.product-miniature__add .material-icons { font-size: 1rem; }
.product-miniature__add-text { display: inline !important; }
.product-miniature__actions .btn-outline-primary,
.product-miniature__actions .btn-secondary,
.product-miniature__actions a.btn {
  width: 100%;
  color: var(--bsw-bordeaux) !important;
  border-color: var(--bsw-bordeaux) !important;
  background: transparent;
  --bs-btn-color: var(--bsw-bordeaux);
  --bs-btn-border-color: var(--bsw-bordeaux);
  --bs-btn-hover-bg: var(--bsw-bordeaux);
  --bs-btn-hover-color: #fff;
  font-size: .62rem !important;
  padding: .65rem .5rem !important;
}
.product-miniature__quickview-button {
  background: rgba(10, 9, 8, .85);
  color: #fff;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Sélecteur de quantité (fiche produit, panier) */
.quantity-button__group { flex-wrap: nowrap; }
.quantity-button .btn {
  background: var(--bsw-noir-2);
  border: 1px solid var(--bsw-ligne);
  color: #fff;
}
.quantity-button .form-control { text-align: center; }

/* Newsletter : bandeau clair -> sombre */
.ps-emailsubscription {
  background: var(--bsw-noir-2) !important;
  border-top: 1px solid var(--bsw-ligne-claire);
  border-bottom: 1px solid var(--bsw-ligne-claire);
}
.ps-emailsubscription .h3,
.ps-emailsubscription p.h3 {
  font-family: var(--bsw-serif);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #fff;
}
.ps-emailsubscription p,
.ps-emailsubscription small { color: var(--bsw-gris); }

/* Pied de page */
.footer-block__title {
  font-family: var(--bsw-sans);
  font-size: .72rem !important;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
}
.footer__main { border-top: 1px solid var(--bsw-ligne-claire); }

/* Pages catégorie */
.products-selection, .total-products, .js-product-list-top { color: var(--bsw-gris); }
.subcategory, .category-tree a { color: var(--bsw-texte); }

.product-miniature__actions a.btn:hover,
#index .ps-featuredproducts .btn-outline-primary:hover {
  background: var(--bsw-bordeaux) !important;
  color: #fff !important;
}

.ps-customtext .bsw-univers { margin-bottom: 1rem; }
.bsw-cat img { margin: 0 !important; max-width: none; }

/* Évite la barre de défilement horizontale due aux sections pleine largeur */
html, body { overflow-x: clip; }

/* ==========================================================================
   EN-TÊTE COMPACT (v1.3) — logo | menu centré | recherche, compte, panier
   ========================================================================== */
.bsw-header { background: rgba(10, 9, 8, .97); }
.bsw-header .header-bottom__row { min-height: 70px; }
.bsw-header .header-bottom__logo img,
.bsw-header .navbar-brand img { max-height: 40px; width: auto; }

/* Menu centré, liens soulignés en bordeaux */
.bsw-header .ps-mainmenu--desktop { display: flex; justify-content: center; }
.bsw-header .ps-mainmenu__tree { justify-content: center; gap: .4rem; margin: 0; }
.bsw-header .ps-mainmenu__tree-link {
  font-family: var(--bsw-sans);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  padding-top: 1.55rem;
  padding-bottom: 1.45rem;
  border-bottom: 2px solid transparent;
}
.bsw-header .ps-mainmenu__tree-item:hover .ps-mainmenu__tree-link,
.bsw-header .ps-mainmenu__tree-item.current .ps-mainmenu__tree-link {
  color: #fff;
  border-bottom-color: var(--bsw-bordeaux-vif);
}
.bsw-header .ps-mainmenu__tree-dropdown-toggle { color: rgba(255, 255, 255, .6); }

/* Recherche compacte : une loupe qui s'agrandit au clic */
.bsw-header #_desktop_ps_searchbar { margin-left: auto; flex: 0 0 auto; width: auto; max-width: none; }
.bsw-header .ps-searchbar,
.bsw-header .ps-searchbar__form { width: auto !important; min-width: 0; }
.bsw-header__actions { order: 3; }
.bsw-header .ps-mainmenu--desktop { flex: 1 1 auto; min-width: 0; }
.bsw-header .ps-mainmenu__tree { flex-wrap: nowrap; }
.bsw-header .ps-mainmenu__tree-item { flex: 0 0 auto; }
.bsw-header .ps-searchbar__form,
.bsw-header .ps-searchbar form { position: relative; }
.bsw-header .ps-searchbar input[type="text"],
.bsw-header .ps-searchbar input[type="search"],
.bsw-header .ps-searchbar__input {
  width: 38px;
  padding-left: 34px;
  background: transparent;
  border: 1px solid transparent;
  color: #fff;
  cursor: pointer;
  transition: width .3s ease, border-color .3s ease, background .3s ease;
}
.bsw-header .ps-searchbar input::placeholder { color: transparent; }
.bsw-header .ps-searchbar:focus-within input[type="text"],
.bsw-header .ps-searchbar:focus-within input[type="search"],
.bsw-header .ps-searchbar:focus-within .ps-searchbar__input {
  width: 230px;
  background: var(--bsw-noir-2);
  border-color: var(--bsw-ligne);
  cursor: text;
}
.bsw-header .ps-searchbar:focus-within input::placeholder { color: var(--bsw-gris); }
.bsw-header .ps-searchbar .material-icons { color: #fff; }

/* Compte et panier : icônes seules, pastille dorée */
.bsw-header__actions { gap: .4rem; }
/* Libellés « Connexion » / « Panier » masqués visuellement (restent lus par les lecteurs d'écran) */
.bsw-header__actions .header-block__title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}
.bsw-header__actions .header-block__action-btn,
.bsw-header [id^="_mobile_"] .header-block__action-btn {
  color: #fff;
  padding: .5rem;
  position: relative;
}
.bsw-header .header-block__icon { font-size: 1.45rem; color: #fff; }
.bsw-header .header-block__action-btn:hover .header-block__icon { color: var(--bsw-or); }
.bsw-header .header-block__badge {
  position: absolute;
  top: 0;
  right: -2px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 9px;
  font-size: .62rem;
  line-height: 17px;
  text-align: center;
  background: var(--bsw-or);
  color: var(--bsw-noir);
}

/* Mobile (v1.3.1) : photo du carrousel cadrée sur le texte, flèches masquées, espacements réduits */
@media (max-width: 767.98px) {
  .ps-imageslider__figure img { object-position: 3% center !important; }
  .ps-imageslider .carousel-control-prev,
  .ps-imageslider .carousel-control-next { display: none; }
  .bsw-univers { padding: 2.5rem 0; }
}

/* ==========================================================================
   FICHE PRODUIT CLAIRE (v1.4) — fond crème, style de la maquette
   L'en-tête et le pied de page restent sombres.
   ========================================================================== */
body#product #wrapper {
  background: #f6f2ec;
  color: var(--bsw-encre);
  --bs-body-color: var(--bsw-encre);
  --bs-heading-color: var(--bsw-encre);
  --bs-border-color: #e3ddd4;
}
body#product #wrapper .breadcrumb__wrapper {
  background: #f6f2ec !important;
  border-bottom: 1px solid #e8e1d6;
}
body#product #wrapper .breadcrumb,
body#product #wrapper .breadcrumb-item.active { color: #8b827b; }
body#product #wrapper .breadcrumb a { color: var(--bsw-encre); }
body#product #wrapper .breadcrumb a:hover { color: var(--bsw-bordeaux); }
body#product #wrapper a { color: var(--bsw-bordeaux); }
body#product .product__container { padding-top: 2.5rem; padding-bottom: 2.5rem; }

/* Images : vignettes à gauche, grande photo sur fond beige */
@media (min-width: 768px) {
  body#product .product__images {
    display: grid;
    grid-template-columns: 76px 1fr;
    gap: 14px;
    align-items: start;
  }
  body#product .product__images .product__carousel { grid-column: 2; grid-row: 1; }
  body#product .product__thumbnails { grid-column: 1; grid-row: 1; margin: 0; }
  body#product .product__thumbnails-list {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 12px;
    margin: 0;
    padding: 0;
  }
  body#product .product__thumbnails-item { width: 76px; max-width: 76px; flex: 0 0 auto; }
}
body#product .product__carousel,
body#product .product__carousel .carousel-item { background: var(--bsw-carte); }
body#product .product__carousel img { mix-blend-mode: multiply; object-fit: contain; }
body#product .product__thumbnails-item img {
  background: var(--bsw-carte);
  border: 1px solid #e3ddd4;
  mix-blend-mode: multiply;
}
body#product .product__thumbnails-item.active img,
body#product .product__thumbnails-item img.selected,
body#product .product__thumbnails-item:hover img { border-color: var(--bsw-bordeaux); }
body#product .product__zoom { background: rgba(255, 255, 255, .85); color: var(--bsw-encre); border: 0; }

/* Colonne d'informations */
body#product .product__right { padding-left: 1rem; }
body#product .product__name {
  font-family: var(--bsw-serif);
  font-weight: 500;
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  text-transform: none;
  letter-spacing: 0;
  color: var(--bsw-encre);
  margin-bottom: .4rem !important;
}
body#product .product__manufacturer a {
  font-family: var(--bsw-serif);
  font-style: italic;
  font-size: 1.05rem;
  color: #8b827b;
}
body#product .product__manufacturer a:hover { color: var(--bsw-bordeaux); }

/* Ligne « Millésime : 2018 | Format : 75 cl » (créée par custom.js) */
.bsw-specs {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.1rem;
  margin: .9rem 0 1.2rem;
  font-size: .85rem;
  color: #5d5551;
}
.bsw-specs span + span { padding-left: 1.1rem; border-left: 1px solid #cfc7bc; }

/* Prix */
body#product .product__prices { margin: 1rem 0 .4rem; }
body#product .product__price,
body#product .product__current-price,
body#product .current-price-value {
  font-family: var(--bsw-sans);
  font-weight: 500;
  font-size: 1.45rem;
  color: var(--bsw-encre);
}
body#product .product__tax-label,
body#product .product__tax-infos { font-size: .7rem; color: #8b827b; }
body#product .product__regular-price { color: #8b827b; }
body#product .product__discount { background: var(--bsw-bordeaux); color: #fff; }

/* Disponibilité : pastille + texte */
body#product .product__availability { margin: 1rem 0 1.2rem; }
body#product .product__availability-status { display: flex; align-items: center; gap: .5rem; font-size: .82rem; }
body#product .product__availability-icon { font-size: 0 !important; width: 10px; height: 10px; }
body#product .product__availability-icon::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid currentColor;
}
body#product .product__availability-status.text-success { color: #2f7d4a !important; }
body#product .product__availability-status.text-warning { color: #b0761c !important; }
body#product .product__availability-status.text-danger { color: #a3262f !important; }

/* Quantité + bouton */
body#product .product__actions-qty-add { display: flex; gap: .8rem; align-items: stretch; }
body#product .product__quantity .quantity-button__group {
  border: 1px solid #d8d0c4;
  background: #fff;
  height: 50px;
}
body#product .product__quantity .btn {
  background: transparent;
  border: 0;
  color: var(--bsw-encre);
  width: 44px;
  height: 48px;
}
body#product .product__quantity .btn:hover { color: var(--bsw-bordeaux); }
body#product .product__quantity .form-control {
  background: transparent;
  border: 0;
  color: var(--bsw-encre);
  width: 44px;
  text-align: center;
  font-size: .95rem;
}
body#product .product__add-to-cart { flex: 1; }
body#product .product__add-to-cart-button {
  width: 100%;
  height: 50px;
  font-size: .78rem !important;
  letter-spacing: .14em;
}
body#product .product__add-to-cart-button .material-icons { display: none; }

/* Réassurance sous le bouton (créée par custom.js) */
.bsw-reass { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; gap: .9rem; }
.bsw-reass li { display: flex; align-items: center; gap: .9rem; font-size: .82rem; line-height: 1.35; color: #3b3431; }
.bsw-reass svg { flex: none; width: 24px; height: 24px; stroke: var(--bsw-bordeaux); fill: none; stroke-width: 1.5; }

/* Partage : discret */
body#product .ps-sharebuttons { margin-top: 1.4rem; opacity: .75; }
body#product .ps-sharebuttons__label { color: #8b827b; font-size: .75rem; }

/* Onglets (créés par custom.js à partir de l'accordéon) */
.bsw-tabs { border-top: 1px solid #e3ddd4; margin-top: 2rem; }
.bsw-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0 2.6rem;
  border-bottom: 1px solid #e3ddd4;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bsw-tabs__btn {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  padding: 1rem 0 .8rem;
  font-family: var(--bsw-sans);
  font-size: .8rem;
  color: #6b6463;
  cursor: pointer;
}
.bsw-tabs__btn:hover { color: var(--bsw-encre); }
.bsw-tabs__btn[aria-selected="true"] { color: var(--bsw-bordeaux); border-bottom-color: var(--bsw-bordeaux); }
.bsw-tabs__panel { padding: 1.6rem 0 1rem; font-size: .9rem; line-height: 1.75; color: #3b3431; max-width: 900px; }
.bsw-tabs__panel[hidden] { display: none; }
body#product .bsw-tabs__panel h2,
body#product .bsw-tabs__panel h3,
body#product .bsw-tabs__panel h4 { font-family: var(--bsw-serif); text-transform: none; letter-spacing: 0; color: var(--bsw-encre); }
body#product .product__accordion.bsw-converted { display: none; }

/* Bas de page produit : avis, produits de la même catégorie */
body#product .product__bottom,
body#product .product-comments-wrapper,
body#product .ps-categoryproducts { color: var(--bsw-encre); }
body#product .ps-categoryproducts .section-title,
body#product #wrapper .section-title { color: var(--bsw-encre); }
body#product #wrapper .card,
body#product #wrapper .product-comment-list-item { background: #fff; color: var(--bsw-encre); border-color: #e3ddd4; }

@media (max-width: 767.98px) {
  body#product .product__right { padding-left: 0; margin-top: 1.5rem; }
  .bsw-tabs__nav { gap: 0 1.4rem; overflow-x: auto; flex-wrap: nowrap; }
  .bsw-tabs__btn { white-space: nowrap; }
}
/* Onglets sur toute la largeur + pas de vignette s'il n'y a qu'une photo */
body#product .product__bottom { display: block !important; }
body#product .product__bottom-left,
body#product .product__bottom-right { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
body#product .product__images:has(.product__thumbnails-item:only-child) { grid-template-columns: 1fr; }
body#product .product__thumbnails:has(.product__thumbnails-item:only-child) { display: none; }

/* ==========================================================================
   FICHE PRODUIT — produit en rupture (v1.4.1)
   ========================================================================== */
/* Résumé sous le prix lisible */
body#product .product__description-short { color: #5d5551; font-size: .9rem; line-height: 1.6; }

/* Statut « Rupture de stock » (créé par custom.js quand PrestaShop n'affiche rien) */
.bsw-oos {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 1rem 0 1.2rem;
  font-size: .82rem;
  color: #a3262f;
}
.bsw-oos::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid currentColor;
}

/* En rupture : on masque quantité + bouton inactif, l'alerte e-mail prend le relais */
body#product.bsw-is-oos .product__actions-qty-add { display: none !important; }

/* Bouton désactivé (autres cas) : gris neutre plutôt que rose délavé */
body#product .product__add-to-cart-button:disabled,
body#product .product__add-to-cart-button[aria-disabled="true"] {
  background: #d9d2c8 !important;
  border-color: #d9d2c8 !important;
  color: #6b6463 !important;
  opacity: 1;
  cursor: not-allowed;
}

/* Bloc « Prévenez-moi lorsque le produit est disponible » */
body#product .ps-emailalerts--product {
  background: #fff !important;
  border: 1px solid #e3ddd4;
  color: var(--bsw-encre);
  padding: 1.4rem 1.4rem 1.5rem;
  margin-top: 1.2rem;
}
body#product .ps-emailalerts__content { display: grid; gap: .8rem; }
body#product .ps-emailalerts--product .h4 {
  font-family: var(--bsw-serif);
  font-size: 1.25rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--bsw-encre);
}
body#product .ps-emailalerts--product p { color: #5d5551; font-size: .84rem; line-height: 1.55; }
body#product .ps-emailalerts--product .form-control {
  background: #fff;
  border: 1px solid #d8d0c4;
  color: var(--bsw-encre);
  height: 46px;
}
body#product .ps-emailalerts--product .form-control::placeholder { color: #9a918a; }
body#product .ps-emailalerts--product .form-control:focus { border-color: var(--bsw-bordeaux); box-shadow: none; }
body#product .ps-emailalerts--product .btn-primary { width: 100%; font-size: .72rem !important; letter-spacing: .12em; }
body#product .ps-emailalerts--product .alert,
body#product .ps-emailalerts--product [data-ps-ref*="message"] { color: var(--bsw-encre); }

/* Accordéon (si le script n'a pas encore tourné) : clair aussi */
body#product .product__accordion,
body#product .product__accordion .accordion-item,
body#product .product__accordion .accordion-button {
  background: transparent !important;
  color: var(--bsw-encre) !important;
  --bs-accordion-bg: transparent;
  --bs-accordion-color: var(--bsw-encre);
  --bs-accordion-btn-color: var(--bsw-encre);
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--bsw-bordeaux);
  --bs-accordion-border-color: #e3ddd4;
}

/* Onglets « Détails du produit » / « Fiche technique » : tableau lisible */
.bsw-tabs__panel .details__list { list-style: none; margin: 0; padding: 0; max-width: 620px; }
.bsw-tabs__panel .details__item {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 1rem;
  align-items: center;
  padding: .7rem 0;
  border-bottom: 1px solid #e8e1d6;
}
.bsw-tabs__panel .details__title { font-weight: 500; color: var(--bsw-encre); font-size: .85rem; }
.bsw-tabs__panel .details__right { color: #5d5551; font-size: .85rem; }
.bsw-tabs__panel .details__manufacturer-logo { max-height: 60px; width: auto; mix-blend-mode: multiply; }
@media (max-width: 560px) { .bsw-tabs__panel .details__item { grid-template-columns: 1fr; gap: .2rem; } }

/* Fiche produit : couleurs de fond Bootstrap remises en clair (blocs de modules, alerte e-mail…) */
body#product #wrapper {
  --bs-tertiary-bg: #fff;
  --bs-tertiary-bg-rgb: 255, 255, 255;
  --bs-secondary-bg: #f3efe8;
  --bs-secondary-bg-rgb: 243, 239, 232;
  --bs-emphasis-color: #1b1716;
  --bs-secondary-color: #5d5551;
}
body#product #wrapper .bg-body-tertiary,
body#product #wrapper .bg-light,
body#product #wrapper .bg-body-secondary { background-color: #fff !important; color: var(--bsw-encre); }
body#product .ps-emailalerts__content { background: transparent !important; }
body#product #wrapper .breadcrumb-item.active { color: #6b6463; }
.bsw-tabs__nav { scrollbar-width: none; }
.bsw-tabs__nav::-webkit-scrollbar { display: none; }
.bsw-tabs__panel .details__item { background: transparent; }

/* ==========================================================================
   PAGES CLAIRES (v1.5) — fond blanc sur toutes les pages sauf l'accueil.
   L'en-tête et le pied de page restent sombres.
   (La fiche produit garde son fond crème défini plus haut.)
   ========================================================================== */
body:not(#index) #wrapper {
  background: #fff;
  color: var(--bsw-encre);
  --bs-body-bg: #fff;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-body-color: var(--bsw-encre);
  --bs-body-color-rgb: 27, 23, 22;
  --bs-heading-color: var(--bsw-encre);
  --bs-emphasis-color: #1b1716;
  --bs-emphasis-color-rgb: 27, 23, 22;
  --bs-secondary-color: #5d5551;
  --bs-tertiary-color: #8b827b;
  --bs-secondary-bg: #f6f2ec;
  --bs-secondary-bg-rgb: 246, 242, 236;
  --bs-tertiary-bg: #faf8f5;
  --bs-tertiary-bg-rgb: 250, 248, 245;
  --bs-border-color: #e3ddd4;
  --bs-link-color: var(--bsw-bordeaux);
  --bs-link-color-rgb: 107, 10, 44;
  --bs-link-hover-color: var(--bsw-bordeaux-vif);
}
body#product #wrapper { background: #f6f2ec; }

@layer bs-base {
  body:not(#index) #wrapper a { color: var(--bsw-bordeaux); }
  body:not(#index) #wrapper a:hover { color: var(--bsw-bordeaux-vif); }
}

/* Titres */
body:not(#index) #wrapper h1, body:not(#index) #wrapper h2, body:not(#index) #wrapper h3,
body:not(#index) #wrapper h4, body:not(#index) #wrapper .h1, body:not(#index) #wrapper .h2,
body:not(#index) #wrapper .h3, body:not(#index) #wrapper .h4,
body:not(#index) #wrapper .page-title, body:not(#index) #wrapper .page-title-section,
body:not(#index) #wrapper .section-title { color: var(--bsw-encre); }
body:not(#index) #wrapper .page-title-section { margin-bottom: 1.5rem; }

/* Fil d'Ariane */
body:not(#index) #wrapper .breadcrumb__wrapper {
  background: #faf8f5 !important;
  border-bottom: 1px solid #ece6de;
}
body:not(#index) #wrapper .breadcrumb,
body:not(#index) #wrapper .breadcrumb-item,
body:not(#index) #wrapper .breadcrumb-item::before { color: #6b6463; }
body:not(#index) #wrapper .breadcrumb a { color: var(--bsw-encre); }

/* Fonds utilitaires, cartes, blocs */
body:not(#index) #wrapper .bg-body-tertiary,
body:not(#index) #wrapper .bg-light,
body:not(#index) #wrapper .bg-body-secondary { background-color: #faf8f5 !important; color: var(--bsw-encre); }
body:not(#index) #wrapper .card,
body:not(#index) #wrapper .cart-summary,
body:not(#index) #wrapper .checkout-step,
body:not(#index) #wrapper .cart-container,
body:not(#index) #wrapper .list-group-item,
body:not(#index) #wrapper .modal-content {
  background: #fff;
  color: var(--bsw-encre);
  border-color: #e3ddd4;
}
body:not(#index) #wrapper hr { border-color: #e3ddd4; opacity: 1; }
body:not(#index) #wrapper .text-muted,
body:not(#index) #wrapper .text-secondary,
body:not(#index) #wrapper small { color: #6b6463 !important; }

/* Formulaires */
body:not(#index) #wrapper .form-control,
body:not(#index) #wrapper .form-select {
  background-color: #fff;
  border-color: #d8d0c4;
  color: var(--bsw-encre);
}
body:not(#index) #wrapper .form-control::placeholder { color: #9a918a; }
body:not(#index) #wrapper .form-control:focus,
body:not(#index) #wrapper .form-select:focus {
  border-color: var(--bsw-bordeaux);
  box-shadow: 0 0 0 .15rem rgba(107, 10, 44, .12);
}
body:not(#index) #wrapper .form-label,
body:not(#index) #wrapper label,
body:not(#index) #wrapper legend { color: var(--bsw-encre); }
body:not(#index) #wrapper .form-check-input { background-color: #fff; border-color: #bfb6aa; }
body:not(#index) #wrapper .form-check-input:checked { background-color: var(--bsw-bordeaux); border-color: var(--bsw-bordeaux); }
body:not(#index) #wrapper .input-group-text { background: #faf8f5; border-color: #d8d0c4; color: var(--bsw-encre); }

/* Boutons secondaires : bordeaux sur blanc (le doré manque de contraste) */
body:not(#index) #wrapper .btn-outline-primary,
body:not(#index) #wrapper .btn-secondary,
body:not(#index) #wrapper .btn-outline-secondary {
  --bs-btn-color: var(--bsw-bordeaux);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--bsw-bordeaux);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bsw-bordeaux);
  --bs-btn-hover-border-color: var(--bsw-bordeaux);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bsw-bordeaux);
}
body:not(#index) #wrapper .btn-link { color: var(--bsw-bordeaux); }

/* Sélecteurs de quantité */
body:not(#index) #wrapper .quantity-button__group { border: 1px solid #d8d0c4; background: #fff; }
body:not(#index) #wrapper .quantity-button .btn { background: transparent; border: 0; color: var(--bsw-encre); }
body:not(#index) #wrapper .quantity-button .form-control { border: 0; background: transparent; }

/* Onglets, listes, tableaux */
body:not(#index) #wrapper .nav-tabs .nav-link { color: #6b6463; }
body:not(#index) #wrapper .nav-tabs .nav-link.active { color: var(--bsw-bordeaux); background: #fff; border-color: #e3ddd4 #e3ddd4 #fff; }
body:not(#index) #wrapper .table { --bs-table-bg: #fff; --bs-table-color: var(--bsw-encre); --bs-table-border-color: #e3ddd4; }
body:not(#index) #wrapper .accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-color: var(--bsw-encre);
  --bs-accordion-btn-color: var(--bsw-encre);
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--bsw-bordeaux);
  --bs-accordion-border-color: #e3ddd4;
}
body:not(#index) #wrapper .dropdown-menu { background: #fff; border-color: #e3ddd4; }
body:not(#index) #wrapper .dropdown-item { color: var(--bsw-encre); }

/* Pages catégorie / recherche */
body:not(#index) #wrapper .category-tree a,
body:not(#index) #wrapper .subcategory,
body:not(#index) #wrapper .products-selection,
body:not(#index) #wrapper .total-products { color: var(--bsw-encre); }
body:not(#index) #wrapper .product-miniature { border-color: #ece6de; }
body:not(#index) #wrapper .product-miniature:hover { box-shadow: 0 12px 30px rgba(27, 23, 22, .1); }

/* Panier et tunnel de commande */
body:not(#index) #wrapper .cart-summary__line,
body:not(#index) #wrapper .cart-summary-line,
body:not(#index) #wrapper .cart-total { color: var(--bsw-encre); }
body:not(#index) #wrapper .product-line__title,
body:not(#index) #wrapper .product-line a { color: var(--bsw-encre); }
body:not(#index) #wrapper .alert { color: var(--bsw-encre); }

/* Blocs produits (accessoires, mêmes catégories) sur fond blanc */
body:not(#index) #wrapper .ps-featuredproducts,
body:not(#index) #wrapper .ps-categoryproducts,
body:not(#index) #wrapper .ps-crossselling,
body:not(#index) #wrapper .ps-viewedproduct { background: transparent; }
