/* =====================================================
   Thème BienveNum · styles principaux
   Issus de la maquette validée (palette identité conservée)
   ===================================================== */
:root{
  --ink:#093034; --ink-80:#2b4f53; --cream:#fff8ec; --orange:#f59b1d; --orange-d:#d97f06;
  --cyan:#27b8cc; --cyan-l:#e3f6f9; --white:#fff; --line:#e8e2d5;
  --r:14px; --shadow:0 6px 24px rgba(9,48,52,.08);
  --font-h:'Montserrat Alternates','Montserrat',sans-serif; --font-b:'Montserrat',system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-b);color:var(--ink);background:var(--white);line-height:1.6;font-size:16px}
h1,h2,h3,h4{font-family:var(--font-h);line-height:1.15}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:820px}
.center{text-align:center;margin-top:32px}
section{padding:64px 0}
section.alt{background:var(--cream)}
section.tight{padding-top:56px}
.kicker{font-family:var(--font-h);font-weight:700;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}
h2.sec{font-size:clamp(1.6rem,3.5vw,2.4rem);margin:8px 0 16px;font-weight:800}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}
.skip-link:focus{clip:auto;height:auto;width:auto;display:block;padding:12px;background:var(--orange);z-index:300}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-h);font-weight:700;font-size:1rem;padding:14px 28px;border-radius:99px;border:none;cursor:pointer;text-decoration:none;transition:.2s}
.btn-primary{background:var(--orange);color:var(--ink)}
.btn-primary:hover{background:var(--orange-d);color:#fff;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-80)}
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:99px;background:var(--cyan-l);color:var(--ink);text-decoration:none}
.badge-promo{background:var(--orange);color:var(--ink)}

/* ===== En-tête ===== */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,248,236,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
body.admin-bar .site-header{top:32px}
.nav{display:flex;align-items:center;gap:28px;min-height:72px}
.nav .logo img,.nav .custom-logo{height:40px;width:auto}
.site-title{font-family:var(--font-h);font-weight:800;font-size:1.3rem;text-decoration:none}
.main-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-weight:500;font-size:.95rem}
.main-nav a{text-decoration:none}
.main-nav a:hover{color:var(--orange-d)}
.main-nav li{position:relative}
.main-nav .sub-menu{display:none;position:absolute;top:100%;left:-12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:10px;min-width:230px;z-index:120}
.main-nav li:hover>.sub-menu,.main-nav li:focus-within>.sub-menu{display:block}
.main-nav .sub-menu li{display:block}
.main-nav .sub-menu a{display:block;padding:8px 12px;border-radius:8px}
.main-nav .sub-menu a:hover{background:var(--cream)}
.nav .grow{flex:1}
.cart-ic{position:relative;text-decoration:none;font-size:1.3rem}
.cart-ic em{position:absolute;top:-7px;right:-10px;font-style:normal;background:var(--orange);color:var(--ink);font-size:.68rem;font-weight:700;border-radius:99px;padding:1px 6px}
.burger{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--ink)}
.m-menu{display:none;background:var(--cream);border-bottom:1px solid var(--line);padding:12px 20px 20px}
.m-menu ul{list-style:none;margin:0;padding:0}
.m-menu a{display:block;padding:10px 0;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.m-menu .btn{margin-top:14px;justify-content:center;display:flex}
@media(max-width:980px){
  .main-nav,.btn-cta-head{display:none}
  .burger{display:block}
  .m-menu.open{display:block}
}

/* ===== Hero ===== */
.hero{background:var(--cream);padding:72px 0 64px}
.hero .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(2rem,4.5vw,3.2rem);font-weight:800;margin:14px 0 18px}
.hero p.lead{font-size:1.12rem;color:var(--ink-80);max-width:34em}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0 18px}
.microproof{font-size:.85rem;color:var(--ink-80)}
.trustline{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.trustline span{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:8px}
.hero-visual img{border-radius:24px;box-shadow:var(--shadow)}
@media(max-width:980px){.hero .grid{grid-template-columns:1fr}}

/* ===== Cartes ===== */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:.2s;text-decoration:none}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card .card-link{text-decoration:none;display:flex;flex-direction:column;height:100%}
.card .thumb{aspect-ratio:16/10;background:var(--cyan-l);position:relative;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .thumb .badge-promo{position:absolute;top:10px;left:10px}
.card .body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}
.card h3{font-size:1.05rem;font-weight:700;margin:0}
.card .meta{font-size:.8rem;color:var(--ink-80)}
.card .excerpt{font-size:.88rem;color:var(--ink-80);margin:0}
.card .price{margin-top:auto;font-family:var(--font-h);font-size:1.2rem;font-weight:700}
.card .price del{color:#a09a8c;font-size:.85rem;font-weight:400;margin-left:8px}
.card .price ins{text-decoration:none}
.stars{color:var(--orange);font-size:.85rem;letter-spacing:2px}

/* ===== Étapes ===== */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:step}
@media(max-width:768px){.steps{grid-template-columns:1fr}}
.step{background:#fff;border-radius:var(--r);padding:26px}
section.alt .step{background:#fff}
.step::before{counter-increment:step;content:counter(step);font-family:var(--font-h);font-weight:800;font-size:2rem;color:var(--orange);display:block}
.step h3{margin:6px 0 8px;font-size:1.1rem}
.step p{font-size:.92rem;color:var(--ink-80);margin:0}

/* ===== Preuve sociale ===== */
.proof{background:var(--ink);color:#fff}
.proof h2.sec{color:#fff}
.proof .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:980px){.proof .grid{grid-template-columns:1fr}}
.quote{background:#0d4046;border-radius:var(--r);padding:24px;font-size:.95rem}
.quote footer{margin-top:14px;font-size:.82rem;opacity:.8}
.statbar{display:flex;gap:48px;justify-content:center;flex-wrap:wrap;margin-top:48px;text-align:center}
.statbar b{display:block;font-family:var(--font-h);font-size:2.2rem;color:var(--orange)}
.statbar span{font-size:.85rem;opacity:.85}

/* ===== Newsletter ===== */
.nl{background:var(--cyan-l);border-radius:20px;padding:40px;display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
@media(max-width:768px){.nl{grid-template-columns:1fr}}
.nl form{display:flex;gap:10px}
.nl input{flex:1;padding:14px 18px;border:1px solid var(--line);border-radius:99px;font-size:1rem;font-family:var(--font-b)}
@media(max-width:480px){.nl form{flex-direction:column}}
.nl h2.sec{margin-top:0}
.nl p{color:var(--ink-80)}

/* ===== Pied de page ===== */
.site-footer{background:var(--ink);color:#cfe7ea;padding:56px 0 32px;font-size:.9rem}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media(max-width:768px){.site-footer .cols{grid-template-columns:1fr 1fr}}
.site-footer h4{color:#fff;font-size:.95rem;margin:0 0 14px}
.site-footer .custom-logo,.site-footer .logo img{height:36px;width:auto;filter:brightness(0) invert(1)}
.site-footer .site-title{color:#fff}
.footer-menu{list-style:none;margin:0;padding:0}
.footer-menu a{display:block;text-decoration:none;padding:4px 0;opacity:.85}
.footer-menu a:hover{opacity:1;color:var(--orange)}
.site-footer .legal{margin-top:40px;padding-top:20px;border-top:1px solid #2b4f53;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.8rem;opacity:.7}
.site-footer .legal a{color:inherit}

/* ===== En-têtes de page / contenu ===== */
.pagehead{background:var(--cream);padding:48px 0 40px}
.pagehead h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin:8px 0 0}
.pagehead p{color:var(--ink-80);max-width:46em;margin:10px 0 0}
.breadcrumb{font-size:.8rem;color:var(--ink-80);margin-bottom:10px}
.breadcrumb a{text-decoration:none}
.entry-content{padding:40px 0 24px}
.entry-content h2{font-size:1.6rem;margin-top:2em}
.entry-content h3{font-size:1.25rem}
.entry-content img{border-radius:var(--r)}
.entry-thumb{border-radius:20px;margin-bottom:28px}
.entry-content a{color:var(--orange-d)}
.entry-content blockquote{border-left:4px solid var(--cyan);margin:1.5em 0;padding:.5em 0 .5em 1.2em;color:var(--ink-80);font-style:italic}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}}
.pagination{margin-top:40px;text-align:center}
.pagination .nav-links{display:flex;gap:8px;justify-content:center}
.pagination .page-numbers{padding:8px 14px;border:1px solid var(--line);border-radius:10px;text-decoration:none}
.pagination .page-numbers.current{background:var(--ink);color:#fff}
.post-cta{background:var(--cream);border-radius:20px;padding:32px;margin:40px 0;text-align:center}
.post-cta h2{margin-top:0}
.search-404{max-width:420px;margin-top:32px}

/* ===== FAQ (bloc details Gutenberg) ===== */
.entry-content details,details.faq{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;background:#fff;padding:0}
.entry-content details summary,details.faq summary{cursor:pointer;font-weight:600;font-family:var(--font-h);padding:18px 22px;list-style:none;display:flex;justify-content:space-between;align-items:center}
.entry-content details summary::after,details.faq summary::after{content:"+";font-size:1.4rem;color:var(--orange)}
.entry-content details[open] summary::after,details.faq[open] summary::after{content:"–"}
.entry-content details>*:not(summary){padding:0 22px;color:var(--ink-80);font-size:.95rem}
.entry-content details>p:last-child{padding-bottom:18px}

/* ===== WooCommerce ===== */
.woo-wrap{padding:40px 20px}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;list-style:none;margin:0;padding:0}
@media(max-width:980px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.woocommerce ul.products{grid-template-columns:1fr}}
.woocommerce ul.products li.product{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.2s;display:flex;flex-direction:column}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.woocommerce ul.products li.product a img{aspect-ratio:16/10;object-fit:cover;width:100%}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-h);font-size:1.05rem;padding:14px 18px 0;margin:0}
.woocommerce ul.products li.product .price{padding:6px 18px;font-family:var(--font-h);font-weight:700;font-size:1.15rem;color:var(--ink)}
.woocommerce ul.products li.product .price del{color:#a09a8c;font-weight:400;font-size:.85rem}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .button{margin:auto 18px 18px;background:var(--ink);color:#fff;border-radius:99px;font-family:var(--font-h);padding:10px 20px;text-align:center;text-decoration:none}
.woocommerce ul.products li.product .button:hover{background:var(--orange);color:var(--ink)}
.woocommerce ul.products li.product .onsale{position:absolute;background:var(--orange);color:var(--ink);border-radius:99px;padding:4px 12px;font-size:.75rem;font-weight:700;margin:10px;z-index:5}
.woocommerce ul.products li.product{position:relative}
.woocommerce span.onsale{background:var(--orange);color:var(--ink)}

/* Fiche produit */
.woocommerce div.product{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
@media(max-width:980px){.woocommerce div.product{grid-template-columns:1fr}}
.woocommerce div.product .woocommerce-product-gallery img{border-radius:20px}
.woocommerce div.product .summary{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow);position:sticky;top:96px}
.woocommerce div.product .summary .product_title{font-size:1.6rem;margin:0 0 10px}
.woocommerce div.product .summary .price{font-family:var(--font-h);font-size:2rem;font-weight:800;color:var(--ink)}
.woocommerce div.product .summary .price del{color:#a09a8c;font-size:1.1rem;font-weight:400}
.woocommerce div.product .summary .price ins{text-decoration:none}
.woocommerce div.product .summary .cart .button,
.woocommerce div.product .summary .single_add_to_cart_button{background:var(--orange);color:var(--ink);border-radius:99px;font-family:var(--font-h);font-weight:700;font-size:1.08rem;padding:14px 28px;width:100%;border:none;cursor:pointer}
.woocommerce div.product .summary .cart .button:hover{background:var(--orange-d);color:#fff}
.buy-reassure{list-style:none;margin:18px 0;padding:0;font-size:.92rem}
.buy-reassure li{padding:7px 0 7px 28px;position:relative}
.buy-reassure li::before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:700}
.buy-secure{text-align:center;font-size:.8rem;color:var(--ink-80)}
.buy-question{text-align:center;font-size:.85rem}
.woocommerce-tabs{grid-column:1/-1}
.woocommerce-tabs ul.tabs{list-style:none;display:flex;gap:8px;padding:0;border-bottom:2px solid var(--line);margin:0 0 24px}
.woocommerce-tabs ul.tabs li a{display:block;padding:12px 20px;text-decoration:none;font-family:var(--font-h);font-weight:600;border-radius:10px 10px 0 0}
.woocommerce-tabs ul.tabs li.active a{background:var(--cream);color:var(--orange-d)}
.related.products,.upsells.products{grid-column:1/-1;margin-top:48px}
.related.products>h2,.upsells.products>h2{font-family:var(--font-h);font-size:1.5rem}

/* Barre sticky mobile fiche produit */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:10px 16px;display:none;z-index:150;align-items:center;gap:14px;box-shadow:0 -6px 24px rgba(9,48,52,.1)}
.sticky-cta .p{font-family:var(--font-h);font-weight:800;font-size:1.1rem}
.sticky-cta .p del{font-size:.8rem;color:#a09a8c;font-weight:400}
.sticky-cta .btn{flex:1;justify-content:center;padding:12px}
@media(max-width:768px){.single-product .sticky-cta{display:flex}}

/* Panier / checkout */
.woocommerce-cart .woo-wrap,.woocommerce-checkout .woo-wrap{max-width:1180px}
.woocommerce table.shop_table{border:1px solid var(--line);border-radius:var(--r);border-collapse:separate;border-spacing:0}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-bottom:1px solid var(--line);padding:12px 16px}
.woocommerce .cart_totals,.woocommerce-checkout-review-order{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-family:var(--font-b)}
.woocommerce #payment{background:var(--cream);border-radius:var(--r)}
.woocommerce #place_order,.wc-proceed-to-checkout .checkout-button{background:var(--orange)!important;color:var(--ink)!important;border-radius:99px!important;font-family:var(--font-h)!important;font-weight:700!important;padding:14px 28px!important}
.woocommerce #place_order:hover,.wc-proceed-to-checkout .checkout-button:hover{background:var(--orange-d)!important;color:#fff!important}
.reassure{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:.78rem;color:var(--ink-80)}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--cyan)}

/* Avis */
.woocommerce #reviews .comment-text{border-radius:var(--r);border-color:var(--line)}
.woocommerce .star-rating span::before,.woocommerce p.stars a{color:var(--orange)}

/* ===== Correctifs v1.0.1 ===== */
/* Menu : pas de retour à la ligne dans les items, wrap propre du conteneur */
.main-nav .menu{flex-wrap:wrap;row-gap:4px}
.main-nav .menu>li>a{white-space:nowrap}
@media(max-width:1240px){.main-nav ul{gap:16px;font-size:.88rem}.btn-cta-head{padding:10px 18px;font-size:.85rem}}
/* En-tête : le logo ne doit pas s'écraser */
.nav .logo{flex-shrink:0}
/* Contenu hérité de Divi nettoyé : on aère les paragraphes restants */
.entry-content>p:empty{display:none}
.entry-content h1{font-size:1.8rem}
/* Le bandeau promo externe (snippet) ne doit pas recouvrir le header */
.site-header{top:0}
body.admin-bar .site-header{top:32px}

/* ===== Correctifs v1.0.4 · fiche produit ===== */
/* Le badge promo et le déclencheur zoom ne doivent pas être des items du grid */
.woocommerce div.product{position:relative}
.woocommerce div.product>span.onsale{position:absolute;top:12px;left:12px;z-index:9;width:auto;grid-column:1;align-self:start;justify-self:start}
.woocommerce div.product .woocommerce-product-gallery{grid-column:1;grid-row:1;position:relative}
.woocommerce div.product .summary{grid-column:2;grid-row:1}
@media(max-width:980px){
  .woocommerce div.product .woocommerce-product-gallery{grid-column:1;grid-row:auto}
  .woocommerce div.product .summary{grid-column:1;grid-row:auto;position:static}
}
.woocommerce-product-gallery__trigger{position:absolute;top:10px;right:10px;z-index:9}
/* Vignettes : pas de numérotation, alignées en ligne */
.woocommerce div.product .woocommerce-product-gallery ol{list-style:none;display:flex;gap:10px;padding:0;margin:12px 0 0}
.woocommerce div.product .woocommerce-product-gallery ol li{width:84px}
.woocommerce div.product .woocommerce-product-gallery ol img{border-radius:8px;border:2px solid transparent}
.woocommerce div.product .woocommerce-product-gallery ol .flex-active img{border-color:var(--orange)}

/* ===== Correctifs v1.0.5 · tunnel & catalogue ===== */
/* Pages panier, commande et catalogue : largeur utile complète */
.woocommerce-cart .wrap.narrow,
.woocommerce-checkout .wrap.narrow,
.page-id-714 .wrap.narrow{max-width:1180px}
/* Buybox : description courte limitée pour garder le CTA visible (texte complet dans l'onglet Description) */
.woocommerce div.product .summary .woocommerce-product-details__short-description{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
/* Grilles produits insérées via shortcode dans le contenu */
.entry-content ul.products{list-style:none;padding:0}
.entry-content ul.products li{margin:0}
.entry-content .woocommerce{margin-bottom:40px}
/* Checkout : deux colonnes desktop */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
@media(max-width:980px){.woocommerce-checkout form.checkout{grid-template-columns:1fr}}
.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review{grid-column:2}
.woocommerce-checkout #customer_details{grid-column:1;grid-row:1/span 2}
/* Tableau panier : boutons cohérents */
.woocommerce table.shop_table .button{background:var(--ink);color:#fff;border-radius:99px;padding:10px 20px}
.woocommerce-cart .wc-proceed-to-checkout{padding-top:16px}

/* ===== Correctifs v1.0.7 · revue UX superpositions ===== */
/* En-tête : pas de menu sur 2 lignes qui chevauche le CTA → burger plus tôt */
@media(max-width:1240px){
  .main-nav,.btn-cta-head{display:none}
  .burger{display:block}
}
.main-nav .menu{flex-wrap:nowrap}
/* Buybox sticky : marge de sécurité sous le header (header + bandeau promo) */
.woocommerce div.product .summary{position:sticky;top:140px}
@media(max-width:980px){.woocommerce div.product .summary{position:static}}
/* La barre CTA sticky mobile ne doit pas masquer le bas de page */
@media(max-width:768px){body.single-product{padding-bottom:76px}}
/* Badge promo : jamais au-dessus du header */
.woocommerce div.product>span.onsale{z-index:5}
/* Galerie : ne jamais déborder de sa colonne */
.woocommerce div.product .woocommerce-product-gallery{width:100%!important;max-width:100%}
.woocommerce div.product .woocommerce-product-gallery .flex-viewport{border-radius:20px}

/* ===== Correctifs v1.0.8 · galerie pré-init & grid blindé ===== */
/* Avant init du slider (JS retardé par LiteSpeed), les images s'empilent
   horizontalement (3000px) et font exploser le viewport mobile. */
.woocommerce-product-gallery{opacity:1!important}
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{display:flex;overflow:hidden;width:100%!important}
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image{flex:0 0 100%;min-width:100%}
/* Le grid produit ne doit jamais s'élargir au-delà du viewport (min-content) */
.woocommerce div.product{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
@media(max-width:980px){.woocommerce div.product{grid-template-columns:minmax(0,1fr)}}
.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-product-gallery{min-width:0}

/* ===== Correctifs v1.1.0 · doc d'erreurs ===== */
/* Cartes produits écrasées : le width % hérité de woocommerce-layout
   s'appliquait dans les pistes du grid */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{width:100%!important;float:none!important;margin:0!important;clear:none!important}
/* Icônes SVG héritées de Divi : taille bornée */
.entry-content svg{max-height:110px;max-width:160px;height:auto;width:auto}
/* Boutons : jamais de retour à la ligne interne */
.btn{white-space:nowrap}
.m-menu .btn{width:100%;justify-content:center}
/* Sous-menus du menu mobile */
.m-menu .menu-mobile .sub-menu{list-style:none;margin:0;padding:0 0 6px 18px}
.m-menu .menu-mobile .sub-menu a{font-weight:400;font-size:.92rem;border-bottom:none;padding:7px 0}
/* Carte webinaire maison (bvn-webi-card) : largeur saine dans nos grilles */
.bvn-webi-card{min-width:0}

/* ===== Correctifs v1.1.1 ===== */
/* Formulaires Gravity Forms : champs et bouton au design du thème */
.gform_wrapper input[type="text"],.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],.gform_wrapper input[type="number"],
.gform_wrapper select,.gform_wrapper textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;
  font-family:var(--font-b);font-size:.95rem;background:#fff}
.gform_wrapper textarea{min-height:140px}
.gform_wrapper .gfield_label{font-weight:600;font-size:.9rem}
.gform_wrapper .gform_button,.gform_wrapper input[type="submit"]{
  display:inline-flex;align-items:center;font-family:var(--font-h);font-weight:700;
  font-size:1rem;padding:14px 32px;border-radius:99px;border:none;cursor:pointer;
  background:var(--orange);color:var(--ink);transition:.2s;white-space:nowrap}
.gform_wrapper .gform_button:hover,.gform_wrapper input[type="submit"]:hover{background:var(--orange-d);color:#fff}
/* Fiche produit : tout enfant non prévu occupe la pleine largeur du grid
   (upsells, produits groupés, sections custom) → plus de superposition */
.woocommerce div.product>*{grid-column:1/-1;min-width:0}
.woocommerce div.product>.woocommerce-product-gallery{grid-column:1;grid-row:1}
.woocommerce div.product>.summary{grid-column:2;grid-row:1}
.woocommerce div.product>span.onsale{grid-column:1;grid-row:1}
@media(max-width:980px){
  .woocommerce div.product>.woocommerce-product-gallery,
  .woocommerce div.product>.summary{grid-column:1;grid-row:auto}
}

/* ===== Correctifs v1.1.2 ===== */
/* Buybox : plus de sticky, elle reste en haut de sa colonne */
.woocommerce div.product .summary{position:static;top:auto}
/* Icônes du bloc RDV maison : taille explicite (SVG sans dimensions) */
svg.rdv-trust-icon{width:48px;height:48px;max-width:48px;max-height:48px}
.rdv-trust-badge{display:flex;align-items:center;gap:12px}

/* ===== Correctifs v1.1.4 · design review ===== */
/* C1 : header compact entre 1321 et 1460px, burger sous 1320px */
@media (max-width: 1460px) {
  .nav { gap: 16px; }
  .main-nav ul { gap: 14px; font-size: .88rem; }
  .btn-cta-head { padding: 9px 16px; font-size: .85rem; }
}
@media (max-width: 1320px) {
  .main-nav, .btn-cta-head { display: none; }
  .burger { display: block; }
}
/* C2 : galerie produit : aucun débordement possible, zoom désactivé (mobile-first) */
.woocommerce-product-gallery { overflow: hidden; }
.zoomImg { display: none !important; }
/* M2 : titres du footer (ex-h4) */
.site-footer .footer-title { color: #fff; font-size: .95rem; margin: 0 0 14px; font-family: var(--font-h); font-weight: 700; }
/* C3 : sections custom du contenu (rdv-*) : jamais collées au bord */
.entry-content [class*="rdv-"] { padding-left: 16px; padding-right: 16px; box-sizing: border-box; max-width: 100%; }
/* M1 : header très petits écrans */
@media (max-width: 360px) {
  .nav { gap: 10px; }
  .wrap { padding: 0 14px; }
  .nav .logo img, .nav .custom-logo { height: 32px; }
}
/* M3 : liens footer confortables au doigt */
@media (max-width: 768px) {
  .footer-menu a { padding: 11px 0; }
}
/* m2 : bandeau promo : countdown masqué sur très petits écrans */
@media (max-width: 480px) {
  #bvn-promo-bar .bvn-countdown { display: none; }
}

/* ===== Correctifs v1.1.5 · proportions images & marges fiches ===== */
/* Les visuels produits sont carrés : on respecte leur ratio partout */
.woocommerce ul.products li.product a img{aspect-ratio:1/1;object-fit:cover}
.card .thumb.thumb-square{aspect-ratio:1/1}
.card .thumb.thumb-square img{object-fit:cover}
/* Galerie single : ratio naturel de l'image, jamais d'étirement */
.woocommerce div.product .woocommerce-product-gallery__image img{width:100%;height:auto;object-fit:contain}

/* ===== v1.1.6 : neutralise les largeurs 48% de woocommerce-layout ===== */
.woocommerce div.product div.summary,
.woocommerce div.product div.images,
.woocommerce div.product .woocommerce-product-gallery{width:100%!important;float:none!important}

/* ===== Home : contenu éditorial reconstruit (19/06/2026) ===== */
/* Largeur de lecture confortable pour le texte, cartes en pleine largeur */
.front-content > h2,
.front-content > p { max-width: 820px; }
.front-content > h2 { margin-top: 2.4rem; }
.front-content > .cards { margin: 26px 0 32px; }

/* Cartes thématiques (5, grille fluide) */
.cards.cards-topics { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cards-topics .card .body { gap: 6px; }
.cards-topics .card .body h3 { font-size: 1.15rem; margin: 0; }
.cards-topics .card .excerpt { font-size: .92rem; color: var(--ink-80); }
.cards-topics .card-cta { margin-top: auto; padding-top: 6px; color: var(--orange-d); font-family: var(--font-h); font-weight: 700; font-size: .92rem; }
.cards-topics .card:hover .card-cta { color: var(--orange); }

/* ===================================================================
   Pages webinaires (CPT project) — design centralisé dans le thème.
   Repris du <style> inline Divi (rendu de référence), corrigé
   (numérotation, imbrication <ol>) + form bleu clair. Scopé .single-project.
   Les <style> inline des 38 webis sont retirés au profit de ce bloc unique.
   =================================================================== */

.single-project .webinaire-container * { box-sizing: border-box; }
.single-project .webinaire-container { font-family: var(--font-b); color: var(--ink-80); line-height: 1.8; max-width: 980px; margin: 0 auto; }
.single-project .webinaire-container img { max-width: 100%; height: auto; }

/* Hero */
.single-project .webinaire-hero { background: var(--cream); padding: clamp(36px, 6vw, 60px) 20px; text-align: center; border-radius: 14px; margin-bottom: 40px; }
.single-project .webinaire-hero h1 { font-family: var(--font-h); font-size: clamp(1.8rem, 4vw, 2.5rem); line-height: 1.25; color: var(--ink); margin: 0 0 22px; font-weight: 900; }
.single-project .webinaire-hero .subtitle { font-size: 1.18rem; color: var(--ink-80); max-width: 750px; margin: 0 auto; line-height: 1.7; }

/* Encadré infos pratiques */
.single-project .webinar-info-box { display: flex; align-items: center; gap: 25px; background: #fff; padding: 24px 35px; border-radius: 14px; box-shadow: var(--shadow); margin: 0 auto 30px; flex-wrap: wrap; justify-content: center; max-width: 800px; }
.single-project .webinar-info-item { text-align: center; min-width: 150px; }
.single-project .webinar-info-item strong { color: var(--cyan); font-family: var(--font-h); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; display: block; margin-bottom: 8px; }
.single-project .webinar-info-item span { color: var(--ink); font-size: 1.1rem; font-weight: 600; }

/* Boutons */
.single-project .cta-button { display: inline-block; background: var(--orange); color: var(--ink) !important; padding: 16px 44px; font-family: var(--font-h); font-size: 1.12rem; font-weight: 700; text-decoration: none !important; border-radius: 50px; transition: .2s; border: none; cursor: pointer; box-shadow: 0 4px 15px rgba(245,155,29,.3); margin-top: 10px; }
.single-project .cta-button:hover { background: var(--orange-d); transform: translateY(-2px); }

/* Sections */
.single-project .section-content { max-width: 900px; margin: 0 auto 50px; padding: 0 20px; counter-reset: bvnstep; }
.single-project .section-content h2 { font-family: var(--font-h); font-size: clamp(1.5rem, 3vw, 2rem); color: var(--ink); margin: 0 0 22px; font-weight: 900; line-height: 1.3; text-align: center; }
.single-project .intro-text { font-size: 1.08rem; line-height: 1.9; color: var(--ink-80); margin-bottom: 22px; }
.single-project .section-gray { background: var(--cream); padding: clamp(32px, 5vw, 60px) clamp(20px, 4vw, 40px); border-radius: 18px; margin: 50px 0; }
.single-project .section-gray h2 { font-family: var(--font-h); font-size: clamp(1.5rem, 3vw, 2rem); color: var(--ink); font-weight: 900; text-align: center; margin: 0 0 10px; }

/* Grille de bénéfices */
.single-project .benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; margin: 36px 0 0; }
.single-project .benefits-grid > *:not(.benefit-card) { display: none; }
.single-project .benefit-card { background: #fff; padding: 30px; border-radius: 14px; box-shadow: var(--shadow); transition: transform .2s ease; }
.single-project .benefit-card:hover { transform: translateY(-5px); }
.single-project .benefit-card h3 { color: var(--cyan); font-family: var(--font-h); margin: 0 0 14px; font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.single-project .benefit-card p { color: var(--ink-80); line-height: 1.7; margin: 0; }

/* Timeline : numérotation globale + <li> wrappers d'imbrication neutralisés */
.single-project .steps-list { list-style: none; margin: 40px 0 0; padding: 0; }
.single-project .steps-list li { list-style: none; }
.single-project .steps-list li:has(ol) { display: contents; }
.single-project .steps-list li:not(:has(ol)) { position: relative; padding: 28px 30px 28px 100px; margin-bottom: 26px; background: #fff; border-radius: 14px; box-shadow: var(--shadow); counter-increment: bvnstep; color: var(--ink-80); line-height: 1.8; }
.single-project .steps-list li:not(:has(ol))::before { content: counter(bvnstep); position: absolute; left: 28px; top: 26px; width: 55px; height: 55px; background: var(--orange); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-h); font-weight: 900; font-size: 1.55rem; }
.single-project .steps-list li:not(:has(ol)) > strong:first-of-type { display: block; color: var(--ink); font-family: var(--font-h); font-size: 1.2rem; font-weight: 900; margin-bottom: 10px; line-height: 1.4; }

/* Profil de l'expert */
.single-project .expert-profile { background: #fff; border: 3px solid var(--cyan); border-radius: 16px; padding: clamp(24px, 4vw, 40px); margin: 40px auto; max-width: 900px; }
.single-project .expert-header { display: flex; align-items: center; gap: 30px; margin-bottom: 28px; flex-wrap: wrap; }
.single-project .expert-photo { width: 120px; height: 120px; border-radius: 50%; border: 4px solid var(--cyan); flex-shrink: 0; overflow: hidden; }
.single-project .expert-photo img { width: 100%; height: 100%; object-fit: cover; }
.single-project .expert-info h3 { font-family: var(--font-h); font-size: 1.8rem; color: var(--ink); margin: 0 0 8px; font-weight: 900; }
.single-project .expert-title { font-size: 1.1rem; color: var(--orange-d); font-weight: 600; }
.single-project .expert-bio { font-size: 1.05rem; line-height: 1.9; margin-bottom: 24px; }
.single-project .expert-bio p { margin-bottom: 14px; }
.single-project .expert-specialties { background: var(--cream); padding: 22px; border-radius: 12px; margin-bottom: 24px; }
.single-project .expert-specialties h4 { color: var(--ink); font-family: var(--font-h); margin: 0 0 14px; font-size: 1.2rem; font-weight: 700; }
.single-project .expert-specialties ul { list-style: none; padding: 0; margin: 0; }
.single-project .expert-specialties li { padding: 8px 0; color: var(--ink-80); }
.single-project .expert-specialties li:empty { display: none; }
.single-project .expert-specialties li::before { content: "✓"; color: var(--cyan); font-weight: 900; margin-right: 10px; }
.single-project .expert-quote { background: var(--cyan); color: #fff; padding: 25px 30px 25px 62px; border-radius: 12px; font-size: 1.15rem; font-style: italic; margin-bottom: 24px; position: relative; line-height: 1.6; }
.single-project .expert-quote::before { content: "\201C"; font-size: 4rem; position: absolute; top: 6px; left: 16px; opacity: .35; font-family: Georgia, serif; }
.single-project .expert-credentials { display: flex; flex-wrap: wrap; gap: 16px 24px; font-size: .95rem; }
.single-project .credential-item { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 600; }
.single-project .credential-icon { font-size: 1.2rem; }

/* Ressources liées */
.single-project .resources-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; margin: 40px auto; padding: 0 20px; max-width: 960px; }
.single-project .resources-grid > *:not(.resource-card) { display: none; }
.single-project .resource-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); transition: transform .2s ease; }
.single-project .resource-card:hover { transform: translateY(-5px); }
.single-project .resource-image { height: 120px; background: var(--cyan-l); display: flex; align-items: center; justify-content: center; font-size: 2.5rem; }
.single-project .resource-content { padding: 24px; }
.single-project .resource-content h3 { margin: 0 0 14px; font-family: var(--font-h); font-size: 1.15rem; color: var(--ink); font-weight: 700; line-height: 1.4; }
.single-project .resource-content p { line-height: 1.6; margin-bottom: 14px; color: var(--ink-80); }
.single-project .resource-link { color: var(--orange-d); text-decoration: none; font-family: var(--font-h); font-weight: 700; }
.single-project .resource-link:hover { color: var(--orange); }
/* Fallback : HTML Divi éclaté (grille/cartes vides, image+contenu en frères) → on présente en cartes empilées centrées au lieu d'une bande pleine largeur. */
.single-project .resources-grid:empty, .single-project .resource-card:empty { display: none; }
.single-project .entry-content > .resource-image { max-width: 760px; height: 110px; margin: 24px auto 0; border-radius: 14px 14px 0 0; }
.single-project .entry-content > .resource-content { max-width: 760px; margin: 0 auto 18px; border: 1px solid var(--line); border-top: none; border-radius: 0 0 14px 14px; box-shadow: var(--shadow); }

/* Formulaire d'inscription : fond bleu clair */
.single-project .expert-specialties li:empty { display: none; }
.single-project .gform_wrapper { background: var(--cyan-l); border: 1px solid #bfe7ee; border-radius: 20px; padding: clamp(26px, 4vw, 44px); box-shadow: var(--shadow); max-width: 760px; margin: 8px auto 0; }
.single-project .gform_wrapper .gfield_label, .single-project .gform_wrapper legend, .single-project .gform_wrapper .gform_description, .single-project .gform_wrapper .gf_progressbar_title, .single-project .gform_wrapper .gsection_title { color: var(--ink) !important; }
.single-project .gform_wrapper .gform_required_legend, .single-project .gform_wrapper .gfield_description { color: var(--ink-80) !important; }
.single-project .gform_wrapper input:not([type=submit]):not([type=radio]):not([type=checkbox]), .single-project .gform_wrapper select, .single-project .gform_wrapper textarea { background: #fff; border: 1px solid #cfe7ec; border-radius: 10px; padding: 12px 14px; font-family: var(--font-b); color: var(--ink); }
.single-project .gform_wrapper input:focus, .single-project .gform_wrapper select:focus, .single-project .gform_wrapper textarea:focus { outline: 2px solid var(--cyan); }
.single-project .gform_wrapper .gform_button, .single-project .gform_wrapper .gform_next_button, .single-project .gform_wrapper .gform_previous_button { background: var(--orange); color: var(--ink); font-family: var(--font-h); font-weight: 700; font-size: 1.05rem; border: none; border-radius: 99px; padding: 14px 34px; cursor: pointer; transition: .2s; }
.single-project .gform_wrapper .gform_button:hover { background: var(--orange-d); transform: translateY(-2px); }

@media (max-width: 768px) {
	.single-project .webinar-info-box { flex-direction: column; gap: 18px; }
	.single-project .steps-list li:not(:has(ol)) { padding: 24px 20px 24px 76px; }
	.single-project .steps-list li:not(:has(ol))::before { width: 45px; height: 45px; left: 16px; font-size: 1.2rem; }
	.single-project .expert-header { flex-direction: column; text-align: center; }
}

/* ===== CSS éditorial global : toutes les pages (.entry-content) ===== */
.entry-content { font-size: 1.05rem; line-height: 1.75; color: var(--ink-80); }
.entry-content > p, .entry-content > ul, .entry-content > ol, .entry-content > h2, .entry-content > h3, .entry-content > blockquote { max-width: 760px; }
.entry-content h2 { font-family: var(--font-h); font-size: clamp(1.5rem, 2.6vw, 1.9rem); color: var(--ink); margin: 2.2em 0 .6em; line-height: 1.2; }
.entry-content h3 { font-family: var(--font-h); font-size: 1.25rem; color: var(--ink); margin: 1.8em 0 .5em; }
.entry-content p { margin: 0 0 1.1em; }
.entry-content a:not(.btn):not(.cta-button):not(.resource-link) { color: var(--orange-d); text-decoration: underline; text-underline-offset: 2px; }
.entry-content a:not(.btn):not(.cta-button):not(.resource-link):hover { color: var(--orange); }
.entry-content ul, .entry-content ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.entry-content li { margin-bottom: .5em; }
.entry-content blockquote { border-left: 4px solid var(--cyan); background: var(--cyan-l); margin: 1.6em 0; padding: 16px 22px; border-radius: 0 12px 12px 0; font-style: italic; color: var(--ink); }
.entry-content img { border-radius: 12px; height: auto; }
.entry-content figure { margin: 1.6em 0; }
.entry-content hr { border: none; border-top: 1px solid var(--line); margin: 2.4em 0; }

/* ===== FAQ des articles (bloc Yoast schema-faq) — 262 articles ===== */
.entry-content .schema-faq { margin: 2.2em 0; max-width: 760px; }
.entry-content .schema-faq-section { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 18px 22px; margin-bottom: 14px; box-shadow: var(--shadow); }
.entry-content .schema-faq-question { display: block; font-family: var(--font-h); font-weight: 700; color: var(--ink); font-size: 1.1rem; line-height: 1.4; margin-bottom: 8px; }
.entry-content .schema-faq-question strong { font-weight: 700; }
.entry-content .schema-faq-answer { color: var(--ink-80); line-height: 1.7; margin: 0; }
.entry-content .schema-faq-answer + .schema-faq-answer { margin-top: .8em; }

/* ===== Composants pipeline blog BVN (fallback variables + tables) ===== */
:root { --bluel: var(--cyan-l); --blue: var(--cyan); }
.entry-content .table-container, .entry-content .table-scroll-init { overflow-x: auto; margin: 1.6em 0; }
.entry-content .table-container table { min-width: 520px; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content table th, .entry-content table td { border: 1px solid var(--line); padding: 10px 14px; text-align: left; }
.entry-content table th { background: var(--cyan-l); font-family: var(--font-h); color: var(--ink); }
.entry-content table tr:nth-child(even) td { background: #fafafa; }

/* ===== Classes produits (boutons/faq) ===== */
.woocommerce .btn-formation, .woocommerce .redirection-btn { display: inline-block; background: var(--orange); color: var(--ink); font-family: var(--font-h); font-weight: 700; padding: 12px 28px; border-radius: 99px; text-decoration: none; transition: .2s; }
.woocommerce .btn-formation:hover, .woocommerce .redirection-btn:hover { background: var(--orange-d); }
.woocommerce .faq-item { border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; margin-bottom: 12px; background: #fff; }

/* ===== Fil d'Ariane (breadcrumb) — style soigné ===== */
.breadcrumb { font-size: .85rem; color: var(--ink-80); margin: 0 0 20px; line-height: 1.7; }
.breadcrumb a { color: var(--ink-80); text-decoration: none; }
.breadcrumb a:hover { color: var(--orange-d); text-decoration: underline; }
.breadcrumb .bc-sep { color: #c9c2b4; margin: 0 6px; }
.breadcrumb .breadcrumb_last strong, .breadcrumb .breadcrumb_last { color: var(--ink); font-weight: 600; }

/* ===== Bloc avis Google natif (section .proof fond bleu) ===== */
.bvn-avis { max-width: 1040px; margin: 24px auto 0; }
.bvn-avis-head { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 26px; flex-wrap: wrap; }
.bvn-avis-stars { color: var(--orange); letter-spacing: 2px; }
.bvn-avis-rate { color: #fff; font-size: 1.1rem; }
.bvn-avis-rate strong { font-family: var(--font-h); font-size: 1.5rem; }
.bvn-avis-label { color: var(--cyan-l); font-size: .9rem; }
.bvn-avis-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.bvn-avis-card { background: #fff; border-radius: 14px; padding: 22px; margin: 0; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 10px; }
.bvn-avis-card .bvn-avis-stars { font-size: .95rem; }
.bvn-avis-card blockquote { margin: 0; color: var(--ink-80); line-height: 1.6; font-size: .95rem; flex: 1; }
.bvn-avis-card figcaption { font-family: var(--font-h); font-weight: 700; color: var(--ink); font-size: .95rem; }
.bvn-avis-more { text-align: center; margin-top: 24px; }
.bvn-avis-more a { color: #fff; font-family: var(--font-h); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.bvn-avis-more a:hover { color: var(--cyan-l); }

/* ===========================================================================
   Lot 19/06 — Catalogue (alignement cartes) + menu deroulant (clic tactile)
   =========================================================================== */

/* Catalogue WooCommerce : fin de l'espace vide variable entre prix et bouton.
   Le titre occupe une hauteur fixe de 2 lignes, le prix est colle en bas du
   bloc-lien (juste au-dessus du bouton) -> tous les boutons s'alignent quelle
   que soit la longueur du titre. */
.woocommerce ul.products li.product .woocommerce-loop-product__link{display:flex;flex-direction:column;flex:1}
.woocommerce ul.products li.product .woocommerce-loop-product__title{min-height:2.8em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.woocommerce ul.products li.product .price{margin-top:auto}

/* Menu principal : ouverture du sous-menu au clic sur appareils tactiles
   (sans survol). Sur desktop souris, le survol reste gere par
   .main-nav li:hover > .sub-menu et le clavier par :focus-within. */
.main-nav .menu-item-has-children.bvn-open > .sub-menu{display:block}

/* Catalogue : le clearfix WooCommerce (ul.products::before / ::after, display:table)
   devient un ITEM FANTOME dans la grille CSS et occupe la 1re case -> cellule vide
   a gauche qui decale toutes les cartes. On le neutralise pour la grille. */
.woocommerce ul.products::before,
.woocommerce ul.products::after{content:none;display:none}
