/* =====================================================================
   BEST PRICE — HABILLAGE WOOCOMMERCE + COMPOSANTS
   Applique le design de la maquette aux pages WooCommerce natives
   (boutique, fiche produit, panier, commande, compte) et aux éléments
   globaux (bouton d'appel flottant, formulaire de contact).
   Tout est scopé pour ne pas déborder sur Elementor.
   ===================================================================== */

/* ---------- Logo bicolore (widget HTML du header, fallback) ---------- */
.elementor-widget-html .bp-logo{ display:inline-block; line-height:1; }

/* =====================================================================
   EN-TÊTE (style Besa) : barre sup. + recherche à catégories + panier
   ===================================================================== */
/* Logo image */
.elementor-widget-theme-site-logo img{ max-height:56px; width:auto; }

/* Barre supérieure */
.bp-topbar-in{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0; font-size:.82rem; flex-wrap:wrap; }
.bp-hotline{ color:var(--bp-ink); font-weight:500; }
.bp-hotline i{ color:var(--bp-orange); margin-right:4px; }
.bp-hotline a{ color:var(--bp-red); font-weight:700; }
.bp-toplinks{ display:flex; align-items:center; gap:0; flex-wrap:wrap; }
.bp-toplinks a{ color:var(--bp-ink); font-weight:500; padding:0 14px; position:relative; display:inline-flex; align-items:center; gap:6px; }
.bp-toplinks a:not(:last-child)::after{ content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:14px; background:var(--bp-line); }
.bp-toplinks a:hover{ color:var(--bp-orange); }
.bp-toplinks i{ color:var(--bp-mist); }

/* Barre principale : répartition sur toute la largeur.
   Les colonnes Elementor se dimensionnent au contenu par défaut → on force
   logo + panier à leur largeur naturelle et la recherche à s'étendre. */
.elementor-location-header .elementor-section > .elementor-container{ align-items:center; }
.elementor-location-header .elementor-section:has(.bp-search) > .elementor-container{
  display:flex; align-items:center; gap:28px; flex-wrap:nowrap;
}
.elementor-location-header .elementor-column:has(.bp-search){ flex:1 1 auto !important; width:auto; min-width:0; }
.elementor-location-header .elementor-column:has(.elementor-widget-image){ flex:0 0 auto !important; width:auto; }
.elementor-location-header .elementor-column:has(.bp-actions-cluster){ flex:0 0 auto !important; width:auto; min-width:190px; }
.bp-header-main .elementor-container{ align-items:center; }

/* Recherche avec menu déroulant catégories + bouton orange */
.bp-search{ display:flex; align-items:stretch; width:100%; border:2px solid var(--bp-orange); border-radius:8px; overflow:hidden; background:#fff; }
.bp-search-cat{ display:flex; align-items:center; border-right:1px solid var(--bp-line); background:#fff; }
.bp-search-cat select{ border:none; outline:none; background:none; padding:0 38px 0 18px; font-size:.85rem; color:var(--bp-ink); font-weight:600; cursor:pointer;
  -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238C95B3' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 14px center; }
.bp-search-input{ flex:1; border:none; outline:none; padding:12px 16px 12px 22px; font-size:.9rem; background:none; min-width:0; }
.bp-search-btn{ flex:0 0 auto; width:56px; background:var(--bp-orange); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:filter .15s; }
.bp-search-btn:hover{ filter:brightness(1.05); }

/* =====================================================================
   MENU PRINCIPAL + MÉGA-MENU CATÉGORIES (avec images)
   ===================================================================== */
.bp-mainnav .bp-nav-items{ display:flex; align-items:center; gap:2px; }
.bp-navlink{
  color:#D7DEF2; font-family:var(--bp-font-title); font-weight:600; font-size:.9rem;
  padding:15px 15px; display:inline-flex; align-items:center; gap:6px; position:relative;
  transition:color .15s;
}
.bp-navlink i{ font-size:.8em; }
.bp-navlink:hover{ color:#fff; }
/* Soulignement orange animé au survol / actif */
.bp-navlink::after{
  content:""; position:absolute; left:15px; right:15px; bottom:0; height:3px;
  background:var(--bp-warm); border-radius:3px 3px 0 0;
  transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.bp-navlink:hover::after,
.bp-navlink.active::after{ transform:scaleX(1); }
.bp-navlink-account{ margin-left:auto; }

/* Méga-menu */
.bp-navdrop{ position:relative; }
.bp-navdrop .bp-has-mega .fa-chevron-down{ transition:transform .2s; }
.bp-navdrop:hover .bp-has-mega .fa-chevron-down{ transform:rotate(180deg); }
.bp-mega{
  position:absolute; top:100%; left:0; z-index:70; width:660px; max-width:92vw;
  background:#fff; border-radius:0 0 16px 16px; box-shadow:0 20px 44px rgba(4,7,79,.22);
  padding:18px; opacity:0; visibility:hidden; transform:translateY(10px); transition:.2s ease;
}
.bp-navdrop:hover .bp-mega{ opacity:1; visibility:visible; transform:translateY(0); }
.bp-mega-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.bp-mega-card{
  display:flex; align-items:center; gap:12px; padding:10px; border-radius:12px;
  border:1px solid var(--bp-line); background:#fff; transition:transform .15s, box-shadow .15s, border-color .15s;
}
.bp-mega-card:hover{ transform:translateY(-2px); border-color:var(--bp-blue2); box-shadow:0 8px 18px rgba(4,7,79,.12); }
.bp-mega-img{
  width:54px; height:54px; border-radius:10px; background:var(--bp-cream); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.bp-mega-img img{ width:100%; height:100%; object-fit:contain; padding:5px; }
.bp-mega-info strong{ display:block; font-family:var(--bp-font-title); font-size:.9rem; color:var(--bp-navy); line-height:1.2; }
.bp-mega-info small{ color:var(--bp-mist); font-size:.78rem; }
.bp-mega-all{
  display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding-top:14px;
  border-top:1px solid var(--bp-line); width:100%; font-family:var(--bp-font-title);
  font-weight:700; font-size:.88rem; color:var(--bp-blue2);
}
.bp-mega-all:hover{ color:var(--bp-orange); }

/* Bouton menu mobile */
.bp-nav-toggle{ display:none; color:#fff; background:none; border:none; padding:13px 0; font-family:var(--bp-font-title); font-weight:600; font-size:.95rem; cursor:pointer; align-items:center; gap:8px; }

@media (max-width:768px){
  .bp-nav-toggle{ display:inline-flex; }
  .bp-mainnav .bp-nav-items{ display:none; flex-direction:column; align-items:stretch; padding-bottom:8px; }
  .bp-mainnav .bp-nav-items.open{ display:flex; }
  .bp-navlink{ padding:12px 4px; }
  .bp-navlink::after{ display:none; }
  .bp-navlink-account{ margin-left:0; }
  .bp-navdrop .bp-has-mega .fa-chevron-down{ display:none; }
  .bp-mega{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; width:auto; max-width:none; padding:6px 0 6px 12px; border-radius:0; }
  .bp-mega-grid{ grid-template-columns:1fr; gap:8px; }
  .bp-mega-card{ border:none; padding:8px 4px; }
  .bp-mega-all{ border-top:none; margin-top:6px; padding-top:6px; }
}

/* Cluster souhaits + panier */
.bp-actions-cluster{ display:flex; align-items:center; justify-content:flex-end; gap:20px; flex-shrink:0; white-space:nowrap; }
.bp-wish,.bp-cart{ flex-shrink:0; }
.bp-wish,.bp-cart{ display:flex; align-items:center; gap:8px; color:var(--bp-ink); }
.bp-wish .fa-heart,.bp-cart-ico .fa-shopping-cart{ font-size:23px; color:var(--bp-navy); line-height:1; display:inline-block; }
.bp-wish{ position:relative; }
.bp-cart-ico{ position:relative; display:inline-flex; }
.bp-badge{ position:absolute; top:-8px; right:-10px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--bp-orange); color:#fff; font-size:.68rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.bp-cart-text{ display:flex; flex-direction:column; line-height:1.15; }
.bp-cart-text small{ color:var(--bp-mist); font-size:.72rem; }
.bp-cart-text .bp-cart-total{ color:var(--bp-red); font-weight:800; font-size:.9rem; }
.bp-cart-text .bp-cart-total .woocommerce-Price-amount{ color:var(--bp-red); }

/* Responsive header */
@media (max-width:768px){
  .bp-topbar-in{ justify-content:center; }
  .bp-toplinks{ display:none; }
  .bp-search{ max-width:none; }
  .bp-cart-text{ display:none; }
}

/* ---------- Motif rayé du hero (section .bp-hero-motif) ---------- */
.bp-hero-motif{ position:relative; overflow:hidden; }
.bp-hero-motif::before{
  content:""; position:absolute; inset:0; opacity:.15; pointer-events:none; z-index:0;
  background:repeating-linear-gradient(115deg,transparent 0 40px,var(--bp-orange) 40px 42px);
}
.bp-hero-motif > .elementor-container{ position:relative; z-index:1; }

/* ---------- HERO SLIDER (widget Slides) ---------- */
/* Pleine largeur : la section est étirée (stretch) mais son conteneur reste
   boxed (max 1140). On lève cette contrainte pour le slider → bord à bord. */
.elementor-section:has(.bp-hero-slider) > .elementor-container{ max-width:100%; }
.bp-hero-slider .elementor-slide-bg{ position:relative; }
.bp-hero-slider .elementor-slide-bg::after{
  content:""; position:absolute; inset:0; opacity:.12; pointer-events:none;
  background:repeating-linear-gradient(115deg,transparent 0 40px,#F67122 40px 42px);
}
.bp-hero-slider .elementor-slide-heading{ font-family:var(--bp-font-title); line-height:1.15; }
/* Contenu des slides centré (texte + bloc) */
.bp-hero-slider .elementor-slide-content{ text-align:center!important; margin-left:auto!important; margin-right:auto!important; }
.bp-hero-slider .elementor-slide-description{ margin-left:auto; margin-right:auto; }
/* Bande réassurance : items centrés */
.bp-reassure-strip .elementor-icon-list-items{ justify-content:center; }
.bp-hero-slider .elementor-slide-button{
  background:var(--bp-warm)!important; border:none!important; border-radius:12px;
  font-family:var(--bp-font-title); font-weight:700; padding:13px 28px; color:#fff!important; margin-top:8px;
}
.bp-hero-slider .elementor-slide-button:hover{ filter:brightness(1.05); }
/* Navigation (flèches + points) contrastée */
.bp-hero-slider .elementor-swiper-button{ color:#fff; opacity:.85; }
.bp-hero-slider .elementor-swiper-button:hover{ opacity:1; }
.bp-hero-slider .swiper-pagination-bullet{ background:#fff; opacity:.6; }
.bp-hero-slider .swiper-pagination-bullet-active{ background:var(--bp-orange); opacity:1; }
@media (max-width:768px){
  .bp-hero-slider .elementor-slide-heading{ font-size:26px!important; }
}

/* ---------- Rangée de chips catégories (accueil) ---------- */
.bp-chips-row{ display:flex; gap:8px; overflow-x:auto; padding-bottom:8px; scrollbar-width:none; }
.bp-chips-row::-webkit-scrollbar{ display:none; }
.bp-chips-row .bp-chip{ flex:0 0 auto; }

/* ---------- Boutons flottants : WhatsApp + retour en haut ---------- */
.bp-floats{ position:fixed; bottom:20px; right:20px; z-index:45; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }

/* WhatsApp commercial (vert, avec libellé au survol sur desktop) */
.bp-whatsapp{
  display:inline-flex; align-items:center; gap:0; height:56px; width:56px;
  border-radius:999px; background:#25D366; color:#fff; overflow:hidden;
  box-shadow:0 10px 25px rgba(37,211,102,.45); transition:width .25s, transform .15s;
  padding:0; justify-content:center;
}
.bp-whatsapp svg{ flex:0 0 56px; }
.bp-whatsapp .bp-wa-label{ white-space:nowrap; font-family:var(--bp-font-title); font-weight:700; font-size:.85rem; opacity:0; max-width:0; transition:opacity .2s, max-width .25s, padding .25s; }
.bp-whatsapp:hover{ width:230px; color:#fff; }
.bp-whatsapp:hover .bp-wa-label{ opacity:1; max-width:180px; padding-right:18px; }

/* Retour en haut (apparait au défilement via .show) */
.bp-totop{
  width:48px; height:48px; border-radius:50%; background:var(--bp-cool); color:#fff;
  border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(4,7,79,.4); opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .2s, transform .2s, visibility .2s;
}
.bp-totop.show{ opacity:1; visibility:visible; transform:translateY(0); }
.bp-totop:hover{ filter:brightness(1.08); }
@media (max-width:767px){
  .bp-floats{ bottom:16px; right:16px; gap:10px; }
  .bp-whatsapp:hover{ width:56px; } /* pas d'expansion sur mobile */
  .bp-whatsapp:hover .bp-wa-label{ opacity:0; max-width:0; padding:0; }
}

/* ---------- Boutons WooCommerce → style Best Price ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .widget_price_filter .price_slider_amount .button{
  font-family:var(--bp-font-title); font-weight:700; font-size:.9rem;
  border-radius:12px; padding:12px 22px; background:var(--bp-cool); color:#fff;
  border:none; transition:transform .1s, filter .15s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{ filter:brightness(1.05); color:#fff; }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .single_add_to_cart_button{ background:var(--bp-warm)!important; }
.woocommerce a.button:active,
.woocommerce button.button:active{ transform:scale(.96); }

/* ---------- Grille & cartes produit (boutique / catégories) ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:#fff; border:1px solid var(--bp-line); border-radius:var(--bp-radius);
  overflow:hidden; box-shadow:var(--bp-shadow); padding:0;
  transition:transform .15s, box-shadow .15s;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-4px); box-shadow:0 12px 28px rgba(4,7,79,.12);
}
.woocommerce ul.products li.product{ display:flex; flex-direction:column; position:relative; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link{ display:flex; flex-direction:column; }
/* Vignette aux dimensions uniformes (toutes les cartes identiques) */
.woocommerce ul.products li.product a img{
  margin:0; border-radius:0; background:var(--bp-cream);
  width:100%; height:200px; object-fit:contain; padding:14px; display:block;
}

/* Badge de statut (haut-gauche) — pastille navy, comme la maquette */
.woocommerce ul.products li.product .bp-status-badge{
  position:absolute; top:12px; left:12px; z-index:2;
  background:rgba(4,7,79,.85); color:#fff; font-size:.72rem; font-weight:700;
  padding:4px 11px; border-radius:999px; line-height:1.5; letter-spacing:.2px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--bp-font-title); font-weight:700; font-size:1rem;
  color:var(--bp-ink); padding:14px 16px 0; line-height:1.25;
}
/* Label catégorie (gris majuscule, au-dessus du titre) */
.woocommerce ul.products li.product .bp-loop-cat{
  display:block; padding:0 16px; margin-top:12px;
  color:var(--bp-mist); font-size:.72rem; font-weight:600; letter-spacing:.4px; text-transform:uppercase;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{ padding-top:4px; }

/* Prix « ticket » orange (comme la maquette) */
.woocommerce ul.products li.product .price{ padding:0 16px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.woocommerce ul.products li.product .price .woocommerce-Price-amount{
  background:var(--bp-warm); color:#fff; font-family:var(--bp-font-title); font-weight:800; font-size:.9rem;
  padding:5px 12px 5px 18px; border-radius:4px; display:inline-block;
  clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%);
}
.woocommerce ul.products li.product .price del{ opacity:1; }
.woocommerce ul.products li.product .price del .woocommerce-Price-amount{
  background:none; color:var(--bp-mist); font-weight:500; font-size:.8rem; padding:0; clip-path:none;
}
.woocommerce ul.products li.product .price ins{ text-decoration:none; background:none; }
.woocommerce ul.products li.product .star-rating{ margin:8px 16px 0; color:var(--bp-orange); }

/* Actions carte : « Commander » + « + » côte à côte */
.woocommerce ul.products li.product .bp-actions{ display:flex; gap:8px; padding:12px 16px 16px; margin-top:auto; align-items:stretch; }
.woocommerce ul.products li.product .bp-actions .bp-commander{
  flex:1; margin:0; background:var(--bp-cool)!important; color:#fff; text-align:center; padding:10px 12px;
}
.woocommerce ul.products li.product .bp-actions .add_to_cart_button,
.woocommerce ul.products li.product .bp-actions .added_to_cart{
  flex:0 0 auto; width:44px; height:44px; padding:0; margin:0; border-radius:12px;
  background:#fff!important; color:var(--bp-navy)!important; border:1.5px solid var(--bp-navy);
  font-size:0; position:relative; display:flex; align-items:center; justify-content:center;
}
.woocommerce ul.products li.product .bp-actions .add_to_cart_button::after,
.woocommerce ul.products li.product .bp-actions .added_to_cart::after{
  content:"+"; font-size:20px; font-weight:700; line-height:1; color:var(--bp-navy);
}
.woocommerce ul.products li.product .bp-actions .added_to_cart::after{ content:"\2713"; }
.woocommerce ul.products li.product .bp-actions .add_to_cart_button.loading{ opacity:.6; }

/* ---------- Badge promo « -XX% » (via woocommerce_sale_flash) ---------- */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale{
  background:#fff; color:var(--bp-red); font-weight:800; font-size:.72rem;
  padding:4px 8px; border-radius:999px; min-height:0; min-width:0;
  line-height:1.4; top:12px; right:12px; left:auto; margin:0;
}

/* ---------- FICHE PRODUIT (single) — fidèle maquette ---------- */
.woocommerce div.product .product_title{ margin-top:2px; }
.woocommerce div.product .bp-single-cat{
  display:block; color:var(--bp-mist); font-size:.75rem; font-weight:600; letter-spacing:.4px; text-transform:uppercase;
}
.woocommerce div.product .bp-single-rating{ display:flex; align-items:center; gap:8px; margin:8px 0 4px; }
.woocommerce div.product .bp-single-rating .star-rating{ color:var(--bp-orange); margin:0; }
.woocommerce div.product .bp-single-rating .bp-rating-count{ color:var(--bp-mist); font-size:.8rem; }

/* Prix « ticket » orange sur la fiche */
.woocommerce div.product p.price{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:var(--bp-navy); font-size:1rem; }
.woocommerce div.product p.price > .woocommerce-Price-amount,
.woocommerce div.product p.price ins .woocommerce-Price-amount{
  background:var(--bp-warm); color:#fff; font-family:var(--bp-font-title); font-weight:800; font-size:1.1rem;
  padding:6px 14px 6px 20px; border-radius:4px; display:inline-block;
  clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%);
}
.woocommerce div.product p.price ins{ text-decoration:none; background:none; }
.woocommerce div.product p.price del{ opacity:1; margin:0; }
.woocommerce div.product p.price del .woocommerce-Price-amount{
  background:none; color:var(--bp-mist); font-weight:500; font-size:.95rem; padding:0; clip-path:none;
}

/* Réassurance inline */
.woocommerce div.product .bp-reassure-inline{ display:flex; flex-wrap:wrap; gap:16px; margin:16px 0; font-size:.85rem; }
.woocommerce div.product .bp-reassure-inline span{ display:flex; align-items:center; gap:7px; color:var(--bp-ink); }
.woocommerce div.product .bp-reassure-inline i{ color:var(--bp-orange); }

/* Boutons : « Ajouter au panier » (contour) + « Commander maintenant » (chaud) */
.woocommerce div.product form.cart{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.woocommerce div.product form.cart .quantity{ margin:0; }
.woocommerce div.product .single_add_to_cart_button{
  background:#fff!important; color:var(--bp-navy)!important; border:1.5px solid var(--bp-navy)!important;
}
.woocommerce div.product form.cart .bp-buy-now{
  background:var(--bp-warm)!important; color:#fff!important; margin:0;
  font-family:var(--bp-font-title); font-weight:700; border-radius:12px; padding:12px 22px;
}

/* Onglets fiche : liste caractéristiques */
.woocommerce div.product .bp-specs{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.woocommerce div.product .bp-specs li{ display:flex; gap:8px; align-items:flex-start; }
.woocommerce div.product .bp-specs li::before{ content:"\2713"; color:var(--bp-orange); font-weight:700; }

/* ---------- Menu : état actif (soulignement orange, comme la maquette) ---------- */
.elementor-nav-menu .elementor-item-active,
.elementor-nav-menu .current-menu-item > .elementor-item{ color:#fff!important; position:relative; }
.elementor-nav-menu > .elementor-item-active::after,
.elementor-nav-menu li.current-menu-item > .elementor-item::after{
  content:""; position:absolute; left:15px; right:15px; bottom:0; height:3px;
  background:var(--bp-warm); border-radius:3px 3px 0 0;
}

/* =====================================================================
   ARCHIVES BOUTIQUE / CATÉGORIES (bandeau + sidebar filtres + grille)
   ===================================================================== */
/* Masquer le titre natif (remplacé par le bandeau) */
.woocommerce-products-header{ display:none; }

/* Bandeau dégradé GLOBAL (toutes les pages sauf accueil) — pleine largeur.
   La section (dans le header) est étirée ; on lève la contrainte boxed du
   conteneur pour que le bandeau couvre la fenêtre (sans 100vw → pas de scroll). */
.elementor-section:has(.bp-page-banner) > .elementor-container{ max-width:100%; padding:0; }
.bp-page-banner{ background:var(--bp-cool); color:#fff; }
.bp-page-banner-in{ max-width:1120px; margin:0 auto; padding:38px 16px; }
.bp-page-banner h1{ font-family:var(--bp-font-title); font-weight:800; font-size:2rem; color:#fff; margin:0; }
.bp-page-banner .bp-crumb{ color:#C7D3F5; font-size:.9rem; margin-top:8px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.bp-page-banner .bp-crumb a{ color:#C7D3F5; }
.bp-page-banner .bp-crumb a:hover{ color:#fff; text-decoration:underline; }
.bp-page-banner .bp-crumb span{ opacity:.6; }
.bp-page-banner .bp-crumb .cur{ color:#fff; }
.bp-page-banner{ margin-bottom:32px; }

/* Grille 2 colonnes : sidebar + produits */
.bp-shop-grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media (min-width:900px){ .bp-shop-grid{ grid-template-columns:240px 1fr; align-items:start; } }
.bp-shop-main{ min-width:0; }

/* Colonne de gauche (filtres) */
.bp-shop-sidebar .bp-filter-box{
  background:#fff; border:1px solid var(--bp-line); border-radius:16px; padding:18px; box-shadow:var(--bp-shadow);
}
.bp-shop-sidebar h4{ font-family:var(--bp-font-title); font-weight:700; font-size:.95rem; color:var(--bp-navy); margin:16px 0 10px; }
.bp-shop-sidebar h4:first-child{ margin-top:0; }
.bp-cat-list{ list-style:none; margin:0 0 4px; padding:0; }
.bp-cat-list li{ margin:0; }
.bp-cat-list a{ display:block; padding:7px 0; font-size:.9rem; color:var(--bp-ink); border-bottom:1px solid #F0F2F8; }
.bp-cat-list li:last-child a{ border-bottom:none; }
.bp-cat-list a:hover{ color:var(--bp-blue2); }
.bp-cat-list a.on{ color:var(--bp-blue2); font-weight:700; }

/* Filtre prix */
.bp-price-filter input[type=range]{ width:100%; accent-color:var(--bp-orange); margin:6px 0; }
.bp-price-filter .bp-price-lbl{ color:var(--bp-mist); font-size:.82rem; margin:4px 0 12px; }
.bp-price-filter .bp-filter-btn{ width:100%; background:var(--bp-cool)!important; color:#fff; border:none; border-radius:10px; padding:10px; font-family:var(--bp-font-title); font-weight:700; font-size:.85rem; }

/* Toolbar (nb produits + tri) dans la zone produits */
.bp-shop-main .woocommerce-result-count,
.bp-shop-main .woocommerce-ordering{ margin:0 0 18px; }
.bp-shop-main .woocommerce-result-count{ color:var(--bp-mist); float:none; display:inline-block; }
.bp-shop-main .woocommerce-ordering{ float:right; }
.bp-shop-main .woocommerce-ordering select{ border:1.5px solid var(--bp-line); border-radius:10px; padding:9px 14px; font-size:.85rem; background:#fff; }
.bp-shop-main::after{ content:""; display:block; clear:both; }

/* Grille produits dans la zone (3 colonnes desktop) */
.bp-shop-main ul.products{ display:grid; gap:20px; margin:0; grid-template-columns:repeat(2,1fr); }
@media (min-width:768px){ .bp-shop-main ul.products{ grid-template-columns:repeat(3,1fr); } }
.bp-shop-main ul.products::before,
.bp-shop-main ul.products::after{ display:none; }
.bp-shop-main ul.products li.product{ width:auto!important; margin:0!important; float:none!important; }

/* ---------- Titres & fil d'Ariane ---------- */
.woocommerce .woocommerce-products-header__title,
.woocommerce div.product .product_title{
  font-family:var(--bp-font-title); font-weight:800; color:var(--bp-navy);
}
.woocommerce .woocommerce-breadcrumb{
  color:var(--bp-mist); font-size:.85rem;
}
.woocommerce .woocommerce-breadcrumb a{ color:var(--bp-blue2); }

/* ---------- Onglets fiche produit ---------- */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  background:#fff; border-bottom-color:#fff;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--bp-navy); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family:var(--bp-font-title); font-weight:600; color:var(--bp-mist);
}

/* ---------- PANIER (classique) : 2 colonnes, UX/UI soignée ---------- */
@media (min-width:900px){
  .woocommerce-cart .woocommerce{ display:grid; grid-template-columns:1fr 360px; gap:28px; align-items:start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{ grid-column:1 / -1; }
  .woocommerce-cart form.woocommerce-cart-form{ grid-column:1; margin:0; }
  .woocommerce-cart .cart-collaterals{ grid-column:2; width:100%; float:none; margin:0; }
  .woocommerce-cart .cart-collaterals .cart_totals{ width:100%; float:none; }
}
.woocommerce-cart .cart-collaterals .cross-sells{ display:none; }

/* Le tableau du panier devient une carte blanche */
.woocommerce-cart form.woocommerce-cart-form{
  background:#fff; border:1px solid var(--bp-line); border-radius:var(--bp-radius);
  box-shadow:var(--bp-shadow); padding:8px 20px 20px;
}
.woocommerce-cart table.cart{ border:none; margin:0; }
.woocommerce-cart table.cart thead th{
  border:none; border-bottom:2px solid var(--bp-line); padding:16px 10px;
  font-family:var(--bp-font-title); font-weight:700; color:var(--bp-navy); font-size:.82rem; text-transform:uppercase; letter-spacing:.3px;
}
.woocommerce-cart table.cart td{ border:none; border-bottom:1px solid #F0F2F8; padding:18px 10px; vertical-align:middle; }
.woocommerce-cart table.cart tr.cart_item:last-child td{ border-bottom:none; }

/* Miniature produit */
.woocommerce-cart table.cart .product-thumbnail img{ width:74px; height:74px; object-fit:contain; border-radius:12px; background:var(--bp-cream); padding:6px; }
.woocommerce-cart table.cart td.product-name a{ font-family:var(--bp-font-title); font-weight:700; color:var(--bp-ink); font-size:.95rem; }
.woocommerce-cart table.cart td.product-name a:hover{ color:var(--bp-blue2); }
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal{ color:var(--bp-navy); font-weight:600; }
.woocommerce-cart table.cart td.product-subtotal{ font-weight:800; }

/* Bouton supprimer : rond rouge */
.woocommerce-cart table.cart td.product-remove{ width:44px; }
.woocommerce-cart table.cart a.remove{
  display:flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0 auto;
  border-radius:50%; background:#FDEBE6; color:var(--bp-red)!important; font-size:18px; line-height:1;
  transition:.15s;
}
.woocommerce-cart table.cart a.remove:hover{ background:var(--bp-red); color:#fff!important; }

/* Quantité */
.woocommerce-cart table.cart .quantity input.qty{
  width:64px; height:42px; border:1.5px solid var(--bp-line); border-radius:10px; text-align:center; font-weight:600;
}

/* Ligne code promo + mise à jour */
.woocommerce-cart table.cart td.actions{ padding:18px 10px 6px; }
.woocommerce-cart table.cart td.actions .coupon{ display:flex; gap:8px; align-items:center; }
.woocommerce-cart table.cart td.actions .coupon input#coupon_code{
  height:44px; border:1.5px solid var(--bp-line); border-radius:10px; padding:0 14px; min-width:160px;
}
.woocommerce-cart table.cart td.actions .coupon .button{ background:var(--bp-cool)!important; white-space:nowrap; }
.woocommerce-cart table.cart td.actions > button[name="update_cart"]{
  background:#fff!important; color:var(--bp-navy)!important; border:1.5px solid var(--bp-navy)!important; float:right;
}
.woocommerce-cart table.cart td.actions > button[name="update_cart"]:disabled{ opacity:.45; }

/* Récapitulatif « Total panier » */
.woocommerce-cart .cart_totals{ padding:22px!important; }
.woocommerce-cart .cart_totals h2{ font-family:var(--bp-font-title); font-weight:800; color:var(--bp-navy); font-size:1.15rem; margin-bottom:14px; }
.woocommerce-cart .cart_totals table{ border:none; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td{ border:none; border-top:1px solid #F0F2F8; padding:12px 0; color:var(--bp-ink); font-size:.9rem; }
.woocommerce-cart .cart_totals table tr:first-child th,
.woocommerce-cart .cart_totals table tr:first-child td{ border-top:none; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td{ font-family:var(--bp-font-title); font-weight:800; color:var(--bp-navy); font-size:1.05rem; border-top:2px solid var(--bp-line); }
.woocommerce-cart .cart_totals .order-total .amount{ color:var(--bp-red); }
.woocommerce-cart .wc-proceed-to-checkout{ padding-top:16px!important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ font-family:var(--bp-font-title); padding:14px; font-size:.95rem; }
.woocommerce a.button.wc-backward{ background:#fff!important; color:var(--bp-navy)!important; border:1.5px solid var(--bp-navy); margin-top:10px; display:inline-block; }

/* ---------- Panier & Commande (panneaux) ---------- */
.woocommerce table.shop_table{
  border-radius:var(--bp-radius); border-color:var(--bp-line); overflow:hidden;
}
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce .woocommerce-checkout #payment{
  border:1px solid var(--bp-line); border-radius:var(--bp-radius); background:#fff;
}
.woocommerce #payment .place-order .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  background:var(--bp-warm)!important; width:100%; text-align:center;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single{
  border:1.5px solid var(--bp-line); border-radius:12px; padding:10px 12px; min-height:44px;
}

/* ---------- CHECKOUT : barre d'étapes (comme la maquette) ---------- */
.bp-steps{ display:flex; gap:8px; margin:0 0 24px; }
.bp-steps .bp-step{
  flex:1; text-align:center; font-size:.8rem; font-weight:600; color:var(--bp-mist);
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.bp-steps .bp-step .n{
  width:28px; height:28px; border-radius:50%; background:var(--bp-line); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-family:var(--bp-font-title);
}
.bp-steps .bp-step.on{ color:var(--bp-navy); }
.bp-steps .bp-step.on .n{ background:var(--bp-cool); }

/* Checkout : formulaire à gauche, récapitulatif à droite (comme la maquette) */
@media (min-width:900px){
  /* Facturation plus étroite, « Votre commande » plus large (~44 / 56). */
  .woocommerce-checkout form.checkout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.28fr); gap:32px; align-items:start; }
  .woocommerce-checkout form.checkout #customer_details{ grid-column:1; grid-row:1 / span 2; min-width:0; }
  .woocommerce-checkout form.checkout #order_review_heading{ grid-column:2; grid-row:1; margin:0 0 12px; }
  .woocommerce-checkout form.checkout #order_review{ grid-column:2; grid-row:2; min-width:0; }
}
/* Champs de facturation sur une seule colonne */
.woocommerce-checkout form.checkout .col2-set .col-1,
.woocommerce-checkout form.checkout .col2-set .col-2{ width:100%; float:none; margin:0; }
.woocommerce-checkout .col2-set,
.woocommerce-checkout #customer_details{ margin-bottom:16px; }
.woocommerce-checkout h3{ font-family:var(--bp-font-title); font-weight:800; color:var(--bp-navy); }
.woocommerce-checkout #order_review_heading{ font-family:var(--bp-font-title); font-weight:800; color:var(--bp-navy); }
.woocommerce-checkout .wc_payment_method label{ font-weight:600; }
.woocommerce-checkout #payment ul.payment_methods{ border:none; padding:0; }
.woocommerce-checkout #payment ul.payment_methods li{
  border:1.5px solid var(--bp-line); border-radius:12px; padding:14px; margin-bottom:12px; list-style:none;
}
.woocommerce-checkout #place_order{ background:var(--bp-warm)!important; width:100%; font-family:var(--bp-font-title); }

/* Récapitulatif « Votre commande » : lisible, aligné, sans chevauchement */
.woocommerce-checkout #order_review{ padding:8px 20px 20px; }
.woocommerce-checkout #order_review .shop_table{ border:none; margin:0; table-layout:fixed; width:100%; }
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td{ padding:12px 0; vertical-align:top; border-color:var(--bp-line); }
.woocommerce-checkout #order_review .shop_table td.product-name{ width:auto; padding-right:16px; word-break:break-word; line-height:1.4; font-weight:600; }
.woocommerce-checkout #order_review .shop_table td.product-name .product-quantity{ color:var(--bp-mist); font-weight:500; }
.woocommerce-checkout #order_review .shop_table td.product-total,
.woocommerce-checkout #order_review .shop_table th.product-total,
.woocommerce-checkout #order_review .shop_table .cart-subtotal td,
.woocommerce-checkout #order_review .shop_table .cart-subtotal th,
.woocommerce-checkout #order_review .shop_table .woocommerce-shipping-totals td,
.woocommerce-checkout #order_review .shop_table .woocommerce-shipping-totals th,
.woocommerce-checkout #order_review .shop_table .order-total td,
.woocommerce-checkout #order_review .shop_table .order-total th{ text-align:right; white-space:nowrap; }
.woocommerce-checkout #order_review .shop_table .cart-subtotal th,
.woocommerce-checkout #order_review .shop_table .woocommerce-shipping-totals th,
.woocommerce-checkout #order_review .shop_table .order-total th{ text-align:left; white-space:normal; }
.woocommerce-checkout #order_review .shop_table .woocommerce-shipping-totals td{ font-weight:600; }
.woocommerce-checkout #order_review .shop_table .order-total .amount{ color:var(--bp-warm); font-size:1.15rem; }

/* ---------- CONFIRMATION (order-received) ---------- */
.woocommerce-order{ max-width:860px; margin:0 auto; }
.woocommerce-order .bp-confirm-hero{ text-align:center; padding:8px 0 4px; }
.woocommerce-order .bp-confirm-ico{
  width:72px; height:72px; border-radius:50%; background:var(--bp-cool);
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
  box-shadow:0 8px 22px rgba(5,77,212,.28);
}
.woocommerce-order .bp-confirm-ico i{ color:#fff; font-size:30px; }
.woocommerce-order .bp-confirm-hero h2{ color:var(--bp-navy); font-weight:800; font-size:1.6rem; margin:0; }
.woocommerce-order .bp-confirm-num{ margin-top:6px; color:var(--bp-mist); }
.woocommerce-order .bp-confirm-num strong{ color:var(--bp-navy); }
.woocommerce-order .bp-confirm-hero .bp-muted{ color:var(--bp-mist); font-size:.9rem; margin-top:8px; }
.woocommerce-order .woocommerce-thankyou-order-received{ text-align:center; color:var(--bp-ink); font-size:1rem; margin-bottom:8px; }

/* Barre récap en cartes */
.woocommerce-order .woocommerce-order-overview{
  list-style:none; margin:22px 0; padding:0; border:0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
}
.woocommerce-order .woocommerce-order-overview li{
  border:1px solid var(--bp-line); border-left:3px solid var(--bp-orange);
  border-radius:14px; padding:12px 16px; margin:0;
  font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--bp-mist);
}
.woocommerce-order .woocommerce-order-overview li strong{
  display:block; margin-top:6px; font-size:1.02rem; color:var(--bp-navy);
  text-transform:none; letter-spacing:0; font-family:var(--bp-font-title); font-weight:700;
}

/* Titre « Détails de la commande » + tableau */
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title,
.woocommerce-order .woocommerce-customer-details h2{
  font-family:var(--bp-font-title); color:var(--bp-navy); font-weight:800; font-size:1.25rem; margin:26px 0 14px;
}
.woocommerce-order table.order_details tfoot .order-total .amount{ color:var(--bp-warm); font-size:1.15rem; }

/* Adresses en cartes */
.woocommerce-order .woocommerce-customer-details .woocommerce-columns{
  display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:0;
}
.woocommerce-order .woocommerce-customer-details .woocommerce-column{ width:auto; float:none; margin:0; }
.woocommerce-order .woocommerce-customer-details address{
  border:1px solid var(--bp-line); border-radius:14px; padding:18px 20px;
  font-style:normal; line-height:1.75; color:var(--bp-ink);
}

/* Bloc « Et maintenant ? » */
.bp-thankyou-footer{ margin-top:30px; }
.bp-next-steps{
  background:#F5F7FB; border:1px solid var(--bp-line); border-radius:18px; padding:24px;
}
.bp-next-steps h3{ font-family:var(--bp-font-title); color:var(--bp-navy); font-weight:800; margin:0 0 16px; font-size:1.2rem; }
.bp-steps-list{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.bp-steps-list li{ display:flex; gap:14px; align-items:flex-start; }
.bp-ns-ico{
  flex:0 0 44px; width:44px; height:44px; border-radius:12px; background:#fff;
  border:1px solid var(--bp-line); display:flex; align-items:center; justify-content:center; font-size:1.3rem;
}
.bp-steps-list li strong{ display:block; color:var(--bp-navy); font-family:var(--bp-font-title); margin-bottom:2px; }
.bp-steps-list li span{ color:var(--bp-mist); font-size:.92rem; line-height:1.5; }
.bp-steps-list li strong.bp-hl{ display:inline; }

/* Boutons d'action */
.bp-confirm-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.bp-confirm-actions .bp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 24px; border-radius:12px; font-family:var(--bp-font-title); font-weight:700;
  text-decoration:none; transition:transform .12s ease, box-shadow .12s ease;
}
.bp-confirm-actions .bp-btn:hover{ transform:translateY(-1px); box-shadow:var(--bp-shadow); }
.bp-confirm-actions .bp-btn-primary{ background:var(--bp-warm); color:#fff; }
.bp-confirm-actions .bp-btn-wa{ background:#25D366; color:#fff; }

/* Bouton « Télécharger la facture (PDF) » sur la confirmation */
.woocommerce-order .bp-invoice-cta{ text-align:center; margin:20px 0 0; }
.woocommerce-order .bp-btn-invoice{
  display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:12px;
  background:#fff; border:1.5px solid var(--bp-navy); color:var(--bp-navy);
  font-family:var(--bp-font-title); font-weight:700; text-decoration:none; transition:transform .12s ease, box-shadow .12s ease;
}
.woocommerce-order .bp-btn-invoice:hover{ transform:translateY(-1px); box-shadow:var(--bp-shadow); background:var(--bp-navy); color:#fff; }

@media (max-width:600px){
  .woocommerce-order .woocommerce-order-overview{ grid-template-columns:1fr 1fr; }
  .woocommerce-order .woocommerce-customer-details .woocommerce-columns{ grid-template-columns:1fr; }
  .bp-confirm-actions .bp-btn{ flex:1 1 100%; }
}

/* ---------- Mon compte : page de connexion ---------- */
.woocommerce-account .bp-login-wrap{
  display:grid; grid-template-columns:1fr 1fr; max-width:920px; margin:8px auto 0;
  border:1px solid var(--bp-line); border-radius:20px; overflow:hidden;
  box-shadow:var(--bp-shadow); background:#fff;
}
.woocommerce-account .bp-login-aside{
  background:var(--bp-cool); color:#fff; padding:44px 38px; display:flex; align-items:center;
}
.woocommerce-account .bp-login-eyebrow{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; opacity:.85;
}
.woocommerce-account .bp-login-aside h2{
  color:#fff; font-family:var(--bp-font-title); font-weight:800; font-size:1.55rem; margin:10px 0 12px;
}
.woocommerce-account .bp-login-aside p{ opacity:.92; line-height:1.6; margin:0 0 22px; font-size:.95rem; }
.woocommerce-account .bp-login-benefits{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.woocommerce-account .bp-login-benefits li{ display:flex; gap:12px; align-items:center; font-size:.92rem; }
.woocommerce-account .bp-login-benefits li span{ font-size:1.25rem; flex:0 0 auto; }
.woocommerce-account .bp-login-main{ padding:44px 38px; }
.woocommerce-account .bp-login-main h2{
  font-family:var(--bp-font-title); color:var(--bp-navy); font-weight:800; font-size:1.3rem; margin:0 0 20px;
}
.woocommerce-account .bp-login-main .woocommerce-form-login{ border:0!important; padding:0!important; margin:0!important; }
.woocommerce-account .bp-login-main .woocommerce-form-login .form-row{ margin:0 0 16px; padding:0; }
.woocommerce-account .bp-login-main .woocommerce-form-login label{ font-weight:600; font-size:.9rem; color:var(--bp-ink); }
.woocommerce-account .bp-login-main .woocommerce-form-login input.input-text{ width:100%; }
.woocommerce-account .bp-login-main .woocommerce-form-login .button{
  background:var(--bp-warm)!important; color:#fff!important; width:100%; padding:14px;
  border-radius:12px; font-family:var(--bp-font-title); font-weight:700; font-size:.98rem; margin-top:4px;
}
.woocommerce-account .bp-login-main .woocommerce-form-login__rememberme{
  display:flex; align-items:center; gap:8px; font-size:.86rem; color:var(--bp-mist); margin:2px 0 4px;
}
.woocommerce-account .bp-login-main .woocommerce-LostPassword{ margin-top:14px; text-align:center; }
.woocommerce-account .bp-login-main .woocommerce-LostPassword a{ color:var(--bp-blue2); font-size:.88rem; font-weight:600; }
@media (max-width:768px){
  .woocommerce-account .bp-login-wrap{ grid-template-columns:1fr; }
  .woocommerce-account .bp-login-aside{ padding:30px 26px; }
  .woocommerce-account .bp-login-main{ padding:30px 26px; }
}

/* ---------- Mon compte ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li{
  border:1px solid var(--bp-line); border-radius:12px; margin-bottom:8px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active{
  background:var(--bp-cool); border-color:transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ color:#fff; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block; padding:12px 14px; font-weight:600; color:var(--bp-ink);
}

/* ---------- Messages WooCommerce ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{ border-top-color:var(--bp-blue2); border-radius:10px; }
.woocommerce-message{ border-top-color:var(--bp-orange); }

/* ---------- Formulaire de contact (shortcode [bestprice_contact]) ---------- */
.bp-form-card{
  background:#fff; border:1px solid var(--bp-line); border-radius:var(--bp-radius);
  padding:24px; box-shadow:var(--bp-shadow);
}
.bp-form-card h2{ color:var(--bp-navy); font-size:1.35rem; margin-bottom:18px; }
.bp-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.bp-field label{ font-weight:600; font-size:.88rem; color:var(--bp-ink); }
.bp-field input,
.bp-field select,
.bp-field textarea{
  border:1.5px solid var(--bp-line); border-radius:12px; padding:11px 12px;
  font-size:.9rem; font-family:var(--bp-font-body); background:#fff;
}
.bp-field input:focus,
.bp-field select:focus,
.bp-field textarea:focus{ outline:none; border-color:var(--bp-blue2); }
.bp-form-msg{ padding:12px 14px; border-radius:12px; margin-bottom:16px; font-size:.9rem; }
.bp-form-msg.bp-ok{ background:#E6F7EE; color:#0F9D58; }
.bp-form-msg.bp-err{ background:#FDEBE6; color:var(--bp-red); }

/* ---------- Responsive ---------- */
@media (max-width:768px){
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:.92rem; }
}

/* =====================================================================
   PIED DE PAGE — mise en page (logo+newsletter, liens, contact, social)
   ===================================================================== */
/* Newsletter */
.bp-newsletter{ display:flex; flex-direction:column; gap:10px; max-width:280px; }
.bp-newsletter .bp-nl-field{ display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:0 12px; }
.bp-newsletter .bp-nl-field i{ color:var(--bp-orange); }
.bp-newsletter .bp-nl-field input{ flex:1; min-width:0; background:none; border:none; outline:none; color:#fff; font-size:.88rem; padding:11px 0; }
.bp-newsletter .bp-nl-field input::placeholder{ color:#8C95B3; }
.bp-newsletter .bp-nl-btn{ background:var(--bp-warm); color:#fff; border:none; border-radius:10px; padding:11px; font-family:var(--bp-font-title); font-weight:700; font-size:.88rem; cursor:pointer; transition:filter .15s; }
.bp-newsletter .bp-nl-btn:hover{ filter:brightness(1.05); }
.bp-newsletter .bp-nl-msg.ok{ color:#8FE3B0; font-size:.82rem; margin:0; }

/* Réseaux sociaux */
.bp-social{ display:flex; gap:10px; margin-top:16px; }
.bp-social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; transition:.15s; }
.bp-social a:hover{ background:var(--bp-warm); color:#fff; transform:translateY(-2px); }

/* Barre du bas : copyright à gauche, liens à droite */
.bp-foot-bottom{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.bp-foot-copy{ color:#7C88B5; font-size:.78rem; }
.bp-foot-links{ display:flex; gap:18px; }
.bp-foot-links a{ color:#A9B3D6; font-size:.78rem; }
.bp-foot-links a:hover{ color:#fff; }
@media (max-width:767px){
  .bp-foot-bottom{ justify-content:center; text-align:center; }
  .bp-newsletter{ max-width:none; }
}
/* Tablette / grand mobile : footer en 2 colonnes (logo+newsletter pleine largeur) */
@media (min-width:601px) and (max-width:1024px){
  .elementor-location-footer .elementor-top-section:first-of-type > .elementor-container{ flex-wrap:wrap; }
  .elementor-location-footer .elementor-top-section:first-of-type > .elementor-container > .elementor-column{ width:50% !important; margin-bottom:28px; }
  .elementor-location-footer .elementor-top-section:first-of-type > .elementor-container > .elementor-column:first-child{ width:100% !important; }
}

/* =====================================================================
   RESPONSIVE — passe mobile-first (corrections d'affichage)
   ===================================================================== */
/* Garde-fou : aucun débordement horizontal sur tout le site */
html, body{ overflow-x:hidden; max-width:100%; }
img, video, iframe{ max-width:100%; height:auto; }

/* ---------- TABLETTE & MOBILE (≤ 1024px) ---------- */
@media (max-width:1024px){
  /* En-tête : la recherche passe sous le logo/panier */
  .elementor-location-header .elementor-section:has(.bp-search) > .elementor-container{ flex-wrap:wrap; gap:14px; row-gap:12px; }
  .elementor-location-header .elementor-column:has(.elementor-widget-image){ order:1; flex:0 0 auto !important; min-width:0 !important; }
  .elementor-location-header .elementor-column:has(.bp-actions-cluster){ order:2; margin-left:auto; flex:0 0 auto !important; min-width:0 !important; }
  .elementor-location-header .elementor-column:has(.bp-search){ order:3; flex:1 1 100% !important; width:100% !important; min-width:100% !important; }
}

/* ---------- MOBILE (≤ 767px) ---------- */
@media (max-width:767px){
  /* En-tête compact */
  .elementor-widget-theme-site-logo img, .bp-header-main img{ max-height:42px; }
  .bp-topbar-in{ font-size:.78rem; padding:6px 0; }
  /* Recherche : dropdown catégories compact, champ qui remplit le reste */
  .bp-search-cat{ flex:0 0 auto; }
  .bp-search-cat select{ max-width:96px; padding:0 26px 0 12px; font-size:.8rem; }
  .bp-search-input{ min-width:0; flex:1 1 auto; }

  /* Bandeau global : titre réduit */
  .bp-page-banner-in{ padding:24px 16px; }
  .bp-page-banner h1{ font-size:1.45rem; }
  .bp-page-banner .bp-crumb{ font-size:.82rem; }

  /* Slider hero : typo adaptée (on NE force PAS la hauteur des slides pour
     ne pas perturber le calcul de Swiper → sinon slides mal positionnées). */
  .bp-hero-slider .elementor-slide-heading{ font-size:1.4rem !important; }
  .bp-hero-slider .elementor-slide-description{ font-size:.9rem !important; }
  .bp-hero-slider .elementor-swiper-button{ display:none; } /* on garde les points, on retire les flèches */

  /* Chips catégories : défilement horizontal propre (pas de débordement page) */
  .bp-chips-row{ max-width:100%; }

  /* Grille produits : 2 colonnes, cartes lisibles */
  .woocommerce ul.products,
  .bp-shop-main ul.products{ grid-template-columns:repeat(2,1fr) !important; gap:12px; }
  .woocommerce ul.products li.product a img{ height:150px; }
  .woocommerce ul.products li.product .bp-actions{ flex-wrap:wrap; }
  .woocommerce ul.products li.product .bp-actions .bp-commander{ flex:1 1 100%; }
  .woocommerce ul.products li.product .bp-actions .add_to_cart_button,
  .woocommerce ul.products li.product .bp-actions .added_to_cart{ width:100%; }

  /* Réassurance : 2 par ligne, centrée */
  .bp-reassure-strip .elementor-icon-list-items{ flex-wrap:wrap; gap:12px 18px !important; }

  /* Boutique : sidebar au-dessus, toolbar empilée */
  .bp-shop-grid{ grid-template-columns:1fr; }
  .bp-shop-main .woocommerce-ordering{ float:none; margin-top:8px; }
  .bp-shop-main .woocommerce-ordering select{ width:100%; }

  /* Fiche produit : galerie et résumé empilés */
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary{ width:100% !important; float:none !important; margin:0 0 20px !important; }
  .woocommerce div.product form.cart{ flex-wrap:wrap; }
  .woocommerce div.product form.cart .quantity,
  .woocommerce div.product .single_add_to_cart_button,
  .woocommerce div.product form.cart .bp-buy-now{ flex:1 1 100%; text-align:center; }
  .woocommerce div.product .single_add_to_cart_button,
  .woocommerce div.product form.cart .bp-buy-now{ width:100%; }

  /* Panier : tableau en cartes empilées (natif WooCommerce) + récap sous le tableau */
  .woocommerce-cart form.woocommerce-cart-form{ padding:14px; }
  .woocommerce-cart table.cart td.actions .coupon{ flex-wrap:wrap; }
  .woocommerce-cart table.cart td.actions .coupon input#coupon_code{ flex:1 1 100%; min-width:0; }
  .woocommerce-cart table.cart td.actions > button[name="update_cart"]{ float:none; width:100%; margin-top:8px; }

  /* Checkout : une colonne (déjà géré) + boutons pleine largeur */
  .woocommerce-checkout .bp-steps{ gap:4px; }
  .woocommerce-checkout .bp-steps .bp-step{ font-size:.7rem; }

  /* Footer : colonnes empilées, alignées à gauche (cohérent titres + liens) */
  .elementor-location-footer .elementor-column{ text-align:left; }
  .elementor-location-footer .elementor-column > .elementor-widget-wrap{ padding-bottom:22px; }
  .elementor-location-footer .elementor-heading-title{ text-align:left !important; }
  .bp-newsletter{ max-width:none; }
  .bp-social{ justify-content:flex-start; }
  .bp-foot-bottom{ flex-direction:column; text-align:center; }
  .bp-foot-links{ justify-content:center; }

  /* Zones tactiles : boutons assez hauts */
  .bp-btn, .woocommerce a.button, .woocommerce button.button, .bp-navlink, .bp-search-btn{ min-height:44px; }
}

/* ---------- Très petits écrans (≤ 400px) ---------- */
@media (max-width:400px){
  .bp-page-banner h1{ font-size:1.3rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:.85rem; }
  .bp-cart-ico .fa-shopping-cart, .bp-wish .fa-heart{ font-size:20px; }
}
