/*
Theme Name: Hello Elementor Child — BIOVICOS
Theme URI: https://artofdoing.net
Description: Child theme Hello Elementor pour BIOVICOS (savons & cosmétiques naturels, vente au détail et en gros, COD Algérie). Palette du logo : vert-canard, safran, crème. Titres Cormorant Garamond, corps Inter. Pas de panier — commande via formulaire COD, packs dégressifs pour les grossistes.
Author: Art Of Doing
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* ============================================================
   PALETTE — extraite du logo BIOVICOS
   ============================================================ */
:root {
  --bvc-teal:        #124B4E;  /* vert-canard du logo — titres, header, texte fort */
  --bvc-teal-700:    #0E3D40;  /* canard foncé — hover */
  --bvc-teal-900:    #092A2C;  /* canard très foncé — sections sombres, footer */
  --bvc-teal-300:    #57908F;  /* canard clair — texte sur fond sombre */
  --bvc-saffron:     #F5A93C;  /* safran/orange des fleurs — accent, boutons */
  --bvc-saffron-600: #DE8F22;  /* safran foncé — hover */
  --bvc-saffron-200: #FBDCA6;  /* safran clair — surlignage sur fond sombre */
  --bvc-cream:       #FDF8EF;  /* crème du logo — fond principal */
  --bvc-cream-2:     #F6EEDF;  /* crème soutenu — sections alternées */
  --bvc-ink:         #10393B;  /* texte titre */
  --bvc-body:        #5C6E6D;  /* texte courant */
  --bvc-line:        #E7DDC9;  /* bordures douces */
  --bvc-white:       #FFFFFF;
  --bvc-shadow:      0 18px 50px rgba(9, 42, 44, .12);
  --bvc-radius:      18px;
}

/* ============================ BASE ============================ */
body {
  font-family: "Inter", system-ui, sans-serif;
  color: var(--bvc-body);
  background: var(--bvc-cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .elementor-heading-title {
  font-family: "Cormorant Garamond", "Inter", serif;
  color: var(--bvc-ink);
  letter-spacing: -0.005em;
}
html { scroll-behavior: smooth; }
img { max-width: 100%; height: auto; }
::selection { background: var(--bvc-saffron); color: var(--bvc-teal-900); }
::-moz-selection { background: var(--bvc-saffron); color: var(--bvc-teal-900); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--bvc-saffron); outline-offset: 2px;
}
@media (min-width: 768px) {
  ::-webkit-scrollbar { width: 11px; }
  ::-webkit-scrollbar-track { background: var(--bvc-cream-2); }
  ::-webkit-scrollbar-thumb { background: #D8CDB2; border-radius: 10px; border: 2px solid var(--bvc-cream-2); }
  ::-webkit-scrollbar-thumb:hover { background: var(--bvc-saffron); }
}

/* ── PLEINE LARGEUR ──────────────────────────────────────────────────────────
   Hello Elementor enferme <main class="site-main"> dans un conteneur centré
   (~1140px) : nos sections à fond plein (héro, bandeau, gros, CTA) s'arrêtaient
   donc avant les bords, laissant deux bandes vides. Sur NOS templates, on rend
   la main pleine largeur — c'est .bvc-wrap, à l'intérieur, qui borne le contenu.
   Les pages Boutique / produit gardent le conteneur du thème. */
body.page-template-template-accueil .site-main,
body.page-template-template-certifications .site-main,
body.page-template-template-contact .site-main {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Conteneur commun aux sections du child theme */
.bvc-wrap { max-width: 1160px; margin: 0 auto; padding: 0 22px; }
.bvc-section { padding: 88px 0; position: relative; }
.bvc-section--cream { background: var(--bvc-cream-2); }
.bvc-section--dark { background: var(--bvc-teal-900); color: #CFDCDA; }
.bvc-section--dark h2, .bvc-section--dark h3 { color: var(--bvc-white); }
.bvc-eyebrow {
  display: inline-block; font-family: "Inter", sans-serif; font-weight: 700;
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--bvc-saffron-600); margin: 0 0 14px;
}
.bvc-section--dark .bvc-eyebrow { color: var(--bvc-saffron); }
.bvc-title { font-size: clamp(30px, 4.4vw, 46px); line-height: 1.15; font-weight: 700; margin: 0 0 16px; }
.bvc-lead { font-size: 17px; line-height: 1.75; max-width: 640px; margin: 0 0 34px; }
.bvc-center { text-align: center; }
.bvc-center .bvc-lead { margin-inline: auto; }
@media (max-width: 767px) { .bvc-section { padding: 56px 0; } }

/* Boutons */
.bvc-btn {
  display: inline-block; font-family: "Inter", sans-serif; font-weight: 700; font-size: 15px;
  padding: 15px 32px; border-radius: 100px; text-decoration: none; border: 2px solid transparent;
  cursor: pointer; position: relative; overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}
.bvc-btn--primary { background: var(--bvc-saffron); color: var(--bvc-teal-900); box-shadow: 0 12px 28px rgba(245,169,60,.32); }
.bvc-btn--primary:hover { background: var(--bvc-teal); color: var(--bvc-white); transform: translateY(-3px); box-shadow: 0 16px 34px rgba(18,75,78,.28); }
.bvc-btn--ghost { background: transparent; color: var(--bvc-teal); border-color: var(--bvc-teal); }
.bvc-btn--ghost:hover { background: var(--bvc-teal); color: var(--bvc-white); transform: translateY(-3px); }
.bvc-section--dark .bvc-btn--ghost { color: var(--bvc-white); border-color: rgba(255,255,255,.5); }
.bvc-section--dark .bvc-btn--ghost:hover { background: var(--bvc-white); color: var(--bvc-teal-900); }
.bvc-btn::before {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-20deg); transition: left .6s ease;
}
.bvc-btn:hover::before { left: 130%; }
.elementor-button { font-family: "Inter", sans-serif; font-weight: 700; }

/* ============================================================
   LOGO ANIMÉ — fleur safran + marque
   Fonctionne à l'identique avec le vrai logo (image) ou, tant qu'il n'est pas
   chargé, avec le nom du site composé lettre par lettre.
   ============================================================ */

/* --- La fleur (SVG inline, pétales animables un par un) --- */
.bvc-flower { display: block; width: 100%; height: auto; overflow: visible; }
.bvc-flower .bvc-petal { fill: var(--bvc-saffron); transform-origin: 0 0; }
.bvc-flower .bvc-flower__heart { fill: var(--bvc-saffron-600); transform-origin: 0 0; }
.bvc-flower .bvc-flower__stem { stroke: var(--bvc-saffron); stroke-width: 2.4; stroke-linecap: round; }

/* Éclosion : chaque pétale se déplie depuis le cœur, en cascade. */
@keyframes bvcPetalBloom {
  from { transform: scale(.05); opacity: 0; }
  to   { transform: scale(1);   opacity: 1; }
}
@keyframes bvcHeartPop {
  0%   { transform: scale(0); }
  70%  { transform: scale(1.25); }
  100% { transform: scale(1); }
}
@keyframes bvcStemDraw {
  from { stroke-dashoffset: 46; }
  to   { stroke-dashoffset: 0; }
}
@keyframes bvcFlowerSway {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50%      { transform: rotate(3deg)  translateY(-6px); }
}

.bvc-flower--bloom .bvc-petal {
  animation: bvcPetalBloom .55s cubic-bezier(.34,1.56,.64,1) both;
  animation-delay: calc(var(--bvc-t, 0ms) + var(--p, 0) * 60ms);
}
.bvc-flower--bloom .bvc-petal:nth-of-type(1){--p:0} .bvc-flower--bloom .bvc-petal:nth-of-type(2){--p:1}
.bvc-flower--bloom .bvc-petal:nth-of-type(3){--p:2} .bvc-flower--bloom .bvc-petal:nth-of-type(4){--p:3}
.bvc-flower--bloom .bvc-petal:nth-of-type(5){--p:4} .bvc-flower--bloom .bvc-petal:nth-of-type(6){--p:5}
.bvc-flower--bloom .bvc-petal:nth-of-type(7){--p:6} .bvc-flower--bloom .bvc-petal:nth-of-type(8){--p:7}
.bvc-flower--bloom .bvc-flower__heart {
  animation: bvcHeartPop .5s cubic-bezier(.34,1.56,.64,1) both;
  animation-delay: calc(var(--bvc-t, 0ms) + 480ms);
}
.bvc-flower--bloom .bvc-flower__stem {
  stroke-dasharray: 46;
  animation: bvcStemDraw .6s ease-out both;
  animation-delay: calc(var(--bvc-t, 0ms) + 380ms);
}

/* --- Écran d'ouverture --- */
.bvc-intro__stage { position: relative; text-align: center; padding: 0 24px; }
.bvc-flower--intro { position: absolute; width: 64px; opacity: .95; }
.bvc-flower--a { top: -104px; left: 50%; margin-left: -32px; width: 78px; }
.bvc-flower--b { top: -58px;  left: 50%; margin-left: -128px; width: 52px; transform: rotate(-16deg); }
.bvc-flower--c { top: -62px;  left: 50%; margin-left: 74px;   width: 58px; transform: rotate(14deg); }
@media (max-width: 600px) {
  .bvc-flower--a { width: 62px; margin-left: -26px; top: -86px; }
  .bvc-flower--b { width: 42px; margin-left: -96px; top: -50px; }
  .bvc-flower--c { width: 46px; margin-left: 56px;  top: -54px; }
}

/* La marque : logo réel OU nom du site en Cormorant (typo du logo) */
.bvc-mark { position: relative; z-index: 1; }
.bvc-mark__img { display: block; width: 100%; max-width: 340px; height: auto; margin: 0 auto; }
.bvc-mark__word {
  display: inline-flex; align-items: baseline;
  font-family: "Cormorant Garamond", serif; font-weight: 700;
  color: var(--bvc-teal); letter-spacing: .06em; line-height: 1;
}
.bvc-mark__char { display: inline-block; }
.bvc-mark--intro .bvc-mark__word { font-size: clamp(38px, 9vw, 66px); }
.bvc-mark--intro .bvc-mark__img { max-width: min(340px, 76vw); }

/* Entrée de la marque : image = zoom net depuis un flou ; texte = lettres en cascade */
@keyframes bvcMarkIn {
  from { opacity: 0; transform: scale(.92); filter: blur(9px); }
  to   { opacity: 1; transform: scale(1);   filter: blur(0); }
}
@keyframes bvcCharIn {
  from { opacity: 0; transform: translateY(22px) rotate(-6deg); }
  to   { opacity: 1; transform: none; }
}
.bvc-mark--intro .bvc-mark__img { animation: bvcMarkIn .9s cubic-bezier(.22,.61,.36,1) .35s both; }
.bvc-mark--intro .bvc-mark__char {
  animation: bvcCharIn .6s cubic-bezier(.34,1.56,.64,1) both;
  animation-delay: calc(350ms + var(--bvc-i, 0) * 55ms);
}

/* Filet safran qui se tire sous la marque */
.bvc-intro__rule {
  display: block; height: 3px; width: 0; margin: 22px auto 0; border-radius: 3px;
  background: linear-gradient(90deg, var(--bvc-saffron-600), var(--bvc-saffron));
  animation: bvcRule .7s cubic-bezier(.22,.61,.36,1) .9s forwards;
}
@keyframes bvcRule { to { width: 128px; } }

@media (prefers-reduced-motion: reduce) {
  .bvc-flower--bloom .bvc-petal, .bvc-flower--bloom .bvc-flower__heart,
  .bvc-flower--bloom .bvc-flower__stem, .bvc-mark--intro .bvc-mark__img,
  .bvc-mark--intro .bvc-mark__char, .bvc-intro__rule { animation: none !important; opacity: 1 !important; }
}

/* --- Logo du header : entrée, respiration, éclosion au survol --- */
#site-header .custom-logo-link, #site-header .site-title {
  position: relative;
  animation: bvcLogoIn .8s cubic-bezier(.22,.61,.36,1) .15s both;
}
@keyframes bvcLogoIn {
  from { opacity: 0; transform: translateY(-14px) scale(.9); }
  to   { opacity: 1; transform: none; }
}
/* Halo safran qui pulse doucement derrière le logo */
#site-header .custom-logo-link::before {
  content: ""; position: absolute; inset: -18% -12%; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(245,169,60,.35) 0%, rgba(245,169,60,0) 68%);
  opacity: 0; transition: opacity .4s ease;
  animation: bvcLogoHalo 6s ease-in-out infinite;
}
@keyframes bvcLogoHalo {
  0%, 100% { opacity: .28; transform: scale(1); }
  50%      { opacity: .55; transform: scale(1.09); }
}
#site-header .custom-logo-link:hover::before { opacity: .8; }
/* Fleur qui éclot derrière le logo au survol */
#site-header .custom-logo-link::after {
  content: ""; position: absolute; top: -14px; inset-inline-end: -26px; width: 30px; height: 30px;
  background: url("assets/flower.svg") center/contain no-repeat;
  opacity: 0; transform: scale(.2) rotate(-40deg); transform-origin: center;
  transition: opacity .45s ease, transform .55s cubic-bezier(.34,1.56,.64,1);
  pointer-events: none;
}
#site-header .custom-logo-link:hover::after { opacity: 1; transform: scale(1) rotate(0deg); }
@media (prefers-reduced-motion: reduce) {
  #site-header .custom-logo-link, #site-header .site-title,
  #site-header .custom-logo-link::before { animation: none; }
}

/* --- Fleurs décoratives du héro (éclosent au chargement, puis ondulent) --- */
.bvc-hero__flower { position: absolute; z-index: 0; pointer-events: none; opacity: .9; }
.bvc-hero__flower--1 { top: 8%;  inset-inline-end: 6%;  width: 74px; animation: bvcFlowerSway 8s ease-in-out 1.4s infinite; }
.bvc-hero__flower--2 { bottom: 12%; inset-inline-start: 3%; width: 52px; animation: bvcFlowerSway 10s ease-in-out 1.8s infinite; }
@media (max-width: 900px) {
  .bvc-hero__flower--1 { width: 52px; top: 4%; }
  .bvc-hero__flower--2 { display: none; }
}
@media (prefers-reduced-motion: reduce) { .bvc-hero__flower { animation: none !important; } }

/* --- Logo du footer : révélation + filet safran --- */
.bvc-footer__logo { transition: transform .4s cubic-bezier(.34,1.56,.64,1); }
.bvc-footer__col:first-child:hover .bvc-footer__logo,
.bvc-footer__col:first-child:hover .bvc-footer__name { transform: translateY(-4px); }
.bvc-footer__name { transition: transform .4s cubic-bezier(.34,1.56,.64,1); }

/* ============================ HEADER ============================
   Header CLAIR, « verre dépoli » : c'est le fond crème pour lequel le logo a été
   dessiné. Le logo garde donc ses vraies couleurs (canard + safran) au lieu
   d'être recoloré pour survivre sur un fond sombre. Le vert-canard reste la
   couleur des sections fortes (gros, CTA, footer).
   =============================================================== */
#site-header.site-header {
  position: -webkit-sticky; position: sticky; top: 0; z-index: 999;
  background: rgba(253, 248, 239, .82);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
          backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid rgba(18,75,78,.08);
  transition: box-shadow .35s ease, padding .35s ease, background-color .35s ease;
  animation: bvcHeaderIn .7s cubic-bezier(.22,.61,.36,1) both;
}
/* Repli si backdrop-filter n'est pas supporté : fond crème plein (jamais translucide) */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  #site-header.site-header { background: var(--bvc-cream); }
}
/* Halo safran discret, qui dérive lentement derrière le logo */
#site-header.site-header::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(60% 200% at 10% 0%, rgba(245,169,60,.16), rgba(245,169,60,0) 62%);
  animation: bvcHeaderGlow 12s ease-in-out infinite alternate;
}
/* Filet safran animé en bas du header */
#site-header.site-header::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(245,169,60,0), var(--bvc-saffron), var(--bvc-saffron-600), var(--bvc-saffron), rgba(245,169,60,0));
  background-size: 220% 100%;
  opacity: 0; transition: opacity .4s ease;
  animation: bvcLineFlow 7s linear infinite;
}
#site-header.site-header.is-scrolled::after { opacity: 1; }
@keyframes bvcHeaderGlow { 0%{transform:translateX(-10%);opacity:.55} 100%{transform:translateX(40%);opacity:1} }
@keyframes bvcLineFlow { from{background-position:0% 0} to{background-position:220% 0} }
@keyframes bvcHeaderIn { from{opacity:0;transform:translateY(-100%)} to{opacity:1;transform:translateY(0)} }
@keyframes bvcNavIn { from{opacity:0;transform:translateY(-10px)} to{opacity:1;transform:translateY(0)} }
@media (prefers-reduced-motion: reduce) {
  #site-header.site-header, #site-header.site-header::before, #site-header.site-header::after { animation: none; }
}

#site-header.site-header .header-inner { position: relative; z-index: 2; padding-top: 14px; padding-bottom: 14px; transition: padding .35s ease; }
#site-header.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(9,42,44,.10); background: rgba(253,248,239,.94); }
#site-header.site-header.is-scrolled .header-inner { padding-top: 8px; padding-bottom: 8px; }

/* Le logo : détouré, il occupe toute la hauteur utile (le mot, pas la marge) */
#site-header .site-logo img.custom-logo { height: 46px; width: auto; transition: height .35s ease; }
#site-header.is-scrolled .site-logo img.custom-logo { height: 38px; }
#site-header .custom-logo-link { display: inline-block; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
#site-header .custom-logo-link:hover { transform: scale(1.04) rotate(-1deg); }
/* Repli si aucun logo n'est chargé : le nom du site dans la typo du logo */
#site-header .site-title a, #site-header .site-title { color: var(--bvc-teal) !important; font-family: "Cormorant Garamond", serif; font-weight: 700; letter-spacing: .04em; }
#site-header .site-description { color: rgba(92,110,109,.75); font-size: 12px; margin: 2px 0 0; }

#site-header .site-navigation ul.menu { gap: 6px; align-items: center; }
#site-header .site-navigation ul.menu > li { margin: 0 10px; animation: bvcNavIn .55s cubic-bezier(.22,.61,.36,1) both; }
#site-header .site-navigation ul.menu > li:nth-child(1){animation-delay:.25s}
#site-header .site-navigation ul.menu > li:nth-child(2){animation-delay:.35s}
#site-header .site-navigation ul.menu > li:nth-child(3){animation-delay:.45s}
#site-header .site-navigation ul.menu > li:nth-child(4){animation-delay:.55s}
#site-header .site-navigation ul.menu > li:nth-child(5){animation-delay:.65s}
#site-header .site-navigation ul.menu > li > a {
  color: var(--bvc-teal); font-weight: 600; font-size: 13.5px; text-transform: uppercase;
  letter-spacing: 1.5px; padding: 8px 2px; position: relative; transition: color .25s ease;
}
#site-header .site-navigation ul.menu > li > a::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 0; height: 2px;
  background: var(--bvc-saffron); border-radius: 2px; transform: translateX(-50%);
  transition: width .3s cubic-bezier(.22,.61,.36,1);
}
#site-header .site-navigation ul.menu > li > a:hover { color: var(--bvc-saffron-600); }
#site-header .site-navigation ul.menu > li > a:hover::after,
#site-header .site-navigation ul.menu > li.current-menu-item > a::after { width: 100%; }
#site-header .site-navigation ul.menu > li.current-menu-item > a { color: var(--bvc-saffron-600); }

/* Switcher FR/AR */
.aod-lang { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid rgba(18,75,78,.18); border-radius: 100px; background: rgba(255,255,255,.55); }
.aod-lang__btn { display: inline-block; padding: 5px 13px; border-radius: 100px; color: rgba(18,75,78,.7); font-weight: 700; font-size: 13px; line-height: 1; text-decoration: none; transition: background .25s ease, color .25s ease; }
.aod-lang__btn:hover { color: var(--bvc-teal); }
.aod-lang__btn.is-active { background: var(--bvc-saffron); color: var(--bvc-teal-900); }

/* ============================ MENU MOBILE ============================ */
@media (max-width: 1024px) {
  #site-header.site-header .header-inner { padding: 12px 18px !important; }
  #site-header .site-logo img.custom-logo { height: 44px; }
  #site-header.is-scrolled .site-logo img.custom-logo { height: 38px; }

  /* Hamburger : 3 traits vert-canard, nets */
  #site-header .site-navigation-toggle {
    background: transparent !important; border: none !important; box-shadow: none !important;
    width: 46px; height: 46px; padding: 0 !important; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px; transition: background .2s ease;
  }
  #site-header .site-navigation-toggle:hover,
  #site-header .site-navigation-toggle:focus { background: rgba(245,169,60,.16) !important; outline: none; }
  #site-header .site-navigation-toggle-icon {
    position: relative; display: block; width: 26px; height: 2.5px;
    background: var(--bvc-teal) !important; border-radius: 3px;
    transition: background .2s ease, transform .3s ease;
  }
  #site-header .site-navigation-toggle-icon::before,
  #site-header .site-navigation-toggle-icon::after {
    content: ""; position: absolute; left: 0; width: 26px; height: 2.5px;
    background: var(--bvc-teal) !important; border-radius: 3px;
    transition: transform .3s ease, top .3s ease;
  }
  #site-header .site-navigation-toggle-icon::before { top: -8px; }
  #site-header .site-navigation-toggle-icon::after  { top: 8px; }
  #site-header .site-navigation-toggle[aria-expanded="true"] .site-navigation-toggle-icon { background: transparent !important; }
  #site-header .site-navigation-toggle[aria-expanded="true"] .site-navigation-toggle-icon::before { top: 0; transform: rotate(45deg); }
  #site-header .site-navigation-toggle[aria-expanded="true"] .site-navigation-toggle-icon::after  { top: 0; transform: rotate(-45deg); }

  /* Panneau déroulant : crème PLEIN & opaque (une translucidité ici = texte illisible
     par-dessus la page qui défile — c'est le bug « écran blanc » du menu mobile). */
  #site-header .site-navigation-dropdown,
  nav.site-navigation-dropdown,
  .site-navigation-dropdown ul.menu,
  .site-navigation-dropdown ul.menu > li,
  .site-navigation-dropdown ul.sub-menu {
    background-color: var(--bvc-cream) !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  #site-header .site-navigation-dropdown,
  nav.site-navigation-dropdown {
    border-top: 2px solid var(--bvc-saffron) !important;
    box-shadow: 0 24px 50px rgba(9,42,44,.18) !important;
    padding: 6px 0 14px !important;
  }
  .site-navigation-dropdown ul.menu { margin: 0 !important; padding: 0 !important; }
  .site-navigation-dropdown ul.menu > li { margin: 0 !important; padding: 0 !important; border: none !important; }
  .site-navigation-dropdown ul.menu > li > a {
    color: var(--bvc-teal) !important; background: transparent !important;
    font-family: "Inter", sans-serif; font-weight: 600; font-size: 15.5px !important;
    text-transform: uppercase; letter-spacing: 1.2px;
    padding: 16px 26px !important; display: block;
    border-bottom: 1px solid rgba(18,75,78,.10) !important;
    transition: color .2s ease, background .2s ease, padding-inline-start .2s ease;
  }
  .site-navigation-dropdown ul.menu > li > a:hover,
  .site-navigation-dropdown ul.menu > li.current-menu-item > a {
    color: var(--bvc-teal-900) !important; background: var(--bvc-saffron-200) !important; padding-inline-start: 34px !important;
  }
  .site-navigation-dropdown .menu-item-aod-lang { padding: 16px 26px 6px !important; border: none !important; }
  .site-navigation-dropdown .aod-lang { border-color: rgba(18,75,78,.2) !important; background: rgba(255,255,255,.6) !important; }
  .site-navigation-dropdown .aod-lang__btn { color: rgba(18,75,78,.75) !important; }
  .site-navigation-dropdown .aod-lang__btn.is-active { background: var(--bvc-saffron) !important; color: var(--bvc-teal-900) !important; }
}

/* ============================================================
   SCROLL — révélations, scènes par section, parallaxe
   Chaque section entre d'une façon qui lui est propre : sans ça, tout le site
   « monte de 24px » et le scroll devient monotone.
   ============================================================ */

/* --- Base : montée en fondu (le défaut) ---
   ⚠️ Tout état « caché » est conditionné à `html.bvc-js`, posée par le script
   d'animation dès son exécution. Sans JS (script bloqué, erreur, vieux
   navigateur), AUCUN contenu n'est masqué : on perd les animations, pas la page.
   Sans ce garde-fou, un JS en échec laisserait tout le site sous la ligne de
   flottaison à opacity:0 — une page blanche. */
.bvc-js .bvc-reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--bvc-delay, 0ms);
  will-change: opacity, transform;
}
.bvc-js .bvc-reveal.is-visible { opacity: 1; transform: none; }

/* --- Variantes : la direction dit quelque chose de la section --- */
.bvc-js .bvc-reveal--left  { transform: translateX(-56px); }
.bvc-js .bvc-reveal--right { transform: translateX(56px); }
.bvc-js .bvc-reveal--zoom  { transform: scale(.88); }
.bvc-js .bvc-reveal--blur  { transform: translateY(20px) scale(.97); filter: blur(8px); }
.bvc-js .bvc-reveal--blur.is-visible { filter: blur(0); }
/* En RTL, les glissements horizontaux s'inversent — sinon ça entre à l'envers. */
body.rtl .bvc-js .bvc-reveal--left,
.bvc-js body.rtl .bvc-reveal--left  { transform: translateX(56px); }
body.rtl .bvc-js .bvc-reveal--right,
.bvc-js body.rtl .bvc-reveal--right { transform: translateX(-56px); }

/* --- Cascade : les enfants d'un .bvc-stagger entrent l'un après l'autre.
       L'index --i est posé par le JS. --- */
.bvc-js .bvc-stagger > * {
  opacity: 0; transform: translateY(30px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay: calc(var(--i, 0) * 90ms);
}
.bvc-js .bvc-stagger.is-visible > * { opacity: 1; transform: none; }
/* Cascade « pop » : pour les cartes de paliers et les étapes */
.bvc-js .bvc-stagger--pop > * { transform: translateY(26px) scale(.92); }

/* --- Parallaxe : le JS pose --p (progression -1 → 1).
   On passe par la propriété `translate` et NON par `transform` : les fleurs ont
   déjà une animation sur `transform` (l'ondulation), qui écraserait le décalage.
   `translate` se compose avec `transform` au lieu d'entrer en conflit. --- */
.bvc-parallax { will-change: translate; translate: 0 calc(var(--p, 0) * var(--speed, 40px)); }

/* --- Barre de progression du scroll, sous le header --- */
.bvc-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 1000;
  transform: scaleX(var(--sp, 0)); transform-origin: left center;
  background: linear-gradient(90deg, var(--bvc-saffron), var(--bvc-saffron-600), var(--bvc-teal));
  pointer-events: none;
}
body.rtl .bvc-progress { transform-origin: right center; }

/* --- Rideau de section : un voile crème qui se retire à l'arrivée --- */
.bvc-curtain { position: relative; }
.bvc-js .bvc-curtain::after {
  content: ""; position: absolute; inset: 0; z-index: 5; pointer-events: none;
  background: var(--bvc-cream);
  transform-origin: top;
  transition: transform 1s cubic-bezier(.76,0,.24,1);
}
.bvc-js .bvc-curtain.is-visible::after { transform: scaleY(0); }
/* Sur les sections sombres, le voile est sombre (sinon on voit un flash crème) */
.bvc-js .bvc-curtain.bvc-gros::after,
.bvc-js .bvc-curtain.bvc-cta::after { background: var(--bvc-teal-900); }

@media (prefers-reduced-motion: reduce) {
  .bvc-reveal, .bvc-stagger > * {
    opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important;
  }
  .bvc-parallax { transform: none !important; }
  .bvc-curtain::after { display: none; }
  .bvc-progress { display: none; }
}

/* ============================ ACCUEIL — HÉRO ============================ */
.bvc-hero {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 104px 0 96px;
  background-image: url("assets/bg-botanic.svg"), linear-gradient(160deg, #FFFDF8 0%, var(--bvc-cream) 45%, var(--bvc-cream-2) 100%);
  background-repeat: repeat, no-repeat;
  background-size: 260px, cover;
  animation: bvcBgDrift 60s linear infinite;
}
@keyframes bvcBgDrift { from { background-position: 0 0, center; } to { background-position: 520px 260px, center; } }

/* --- Fond « aurora » : trois nappes floues qui dérivent lentement ---------- */
.bvc-hero__aura { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.bvc-hero__blob {
  position: absolute; display: block; border-radius: 50%;
  filter: blur(70px); opacity: .55; will-change: transform;
}
.bvc-hero__blob--1 {
  width: 46vw; height: 46vw; max-width: 620px; max-height: 620px; top: -14%; inset-inline-end: -8%;
  background: radial-gradient(circle, rgba(245,169,60,.55), rgba(245,169,60,0) 70%);
  animation: bvcDrift1 22s ease-in-out infinite alternate;
}
.bvc-hero__blob--2 {
  width: 38vw; height: 38vw; max-width: 500px; max-height: 500px; bottom: -18%; inset-inline-start: -10%;
  background: radial-gradient(circle, rgba(18,75,78,.30), rgba(18,75,78,0) 70%);
  animation: bvcDrift2 26s ease-in-out infinite alternate;
}
.bvc-hero__blob--3 {
  width: 30vw; height: 30vw; max-width: 420px; max-height: 420px; top: 34%; inset-inline-start: 38%;
  background: radial-gradient(circle, rgba(251,220,166,.60), rgba(251,220,166,0) 70%);
  animation: bvcDrift3 19s ease-in-out infinite alternate;
}
@keyframes bvcDrift1 { from { transform: translate(0,0) scale(1); } to { transform: translate(-6%, 8%) scale(1.14); } }
@keyframes bvcDrift2 { from { transform: translate(0,0) scale(1); } to { transform: translate(8%, -7%) scale(1.18); } }
@keyframes bvcDrift3 { from { transform: translate(0,0) scale(1); opacity: .4; } to { transform: translate(-9%, -6%) scale(1.1); opacity: .7; } }
@media (prefers-reduced-motion: reduce) {
  .bvc-hero { animation: none; }
  .bvc-hero__blob { animation: none !important; }
}

.bvc-hero__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center;
}

/* --- Pastille d'accroche, avec point qui bat ------------------------------- */
.bvc-pill {
  display: inline-flex; align-items: center; gap: 9px;
  background: rgba(255,255,255,.72); border: 1px solid rgba(18,75,78,.12);
  border-radius: 100px; padding: 8px 16px 8px 12px; margin: 0 0 22px;
  font-size: 12.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
  color: var(--bvc-teal);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow: 0 6px 20px rgba(9,42,44,.06);
}
.bvc-pill__dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--bvc-saffron); flex: none;
  position: relative;
}
.bvc-pill__dot::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--bvc-saffron);
  animation: bvcPing 2.2s cubic-bezier(0,0,.2,1) infinite;
}
@keyframes bvcPing { 0% { transform: scale(1); opacity: .8; } 80%, 100% { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .bvc-pill__dot::after { animation: none; } }

/* --- Titre : chaque mot monte depuis sa ligne de coupe --------------------- */
.bvc-hero__title { font-size: clamp(36px, 5.4vw, 62px); line-height: 1.1; font-weight: 700; margin: 0 0 22px; }
.bvc-word { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .06em; }
.bvc-word__in {
  display: inline-block;
  transform: translateY(110%);
  animation: bvcWordUp .9s cubic-bezier(.16,1,.3,1) both;
  animation-delay: calc(220ms + var(--w, 0) * 90ms);
}
@keyframes bvcWordUp { to { transform: translateY(0); } }

/* Le groupe mis en valeur + son soulignement tracé à la main */
.bvc-hero__accent { position: relative; display: inline-block; color: var(--bvc-saffron-600); }
.bvc-underline {
  position: absolute; left: 0; right: 0; bottom: -.18em; width: 100%; height: .34em;
  color: var(--bvc-saffron); overflow: visible;
}
.bvc-underline path {
  stroke-dasharray: 320; stroke-dashoffset: 320;
  animation: bvcDraw 1.1s cubic-bezier(.65,0,.35,1) 900ms forwards;
}
@keyframes bvcDraw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .bvc-word__in { transform: none; animation: none; }
  .bvc-underline path { stroke-dashoffset: 0; animation: none; }
}

/* --- Entrée en fondu des blocs du héro (délai porté par --d) --------------- */
.bvc-hero__anim {
  opacity: 0; transform: translateY(22px);
  animation: bvcHeroUp .8s cubic-bezier(.16,1,.3,1) both;
  animation-delay: var(--d, 0ms);
}
@keyframes bvcHeroUp { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .bvc-hero__anim { opacity: 1; transform: none; animation: none; } }

.bvc-hero__text { font-size: 17.5px; line-height: 1.75; margin: 0 0 30px; max-width: 520px; }
.bvc-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Boutons magnétiques : ils se penchent vers le curseur (piloté en JS) */
.bvc-magnetic { will-change: transform; }

/* --- Chiffres qui comptent ------------------------------------------------- */
.bvc-hero__stats {
  display: flex; gap: 34px; flex-wrap: wrap; margin-top: 40px;
  padding-top: 28px; border-top: 1px solid rgba(18,75,78,.10);
}
.bvc-stat { display: flex; flex-direction: column; gap: 2px; }
.bvc-stat__num {
  font-family: "Cormorant Garamond", serif; font-weight: 700; font-size: 40px; line-height: 1;
  color: var(--bvc-teal); font-variant-numeric: tabular-nums;
}
.bvc-stat__label { font-size: 12.5px; font-weight: 600; color: var(--bvc-body); letter-spacing: .2px; }

/* --- Visuel : anneau tournant + carte inclinable --------------------------- */
.bvc-hero__visual { position: relative; perspective: 1100px; }
.bvc-hero__ring {
  position: absolute; z-index: 0; inset: -7%;
  border: 2px dashed rgba(245,169,60,.42); border-radius: 50%;
  animation: bvcSpin 46s linear infinite;
}
@keyframes bvcSpin { to { transform: rotate(360deg); } }
.bvc-hero__visual::before {
  content: ""; position: absolute; z-index: 0; inset: -6% -8% -10% -6%;
  background:
    radial-gradient(58% 58% at 32% 30%, rgba(245,169,60,.42), rgba(245,169,60,0) 70%),
    radial-gradient(52% 52% at 82% 82%, rgba(18,75,78,.20), rgba(18,75,78,0) 72%);
  filter: blur(6px);
  border-radius: 42% 58% 55% 45% / 52% 44% 56% 48%;
  animation: bvcBlob 13s ease-in-out infinite alternate;
}
@keyframes bvcBlob {
  0%   { border-radius: 42% 58% 55% 45% / 52% 44% 56% 48%; transform: rotate(0deg) scale(1); }
  100% { border-radius: 58% 42% 45% 55% / 44% 56% 48% 52%; transform: rotate(9deg) scale(1.06); }
}

.bvc-hero__card {
  position: relative; z-index: 1;
  transform-style: preserve-3d;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
  animation: bvcFloat 7s ease-in-out infinite;
  will-change: transform;
}
/* Le flottement vit sur la carte, l'inclinaison 3D sur l'enfant : les deux
   transforms ne se marchent pas dessus. */
.bvc-hero__card-inner {
  background: rgba(255,255,255,.82); border: 1px solid rgba(255,255,255,.9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-radius: 28px; padding: 26px 26px 28px;
  box-shadow: 0 44px 90px rgba(9,42,44,.18), inset 0 1px 0 rgba(255,255,255,.9);
  transition: transform .25s ease-out;
  transform-style: preserve-3d;
}
@keyframes bvcFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }
@media (prefers-reduced-motion: reduce) {
  .bvc-hero__card, .bvc-hero__visual::before, .bvc-hero__ring { animation: none !important; }
}

.bvc-hero__tag {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bvc-teal); color: var(--bvc-white);
  border-radius: 100px; padding: 6px 14px; margin-bottom: 16px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
  transform: translateZ(40px);
}
.bvc-hero__shot {
  display: block; border-radius: 20px; overflow: hidden; background: var(--bvc-cream);
  border: 1px solid var(--bvc-line); margin-bottom: 20px; transform: translateZ(28px);
}
.bvc-hero__shot img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.bvc-hero__shot--empty {
  display: flex; align-items: center; justify-content: center; height: 190px;
  color: var(--bvc-saffron-600);
}
.bvc-hero__shot--empty svg { width: 54px; height: 54px; }
.bvc-hero__card-title { font-size: 25px; font-weight: 700; margin: 0 0 10px; transform: translateZ(22px); }
.bvc-hero__card-text { font-size: 14.5px; line-height: 1.65; margin: 0 0 18px; }
.bvc-hero__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; transform: translateZ(18px); }
.bvc-hero__price strong { font-size: 32px; color: var(--bvc-teal); font-family: "Cormorant Garamond", serif; }
.bvc-hero__price span { font-size: 13px; color: var(--bvc-body); }
.bvc-hero__card-btn { display: block; width: 100%; text-align: center; margin-top: 20px; transform: translateZ(30px); }

/* --- Invitation à descendre ------------------------------------------------ */
.bvc-scroll {
  position: absolute; z-index: 1; bottom: 24px; left: 50%; transform: translateX(-50%);
  display: block; transition: opacity .4s ease;
}
.bvc-scroll__mouse {
  display: block; width: 26px; height: 42px; border-radius: 100px;
  border: 2px solid rgba(18,75,78,.35); position: relative;
}
.bvc-scroll__wheel {
  position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px;
  background: var(--bvc-saffron-600); border-radius: 100px;
  animation: bvcWheel 1.6s cubic-bezier(.15,.41,.69,.94) infinite;
}
@keyframes bvcWheel { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(15px); } }
@media (max-width: 900px), (prefers-reduced-motion: reduce) { .bvc-scroll { display: none; } }

@media (max-width: 900px) {
  .bvc-hero { padding: 64px 0 60px; background-size: 180px, cover; }
  .bvc-hero__grid { grid-template-columns: 1fr; gap: 42px; }
  .bvc-hero__text { max-width: none; }
  .bvc-hero__visual { max-width: 420px; margin-inline: auto; perspective: none; }
  .bvc-hero__actions .bvc-btn { flex: 1 1 100%; text-align: center; }
  .bvc-hero__stats { gap: 22px; justify-content: space-between; }
  .bvc-stat__num { font-size: 32px; }
  .bvc-stat__label { font-size: 11.5px; }
  .bvc-hero__blob { filter: blur(48px); }
}

/* ============================ BANDEAU CONFIANCE ============================ */
.bvc-trust { background: var(--bvc-teal); padding: 0; }
.bvc-trust__inner {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  max-width: 1160px; margin: 0 auto;
}
.bvc-trust__item {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 26px 18px; color: #DCEAE8; font-size: 14px; font-weight: 600; text-align: center;
  border-inline-end: 1px solid rgba(255,255,255,.10);
}
.bvc-trust__item:last-child { border-inline-end: none; }
.bvc-trust__item svg { width: 24px; height: 24px; flex: none; color: var(--bvc-saffron); }
@media (max-width: 900px) {
  .bvc-trust__inner { grid-template-columns: 1fr 1fr; }
  .bvc-trust__item { border-bottom: 1px solid rgba(255,255,255,.10); font-size: 12.5px; padding: 20px 12px; gap: 9px; }
  .bvc-trust__item:nth-child(2n) { border-inline-end: none; }
  .bvc-trust__item svg { width: 20px; height: 20px; }
}

/* ============================ GROS / GROSSISTES ============================ */
.bvc-gros { background: var(--bvc-teal-900); color: #CFDCDA; position: relative; overflow: hidden; }
.bvc-gros::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 110% at 88% 8%, rgba(245,169,60,.22), rgba(245,169,60,0) 62%);
}
.bvc-gros__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1.1fr; gap: 54px; align-items: center; }
.bvc-gros h2 { color: var(--bvc-white); }
.bvc-gros .bvc-lead { color: #B9CBC9; }
.bvc-gros__tiers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.bvc-gros__tier {
  background: rgba(255,255,255,.05); border: 1px solid rgba(251,220,166,.22); border-radius: 16px;
  padding: 22px 20px; transition: transform .3s ease, border-color .3s ease, background .3s ease;
}
.bvc-gros__tier:hover { transform: translateY(-6px); border-color: var(--bvc-saffron); background: rgba(245,169,60,.10); }
.bvc-gros__tier-qty { font-family: "Cormorant Garamond", serif; font-size: 32px; font-weight: 700; color: var(--bvc-saffron); line-height: 1; margin: 0 0 6px; }
.bvc-gros__tier-label { font-size: 13px; font-weight: 600; color: var(--bvc-white); margin: 0 0 4px; }
.bvc-gros__tier-note { font-size: 12.5px; color: #93A9A7; margin: 0; }
@media (max-width: 900px) {
  .bvc-gros__grid { grid-template-columns: 1fr; gap: 34px; }
}
@media (max-width: 420px) { .bvc-gros__tiers { grid-template-columns: 1fr; } }

/* ============================ CERTIFICATIONS ============================ */
.bvc-certs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bvc-cert {
  display: flex; flex-direction: column;
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
  padding: 26px 24px; box-shadow: 0 10px 30px rgba(9,42,44,.05);
  transition: transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, border-color .3s ease;
}
.bvc-cert:hover { transform: translateY(-7px); box-shadow: 0 26px 54px rgba(9,42,44,.13); border-color: rgba(245,169,60,.6); }
.bvc-cert__icon {
  width: 48px; height: 48px; border-radius: 14px; display: flex; align-items: center; justify-content: center;
  background: rgba(245,169,60,.14); color: var(--bvc-saffron-600); margin-bottom: 16px; flex: none;
}
.bvc-cert__icon svg { width: 24px; height: 24px; }
.bvc-cert__title { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.bvc-cert__org { font-size: 12.5px; font-weight: 600; letter-spacing: .4px; text-transform: uppercase; color: var(--bvc-saffron-600); margin: 0 0 10px; }
.bvc-cert__text { font-size: 14.5px; line-height: 1.7; margin: 0 0 18px; }
.bvc-cert__result {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  background: rgba(18,75,78,.07); color: var(--bvc-teal); border-radius: 100px;
  padding: 7px 14px; font-size: 13px; font-weight: 700; margin-bottom: 16px;
}
.bvc-cert__result svg { width: 15px; height: 15px; color: #2E9E6B; }
.bvc-cert__link {
  margin-top: auto; align-self: flex-start; font-size: 14px; font-weight: 700;
  color: var(--bvc-teal); text-decoration: none; border-bottom: 2px solid var(--bvc-saffron);
  padding-bottom: 2px; transition: color .2s ease, gap .2s ease;
  display: inline-flex; align-items: center; gap: 6px;
}
.bvc-cert__link:hover { color: var(--bvc-saffron-600); gap: 10px; }
.bvc-cert__link[aria-disabled="true"] { color: #A6B2B1; border-color: var(--bvc-line); pointer-events: none; }
@media (max-width: 900px) { .bvc-certs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .bvc-certs { grid-template-columns: 1fr; } }

/* Rappel conformité (page produit + accueil) */
.bvc-compliance {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: rgba(46,158,107,.08); border: 1px solid rgba(46,158,107,.28);
  border-radius: 14px; padding: 14px 18px; margin: 18px 0;
  font-size: 14px; color: var(--bvc-teal); font-weight: 600;
}
.bvc-compliance svg { width: 20px; height: 20px; color: #2E9E6B; flex: none; }

/* ============================ ÉTAPES ============================ */
.bvc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.bvc-step { text-align: center; padding: 8px; }
.bvc-step__num {
  width: 58px; height: 58px; margin: 0 auto 18px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bvc-saffron); color: var(--bvc-teal-900);
  font-family: "Cormorant Garamond", serif; font-size: 26px; font-weight: 700;
  box-shadow: 0 10px 24px rgba(245,169,60,.35);
}
.bvc-step__title { font-size: 21px; font-weight: 700; margin: 0 0 8px; }
.bvc-step__text { font-size: 14.5px; line-height: 1.7; margin: 0; }
@media (max-width: 767px) { .bvc-steps { grid-template-columns: 1fr; gap: 30px; } }

/* ============================ CTA FINAL ============================ */
.bvc-cta { position: relative; overflow: hidden; background: var(--bvc-teal); text-align: center; }
.bvc-cta::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(55% 120% at 88% 10%, rgba(245,169,60,.30), rgba(245,169,60,0) 60%);
}
.bvc-cta > .bvc-wrap { position: relative; z-index: 1; }
.bvc-cta h2 { color: var(--bvc-white); }
.bvc-cta .bvc-lead { color: #C6D8D6; }

/* ============================ CONTACT ============================ */
.bvc-contact__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: start; }
.bvc-info { list-style: none; margin: 0; padding: 0; }
.bvc-info li { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px; }
.bvc-info__icon {
  width: 42px; height: 42px; border-radius: 12px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: rgba(18,75,78,.08); color: var(--bvc-teal);
}
.bvc-info__icon svg { width: 20px; height: 20px; }
.bvc-info__label { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--bvc-saffron-600); margin: 0 0 3px; }
.bvc-info__value { font-size: 15.5px; color: var(--bvc-ink); font-weight: 600; margin: 0; line-height: 1.55; }
.bvc-info__value a { color: var(--bvc-ink); text-decoration: none; }
.bvc-info__value a:hover { color: var(--bvc-saffron-600); }

.bvc-form {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 20px;
  padding: 32px 30px; box-shadow: var(--bvc-shadow);
}
.bvc-form label { font-weight: 600; color: var(--bvc-ink); display: block; margin-bottom: 7px; font-size: 14px; }
.bvc-form p { margin: 0 0 18px; }
.bvc-form input[type=text], .bvc-form input[type=tel], .bvc-form input[type=email], .bvc-form textarea {
  width: 100%; padding: 14px 16px; border: 1px solid var(--bvc-line); border-radius: 12px;
  background: var(--bvc-cream); font-family: "Inter", sans-serif; font-size: 16px; color: var(--bvc-ink);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.bvc-form textarea { min-height: 140px; resize: vertical; }
.bvc-form input:focus, .bvc-form textarea:focus {
  outline: none; border-color: var(--bvc-saffron); background: var(--bvc-white);
  box-shadow: 0 0 0 3px rgba(245,169,60,.16);
}
.bvc-form__note { font-size: 12.5px; color: var(--bvc-body); margin: -8px 0 18px; }
.bvc-form__msg { border-radius: 12px; padding: 14px 16px; margin: 0 0 20px; font-size: 14.5px; font-weight: 600; }
.bvc-form__msg--ok { background: rgba(46,158,107,.10); color: #1F7A52; border: 1px solid rgba(46,158,107,.3); }
.bvc-form__msg--err { background: rgba(214,69,69,.08); color: #B23B3B; border: 1px solid rgba(214,69,69,.28); }
.bvc-form button[type=submit] { width: 100%; border: none; }
@media (max-width: 900px) {
  .bvc-contact__grid { grid-template-columns: 1fr; gap: 34px; }
  .bvc-form { padding: 24px 20px; }
}
body.rtl .bvc-form label, body.rtl .bvc-info__label { text-align: right; }

/* ============================ BOUTIQUE (WooCommerce) ============================ */
.woocommerce-products-header {
  position: relative; overflow: hidden; isolation: isolate;
  max-width: 1200px; margin: 22px auto 28px; border-radius: 26px;
  padding: 74px 24px 62px; text-align: center;
  background: linear-gradient(120deg, #124B4E 0%, #175C5F 45%, #0E3D40 100%);
  box-shadow: 0 24px 54px rgba(9,42,44,.20);
}
.woocommerce-products-header::before {
  content: ""; position: absolute; inset: -3%; z-index: -1;
  background:
    radial-gradient(60% 120% at 85% 10%, rgba(245,169,60,.30), rgba(245,169,60,0) 60%),
    url("assets/bg-botanic.svg") repeat;
  background-size: cover, 240px;
  opacity: .9;
  animation: bvcPatternDrift 45s linear infinite;
}
@keyframes bvcPatternDrift { from { background-position: center, 0 0; } to { background-position: center, 240px 240px; } }
@media (prefers-reduced-motion: reduce) { .woocommerce-products-header::before { animation: none; } }
.woocommerce-products-header__title.page-title {
  font-family: "Cormorant Garamond", serif; font-weight: 700; font-size: 48px;
  color: var(--bvc-white) !important; position: relative; display: inline-block; margin: 0;
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
}
.woocommerce-products-header__title.page-title::after {
  content: ""; display: block; width: 64px; height: 4px; border-radius: 4px;
  background: var(--bvc-saffron); margin: 14px auto 0;
}
.bvc-shop-subtitle {
  text-align: center; color: #DCEAE8; font-size: 16.5px; line-height: 1.65;
  max-width: 660px; margin: 16px auto 0;
}
.bvc-shop-subtitle strong { color: var(--bvc-saffron-200); }
@media (max-width: 767px) {
  .woocommerce-products-header { padding: 52px 18px 44px; border-radius: 18px; margin: 14px auto 22px; }
  .woocommerce-products-header__title.page-title { font-size: 34px; }
}

.woocommerce .woocommerce-result-count { color: var(--bvc-body); font-size: 14px; float: none; text-align: center; margin: 6px 0 0; }
.woocommerce .woocommerce-ordering { float: none; text-align: center; margin: 12px 0 6px; }
.woocommerce select.orderby, .woocommerce .woocommerce-ordering select {
  font-family: "Inter", sans-serif; border: 1px solid var(--bvc-line); border-radius: 100px;
  padding: 10px 18px; background: var(--bvc-white); color: var(--bvc-ink); cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.woocommerce .woocommerce-ordering select:hover { border-color: var(--bvc-saffron); }
.woocommerce .woocommerce-ordering select:focus { outline: none; border-color: var(--bvc-saffron); box-shadow: 0 0 0 3px rgba(245,169,60,.18); }

/* Grille = CSS Grid stricte (le flex de Woo empile mal).
   `auto-fit` + `justify-content: center` : la grille se remplit jusqu'à 3 cartes
   par rangée, MAIS quand il y a moins de 3 produits, elles se centrent au lieu
   de rester collées à gauche avec un grand vide à droite. */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(0, 310px));
  justify-content: center;
  align-items: stretch; gap: 28px;
  max-width: 1040px; margin: 30px auto 0; padding: 0 4px; list-style: none;
}
/* Woo ajoute un clearfix ::before/::after (display:table) qui, dans un conteneur
   grid, devient une FAUSSE case (décale toutes les cartes). On le neutralise. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after {
  content: none !important; display: none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important; max-width: none !important; margin: 0 !important; float: none !important; flex: none !important;
  min-width: 0;
  display: flex; flex-direction: column;
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
  padding: 14px 14px 16px; overflow: hidden;
  box-shadow: 0 8px 26px rgba(9,42,44,.05);
  transition: box-shadow .3s ease, transform .3s cubic-bezier(.22,.61,.36,1), border-color .3s ease;
}
@media (max-width: 900px) {
  .woocommerce ul.products { grid-template-columns: minmax(0,1fr) minmax(0,1fr); max-width: 620px; }
}
.woocommerce ul.products li.product:hover {
  box-shadow: 0 26px 52px rgba(9,42,44,.16); transform: translateY(-7px); border-color: rgba(245,169,60,.6);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a:first-child {
  display: block; border-radius: 14px; overflow: hidden; background: var(--bvc-white);
  border: 1px solid #F1EBDD; margin-bottom: 14px;
}
.woocommerce ul.products li.product a img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover; height: auto; margin: 0 !important;
  border-radius: 0; background: var(--bvc-white); display: block;
  transition: transform .6s cubic-bezier(.22,.61,.36,1) !important;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.06); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: "Cormorant Garamond", serif; font-weight: 700; color: var(--bvc-ink);
  font-size: 19px; padding: 2px 4px; line-height: 1.25;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em;
}
.woocommerce ul.products li.product .price {
  font-weight: 800; font-size: 19px; color: var(--bvc-teal); margin: 8px 4px 14px;
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
.woocommerce ul.products li.product .price del { color: #A9A498; font-weight: 500; font-size: 15px; opacity: .9; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--bvc-saffron-600); font-weight: 800; }
.woocommerce ul.products li.product .bvc-order-btn {
  display: block; width: 100%; text-align: center; margin-top: auto;
  text-transform: uppercase; font-size: 13px; letter-spacing: .8px;
}
.woocommerce ul.products li.product .bvc-order-btn::after {
  content: " \2192"; display: inline-block; margin-inline-start: 6px; transition: transform .25s ease;
}
.woocommerce ul.products li.product:hover .bvc-order-btn::after { transform: translateX(4px); }
body.rtl .woocommerce ul.products li.product .bvc-order-btn::after { content: " \2190"; }
body.rtl .woocommerce ul.products li.product:hover .bvc-order-btn::after { transform: translateX(-4px); }

/* Boutons Woo */
.bvc-order-btn, .woocommerce a.button.bvc-order-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce .button {
  background: var(--bvc-saffron) !important; color: var(--bvc-teal-900) !important;
  font-family: "Inter", sans-serif; font-weight: 700; border-radius: 100px !important;
  padding: 12px 26px !important; border: none !important; letter-spacing: .4px;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease !important;
}
.bvc-order-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover {
  background: var(--bvc-teal) !important; color: var(--bvc-white) !important;
  transform: translateY(-3px); box-shadow: 0 12px 26px rgba(9,42,44,.26);
}

/* Badge promo */
.woocommerce span.onsale {
  background: var(--bvc-saffron); color: var(--bvc-teal-900); font-weight: 700; border-radius: 100px;
  min-height: 0; min-width: 0; padding: 6px 14px; line-height: 1; top: 14px; left: 14px;
  box-shadow: 0 6px 16px rgba(245,169,60,.35);
}
body.rtl .woocommerce span.onsale { left: auto; right: 14px; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: none; gap: 8px; display: flex; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--bvc-line); border-radius: 50%; width: 44px; height: 44px; line-height: 44px;
  padding: 0; font-weight: 700; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--bvc-saffron); color: var(--bvc-teal-900); border-color: var(--bvc-saffron);
}

/* Entrée en cascade des cartes produit.
   Sur la BOUTIQUE, la grille est en haut de page : elle s'anime au chargement.
   Sur l'ACCUEIL, elle est sous la ligne de flottaison — l'animer au chargement
   la ferait jouer avant qu'on la voie. Là, c'est le scroll qui la déclenche
   (via .bvc-shop-grid.is-visible). */
@keyframes bvcProdIn { from { opacity: 0; transform: translateY(38px) scale(.93); } to { opacity: 1; transform: none; } }

body.woocommerce-shop .woocommerce ul.products li.product,
body.post-type-archive-product .woocommerce ul.products li.product,
body.tax-product_cat .woocommerce ul.products li.product {
  animation: bvcProdIn .6s cubic-bezier(.22,.9,.3,1) both;
  animation-delay: calc(var(--i, 0) * 90ms);
}
.bvc-js .bvc-shop-grid .woocommerce ul.products li.product {
  opacity: 0; transform: translateY(38px) scale(.93);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay: calc(var(--i, 0) * 90ms);
}
.bvc-js .bvc-shop-grid.is-visible .woocommerce ul.products li.product { opacity: 1; transform: none; }

.woocommerce ul.products li.product:nth-child(1){--i:0}
.woocommerce ul.products li.product:nth-child(2){--i:1}
.woocommerce ul.products li.product:nth-child(3){--i:2}
.woocommerce ul.products li.product:nth-child(4){--i:3}
.woocommerce ul.products li.product:nth-child(5){--i:4}
.woocommerce ul.products li.product:nth-child(6){--i:5}
.woocommerce ul.products li.product:nth-child(n+7){--i:6}
@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product,
  .bvc-shop-grid .woocommerce ul.products li.product {
    animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important;
  }
}

/* Boutique mobile : 2 colonnes serrées */
@media (max-width: 767px) {
  .woocommerce ul.products { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 14px !important; padding: 0 10px !important; margin-top: 22px !important; max-width: 520px; }
  .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
    padding: 8px 8px 12px !important; border-radius: 15px !important;
    box-shadow: 0 10px 24px rgba(9,42,44,.08) !important;
  }
  .woocommerce ul.products li.product a:first-child { margin-bottom: 10px !important; border-radius: 12px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15.5px !important; line-height: 1.25 !important; min-height: 2.5em; padding: 0 2px !important; }
  .woocommerce ul.products li.product .price { font-size: 15px !important; margin: 6px 2px 10px !important; gap: 6px; }
  .woocommerce ul.products li.product .price del { font-size: 12px !important; }
  .woocommerce ul.products li.product .bvc-order-btn { font-size: 11px !important; padding: 10px 8px !important; letter-spacing: .3px; }
  .woocommerce ul.products li.product .bvc-order-btn::after { margin-inline-start: 4px; }
  .woocommerce span.onsale { font-size: 11px; padding: 4px 10px; top: 10px; left: 10px; }
}

/* ============================================================
   GROSSISTES — bandeau, indice de prix, grilles tarifaires
   ============================================================ */

/* --- Bandeau permanent, au-dessus du header --- */
.bvc-topbar {
  display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
  padding: 11px 20px; text-decoration: none;
  background: linear-gradient(100deg, var(--bvc-teal-900) 0%, var(--bvc-teal) 55%, #16605F 100%);
  color: #DCEAE8; font-size: 13.5px; line-height: 1.4; text-align: center;
  transition: filter .25s ease;
}
.bvc-topbar:hover { filter: brightness(1.12); }
.bvc-topbar svg { width: 18px; height: 18px; flex: none; color: var(--bvc-saffron); }
.bvc-topbar__text strong { color: var(--bvc-white); font-weight: 700; }
.bvc-topbar__cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bvc-saffron); color: var(--bvc-teal-900);
  font-weight: 700; font-size: 12.5px; padding: 6px 14px; border-radius: 100px;
  transition: gap .25s ease;
}
.bvc-topbar__cta svg { width: 14px; height: 14px; color: inherit; }
.bvc-topbar:hover .bvc-topbar__cta { gap: 10px; }
@media (max-width: 780px) {
  .bvc-topbar { font-size: 12px; padding: 9px 14px; gap: 8px; }
  /* Sur mobile, on garde l'essentiel : l'accroche + le bouton. */
  .bvc-topbar > svg { display: none; }
  .bvc-topbar__cta { font-size: 11.5px; padding: 5px 12px; }
}

/* --- Boutique : le prix grossiste sous le prix de détail ---
   WooCommerce enveloppe ses montants dans <span class="amount"><bdi>…</bdi></span>.
   Sans forcer l'affichage en ligne, le prix passait à la ligne et l'indice se
   cassait en trois lignes (« dès » tout seul). */
.bvc-wholesale-hint {
  display: block;
  margin: -8px 4px 12px; font-size: 12.5px; line-height: 1.45;
  color: var(--bvc-saffron-600); font-weight: 600;
}
.bvc-wholesale-hint strong,
.bvc-wholesale-hint .woocommerce-Price-amount,
.bvc-wholesale-hint bdi {
  display: inline; color: var(--bvc-teal); font-weight: 800;
}
.bvc-wholesale-hint .woocommerce-Price-currencySymbol { display: inline; }
@media (max-width: 767px) {
  .bvc-wholesale-hint { font-size: 11px; margin: -6px 2px 8px; }
}

/* --- Grille des paliers (page produit + page grossistes) --- */
.bvc-tiers {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 16px;
  padding: 18px 20px; margin: 20px 0;
  box-shadow: 0 10px 30px rgba(9,42,44,.06);
}
.bvc-tiers__head {
  display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
  margin: 0 0 14px; font-size: 15px; color: var(--bvc-teal);
}
.bvc-tiers__head svg { width: 20px; height: 20px; color: var(--bvc-saffron-600); flex: none; }
.bvc-tiers__head span { font-size: 13px; color: var(--bvc-body); font-weight: 500; }

.bvc-tiers__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.bvc-tiers__table th {
  text-align: start; padding: 8px 10px; font-size: 11.5px; font-weight: 700;
  letter-spacing: .6px; text-transform: uppercase; color: var(--bvc-body);
  border-bottom: 1px solid var(--bvc-line);
}
.bvc-tiers__table td {
  padding: 11px 10px; border-bottom: 1px solid rgba(231,221,201,.6); color: var(--bvc-ink);
}
.bvc-tiers__table tbody tr:last-child td { border-bottom: none; }
.bvc-tiers__table tbody tr:hover { background: rgba(245,169,60,.06); }
/* La ligne « 1 unité » = le détail : on la met en retrait, ce n'est pas l'offre. */
.bvc-tiers__table tbody tr:first-child td { color: var(--bvc-body); }
.bvc-save {
  display: inline-block; background: rgba(46,158,107,.12); color: #1F7A52;
  border-radius: 100px; padding: 3px 9px; font-size: 12px; font-weight: 700;
}
.bvc-tiers__note { margin: 14px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--bvc-body); }

/* --- Page grossistes : une carte par produit --- */
.bvc-pricing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.bvc-pricing__card {
  display: flex; flex-direction: column;
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: var(--bvc-radius);
  padding: 22px; box-shadow: 0 10px 30px rgba(9,42,44,.05);
  transition: transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, border-color .3s ease;
}
.bvc-pricing__card:hover {
  transform: translateY(-6px); box-shadow: 0 26px 54px rgba(9,42,44,.13);
  border-color: rgba(245,169,60,.6);
}
.bvc-pricing__head { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 18px; }
.bvc-pricing__shot {
  flex: none; width: 92px; height: 92px; border-radius: 12px; overflow: hidden;
  border: 1px solid var(--bvc-line); background: var(--bvc-cream); display: block;
}
.bvc-pricing__shot img, .bvc-pricing__shot .bvc-visual {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.bvc-pricing__name { font-size: 20px; font-weight: 700; margin: 0 0 4px; line-height: 1.25; }
.bvc-pricing__name a { color: var(--bvc-ink); text-decoration: none; }
.bvc-pricing__name a:hover { color: var(--bvc-saffron-600); }
.bvc-pricing__retail { margin: 0 0 4px; font-size: 13px; color: var(--bvc-body); }
.bvc-pricing__best { margin: 0; font-size: 13.5px; color: var(--bvc-saffron-600); font-weight: 600; }
.bvc-pricing__best strong { color: var(--bvc-teal); font-weight: 800; }
.bvc-pricing__btn { margin-top: 18px; text-align: center; }
@media (max-width: 880px) { .bvc-pricing { grid-template-columns: 1fr; } }
@media (max-width: 480px) {
  .bvc-pricing__head { gap: 12px; }
  .bvc-pricing__shot { width: 68px; height: 68px; }
  .bvc-pricing__name { font-size: 17px; }
  .bvc-tiers__table { font-size: 13px; }
  .bvc-tiers__table th, .bvc-tiers__table td { padding: 8px 6px; }
}

/* ============================ VISUELS PRODUIT (repli SVG) ============================
   Ces SVG remplacent le carré gris « image manquante » de WooCommerce. Ils doivent
   se comporter exactement comme une <img> : même cadre, même recadrage, même zoom
   au survol. */
.bvc-visual { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; }
.woocommerce ul.products li.product .bvc-visual {
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.woocommerce ul.products li.product:hover .bvc-visual { transform: scale(1.06); }
.single-product .woocommerce-product-gallery .bvc-visual { border-radius: 14px; }
.bvc-hero__shot .bvc-visual { aspect-ratio: 4 / 3; object-fit: cover; }

/* ============================ PAGE PRODUIT ============================ */
body.single-product, body.woocommerce-shop, body.post-type-archive-product { background: var(--bvc-cream) !important; }
body.single-product::before, body.woocommerce-shop::before, body.post-type-archive-product::before {
  content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(38% 46% at 15% 18%, rgba(245,169,60,.20), rgba(245,169,60,0) 60%),
    radial-gradient(34% 42% at 86% 12%, rgba(18,75,78,.10), rgba(18,75,78,0) 60%),
    radial-gradient(42% 48% at 78% 82%, rgba(245,169,60,.16), rgba(245,169,60,0) 62%),
    linear-gradient(180deg, #FFFDF8 0%, var(--bvc-cream-2) 100%);
  background-size: 180% 180%;
  animation: bvcAurora 20s ease-in-out infinite alternate;
}
body.single-product::after, body.woocommerce-shop::after, body.post-type-archive-product::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: url("assets/bg-botanic.svg") repeat; background-size: 250px; opacity: .30;
  animation: bvcPatternDrift2 45s linear infinite;
}
@keyframes bvcAurora { 0%{background-position:0% 0%} 50%{background-position:100% 50%} 100%{background-position:50% 100%} }
@keyframes bvcPatternDrift2 { from { background-position: 0 0; } to { background-position: 250px 250px; } }
@media (prefers-reduced-motion: reduce) {
  body.single-product::before, body.single-product::after,
  body.woocommerce-shop::before, body.woocommerce-shop::after,
  body.post-type-archive-product::before, body.post-type-archive-product::after { animation: none; }
}
.single-product .woocommerce div.product .woocommerce-product-gallery {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 22px; padding: 16px;
  box-shadow: 0 18px 44px rgba(9,42,44,.08);
}
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery .flex-viewport { opacity: 1 !important; height: auto !important; }
.single-product .woocommerce-product-gallery__wrapper { transform: none !important; }
.single-product .woocommerce-product-gallery__image { width: 100% !important; float: none !important; }
.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; border-radius: 14px; display: block; }
.single-product .woocommerce div.product .product_title { font-family: "Cormorant Garamond", serif; font-weight: 700; color: var(--bvc-ink); }
.single-product .woocommerce div.product p.price { font-weight: 800; font-size: 30px; color: var(--bvc-teal); }
.single-product .woocommerce div.product .woocommerce-tabs {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 20px;
  padding: 22px 26px; margin-top: 32px; box-shadow: 0 12px 34px rgba(9,42,44,.05);
}
.single-product .related.products {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 20px;
  padding: 26px; margin-top: 32px; box-shadow: 0 12px 34px rgba(9,42,44,.05);
}
@media (max-width: 767px) {
  .single-product .woocommerce div.product .woocommerce-tabs,
  .single-product .related.products { padding: 18px; border-radius: 16px; }
}

/* ============================ FORMULAIRE COD (page produit) ============================ */
.single-product .aod-cod {
  --sh-accent: #F5A93C;
  --sh-accent-dark: #DE8F22;
  --sh-line: #E7DDC9;
  --sh-line-strong: #C9C2AC;
  --sh-bg-sub: #F6EEDF;
  --sh-radius: 12px;
  --sh-radius-sm: 10px;

  background: linear-gradient(180deg, #FFFDF8 0%, #F4EBD9 100%) !important;
  border: 1px solid #E4D9C2 !important;
  border-radius: 20px !important;
  box-shadow: 0 24px 54px rgba(9,42,44,.14);
  padding: 0 0 24px !important;
  overflow: hidden;
  font-family: "Inter", sans-serif !important;
}
.single-product .aod-cod .aod-cod__title {
  margin: 0 0 20px !important;
  padding: 18px 24px;
  background: linear-gradient(135deg, #175C5F 0%, #124B4E 55%, #0E3D40 100%);
  color: #FBECD3 !important;
  font-weight: 800 !important;
  font-size: 1.06em !important;
  letter-spacing: -.01em;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.10);
}
.single-product .aod-cod > .aod-cod__form { padding: 0 24px; }
.single-product .aod-cod > .aod-cod__pack,
.single-product .aod-cod > .aod-cod__msg,
.single-product .aod-cod > .aod-cod__config-msg { margin-left: 24px; margin-right: 24px; }
.single-product .aod-cod .aod-cod__form input,
.single-product .aod-cod .aod-cod__form select,
.single-product .aod-cod .aod-cod__form textarea {
  border-color: #E2D8C1 !important;
  box-shadow: 0 1px 2px rgba(9,42,44,.05);
}
.single-product .aod-cod .aod-cod__offer-card.is-selected .aod-cod__offer-check::after { border-color: var(--bvc-teal) !important; }
.single-product .aod-cod .aod-cod__offer-now,
.single-product .aod-cod .aod-cod__offer-title { color: var(--bvc-teal) !important; }
.single-product .aod-cod .aod-cod__submit {
  box-shadow: 0 14px 30px rgba(245,169,60,.35);
  font-weight: 800 !important; letter-spacing: .2px;
}
.single-product .aod-cod .aod-cod__reassure {
  background: var(--bvc-white); border: 1px solid var(--bvc-line); border-radius: 12px;
  padding: 12px 14px; margin-top: 16px;
}

/* ============================ FOOTER ============================ */
.bvc-footer { background: var(--bvc-teal-900); color: #A9BFBD; border-top: 4px solid var(--bvc-saffron); font-family: "Inter", sans-serif; }
.bvc-footer__inner { max-width: 1160px; margin: 0 auto; padding: 64px 24px 40px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; }
.bvc-footer__logo { height: 60px; width: auto; margin-bottom: 16px; }
.bvc-footer__name { display: inline-block; margin-bottom: 14px; font-weight: 700; font-size: 30px; color: var(--bvc-white); font-family: "Cormorant Garamond", serif; letter-spacing: .04em; }
.bvc-footer__tagline { font-size: 14px; line-height: 1.7; color: #7F9997; margin: 0; max-width: 320px; }
.bvc-footer__title { font-weight: 700; font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bvc-white); margin: 0 0 18px; }
.bvc-footer__links, .bvc-footer__reassure { list-style: none; margin: 0; padding: 0; }
.bvc-footer__links li { margin-bottom: 12px; }
.bvc-footer__links a { color: #A9BFBD; text-decoration: none; font-size: 15px; transition: color .25s ease, padding-left .25s ease; }
.bvc-footer__links a:hover { color: var(--bvc-saffron-200); padding-left: 6px; }
.bvc-footer__reassure li { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 14px; }
.bvc-footer__reassure svg { width: 17px; height: 17px; color: var(--bvc-saffron); flex: none; }
.bvc-footer__btn {
  display: inline-block; margin-top: 8px; background: var(--bvc-saffron); color: var(--bvc-teal-900);
  text-decoration: none; font-weight: 700; font-size: 14.5px; padding: 12px 26px; border-radius: 100px;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.bvc-footer__btn:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(245,169,60,.3); background: var(--bvc-white); }
.bvc-footer__bar {
  border-top: 1px solid rgba(255,255,255,.08); max-width: 1160px; margin: 0 auto; padding: 22px 24px;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  font-size: 13px; color: #6E8886;
}
.bvc-footer__pay { color: var(--bvc-saffron-200); font-weight: 600; }
.bvc-footer__credit { color: #6E8886; }
.bvc-footer__credit a { color: var(--bvc-saffron-200); font-weight: 600; text-decoration: none; transition: color .15s; }
.bvc-footer__credit a:hover { color: var(--bvc-saffron); text-decoration: underline; }
@media (max-width: 880px) { .bvc-footer__inner { grid-template-columns: 1fr 1fr; gap: 32px; padding: 48px 22px 32px; } }
@media (max-width: 520px) {
  .bvc-footer__inner { grid-template-columns: 1fr; text-align: center; }
  .bvc-footer__tagline { margin-inline: auto; }
  .bvc-footer__reassure li { justify-content: center; }
  .bvc-footer__bar { flex-direction: column; text-align: center; }
}
body.rtl .bvc-footer__links a:hover { padding-left: 0; padding-right: 6px; }
/* Un seul footer : on masque celui de Hello */
#site-footer.site-footer { display: none !important; }

/* ============================ ANTI-PANIER ============================ */
.woocommerce-cart-form, .cart-collaterals, a.added_to_cart, .added_to_cart,
li.woocommerce-mini-cart-item, .site-header-cart, .widget_shopping_cart { display: none !important; }

/* ============================ MOBILE — garde-fous ============================ */
@media (max-width: 767px) {
  #site-header .site-description { display: none; }
  #site-header .site-logo img.custom-logo { height: 42px; }
  .bvc-title { font-size: clamp(26px, 7vw, 34px); }
  .bvc-hero__title { font-size: clamp(28px, 8vw, 38px); }
  .bvc-lead, .bvc-hero__text { font-size: 15.5px; }
  /* Anti-scroll horizontal */
  html, body { overflow-x: hidden !important; max-width: 100% !important; }
  .bvc-section, .bvc-hero { overflow-x: hidden; }
}
