/* ============================================================
   BENASTRA — Design System Pierre & Lumière
   Phase G-4 P3 · Mobile + Perf · 2026-09-09 · v3.3.5
   ============================================================ */

/* ============================================================
   TOKENS — Palette & Typographie
   ============================================================ */

:root {
	/* Couleurs */
	--c-pierre:        #2D2A26;
	--c-linge:         #F0EDE5;
	--c-craie:         #FAFAF5;
	--c-or:            #C4922A;
	--c-or-fonce:      #A37820;
	--c-argile:        #8B3A2A;
	--c-schiste:       #4A4540;
	--c-pierre-clair:  #8A857F;
	--c-bordure:       #D8D4CC;
	--c-bio:           #2A6B4A;

	/* Rôles sémantiques */
	--bg:              var(--c-craie);
	--bg-sombre:       var(--c-pierre);
	--bg-milieu:       var(--c-linge);
	--tx-primaire:     var(--c-pierre);
	--tx-secondaire:   var(--c-schiste);
	--tx-discret:      var(--c-pierre-clair);
	--tx-inverse:      var(--c-linge);
	--accent:          var(--c-or);
	--accent-hover:    var(--c-or-fonce);
	--bord:            var(--c-bordure);

	/* Polices */
	--font-display:    'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--font-body:       'DM Sans', system-ui, -apple-system, sans-serif;
	--font-mono:       'DM Mono', 'Courier New', monospace;

	/* Layout */
	--container:       1200px;
	--container-etroit: 800px;

	/* Transitions */
	--trans:           0.25s ease;
	--trans-lent:      0.5s ease;

	/* Espacements sections */
	--section-v:       96px;
	--section-h:       48px;

	/* Rayon */
	--radius-sm:       3px;
	--radius:          6px;
}

@media (max-width: 1024px) {
	:root {
		--section-v: 72px;
		--section-h: 32px;
	}
}

@media (max-width: 767px) {
	:root {
		--section-v: 56px;
		--section-h: 20px;
	}
}

/* ============================================================
   BASE
   ============================================================ */

body,
body.custom-background,
body.home,
body.elementor-page {
	font-family:              var(--font-body);
	font-size:                16px;
	line-height:              1.65;
	color:                    var(--tx-primaire);
	background-color:         var(--bg) !important;
	-webkit-font-smoothing:   antialiased;
	-moz-osx-font-smoothing:  grayscale;
}

/* ─── Home page — masque le titre de page Astra ("Domaine Benastra") ───────── */
body.home .entry-title,
body.home .page-title {
    display: none !important;
}

/* ─── Home page — header transparent overlay le hero plein écran ────────────
   Le header devient absolu sur la homepage uniquement, pour que la photo
   commence au pixel 0 de la fenêtre.                                        */
body.home #masthead,
body.home .site-header {
    position: absolute !important;
    top:      0 !important;
    left:     0 !important;
    right:    0 !important;
    width:    100% !important;
    background:       transparent !important;
    background-color: transparent !important;
    border-bottom:    none !important;
    box-shadow:       none !important;
    z-index:          200 !important;
}
/* Logo et liens menu en linge (blanc cassé) sur fond sombre */
body.home #masthead .ast-site-identity a,
body.home #masthead .site-title a,
body.home #masthead .main-header-menu > .menu-item > a,
body.home #masthead .ast-masthead-custom-menu-items a {
    color: var(--c-linge, #F0EDE5) !important;
}
/* Retrait du padding-top que WordPress/Astra ajoute pour compenser le header */
body.home #content,
body.home .ast-container {
    padding-top: 0 !important;
    margin-top:  0 !important;
}

/* ─── Home page — libère le padding Astra de site-main ──────────────────── */
/*
 * Astra injecte `.site-main { padding-left:20px; padding-right:20px }` via CSS dynamique.
 * Sur la home, chaque section (.bnv-hero, .bnv-vins, etc.) gère son propre padding.
 * Supprimer ce padding évite le rétrécissement des blocs pleine-largeur.
 */
body.home main#main.site-main {
    padding-left:  0 !important;
    padding-right: 0 !important;
}

body.home .bnv-home {
    width:     100%;
    max-width: 100%;
    display:   block;
}

/* Chiffres — éviter que les items wrappent trop tôt (gap réduit sur tablette) */
@media (max-width: 720px) {
    .bnv-chiffres {
        gap: 40px !important;
    }
}
@media (max-width: 480px) {
    .bnv-chiffres {
        gap: 24px !important;
        padding: 48px 16px !important;
    }
}

/* ─── Mobile — prévention scroll horizontal global ──────────────────────── */
body { overflow-x: hidden; }

/* ─── Mobile — hero homepage ─────────────────────────────────────────────── */
@media (max-width: 767px) {
    .bnv-hero            { min-height: 70vh !important; }
    .bnv-hero-inner      { padding: 52px 20px 44px !important; }
}
@media (max-width: 480px) {
    .bnv-hero            { min-height: 55vh !important; }
    .bnv-hero-inner      { padding: 40px 16px 36px !important; }
}

/* ─── Grid vins — photos de bouteilles pleine vue ───────────────────────── */
/*
 * object-fit:contain montre la bouteille entière sur fond crème.
 * La hauteur passe à 300px pour laisser de la respiration.
 * L'inline <style> du post_content définit cover/260px — !important l'écrase.
 */
.bnv-card img {
    object-fit:   cover  !important;
    height:       300px  !important;
    width:        100%   !important;
    padding:      0      !important;
    background-color: transparent !important;
    border-radius: 4px 4px 0 0 !important;
}
@media (max-width: 560px) {
    .bnv-card img {
        height: 340px !important;
        object-fit: contain !important;
        background-color: var(--c-linge, #F0EDE5) !important;
    }
}

/* ─── Fond global — toutes les couches de conteneur Astra ───────────────── */
/*
 * Astra injecte un fond #111110 via --ast-global-color-4 (outside-bg) sur body
 * en tablet/mobile, et via content-bg sur .ast-plain-container (= body).
 * Le filtre PHP astra_global_current_palette remplace la valeur à la source,
 * mais ces règles CSS servent de filet de sécurité sur toutes les résolutions.
 */

/* 1. Body reçoit le fond craie sur TOUS les breakpoints */
body,
body.home,
body.page,
body.custom-background,
body.ast-plain-container,
body.ast-page-builder-template {
	background-color: var(--c-craie, #FAFAF5) !important;
}

/* 2. Tous les wrappers Astra sont transparents (fond body visible en dessous) */
#page.site,
.site,
#content.site-content,
.site-content,
.ast-container,
#primary.content-area,
.ast-plain-container-inner,
main#main.site-main,
.entry-content {
	background-color: transparent !important;
}

/* 3. Filet supplémentaire tablet/mobile — Astra applique outside-bg à body via @media */
@media (max-width: 1024px) {
	body,
	body.home,
	body.ast-plain-container {
		background-color: var(--c-craie, #FAFAF5) !important;
	}
}
@media (max-width: 768px) {
	body,
	body.home,
	body.ast-plain-container {
		background-color: var(--c-craie, #FAFAF5) !important;
	}
}

/* ─── Hero homepage : photo plein écran ──────────────────────────────────── */

.bnv-hero {
	background-color:    var(--c-pierre, #2D2A26) !important;
	background-size:     cover !important;
	background-position: center center;
	background-attachment: fixed !important;
	background-repeat:   no-repeat !important;
	border-bottom:       none !important;
	animation:           bn-hero-pan 22s ease-in-out infinite alternate;
}

@keyframes bn-hero-pan {
	from { background-position: 48% 48%; }
	to   { background-position: 52% 52%; }
}

/* Overlay sombre pour lisibilité du texte */
.bnv-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(18, 15, 12, 0.44);
	z-index: 0;
}

.bnv-hero h1 {
	color: var(--c-linge, #F0EDE5) !important;
	text-shadow: 0 2px 24px rgba(0,0,0,.35) !important;
}

.bnv-hero h1 em {
	color: var(--c-or, #C4922A) !important;
}

.bnv-hero-sub {
	color: rgba(240, 237, 229, 0.82) !important;
	text-shadow: 0 1px 10px rgba(0,0,0,.3) !important;
}

.bnv-hero-eyebrow {
	color: #ffffff !important;
}

/* Bouton transparent + bordure sur fond photo */
.bnv-hero-cta {
	background-color: transparent !important;
	color:            var(--c-linge, #F0EDE5) !important;
	border:           1px solid rgba(240, 237, 229, 0.55) !important;
}

.bnv-hero-cta:hover {
	background-color: var(--c-or, #C4922A) !important;
	color:            var(--c-pierre, #2D2A26) !important;
	border-color:     var(--c-or, #C4922A) !important;
}

/* Mobile : background-attachment: fixed ne fonctionne pas sur iOS */
@media (max-width: 767px) {
	.bnv-hero { background-attachment: scroll !important; }
}

/* Hero — typographie */
.bnv-hero-eyebrow { font-size: 13px !important; letter-spacing: .18em !important; }
.bnv-hero h1      { font-size: clamp(2.8rem, 7.5vw, 5rem) !important; }
.bnv-hero-sub     { font-size: 1.3rem !important; }

/* ────────────────────────────────────────────────────────────────────────── */

*, *::before, *::after {
	box-sizing: border-box;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* ============================================================
   TYPOGRAPHIE
   ============================================================ */

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family:   var(--font-display);
	font-weight:   400;
	color:         var(--tx-primaire);
	line-height:   1.2;
	text-wrap:     balance;
}

h1, .h1 { font-size: clamp(2rem,    5vw, 3.5rem);  }
h2, .h2 { font-size: clamp(1.5rem,  3vw, 2.25rem); }
h3, .h3 { font-size: clamp(1.2rem, 2.5vw, 1.6rem); }
h4, .h4 { font-size: 1.1rem; font-family: var(--font-body); font-weight: 600; }

p {
	color: var(--tx-secondaire);
	max-width: 72ch;
}

.label-mono {
	font-family:    var(--font-mono);
	font-size:      0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color:          var(--tx-discret);
}

/* ============================================================
   LIENS
   ============================================================ */

a {
	color:      var(--tx-primaire);
	text-decoration: none;
	transition: color var(--trans);
}

a:hover {
	color: var(--accent);
}

/* ============================================================
   BOUTONS — Pierre & Lumière
   ============================================================ */

/* Bouton principal — Or sur Pierre */
.btn-primaire,
.elementor-button.btn-primaire,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input[type="submit"],
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button {
	display:          inline-flex;
	align-items:      center;
	gap:              8px;
	font-family:      var(--font-body);
	font-weight:      500;
	font-size:        0.8rem;
	letter-spacing:   0.1em;
	text-transform:   uppercase;
	padding:          14px 32px;
	background-color: var(--accent);
	color:            var(--c-pierre);
	border:           2px solid transparent;
	border-radius:    var(--radius-sm);
	cursor:           pointer;
	transition:       background-color var(--trans), color var(--trans), border-color var(--trans);
	text-decoration:  none;
}

.btn-primaire:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover {
	background-color: var(--accent-hover);
	color:            var(--c-pierre);
}

/* Bouton secondaire — contour Or */
.btn-secondaire,
.elementor-button.btn-secondaire,
.woocommerce a.button,
.woocommerce button.button {
	display:          inline-flex;
	align-items:      center;
	gap:              8px;
	font-family:      var(--font-body);
	font-weight:      500;
	font-size:        0.8rem;
	letter-spacing:   0.1em;
	text-transform:   uppercase;
	padding:          12px 30px;
	background-color: transparent;
	color:            var(--tx-primaire);
	border:           1px solid var(--bord);
	border-radius:    var(--radius-sm);
	cursor:           pointer;
	transition:       border-color var(--trans), color var(--trans);
	text-decoration:  none;
}

.btn-secondaire:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	border-color: var(--accent);
	color:        var(--accent);
}

/* Bouton inverse (sur fond sombre) */
.btn-inverse {
	background-color: transparent;
	color:            var(--c-linge);
	border:           1px solid rgba(240, 237, 229, 0.4);
}

.btn-inverse:hover {
	border-color: var(--c-or);
	color:        var(--c-or);
}

/* ============================================================
   FORMULAIRES
   ============================================================ */

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
	font-family:      var(--font-body);
	font-size:        0.95rem;
	color:            var(--tx-primaire);
	background-color: #fff;
	border:           1px solid var(--bord);
	border-radius:    var(--radius-sm);
	padding:          10px 14px;
	transition:       border-color var(--trans);
	width:            100%;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
	outline:      none;
	border-color: var(--accent);
}

/* ============================================================
   CONTENEURS
   ============================================================ */

.benastra-container {
	max-width: var(--container);
	margin:    0 auto;
	padding:   0 var(--section-h);
}

.benastra-container--etroit {
	max-width: var(--container-etroit);
	margin:    0 auto;
	padding:   0 var(--section-h);
}

/* ============================================================
   SECTIONS — Fonds Pierre & Lumière
   ============================================================ */

/* Section fond sombre (Hero, Terroir, Réassurance, Footer) */
.section-pierre {
	background-color: var(--c-pierre);
	color:            var(--c-linge);
}

.section-pierre h1,
.section-pierre h2,
.section-pierre h3,
.section-pierre h4,
.section-pierre .elementor-heading-title {
	color: var(--c-linge);
}

.section-pierre p {
	color: rgba(240, 237, 229, 0.75);
}

/* Section fond linge (accroche, Joseph, engagement) */
.section-linge {
	background-color: var(--c-linge);
}

/* Section fond craie (vins, FAQ) */
.section-craie {
	background-color: var(--c-craie);
}

/* Accent de section — filet Or en haut */
.section-accent-or::before {
	content:    '';
	display:    block;
	height:     2px;
	background: var(--c-or);
	margin-bottom: var(--section-v);
}

/* ============================================================
   BADGE APPELLATION
   ============================================================ */

.badge-appellation {
	display:          inline-block;
	font-family:      var(--font-mono);
	font-size:        0.65rem;
	letter-spacing:   0.14em;
	text-transform:   uppercase;
	padding:          4px 10px;
	border:           1px solid var(--bord);
	border-radius:    var(--radius-sm);
	color:            var(--tx-discret);
	margin-bottom:    12px;
}

/* ============================================================
   BADGE BIO ECOCERT
   ============================================================ */

.badge-bio {
	display:          inline-flex;
	align-items:      center;
	gap:              6px;
	font-family:      var(--font-mono);
	font-size:        0.65rem;
	letter-spacing:   0.1em;
	text-transform:   uppercase;
	color:            var(--c-bio);
	border:           1px solid rgba(42, 107, 74, 0.3);
	padding:          4px 10px;
	border-radius:    var(--radius-sm);
}

/* ============================================================
   WOOCOMMERCE — Intégration Pierre & Lumière
   ============================================================ */

/* Prix */
.woocommerce .price,
.woocommerce-Price-amount,
.woocommerce-Price-amount.amount {
	font-family: var(--font-display);
	font-size:   1.5rem;
	font-weight: 400;
	color:       var(--tx-primaire);
}

.woocommerce .price del,
.woocommerce-Price-amount del {
	color:       var(--tx-discret);
	font-size:   1rem;
}

/* Thumbnails dans le drawer — taille cohérente (portrait / paysage) */
.astra-cart-drawer .product_list_widget li img,
.astra-cart-drawer .woocommerce-mini-cart__item img,
.astra-cart-drawer .mini_cart_item img {
	width:       64px  !important;
	height:      64px  !important;
	object-fit:  contain !important;
	flex-shrink: 0     !important;
}

/* Prix dans le mini-panier — cohérence avec le reste du drawer */
.astra-cart-drawer .woocommerce-Price-amount,
.astra-cart-drawer .woocommerce-Price-amount.amount {
	font-family: var(--font-body) !important;
	font-size:   1rem !important;
	font-weight: 600 !important;
}

/* Titre produit */
.woocommerce .product_title {
	font-family: var(--font-display);
	font-weight: 300;
	color:       var(--tx-primaire);
}

/* Archive boutique — grille de base (P1.4 surcharge les détails) */
.woocommerce ul.products {
	display:               grid;
	grid-template-columns: repeat(3, 1fr);
	gap:                   24px;
	list-style:            none;
	padding:               0;
	margin:                0;
}

/* Reset styles génériques sur les cartes .bn-card — voir section P1.4 */
.woocommerce ul.products li.product.bn-card {
	background:    transparent;
	border:        none;
	border-radius: 0;
	overflow:      visible;
}

/* Fiche produit individuelle */
.woocommerce div.product .woocommerce-product-gallery {
	position: relative;
}

.woocommerce div.product .product_title {
	font-size:   clamp(1.8rem, 4vw, 2.5rem);
	font-weight: 300;
	line-height: 1.1;
	margin-bottom: 8px;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size:   1rem;
	color:       var(--tx-secondaire);
	line-height: 1.7;
	margin:      16px 0 24px;
}

/* Tab caractéristiques */
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	font-family: var(--font-body);
	font-weight: 500;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--tx-primaire);
	border-bottom-color: var(--accent);
}

/* Message stock */
.woocommerce .stock.in-stock {
	font-family: var(--font-mono);
	font-size:   0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color:       var(--c-bio);
}

/* Table attributs */
.woocommerce-product-attributes th {
	font-family:  var(--font-body);
	font-weight:  600;
	font-size:    0.85rem;
	color:        var(--tx-primaire);
	padding:      10px 16px;
	background:   var(--c-craie);
	border-bottom: 1px solid var(--bord);
}

.woocommerce-product-attributes td {
	font-size:   0.9rem;
	color:       var(--tx-secondaire);
	padding:     10px 16px;
	border-bottom: 1px solid var(--bord);
}

/* Messages WooCommerce */
.woocommerce-message,
.woocommerce-info {
	border-top-color: var(--accent);
}

.woocommerce-error {
	border-top-color: var(--c-argile);
}

/* ============================================================
   BREADCRUMB
   ============================================================ */

.ast-breadcrumbs-wrapper,
.woocommerce-breadcrumb {
	font-family:  var(--font-mono);
	font-size:    0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color:        var(--tx-discret);
	margin-bottom: 24px;
}

.ast-breadcrumbs-wrapper a,
.woocommerce-breadcrumb a {
	color: var(--tx-discret);
}

.ast-breadcrumbs-wrapper a:hover,
.woocommerce-breadcrumb a:hover {
	color: var(--accent);
}

/* ============================================================
   NOTICES RÉASSURANCE
   ============================================================ */

.benastra-reassurance {
	display:        flex;
	gap:            32px;
	flex-wrap:      wrap;
	align-items:    center;
	padding:        24px 0;
	border-top:     1px solid var(--bord);
	margin-top:     32px;
}

.benastra-reassurance-item {
	display:     flex;
	align-items: center;
	gap:         10px;
	font-size:   0.8rem;
	color:       var(--tx-discret);
}

.benastra-reassurance-item svg {
	flex-shrink: 0;
	color:       var(--accent);
}

/* ============================================================
   SÉPARATEURS
   ============================================================ */

hr,
.elementor-divider-separator {
	border-color: var(--bord);
}

/* ============================================================
   NAVIGATION — Astra overrides Pierre & Lumière
   ============================================================ */

/* Header hauteur — padding vertical sur la barre principale */
.ast-primary-header-bar {
	min-height: 88px !important;
}

/* Header fond Pierre — !important nécessaire contre les inline styles Astra */
#masthead,
.site-header,
.main-header-bar,
.ast-header-break-point .main-header-bar,
.ast-desktop-header,
.astra-header {
	background-color: var(--c-pierre) !important;
}

/* Supprimer tout fond transparent éventuel */
.ast-transparent-header #masthead,
.ast-transparent-header .main-header-bar {
	background-color: var(--c-pierre) !important;
}

/* Nom du site "Benastra" — Cormorant italic, fond pierre */
.ast-logo-title,
.ast-site-title,
.ast-site-title a {
	font-family:     var(--font-display);
	font-style:      italic;
	font-weight:     300;
	letter-spacing:  0.06em;
	color:           var(--c-linge) !important;
	font-size:       1.5rem;
	text-decoration: none !important;
	line-height:     1;
}

.ast-site-title a:hover {
	color: var(--c-or) !important;
	text-decoration: none !important;
}

/* Liens de navigation */
.ast-nav-menu > li > a,
#ast-hf-menu-1 .menu-item a {
	font-family:    var(--font-body);
	font-size:      0.75rem;
	font-weight:    400;
	letter-spacing: 0.06em;
	color:          rgba(240, 237, 229, 0.75) !important;
	transition:     color var(--trans);
}

.ast-nav-menu > li > a:hover,
.ast-nav-menu > li.current-menu-item > a {
	color: var(--c-or) !important;
}

/* Nav desktop — padding réduit pour tenir sur une seule ligne */
#ast-desktop-header .main-header-menu > .menu-item > a {
	padding-left:  10px !important;
	padding-right: 10px !important;
}

/* CTA Boutique dans le menu */
.menu-item-boutique > a,
.ast-nav-menu .menu-item-boutique > a {
	background-color: var(--c-or);
	color:            var(--c-pierre) !important;
	padding:          8px 20px !important;
	border-radius:    var(--radius-sm);
	font-weight:      500;
}

.menu-item-boutique > a:hover {
	background-color: var(--c-or-fonce) !important;
	color:            var(--c-pierre) !important;
}

/* Menu mobile — bouton burger */
.ast-mobile-menu-buttons .menu-toggle,
.ast-menu-toggle {
	color: var(--c-linge, #F0EDE5) !important;
}

/* Homepage — fond blanc du menu mobile quand ouvert (Astra ajoute ast-main-header-nav-open sur body) */
body.home.ast-main-header-nav-open #masthead,
body.home.ast-main-header-nav-open .site-header,
body.home.ast-main-header-nav-open #ast-mobile-header {
	background-color: #ffffff !important;
	position: absolute !important;
}

/* Menu mobile — texte noir sur fond blanc (fond blanc imposé par Astra) */
/* Sélecteurs larges + !important pour écraser tout */
.ast-mobile-header-content a,
.ast-mobile-header-content a:link,
.ast-mobile-header-content a:visited,
.ast-mobile-header-content .menu-item a,
.ast-mobile-header-content .menu-item > a,
.ast-mobile-header-content .menu-link,
.ast-mobile-header-wrap a,
.ast-mobile-header-wrap .menu-item a,
.ast-mobile-header-wrap .menu-item > a,
.ast-mobile-header-wrap .main-navigation a,
.ast-mobile-header-wrap .main-header-menu a,
.ast-mobile-header-wrap .nav-menu a,
.ast-builder-menu-mobile a,
.ast-builder-menu-mobile .menu-item a,
.ast-builder-menu-mobile .menu-link,
#masthead .ast-mobile-header-content a,
#masthead .ast-mobile-header-wrap a {
	color: #1a1a1a !important;
}

/* Hover + actif → or */
.ast-mobile-header-content a:hover,
.ast-mobile-header-content .current-menu-item > a,
.ast-mobile-header-wrap a:hover,
.ast-mobile-header-wrap .current-menu-item > a,
.ast-builder-menu-mobile a:hover,
.ast-builder-menu-mobile .current-menu-item > a {
	color: #C4922A !important;
}

/* Flèche sous-menu */
.ast-mobile-header-content .ast-menu-toggle,
.ast-mobile-header-wrap .ast-menu-toggle {
	color: #1a1a1a !important;
}

/* ============================================================
   FOOTER — fond Pierre
   ============================================================ */

#colophon,
.footer-widget-area,
.ast-footer-widget-area {
	background-color: var(--c-pierre);
	color:            var(--c-linge);
}

#colophon a,
.footer-widget-area a {
	color: rgba(240, 237, 229, 0.65);
}

#colophon a:hover,
.footer-widget-area a:hover {
	color: var(--c-or);
}

#colophon p,
.footer-widget-area p {
	color: rgba(240, 237, 229, 0.6);
}

.ast-copyright-text,
.ast-footer-copyright {
	font-family:  var(--font-mono);
	font-size:    0.7rem;
	letter-spacing: 0.08em;
	color:        rgba(240, 237, 229, 0.4);
	border-top:   1px solid rgba(240, 237, 229, 0.1);
	padding-top:  16px;
}

/* ============================================================
   RESPONSIVE MOBILE
   ============================================================ */

@media (max-width: 767px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr 1fr;
		gap: 16px;
	}

	.benastra-reassurance {
		flex-direction: column;
		align-items:    flex-start;
		gap:            16px;
	}
}

@media (max-width: 480px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   SINGLE PRODUCT — Pierre & Lumière (P1.3)
   ============================================================ */

/* -------- Neutraliser le container Astra pour la pleine largeur -------- */
/* Scoped à #content uniquement — le header (dans #ast-desktop-header, avant #content) n'est pas touché */
.single-product #content .ast-container,
.single-product #content .ast-plain-container {
	max-width:     100% !important;
	padding-left:  0 !important;
	padding-right: 0 !important;
}

/* Site content wrapper : pas de padding latéral sur fiche produit */
.single-product .site-content > .ast-container,
.single-product .site-content > .ast-plain-container,
.single-product #primary {
	padding-left:  0 !important;
	padding-right: 0 !important;
}

/* Breadcrumb WC : restaurer le padding pour la lisibilité */
.single-product .woocommerce-breadcrumb {
	max-width:     var(--container) !important;
	margin-left:   auto !important;
	margin-right:  auto !important;
	padding-left:  var(--section-h) !important;
	padding-right: var(--section-h) !important;
}

/* -------- Hero : grille 2 colonnes -------- */
.single-product .bn-product-wrap {
	display: grid;
	grid-template-columns: 58% 42%;
	align-items: stretch;
	min-height: 70vh;
	width: 100%;
}

.single-product .bn-product-gallery {
	background-color: #F0EDE5 !important; /* var(--c-linge) forcé — override Astra/WC */
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}

/* Galerie WC dans la colonne image */
.single-product .bn-product-gallery .woocommerce-product-gallery,
.single-product .bn-product-gallery .flex-viewport,
.single-product .bn-product-gallery .flexslider {
	background-color: #F0EDE5 !important;
	width: 100%;
	margin: 0;
}

.single-product .bn-product-gallery .woocommerce-product-gallery__wrapper {
	width: 100%;
}

.single-product .bn-product-gallery .woocommerce-product-gallery__image img,
.single-product .bn-product-gallery .wp-post-image {
	width:      100%;
	height:     100%;
	max-height: 720px;
	object-fit: contain;
	padding:    3rem 2rem;
	transition: transform var(--trans-lent);
}

.single-product .bn-product-gallery:hover .woocommerce-product-gallery__image img {
	transform: scale(1.025);
}

/* Thumbnails */
.single-product .bn-product-gallery .flex-control-thumbs {
	padding: 0.75rem 1rem;
	margin:  0;
	display: flex;
	gap:     8px;
}

.single-product .bn-product-gallery .flex-control-thumbs li {
	width: 56px !important;
}

.single-product .bn-product-gallery .flex-control-thumbs li img {
	border: 2px solid transparent;
	cursor: pointer;
	padding: 0;
	max-height: unset;
	object-fit: cover;
	height: 56px;
}

.single-product .bn-product-gallery .flex-control-thumbs li img.flex-active {
	border-color: var(--c-or);
}

/* Zoom WC — fond neutre */
.single-product .bn-product-gallery .zoomImg {
	background-color: var(--c-linge);
}

/* Icône loupe — remplace le rendu coloré par un SVG trait fin noir */
.woocommerce-product-gallery__trigger {
	background-color: transparent !important;
	border:           none !important;
	box-shadow:       none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D2A26' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cline x1='15.5' y1='15.5' x2='21' y2='21'/%3E%3C/svg%3E") !important;
	background-size:     24px 24px !important;
	background-repeat:   no-repeat !important;
	background-position: center !important;
	width:  36px !important;
	height: 36px !important;
	cursor: pointer;
	opacity: .65;
	transition: opacity .18s;
}
.woocommerce-product-gallery__trigger:hover { opacity: 1; }
.woocommerce-product-gallery__trigger::before,
.woocommerce-product-gallery__trigger::after { display: none !important; }

/* -------- Colonne info -------- */
.single-product .bn-product-info {
	padding:    3.5rem 3rem 3rem;
	background: var(--c-craie);
	border-left: 1px solid var(--c-bordure);
	display: flex;
	flex-direction: column;
}

/* -------- Badge appellation -------- */
.bn-product-badge-appellation {
	display:        inline-block;
	font-family:    var(--font-mono);
	font-size:      0.65rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color:          var(--c-or);
	border:         1px solid var(--c-or);
	padding:        4px 12px;
	border-radius:  2px;
	margin-bottom:  1.25rem;
	width:          fit-content;
}

/* -------- H1 titre produit -------- */
.single-product .product_title {
	font-family:   var(--font-display) !important;
	font-style:    italic !important;
	font-weight:   300 !important;
	font-size:     clamp(2.2rem, 4vw, 3rem) !important;
	line-height:   1.1 !important;
	color:         var(--c-pierre) !important;
	margin:        0 0 0.5rem !important;
	text-wrap:     balance;
	max-width:     100%;
}

/* -------- Sous-titre cépages -------- */
.bn-product-subtitle {
	font-family:    var(--font-mono);
	font-size:      0.75rem;
	letter-spacing: 0.07em;
	color:          var(--tx-discret);
	margin:         0 0 1.75rem;
	max-width:      100%;
	line-height:    1.6;
}

/* -------- Offset ticker mobile — espace entre bandeau défilant et photo produit -------- */
@media (max-width: 768px) {
    .single-product div.product {
        padding-top: 16px !important;
        margin-top:  0    !important;
    }
}

/* -------- Prix -------- */
.single-product .price,
.single-product .woocommerce-Price-amount,
.single-product .woocommerce-Price-amount.amount {
	font-family: var(--font-mono) !important;
	font-size:   1.5rem !important;
	font-weight: 400 !important;
	color:       var(--c-pierre) !important;
	display:     block;
	margin:      0 0 1.5rem;
}

/* -------- Formulaire add to cart -------- */
.single-product form.cart {
	display:     flex;
	align-items: center;
	gap:         10px;
	margin:      0 0 1.5rem;
	flex-wrap:   wrap;
}

/* Contrôle quantité */
.single-product .quantity {
	display:       flex;
	align-items:   center;
	border:        1px solid var(--c-bordure);
	border-radius: 2px;
	overflow:      hidden;
	flex-shrink:   0;
}

.single-product .quantity .qty {
	width:         52px !important;
	text-align:    center;
	border:        none !important;
	border-left:   1px solid var(--c-bordure) !important;
	border-right:  1px solid var(--c-bordure) !important;
	border-radius: 0 !important;
	font-family:   var(--font-mono);
	font-size:     0.9rem;
	padding:       10px 4px !important;
	background:    #fff;
	color:         var(--c-pierre);
	-moz-appearance: textfield;
}

.single-product .quantity .qty::-webkit-inner-spin-button,
.single-product .quantity .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
}

.single-product .quantity input[type=number]:focus {
	border-color: var(--c-bordure) !important;
	outline: none;
}

/* Bouton +/- */
.single-product .quantity .plus,
.single-product .quantity .minus {
	background:    transparent;
	border:        none;
	width:         38px;
	height:        44px;
	font-size:     1.1rem;
	cursor:        pointer;
	color:         var(--tx-secondaire);
	transition:    color var(--trans), background var(--trans);
	font-family:   var(--font-body);
	display:       flex;
	align-items:   center;
	justify-content: center;
}

.single-product .quantity .plus:hover,
.single-product .quantity .minus:hover {
	background: var(--c-linge);
	color:      var(--c-pierre);
}

/* Boutons +/- dans le panier */
.woocommerce-cart .quantity {
	display:     flex;
	align-items: center;
	gap:         4px;
}
.woocommerce-cart .quantity .qty {
	width:       48px !important;
	text-align:  center;
	border:      1px solid var(--c-bordure) !important;
	border-radius: 4px;
	padding:     6px 4px;
	font-size:   .9rem;
	-moz-appearance: textfield;
}
.woocommerce-cart .quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; }
.woocommerce-cart .quantity .plus,
.woocommerce-cart .quantity .minus {
	width:         32px;
	height:        32px;
	background:    var(--c-sable, #F5F0E8);
	border:        1px solid var(--c-bordure, #D8D4CC);
	border-radius: 4px;
	font-size:     1.1rem;
	line-height:   1;
	cursor:        pointer;
	display:       flex;
	align-items:   center;
	justify-content: center;
	transition:    background .15s;
	color:         var(--c-pierre, #2D2A26);
}
.woocommerce-cart .quantity .plus:hover,
.woocommerce-cart .quantity .minus:hover {
	background: var(--c-linge, #EAE6DF);
}

/* Cacher le bouton "Mettre à jour le panier" — mise à jour automatique */
button[name="update_cart"] { display: none !important; }

/* Bouton "Continuer mes achats" */
.bn-cart-continue {
	display:         inline-block;
	padding:         10px 20px;
	border:          1px solid var(--c-bordure, #D8D4CC);
	border-radius:   4px;
	font-size:       .85rem;
	letter-spacing:  .04em;
	color:           var(--c-pierre, #2D2A26);
	text-decoration: none;
	transition:      background .2s, border-color .2s;
	background:      transparent;
}
.bn-cart-continue:hover {
	background:    var(--c-sable, #F5F0E8);
	border-color:  var(--c-or, #C4922A);
	color:         var(--c-pierre, #2D2A26);
}

/* Bouton Ajouter au panier */
.single-product .single_add_to_cart_button {
	flex:           1;
	justify-content: center;
	font-weight:    600 !important;
	letter-spacing: 0.1em !important;
	padding:        13px 24px !important;
	min-width:      160px;
	font-size:      0.8rem !important;
}

/* -------- Description courte -------- */
.single-product .woocommerce-product-details__short-description {
	border-top:    1px solid var(--c-bordure);
	padding-top:   1.25rem;
	margin-bottom: 1.5rem;
}

.single-product .woocommerce-product-details__short-description p {
	font-size:  0.9rem;
	color:      var(--tx-secondaire);
	line-height: 1.75;
	max-width:  100%;
	margin:     0;
}

/* -------- Réassurance produit -------- */
.bn-product-reassurance {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   0.875rem;
	margin-top:            auto;
	padding-top:           1.5rem;
	border-top:            1px solid var(--c-bordure);
}

.bn-product-reassurance-item {
	display:     flex;
	align-items: flex-start;
	gap:         8px;
	font-size:   0.75rem;
}

.bn-product-reassurance-item svg {
	width:      18px;
	height:     18px;
	flex-shrink: 0;
	color:      var(--c-or);
	margin-top: 3px;
}

.bn-product-reassurance-item strong {
	display:        block;
	font-family:    var(--font-mono);
	font-size:      0.68rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color:          var(--c-pierre);
	font-weight:    600;
}

.bn-product-reassurance-item span {
	display:    block;
	color:      var(--tx-discret);
	font-size:  0.68rem;
	margin-top: 2px;
	line-height: 1.4;
}

/* -------- Masquer les éléments WC non désirés -------- */
.single-product .woocommerce-product-rating,
.single-product .product_meta,
.single-product .woocommerce-tabs,
.single-product .woocommerce-review-link {
	display: none !important;
}

/* ========================================================
   SECTION : LE VIN EN DÉTAIL
   ======================================================== */

.bn-product-details-section {
	background: var(--c-linge);
	padding:    4rem 0;
}

.bn-product-details-section .bn-section-inner {
	max-width: var(--container);
	margin:    0 auto;
	padding:   0 var(--section-h);
}

.bn-product-details-section h2 {
	font-family: var(--font-display);
	font-style:  italic;
	font-weight: 300;
	font-size:   clamp(1.5rem, 3vw, 2rem);
	color:       var(--c-pierre);
	margin:      0 0 2rem;
}

/* Tableau attributs WC dans la section détails */
.bn-product-details-section .woocommerce-product-attributes {
	width:           100%;
	border-collapse: collapse;
	border:          1px solid var(--c-bordure);
	max-width:       760px;
}

.bn-product-details-section .woocommerce-product-attributes th {
	text-align:    left;
	font-family:   var(--font-body);
	font-weight:   600;
	font-size:     0.85rem;
	color:         var(--c-pierre);
	background:    var(--c-craie);
	padding:       0.8rem 1.25rem;
	border-bottom: 1px solid var(--c-bordure);
	width:         38%;
}

.bn-product-details-section .woocommerce-product-attributes td {
	font-family:   var(--font-mono);
	font-size:     0.85rem;
	color:         var(--tx-secondaire);
	padding:       0.8rem 1.25rem;
	border-bottom: 1px solid var(--c-bordure);
}

.bn-product-details-section .woocommerce-product-attributes tr:last-child th,
.bn-product-details-section .woocommerce-product-attributes tr:last-child td {
	border-bottom: none;
}

/* ========================================================
   SECTION : DESCRIPTION LONGUE
   ======================================================== */

.bn-product-description-section {
	background: var(--c-craie);
	padding:    4rem 0;
}

.bn-product-description-section .bn-section-inner {
	max-width: var(--container-etroit);
	margin:    0 auto;
	padding:   0 var(--section-h);
}

.bn-product-description-section h2 {
	font-family:   var(--font-display);
	font-style:    italic;
	font-weight:   300;
	font-size:     clamp(1.3rem, 2.5vw, 1.7rem);
	color:         var(--c-pierre);
	margin:        2.5rem 0 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--c-bordure);
}

.bn-product-description-section h2:first-child {
	margin-top: 0;
}

.bn-product-description-section h3 {
	font-family: var(--font-body);
	font-weight: 600;
	font-size:   1rem;
	color:       var(--c-pierre);
	margin:      1.5rem 0 0.5rem;
}

.bn-product-description-section p {
	font-size:  0.95rem;
	line-height: 1.8;
	color:      var(--tx-secondaire);
	max-width:  100%;
	margin:     0 0 1rem;
}

/* Tableau technique dans la description */
.bn-product-description-section table {
	width:           100%;
	border-collapse: collapse;
	margin:          1.5rem 0;
	display:         block;
	overflow-x:      auto;
}

.bn-product-description-section table thead th {
	background:  var(--c-linge);
	font-family: var(--font-body);
	font-weight: 600;
	font-size:   0.82rem;
	color:       var(--c-pierre);
	padding:     0.65rem 1rem;
	border:      1px solid var(--c-bordure);
	text-align:  left;
}

.bn-product-description-section table tbody td {
	padding:     0.65rem 1rem;
	border:      1px solid var(--c-bordure);
	font-family: var(--font-mono);
	font-size:   0.82rem;
	color:       var(--tx-secondaire);
}

/* ========================================================
   SECTION : PRODUITS ASSOCIÉS
   ======================================================== */

.single-product .related.products {
	background: var(--c-linge);
	padding:    4rem 0;
	width:      100%;
}

.single-product .related.products > h2 {
	font-family:  var(--font-display);
	font-style:   italic;
	font-weight:  300;
	font-size:    clamp(1.4rem, 3vw, 1.8rem);
	color:        var(--c-pierre);
	margin-bottom: 2.5rem;
	text-align:   center;
}

/* ========================================================
   RESPONSIVE — Single Product
   ======================================================== */

@media (max-width: 960px) {
	.single-product .bn-product-wrap {
		grid-template-columns: 1fr;
	}

	.single-product .bn-product-gallery {
		min-height: 420px;
		max-height: none;
	}

	/* Neutraliser tout overflow:hidden sur les conteneurs de la galerie */
	.single-product .bn-product-gallery,
	.single-product .bn-product-gallery .woocommerce-product-gallery,
	.single-product .bn-product-gallery .flexslider,
	.single-product .bn-product-gallery .flex-viewport,
	.single-product .bn-product-gallery .slides,
	.single-product .bn-product-gallery .woocommerce-product-gallery__image,
	.single-product .bn-product-gallery .woocommerce-product-gallery__image > a {
		overflow:   visible !important;
		max-height: none    !important;
	}

	.single-product .bn-product-gallery .woocommerce-product-gallery__image img,
	.single-product .bn-product-gallery .wp-post-image {
		height:          auto    !important;
		max-height:      none    !important;
		width:           100%    !important;
		object-fit:      contain !important;
		object-position: center  !important;
		padding:         1rem    !important;
		display:         block;
	}

	.single-product .bn-product-info {
		padding:     2rem var(--section-h);
		border-left: none;
		border-top:  1px solid var(--c-bordure);
	}
}

@media (max-width: 600px) {
	.single-product .bn-product-gallery {
		min-height: 280px;
		max-height: 360px;
	}

	.single-product .product_title {
		font-size: clamp(1.8rem, 7vw, 2.5rem) !important;
	}

	.single-product form.cart {
		flex-direction: column;
		align-items:    stretch;
	}

	.single-product .quantity {
		justify-content: center;
	}

	.single-product .single_add_to_cart_button {
		width:    100%;
		min-width: 0;
	}

	.bn-product-reassurance {
		grid-template-columns: 1fr;
		gap:                   1rem;
	}

	.bn-product-details-section .woocommerce-product-attributes {
		font-size: 0.8rem;
	}

	.bn-product-details-section .woocommerce-product-attributes th,
	.bn-product-details-section .woocommerce-product-attributes td {
		padding: 0.6rem 0.875rem;
	}
}

/* ============================================================
   UTILITAIRES
   ============================================================ */

.text-or          { color: var(--c-or); }
.text-pierre      { color: var(--c-pierre); }
.text-linge       { color: var(--c-linge); }
.text-argile      { color: var(--c-argile); }
.text-discret     { color: var(--tx-discret); }

.bg-pierre        { background-color: var(--c-pierre); }
.bg-linge         { background-color: var(--c-linge); }
.bg-craie         { background-color: var(--c-craie); }

.font-display     { font-family: var(--font-display); }
.font-body        { font-family: var(--font-body); }
.font-mono        { font-family: var(--font-mono); }

.sr-only {
	position:   absolute;
	width:      1px;
	height:     1px;
	padding:    0;
	margin:     -1px;
	overflow:   hidden;
	clip:       rect(0,0,0,0);
	white-space: nowrap;
	border:     0;
}

/* ============================================================
   ARCHIVE BOUTIQUE — Pierre & Lumière (P1.4)
   ============================================================ */

/* -------- Sections 75cl / Magnum -------- */
.bn-shop-section {
	max-width:  var(--container);
	margin:     0 auto;
	padding:    0 0 56px;
}

.bn-shop-section-title {
	font-family:    var(--font-display);
	font-style:     italic;
	font-weight:    300;
	font-size:      clamp(1.6rem, 3vw, 2.2rem);
	color:          var(--tx-primaire);
	margin-bottom:  32px;
	padding-bottom: 16px;
	border-bottom:  1px solid var(--c-bordure, #D8D4CC);
	display:        flex;
	align-items:    baseline;
	gap:            12px;
}

.bn-shop-section-format {
	font-family:    var(--font-mono, 'DM Mono', monospace);
	font-style:     normal;
	font-size:      0.75rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color:          var(--c-or, #C4922A);
	font-weight:    400;
}

.bn-shop-section--magnum {
	border-top:  1px solid var(--c-bordure, #D8D4CC);
	padding-top: 48px;
}

/* -------- Hero éditorial -------- */
.bn-shop-hero {
	max-width:     var(--container);
	margin:        0 auto;
	padding:       48px 0 36px;
}

.bn-shop-h1 {
	font-family:   var(--font-display);
	font-style:    italic;
	font-weight:   300;
	font-size:     clamp(2rem, 4vw, 2.8rem);
	line-height:   1.15;
	color:         var(--tx-primaire);
	margin-bottom: 16px;
	text-wrap:     balance;
}

.bn-shop-intro {
	font-family: var(--font-body);
	font-size:   1rem;
	color:       var(--tx-secondaire);
	line-height: 1.75;
	margin:      0;
}

/* -------- Barre de filtres -------- */
.bn-shop-filters {
	display:       flex;
	align-items:   center;
	gap:           10px;
	flex-wrap:     wrap;
	max-width:     var(--container);
	margin:        0 auto 40px;
	padding:       0 var(--section-h) 28px;
	border-bottom: 1px solid var(--bord);
}

.bn-filter-reset {
	font-family:     var(--font-mono);
	font-size:       0.68rem;
	letter-spacing:  0.12em;
	text-transform:  uppercase;
	color:           var(--tx-discret);
	text-decoration: none;
	padding:         7px 14px;
	border:          1px solid var(--bord);
	border-radius:   var(--radius-sm);
	transition:      color var(--trans), border-color var(--trans);
	white-space:     nowrap;
}

.bn-filter-reset:hover,
.bn-filter-reset.is-active {
	color:        var(--tx-primaire);
	border-color: var(--tx-primaire);
}

.bn-filter-form {
	display:     flex;
	align-items: center;
	gap:         8px;
	flex-wrap:   wrap;
}

.bn-filter-group {
	display: flex;
}

.bn-filter-select {
	font-family:      var(--font-mono);
	font-size:        0.68rem;
	letter-spacing:   0.08em;
	text-transform:   uppercase;
	color:            var(--tx-primaire);
	background-color: var(--bg);
	border:           1px solid var(--bord);
	border-radius:    var(--radius-sm);
	padding:          7px 30px 7px 12px;
	-webkit-appearance: none;
	appearance:       none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238A857F' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	cursor:           pointer;
	transition:       border-color var(--trans), color var(--trans);
	min-width:        120px;
}

.bn-filter-select:focus {
	outline:        2px solid var(--c-or);
	outline-offset: 2px;
}

.bn-filter-select:hover {
	border-color: var(--tx-secondaire);
}

.bn-filter-select.is-active {
	border-color: var(--c-or);
	color:        var(--c-pierre);
}

.bn-filter-submit {
	font-family:    var(--font-mono);
	font-size:      0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background:     var(--c-pierre);
	color:          var(--c-linge);
	border:         none;
	padding:        7px 18px;
	border-radius:  var(--radius-sm);
	cursor:         pointer;
	transition:     background var(--trans);
}

.bn-filter-submit:hover {
	background: var(--c-schiste);
}

/* -------- Grille produits -------- */
.woocommerce-page .woocommerce ul.products,
.woocommerce ul.products {
	max-width:  var(--container);
	margin:     0 auto;
	padding:    0 var(--section-h);
}

/* -------- Carte produit .bn-card -------- */
.woocommerce ul.products li.product.bn-card {
	display:        flex;
	flex-direction: column;
	background:     var(--c-linge);
	border:         1px solid var(--bord);
	border-radius:  var(--radius-sm);
	overflow:       hidden;
	transition:     border-color var(--trans), box-shadow var(--trans), transform var(--trans);
}

.woocommerce ul.products li.product.bn-card:hover {
	border-color: var(--c-or);
	box-shadow:   0 8px 32px rgba(45, 42, 38, 0.1);
	transform:    translateY(-2px);
}

/* Lien principal (couvre image + infos) */
.bn-card-link {
	display:         flex;
	flex-direction:  column;
	flex:            1;
	color:           inherit;
	text-decoration: none;
	outline:         none;
}

.bn-card-link:focus-visible {
	outline:        2px solid var(--c-or);
	outline-offset: 2px;
}

/* Zone image — fond linge, portrait */
.bn-card-image {
	background-color: var(--c-linge);
	aspect-ratio:     3 / 4;
	overflow:         hidden;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	position:         relative;
}

.bn-card-image img.bn-card-img,
.bn-card-image img {
	width:           100%;
	height:          100%;
	object-fit:      contain; /* bouteilles portrait — pas de recadrage */
	object-position: center;
	padding:         1.5rem 1rem;
	transition:      transform 0.5s ease;
	display:         block;
}

.bn-card:hover .bn-card-image img,
.bn-card-link:hover .bn-card-image img {
	transform: scale(1.04);
}

/* Tag épuisé sur la photo */
.bn-card-epuise {
	position:        absolute;
	bottom:          12px;
	left:            12px;
	font-family:     var(--font-body, 'DM Sans', sans-serif);
	font-size:       .65rem;
	font-weight:     600;
	letter-spacing:  .1em;
	text-transform:  uppercase;
	padding:         4px 12px;
	border-radius:   20px;
	background:      #3D3935;
	color:           #FAFAF5;
	pointer-events:  none;
}

/* Placeholder WC */
.bn-card-image .woocommerce-placeholder {
	width:   60%;
	height:  auto;
	opacity: 0.35;
}

/* Corps carte */
.bn-card-body {
	flex:           1;
	padding:        20px 20px 14px;
	display:        flex;
	flex-direction: column;
	gap:            6px;
}

/* Badge appellation */
.bn-card-badge {
	font-family:    var(--font-mono);
	font-size:      0.58rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color:          var(--c-or);
	border:         1px solid var(--c-or);
	padding:        3px 8px;
	display:        inline-block;
	border-radius:  var(--radius-sm);
	align-self:     flex-start;
	margin-bottom:  4px;
}

/* Titre produit */
.bn-card-title.woocommerce-loop-product__title,
.woocommerce ul.products li.product.bn-card .woocommerce-loop-product__title {
	font-family:   var(--font-display) !important;
	font-style:    italic !important;
	font-weight:   300 !important;
	font-size:     1.2rem !important;
	line-height:   1.25 !important;
	color:         var(--tx-primaire) !important;
	margin:        2px 0 0 !important;
	padding:       0 !important;
	text-wrap:     balance;
}

/* Millésime */
.bn-card-millesime {
	font-family:    var(--font-mono);
	font-size:      0.72rem;
	letter-spacing: 0.06em;
	color:          var(--tx-discret);
}

/* Cépages */
.bn-card-cepage {
	font-family: var(--font-body);
	font-size:   0.78rem;
	color:       var(--tx-secondaire);
	line-height: 1.4;
}

/* Prix */
.bn-card-price.price,
.woocommerce ul.products li.product.bn-card .price {
	font-family:   var(--font-mono) !important;
	font-size:     1rem !important;
	font-weight:   500 !important;
	color:         var(--c-or) !important;
	margin-top:    auto !important;
	padding:       8px 0 0 !important;
}

.bn-card-price .woocommerce-Price-amount {
	font-family: inherit !important;
	font-size:   inherit !important;
	color:       inherit !important;
}

/* Pied de carte : CTA */
.bn-card-footer {
	padding: 0 16px 16px;
}

.bn-card-footer .button,
.bn-card-footer a.button,
.bn-card-footer .bn-card-cta {
	display:         block !important;
	width:           100% !important;
	text-align:      center !important;
	background:      var(--c-or) !important;
	color:           var(--c-pierre) !important;
	font-family:     var(--font-mono) !important;
	font-size:       0.72rem !important;
	letter-spacing:  0.1em !important;
	text-transform:  uppercase !important;
	padding:         11px 16px !important;
	border:          none !important;
	border-radius:   var(--radius-sm) !important;
	transition:      background var(--trans), color var(--trans) !important;
	margin:          0 !important;
	box-shadow:      none !important;
	text-decoration: none !important;
}

.bn-card-footer .button:hover,
.bn-card-footer a.button:hover,
.bn-card-footer .bn-card-cta:hover {
	background: var(--c-or-fonce) !important;
	color:      var(--c-linge) !important;
}

.bn-card-footer .button:focus-visible {
	outline:        2px solid var(--c-or-fonce);
	outline-offset: 2px;
}

/* -------- No products found -------- */
.woocommerce-no-products-found {
	max-width: var(--container);
	margin:    0 auto;
	padding:   48px var(--section-h);
	font-family: var(--font-body);
	color:     var(--tx-secondaire);
}

/* -------- Pagination -------- */
.woocommerce-pagination {
	max-width:   var(--container);
	margin:      40px auto 0;
	padding:     0 var(--section-h) 64px;
	text-align:  center;
}

/* -------- Notices WooCommerce -------- */
.woocommerce-notices-wrapper {
	max-width: var(--container);
	margin:    0 auto;
	padding:   0 var(--section-h);
}

/* -------- Responsive P1.4 -------- */

/* Tablette : 2 colonnes */
@media (max-width: 960px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.bn-shop-hero {
		padding: 36px 0 28px;
	}

	.bn-shop-filters {
		gap: 8px;
		padding-bottom: 24px;
		margin-bottom: 32px;
	}
}

/* Mobile : 1 colonne + ajustements */
@media (max-width: 600px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.bn-shop-hero {
		padding: 28px 0 20px;
	}

	.bn-shop-h1 {
		font-size: 1.75rem;
	}

	.bn-shop-filters {
		gap: 8px;
		padding-bottom: 20px;
		margin-bottom: 24px;
	}

	.bn-filter-select {
		min-width: unset;
		width: 100%;
	}

	.bn-filter-form {
		width: 100%;
	}

	.bn-filter-group {
		width: 100%;
	}

	.bn-filter-submit {
		width: 100%;
		text-align: center;
	}

	.bn-card-footer .button,
	.bn-card-footer a.button {
		padding: 14px 16px !important;
		font-size: 0.8rem !important;
	}
}

/* =============================================================
   P2 — PAGES LÉGALES
   ============================================================= */

.bn-legal-wrap {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 var(--section-h) 80px;
}

.bn-legal-intro {
	font-size: 1.05rem;
	color: var(--c-pierre-clair);
	line-height: 1.7;
	margin-bottom: 40px;
	padding: 24px 28px;
	background: var(--c-linge);
	border-left: 3px solid var(--c-or);
	border-radius: 0 2px 2px 0;
}

.bn-legal-sep {
	border: none;
	border-top: 1px solid var(--c-bordure);
	margin: 48px 0;
}

.bn-legal-date {
	margin-top: 48px;
	color: var(--c-pierre-clair);
	font-size: 0.9rem;
}

.bn-legal-wrap h2 {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 300;
	font-size: 1.6rem;
	color: var(--c-pierre);
	margin: 48px 0 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--c-bordure);
}

.bn-legal-wrap h4 {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--c-pierre);
	margin: 28px 0 10px;
}

.bn-legal-wrap p,
.bn-legal-wrap li {
	font-size: 0.95rem;
	line-height: 1.75;
	color: var(--c-schiste);
	margin-bottom: 12px;
}

.bn-legal-wrap ol,
.bn-legal-wrap ul {
	padding-left: 1.5rem;
	margin-bottom: 16px;
}

/* =============================================================
   P2 — FAQ
   ============================================================= */

.bn-faq-intro {
	max-width: 680px;
	margin: 0 auto 48px;
	text-align: center;
	font-size: 1.05rem;
	color: var(--c-pierre-clair);
	line-height: 1.7;
}

.bn-faq-list {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 var(--section-h) 80px;
}

.bn-faq-item {
	border-bottom: 1px solid var(--c-bordure);
	padding: 0;
	overflow: hidden;
}

.bn-faq-item:first-child {
	border-top: 1px solid var(--c-bordure);
}

.bn-faq-question {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 300;
	font-size: 1.2rem;
	color: var(--c-pierre);
	cursor: pointer;
	padding: 24px 40px 24px 0;
	margin: 0;
	position: relative;
	user-select: none;
	line-height: 1.4;
}

.bn-faq-question::after {
	content: '+';
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--font-body);
	font-style: normal;
	font-weight: 300;
	font-size: 1.5rem;
	color: var(--c-or);
	line-height: 1;
	transition: transform 0.25s ease;
}

.bn-faq-item.bn-faq-open .bn-faq-question::after {
	transform: translateY(-50%) rotate(45deg);
}

.bn-faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.35s ease;
}

.bn-faq-item.bn-faq-open .bn-faq-answer {
	max-height: 600px;
}

.bn-faq-answer p {
	color: var(--c-schiste);
	line-height: 1.75;
	font-size: 0.97rem;
	padding-bottom: 24px;
	margin: 0;
}

.bn-faq-answer a {
	color: var(--c-or-fonce);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* =============================================================
   P2 — PAGE CONTACT — v3.3.2
   ============================================================= */

.bn-contact-wrap {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--section-h) 80px;
}

/* ── Zone info élargie (4 blocs côte à côte) ── */
.bn-contact-info-band {
	background: var(--c-linge, #F0EDE5);
	border: 1px solid var(--c-bordure, #D8D4CC);
	border-radius: 2px;
	padding: 40px 48px;
	margin-bottom: 56px;
}

.bn-contact-info-4col {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px 40px;
}

/* Séparateurs verticaux entre les colonnes */
.bn-contact-info-4col .bn-contact-item + .bn-contact-item {
	padding-left: 40px;
	border-left: 1px solid var(--c-bordure, #D8D4CC);
}

/* Items : icône + texte */
.bn-contact-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.bn-contact-item svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--c-or, #C4922A);
	margin-top: 3px;
}

.bn-contact-item strong {
	display: block;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--c-pierre);
	margin-bottom: 5px;
}

.bn-contact-item a {
	color: var(--c-or-fonce);
	text-decoration: none;
}
.bn-contact-item a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bn-contact-item div {
	font-size: 0.92rem;
	line-height: 1.6;
	color: var(--c-schiste, #4A4540);
}

/* ── Formulaire "Nous écrire" ── */
.bn-contact-form-section h2 {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(1.6rem, 2.5vw, 2rem);
	color: var(--c-pierre);
	margin: 0 0 10px;
}

.bn-contact-form-section > p {
	color: var(--c-pierre-clair);
	margin-bottom: 32px;
	font-size: 0.97rem;
	line-height: 1.65;
}

.bn-contact-form {
	max-width: 680px;
}

.bn-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.bn-form-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 20px;
}

.bn-form-group label {
	font-size: 0.82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--c-pierre);
}

.bn-form-group label span {
	color: var(--c-argile);
}

.bn-form-group input[type="text"],
.bn-form-group input[type="email"],
.bn-form-group select,
.bn-form-group textarea {
	font-family: var(--font-body);
	font-size: 0.95rem;
	color: var(--c-pierre);
	background: var(--c-craie);
	border: 1px solid var(--c-bordure);
	border-radius: 1px;
	padding: 12px 16px;
	width: 100%;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	outline: none;
	appearance: none;
	-webkit-appearance: none;
}

.bn-form-group select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A857F' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}

.bn-form-group input:focus,
.bn-form-group select:focus,
.bn-form-group textarea:focus {
	border-color: var(--c-or);
	box-shadow: 0 0 0 3px rgba(196, 146, 42, 0.12);
}

.bn-form-group textarea {
	resize: vertical;
	min-height: 140px;
}

.bn-form-consent label.bn-checkbox-label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 0.88rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--c-schiste);
	cursor: pointer;
	line-height: 1.5;
}

.bn-form-consent input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	accent-color: var(--c-or);
	margin-top: 1px;
}

.bn-form-consent a { color: var(--c-or-fonce); }

.bn-contact-direct-note {
	margin-top: 20px;
	font-size: 0.9rem;
	color: var(--c-pierre-clair);
}
.bn-contact-direct-note a { color: var(--c-or-fonce); }

/* ── Carte ── */
.bn-contact-map-section {
	border-top: 1px solid var(--c-bordure);
	padding-top: 48px;
	margin-top: 16px;
}

.bn-contact-map-section h2 {
	font-family: var(--font-display);
	font-style: italic;
	font-size: clamp(1.6rem, 2.5vw, 2rem);
	font-weight: 300;
	color: var(--c-pierre);
	margin: 0 0 24px;
}

.bn-map-embed {
	border-radius: 2px;
	overflow: hidden;
	margin-bottom: 16px;
	border: 1px solid var(--c-bordure);
}

.bn-map-embed iframe {
	display: block;
	width: 100%;
	height: 420px;
	border: 0;
}

.bn-map-note {
	font-size: 0.88rem;
	color: var(--c-pierre-clair);
	line-height: 1.6;
}
.bn-map-note a { color: var(--c-or-fonce); text-decoration: none; }
.bn-map-note a:hover { text-decoration: underline; text-underline-offset: 2px; }

/* ── Responsive ── */
@media (max-width: 900px) {
	.bn-contact-info-4col {
		grid-template-columns: 1fr 1fr;
	}
	.bn-contact-info-4col .bn-contact-item + .bn-contact-item {
		padding-left: 0;
		border-left: none;
	}
	.bn-contact-info-4col .bn-contact-item:nth-child(2n) {
		padding-left: 32px;
		border-left: 1px solid var(--c-bordure);
	}
}

@media (max-width: 560px) {
	.bn-contact-info-band {
		padding: 28px 20px;
	}
	.bn-contact-info-4col {
		grid-template-columns: 1fr;
	}
	.bn-contact-info-4col .bn-contact-item:nth-child(2n) {
		padding-left: 0;
		border-left: none;
	}
	.bn-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.bn-map-embed iframe {
		height: 280px;
	}
}

@media (max-width: 768px) {
	.bn-faq-list {
		padding: 0 var(--section-h) 48px;
	}
}

/* =============================================================
   P2 — PAGE JOSEPH PAILLÉ
   ============================================================= */

.bn-joseph-wrap {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--section-h) 80px;
}

.bn-joseph-intro {
	max-width: 720px;
	margin: 0 auto 64px;
	text-align: center;
}

.bn-joseph-intro-text {
	font-size: 1.1rem;
	line-height: 1.8;
	color: var(--c-pierre-clair);
}

.bn-joseph-section {
	max-width: 720px;
	margin: 0 auto 56px;
	padding-bottom: 56px;
	border-bottom: 1px solid var(--c-bordure);
}

.bn-joseph-section:last-of-type {
	border-bottom: none;
}

.bn-joseph-section h2 {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 300;
	font-size: 1.75rem;
	color: var(--c-pierre);
	margin: 0 0 24px;
	line-height: 1.3;
}

.bn-joseph-section p {
	font-size: 0.97rem;
	line-height: 1.8;
	color: var(--c-schiste);
	margin-bottom: 16px;
}

.bn-joseph-section p:last-child {
	margin-bottom: 0;
}

.bn-joseph-section strong {
	color: var(--c-pierre);
	font-weight: 600;
}

.bn-joseph-section a {
	color: var(--c-or-fonce);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bn-joseph-section--bio {
	background: var(--c-linge);
	padding: 40px 48px;
	border-bottom: none;
	border-left: 3px solid var(--c-bio);
	max-width: 720px;
}

.bn-joseph-section--bio h2 {
	color: var(--c-bio);
}

.bn-joseph-cepages {
	list-style: none;
	padding: 0;
	margin: 16px 0 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bn-joseph-cepages li {
	padding-left: 16px;
	position: relative;
	font-size: 0.95rem;
	color: var(--c-schiste);
	line-height: 1.5;
}

.bn-joseph-cepages li::before {
	content: '—';
	position: absolute;
	left: 0;
	color: var(--c-or);
	font-weight: 300;
}

.bn-joseph-vins-link {
	font-size: 0.9rem !important;
	color: var(--c-pierre-clair) !important;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--c-bordure);
}

.bn-joseph-faq-section {
	max-width: 720px;
	margin: 0 auto 64px;
	padding-top: 16px;
}

.bn-joseph-faq-section > h2 {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 300;
	font-size: 1.75rem;
	color: var(--c-pierre);
	margin: 0 0 32px;
}

.bn-joseph-faq-section .bn-faq-list {
	padding: 0;
}

.bn-joseph-cta {
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 16px;
}

.bn-btn-secondary {
	display: inline-block;
	padding: 14px 28px;
	font-family: var(--font-body);
	font-size: 0.82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--c-pierre) !important;
	background: transparent;
	border: 1px solid var(--c-bordure);
	text-decoration: none !important;
	transition: border-color 0.2s ease, color 0.2s ease;
	cursor: pointer;
}

.bn-btn-secondary:hover {
	border-color: var(--c-or);
	color: var(--c-or) !important;
}

@media (max-width: 768px) {
	.bn-joseph-section--bio {
		padding: 28px 24px;
	}

	.bn-joseph-section h2,
	.bn-joseph-faq-section > h2 {
		font-size: 1.4rem;
	}

	.bn-joseph-cta {
		flex-direction: column;
	}

	.bn-joseph-cta a {
		text-align: center;
	}
}

/* ════════════════════════════════════════════════════════
   POPUP UPSELL — bn-upsell-overlay
   ════════════════════════════════════════════════════════ */

/* L'attribut hidden est overridé par display:flex — on le restaure explicitement */
#bn-upsell-overlay[hidden] {
	display: none !important;
}
#bn-upsell-overlay {
	position:        fixed;
	inset:           0;
	background:      rgba(30, 28, 25, .82);
	z-index:         99998;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         20px;
	backdrop-filter: blur(3px);
	opacity:         0;
	transition:      opacity .22s ease;
}
#bn-upsell-overlay.bn-up-on {
	opacity: 1;
}

.bn-upsell-modal {
	background:  var(--c-craie, #FAFAF5);
	max-width:   440px;
	width:       100%;
	padding:     36px 30px 28px;
	position:    relative;
	box-shadow:  0 24px 64px rgba(30, 28, 25, .28);
}

.bn-upsell-close {
	position:   absolute;
	top:        14px;
	right:      16px;
	background: none;
	border:     none;
	cursor:     pointer;
	color:      var(--c-pierre-clair, #8A857F);
	font-size:  1.3rem;
	line-height: 1;
	padding:    4px 6px;
	transition: color var(--trans, .18s ease);
}
.bn-upsell-close:hover { color: var(--c-pierre, #2D2A26); }

.bn-upsell-tag {
	font-family:    var(--font-mono, 'DM Mono', monospace);
	font-size:      9px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color:          var(--c-or, #C4922A);
	display:        block;
	margin-bottom:  16px;
}

.bn-upsell-body {
	display:       flex;
	gap:           18px;
	margin-bottom: 22px;
	align-items:   flex-start;
}

.bn-upsell-img {
	width:      90px;
	height:     135px;
	object-fit: cover;
	flex-shrink: 0;
	display:    block;
	background: var(--c-linge, #F0EDE5);
}
.bn-upsell-img--empty {
	background: var(--c-pierre, #2D2A26);
}

.bn-upsell-info { flex: 1; min-width: 0; }

.bn-upsell-headline {
	font-family: var(--font-display, 'Cormorant Garamond', serif);
	font-size:   1.3rem;
	font-weight: 400;
	color:       var(--c-pierre, #2D2A26);
	line-height: 1.3;
	margin:      0 0 10px;
}

.bn-upsell-tagline {
	font-size:   .88rem;
	color:       var(--c-schiste, #4A4540);
	line-height: 1.65;
	margin:      0 0 12px;
}

.bn-upsell-price {
	font-family: var(--font-mono, 'DM Mono', monospace);
	font-size:   .9rem;
	color:       var(--c-or, #C4922A);
}
.bn-upsell-price del { opacity: .5; margin-right: 4px; }

.bn-upsell-btn-yes {
	display:         block;
	width:           100%;
	padding:         14px;
	background:      var(--c-pierre, #2D2A26);
	color:           var(--c-linge, #F0EDE5);
	border:          none;
	font-family:     var(--font-body, 'DM Sans', sans-serif);
	font-size:       .82rem;
	font-weight:     500;
	letter-spacing:  .07em;
	text-transform:  uppercase;
	cursor:          pointer;
	transition:      background var(--trans, .18s ease);
	margin-bottom:   8px;
}
.bn-upsell-btn-yes:hover:not(:disabled) { background: var(--c-schiste, #4A4540); }
.bn-upsell-btn-yes:disabled { opacity: .65; cursor: wait; }

.bn-upsell-btn-no {
	display:         block;
	width:           100%;
	padding:         12px;
	background:      transparent;
	color:           var(--c-pierre-clair, #8A857F);
	border:          1px solid var(--c-bordure, #D8D4CC);
	font-size:       .82rem;
	cursor:          pointer;
	transition:      border-color var(--trans, .18s ease), color var(--trans, .18s ease);
}
.bn-upsell-btn-no:hover { border-color: var(--c-pierre-clair, #8A857F); color: var(--c-pierre, #2D2A26); }

.bn-upsell-footnote {
	font-family:    var(--font-mono, 'DM Mono', monospace);
	font-size:      8px;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-align:     center;
	color:          var(--c-bordure, #D8D4CC);
	margin-top:     14px;
}

@media (max-width: 500px) {
	.bn-upsell-modal { padding: 28px 20px 22px; }
	.bn-upsell-body { flex-direction: column; }
	.bn-upsell-img { width: 100%; height: 160px; object-position: center top; }
}

/* ══════════════════════════════════════════════════════
   BLOC 2 — CONFIGURATEUR CARTON DE 6 BOUTEILLES
   ══════════════════════════════════════════════════════ */

.bn-carton-wrap {
	max-width:      1200px;
	margin:         0 auto;
	padding:        0 24px 140px; /* bas = espace pour la barre fixe */
}

.bn-carton-intro {
	text-align: center;
	padding:    2.5rem 0 3rem;
}

.bn-carton-desc {
	font-family: 'DM Sans', system-ui, sans-serif;
	font-size:   1.1rem;
	line-height: 1.7;
	color:       var(--tx-secondaire);
	max-width:   520px;
	margin:      0 auto;
}

/* Grille de cartes */
.bn-carton-grid {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap:                   1.5rem;
}

/* Carte vin */
.bn-carton-wine {
	background:     var(--c-craie);
	border:         2px solid transparent;
	border-radius:  2px;
	overflow:       hidden;
	display:        flex;
	flex-direction: column;
	transition:     border-color 0.2s ease, box-shadow 0.2s ease;
}

.bn-carton-wine--selected {
	border-color: var(--c-or);
	box-shadow:   0 4px 20px rgba(196, 146, 42, 0.18);
}

.bn-carton-wine-img-wrap {
	background:      var(--c-linge);
	aspect-ratio:    3 / 4;
	overflow:        hidden;
	display:         flex;
	align-items:     center;
	justify-content: center;
}

.bn-carton-wine-img {
	width:      100%;
	height:     100%;
	object-fit: contain;
	padding:    1.5rem 1rem;
}

.bn-carton-wine-body {
	padding:        1rem 1rem 0.5rem;
	flex:           1;
	display:        flex;
	flex-direction: column;
	gap:            0.2rem;
}

.bn-carton-wine-name {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size:   1.2rem;
	font-weight: 400;
	color:       var(--tx-primaire);
	margin:      0;
	line-height: 1.25;
}

.bn-carton-wine-price {
	font-family: 'DM Sans', system-ui, sans-serif;
	font-size:   0.875rem;
	color:       var(--tx-discret);
	margin-top:  auto;
	padding-top: 0.4rem;
}

/* Contrôles quantité */
.bn-carton-wine-qty {
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         0.75rem 1rem;
	border-top:      1px solid var(--c-bordure);
	gap:             0;
}

.bn-carton-minus,
.bn-carton-plus {
	background:      none;
	border:          1px solid var(--c-bordure);
	width:           36px;
	height:          36px;
	cursor:          pointer;
	font-size:       1.15rem;
	color:           var(--tx-primaire);
	display:         flex;
	align-items:     center;
	justify-content: center;
	line-height:     1;
	transition:      background 0.15s, border-color 0.15s;
	flex-shrink:     0;
}

.bn-carton-minus { border-radius: 2px 0 0 2px; }
.bn-carton-plus  { border-radius: 0 2px 2px 0; }

.bn-carton-minus:hover,
.bn-carton-plus:hover {
	background:   var(--c-linge);
	border-color: var(--c-pierre-clair);
}

.bn-carton-wine-count {
	width:           44px;
	text-align:      center;
	font-family:     'DM Mono', 'Courier New', monospace;
	font-size:       1rem;
	font-weight:     500;
	color:           var(--tx-primaire);
	height:          36px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	border-top:      1px solid var(--c-bordure);
	border-bottom:   1px solid var(--c-bordure);
	flex-shrink:     0;
}

/* Barre fixe bas */
.bn-carton-bar {
	position:   fixed;
	bottom:     0;
	left:       0;
	right:      0;
	background: var(--c-pierre);
	z-index:    998;
	padding:    0.875rem 1.5rem;
	box-shadow: 0 -4px 24px rgba(30, 28, 25, 0.22);
}

.bn-carton-bar-inner {
	max-width:   1200px;
	margin:      0 auto;
	display:     flex;
	align-items: center;
	gap:         1.5rem;
}

.bn-carton-bar-progress {
	flex:        1;
	display:     flex;
	align-items: center;
	gap:         1rem;
	min-width:   0;
}

.bn-carton-bar-track {
	flex:          1;
	height:        3px;
	background:    rgba(240, 237, 229, 0.18);
	border-radius: 2px;
	overflow:      hidden;
	min-width:     60px;
}

.bn-carton-bar-fill {
	height:     100%;
	background: var(--c-or);
	transition: width 0.3s ease;
}

.bn-carton-bar-label {
	font-family:  'DM Sans', system-ui, sans-serif;
	font-size:    0.8rem;
	color:        rgba(240, 237, 229, 0.7);
	white-space:  nowrap;
	flex-shrink:  0;
}

.bn-carton-bar-label strong {
	color:       var(--c-linge);
	font-weight: 600;
}

.bn-carton-total-price {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size:   1.5rem;
	font-weight: 300;
	color:       var(--c-linge);
	white-space: nowrap;
	flex-shrink: 0;
}

.bn-carton-cta {
	background:     var(--c-or);
	color:          var(--c-pierre);
	border:         none;
	padding:        0.875rem 1.75rem;
	font-family:    'DM Sans', system-ui, sans-serif;
	font-size:      0.82rem;
	font-weight:    500;
	letter-spacing: 0.05em;
	cursor:         pointer;
	border-radius:  1px;
	white-space:    nowrap;
	flex-shrink:    0;
	transition:     background 0.2s, opacity 0.2s;
}

.bn-carton-cta:disabled {
	background: rgba(196, 146, 42, 0.3);
	color:      rgba(45, 42, 38, 0.5);
	cursor:     not-allowed;
}

.bn-carton-cta--shake {
	animation: bn-carton-shake 0.32s ease;
}

@keyframes bn-carton-shake {
	0%, 100% { transform: translateX(0); }
	25%       { transform: translateX(-5px); }
	75%       { transform: translateX(5px); }
}

.bn-carton-empty {
	text-align:   center;
	padding:      4rem 1rem;
	color:        var(--tx-discret);
	font-family:  'DM Sans', system-ui, sans-serif;
}

/* ── Overlay succès ── */
#bn-carton-success {
	position:        fixed;
	inset:           0;
	background:      rgba(30, 28, 25, 0.88);
	z-index:         9999;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         24px;
	backdrop-filter: blur(4px);
}

#bn-carton-success[hidden] {
	display: none !important;
}

.bn-carton-success-box {
	background:   var(--c-linge);
	max-width:    440px;
	width:        100%;
	padding:      48px 40px 40px;
	border-radius: 2px;
	text-align:   center;
}

.bn-carton-success-check {
	font-size:   2.5rem;
	color:       var(--c-or);
	line-height: 1;
	margin-bottom: 1rem;
}

.bn-carton-success-h {
	font-family:  'Cormorant Garamond', Georgia, serif;
	font-size:    1.75rem;
	font-weight:  400;
	color:        var(--tx-primaire);
	margin:       0 0 0.5rem;
}

.bn-carton-success-summary {
	font-family:  'DM Sans', system-ui, sans-serif;
	font-size:    0.85rem;
	color:        var(--tx-discret);
	margin:       0 0 2rem;
	line-height:  1.6;
}

.bn-carton-success-btns {
	display:        flex;
	flex-direction: column;
	gap:            0.75rem;
}

.bn-btn-cart {
	display:        block;
	background:     var(--c-pierre);
	color:          var(--c-linge);
	text-decoration: none;
	padding:        0.875rem 1.5rem;
	font-family:    'DM Sans', system-ui, sans-serif;
	font-size:      0.85rem;
	font-weight:    500;
	letter-spacing: 0.05em;
	border-radius:  1px;
	transition:     background 0.2s;
}

.bn-btn-cart:hover {
	background: var(--c-schiste);
	color:      var(--c-linge);
}

.bn-btn-reset {
	background:     transparent;
	border:         1px solid var(--c-bordure);
	color:          var(--tx-secondaire);
	padding:        0.75rem 1.5rem;
	font-family:    'DM Sans', system-ui, sans-serif;
	font-size:      0.82rem;
	cursor:         pointer;
	border-radius:  1px;
	transition:     border-color 0.2s, color 0.2s;
}

.bn-btn-reset:hover {
	border-color: var(--c-pierre-clair);
	color:        var(--tx-primaire);
}

.bn-btn-shop {
	display:     block;
	background:  transparent;
	border:      none;
	color:       var(--c-or-fonce, #A37820);
	font-size:   0.85rem;
	text-align:  center;
	padding:     0.35rem 0;
	cursor:      pointer;
	transition:  color 0.2s, text-decoration-color 0.2s;
	text-decoration:       underline;
	text-decoration-color: transparent;
}

.bn-btn-shop:hover {
	color:                 var(--c-or-sombre, #8C6418);
	text-decoration-color: currentColor;
}

/* ── Lien "Modifier" dans le panier ── */
.bn-carton-edit-wrap {
	display: block;
	margin-top: 4px;
}

.bn-carton-edit-link {
	font-family:    'DM Sans', system-ui, sans-serif;
	font-size:      0.78rem;
	color:          var(--c-or);
	text-decoration: none;
	letter-spacing: 0.03em;
}

.bn-carton-edit-link:hover {
	text-decoration: underline;
}

/* ── CTA groupes sur fiche produit ── */
.bn-product-groupes {
	display:        flex;
	flex-direction: column;
	gap:            0.4rem;
	margin-top:     1rem;
}

.bn-product-groupe-link {
	font-family:     'DM Sans', system-ui, sans-serif;
	font-size:       0.82rem;
	color:           var(--tx-discret);
	text-decoration: none;
	letter-spacing:  0.03em;
	transition:      color 0.15s;
}

.bn-product-groupe-link:hover {
	color: var(--c-or);
}

/* ── Plaquette checkout ── */
.bn-plaquette-section {
	margin:     2rem 0 1.5rem;
	padding:    24px 24px 20px;
	background: var(--c-linge, #F0EDE5);
	border-left: 3px solid var(--c-or, #C4922A);
}

.bn-plaquette-header {
	display:     flex;
	align-items: flex-start;
	gap:         14px;
	margin-bottom: 1.25rem;
}

.bn-plaquette-icon {
	font-size:   1.4rem;
	line-height: 1;
	flex-shrink: 0;
	color:       var(--c-or);
	margin-top:  2px;
}

.bn-plaquette-title {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size:   1.2rem;
	font-weight: 400;
	color:       var(--tx-primaire);
	margin:      0 0 4px;
}

.bn-plaquette-subtitle {
	font-family: 'DM Sans', system-ui, sans-serif;
	font-size:   0.82rem;
	color:       var(--tx-discret);
	margin:      0;
}

.bn-plaquette-field-wrap {
	position: relative;
}

.bn-plaquette-textarea {
	width:        100%;
	padding:      12px 14px;
	font-family:  'DM Sans', system-ui, sans-serif;
	font-size:    0.9rem;
	color:        var(--tx-primaire);
	background:   var(--c-craie);
	border:       1px solid var(--c-bordure);
	border-radius: 1px;
	resize:       vertical;
	min-height:   80px;
	box-sizing:   border-box;
	transition:   border-color 0.15s;
}

.bn-plaquette-textarea:focus {
	outline:      none;
	border-color: var(--c-pierre-clair);
}

.bn-plaquette-counter {
	text-align:  right;
	font-family: 'DM Mono', monospace;
	font-size:   10px;
	color:       var(--tx-discret);
	margin-top:  4px;
	letter-spacing: 0.05em;
}

/* Responsive */
@media (max-width: 900px) {
	.bn-carton-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 680px) {
	.bn-carton-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	.bn-carton-bar-inner {
		flex-wrap: wrap;
		gap:       0.6rem;
	}
	.bn-carton-bar-progress {
		width:  100%;
		order:  1;
	}
	.bn-carton-total-price {
		order:     2;
		font-size: 1.2rem;
		margin-left: auto;
	}
	.bn-carton-cta {
		order:   3;
		width:   100%;
		text-align: center;
		padding: 0.75rem 1rem;
	}
	.bn-carton-bar {
		padding: 0.75rem 1rem;
	}
	.bn-carton-wrap {
		padding-bottom: 180px;
	}
}

@media (max-width: 400px) {
	.bn-carton-grid {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}
	.bn-carton-wine-name {
		font-size: 1rem;
	}
}


/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   LE CARNET BENASTRA â€” Design Ã©ditorial
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Tokens couleur catÃ©gories â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
:root {
    --c-cat-vin:        #7A3E2C;  /* argile foncÃ© */
    --c-cat-terroir:    #2A6B4A;  /* vert bio */
    --c-cat-territoire: #3A5278;  /* bleu ardoise */
    --c-cat-domaine:    var(--c-or, #C4922A); /* or Benastra */
}

/* â•â• ARCHIVE â€” PAGE D'ACCUEIL â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bnv-carnet-archive { font-family: var(--font-body, 'DM Sans', sans-serif); }

/* â”€â”€ En-tÃªte archive â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-ca-header {
    background:    var(--c-pierre, #2D2A26);
    padding:       80px 24px 72px;
    text-align:    center;
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.bnv-ca-header-inner { max-width: 640px; margin: 0 auto; }
.bnv-ca-header-eyebrow {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin-bottom:  20px;
}
.bnv-ca-header h1 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     clamp(2.4rem, 5vw, 3.8rem);
    font-weight:   300;
    color:         var(--c-linge, #F0EDE5);
    line-height:   1.1;
    margin-bottom: 18px;
}
.bnv-ca-header-sub {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-style:  italic;
    font-size:   1.15rem;
    color:       rgba(240,237,229,.65);
    line-height: 1.6;
}

/* â”€â”€ Quatre univers â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-ca-univers {
    background: var(--c-craie, #FAFAF5);
    padding:    72px 24px;
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
}
.bnv-ca-univers-inner {
    max-width: 1100px;
    margin:    0 auto;
    display:   grid;
    grid-template-columns: repeat(4, 1fr);
    gap:       24px;
}
.bnv-ca-univers-card {
    display:         flex;
    flex-direction:  column;
    gap:             12px;
    padding:         28px 24px;
    background:      #fff;
    border:          1px solid var(--c-bordure, #D8D4CC);
    text-decoration: none !important;
    transition:      border-color .2s, box-shadow .2s;
}
.bnv-ca-univers-card:hover {
    border-color: var(--c-or, #C4922A);
    box-shadow:   0 4px 20px rgba(45,42,38,.06);
}
.bnv-ca-univers-icon { width: 28px; height: 28px; }
.bnv-ca-univers-icon svg { width: 100%; height: 100%; }
.bnv-ca-univers-card--vin        .bnv-ca-univers-icon { color: var(--c-cat-vin); }
.bnv-ca-univers-card--terroir    .bnv-ca-univers-icon { color: var(--c-cat-terroir); }
.bnv-ca-univers-card--territoire .bnv-ca-univers-icon { color: var(--c-cat-territoire); }
.bnv-ca-univers-card--domaine    .bnv-ca-univers-icon { color: var(--c-cat-domaine); }
.bnv-ca-univers-card--food-drink .bnv-ca-univers-icon { color: #B85C18; }
.bnv-ca-univers-card h2 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     1.35rem;
    font-weight:   400;
    color:         var(--c-pierre, #2D2A26);
    margin:        0;
    line-height:   1.2;
}
.bnv-ca-univers-card p {
    font-size:  .875rem;
    color:      var(--c-schiste, #4A4540);
    line-height: 1.6;
    margin:     0;
    flex:       1;
}
.bnv-ca-univers-count {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          var(--c-pierre-clair, #8A857F);
    margin-top:     auto;
}
@media (max-width: 900px) { .bnv-ca-univers-inner { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .bnv-ca-univers-inner { grid-template-columns: 1fr; } }

/* â”€â”€ Grille d'articles â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-ca-section-eyebrow {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin-bottom:  12px;
}
.bnv-ca-section-title {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     clamp(1.6rem, 3vw, 2.2rem);
    font-weight:   300;
    color:         var(--c-pierre, #2D2A26);
    margin-bottom: 36px;
}
.bnv-ca-recents {
    padding: 72px 24px;
    background: var(--c-linge, #F0EDE5);
}
.bnv-ca-recents-inner { max-width: 1100px; margin: 0 auto; }

.bnv-ca-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (max-width: 900px) { .bnv-ca-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .bnv-ca-grid { grid-template-columns: 1fr; } }

/* â”€â”€ Carte article â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-ca-card {
    background:     #fff;
    border:         1px solid var(--c-bordure, #D8D4CC);
    display:        flex;
    flex-direction: column;
    overflow:       hidden;
    transition:     border-color .2s, box-shadow .2s;
    position:       relative; /* stretched-link */
}
.bnv-ca-card:hover {
    border-color: var(--c-or, #C4922A);
    box-shadow:   0 4px 16px rgba(45,42,38,.07);
}
.bnv-ca-card-img { overflow: hidden; }
.bnv-ca-card-img img {
    width: 100%; height: 200px;
    object-fit: cover; display: block;
    transition: transform .4s;
}
.bnv-ca-card:hover .bnv-ca-card-img img { transform: scale(1.03); }
.bnv-ca-card-body { padding: 20px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.bnv-ca-card-cat {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding:        3px 7px;
    border-radius:  1px;
    display:        inline-block;
}
.bnv-ca-card-cat--vin        { background: rgba(122,62,44,.1);  color: var(--c-cat-vin); }
.bnv-ca-card-cat--terroir    { background: rgba(42,107,74,.1);  color: var(--c-cat-terroir); }
.bnv-ca-card-cat--territoire { background: rgba(58,82,120,.1);  color: var(--c-cat-territoire); }
.bnv-ca-card-cat--domaine    { background: rgba(196,146,42,.1); color: var(--c-or-fonce, #A37820); }
.bnv-ca-card-cat--food-drink { background: rgba(184,92,24,.1);  color: #B85C18; }
.bnv-ca-card-body h3, .bnv-ca-card-body h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:   1.1rem;
    font-weight: 400;
    color:       var(--c-pierre, #2D2A26);
    line-height: 1.25;
    margin:      0;
}
.bnv-ca-card-body h3 a, .bnv-ca-card-body h2 a {
    color:           inherit;
    text-decoration: none !important;
}
.bnv-ca-card-body h3 a:hover, .bnv-ca-card-body h2 a:hover { color: var(--c-or, #C4922A); }
/* stretched-link : toute la carte est cliquable via le lien du titre */
.bnv-ca-card .bnv-ca-card-link::after {
    content:  '';
    position: absolute;
    inset:    0;
    z-index:  1;
}
.bnv-ca-card .bnv-ca-card-cat { position: relative; z-index: 2; }
.bnv-ca-card-body p {
    font-size:   .875rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.6;
    margin:      0;
}
.bnv-ca-card-meta {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .08em;
    color:          var(--c-pierre-clair, #8A857F);
    margin-top:     auto;
    display:        flex;
    gap:            8px;
}

/* â”€â”€ Sections par catÃ©gorie â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-ca-cat-section {
    padding:       60px 24px;
    border-top:    1px solid var(--c-bordure, #D8D4CC);
}
.bnv-ca-cat-section:nth-child(odd) { background: var(--c-craie, #FAFAF5); }
.bnv-ca-cat-section-inner {
    max-width: 1100px;
    margin:    0 auto;
    display:   grid;
    grid-template-columns: 320px 1fr;
    gap:       56px;
    align-items: start;
}
.bnv-ca-cat-section-head {}
.bnv-ca-cat-badge {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding:        4px 10px;
    display:        inline-block;
    margin-bottom:  14px;
}
.bnv-ca-cat-badge--vin        { background: rgba(122,62,44,.12);  color: var(--c-cat-vin); }
.bnv-ca-cat-badge--terroir    { background: rgba(42,107,74,.12);  color: var(--c-cat-terroir); }
.bnv-ca-cat-badge--territoire { background: rgba(58,82,120,.12);  color: var(--c-cat-territoire); }
.bnv-ca-cat-badge--domaine    { background: rgba(196,146,42,.12); color: var(--c-or-fonce, #A37820); }
.bnv-ca-cat-badge--food-drink { background: rgba(184,92,24,.12);  color: #B85C18; }
.bnv-ca-cat-section-head h2 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     1.25rem;
    font-weight:   300;
    color:         var(--c-pierre, #2D2A26);
    line-height:   1.4;
    margin-bottom: 16px;
}
.bnv-ca-cat-see-all {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          var(--c-or-fonce, #A37820) !important;
    text-decoration: none !important;
    border-bottom:  1px solid rgba(163,120,32,.35);
    padding-bottom: 1px;
}
.bnv-ca-cat-list { list-style: none; padding: 0; margin: 0; }
.bnv-ca-cat-list li {
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
    padding:       12px 0;
}
.bnv-ca-cat-list li:first-child { border-top: 1px solid var(--c-bordure, #D8D4CC); }
.bnv-ca-cat-list a {
    font-family:     var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:       1.05rem;
    color:           var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    transition:      color .15s;
}
.bnv-ca-cat-list a:hover { color: var(--c-or, #C4922A) !important; }
@media (max-width: 768px) { .bnv-ca-cat-section-inner { grid-template-columns: 1fr; gap: 28px; } }

/* â•â• SINGLE ARTICLE â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bnv-carnet-single { font-family: var(--font-body, 'DM Sans', sans-serif); }

/* â”€â”€ Image hÃ©ro â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-cs-hero-img {
    position:   relative;
    height:     560px;
    overflow:   hidden;
}
.bnv-cs-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bnv-cs-hero-img-overlay {
    position:   absolute;
    inset:      0;
    background: linear-gradient(to bottom, rgba(20,16,12,.15) 0%, rgba(20,16,12,.92) 100%);
}
@media (max-width: 767px) { .bnv-cs-hero-img { height: 360px; } .bnv-cs-header--over-img { margin-top: -240px; } }

/* â”€â”€ En-tÃªte article â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-cs-header { background: var(--c-pierre, #2D2A26); }
.bnv-cs-header--over-img {
    position:       relative;
    margin-top:     -320px;
    z-index:        10;
    background:     transparent;
}
.bnv-cs-header--plain { padding-top: 0; background: var(--c-pierre, #2D2A26); }
.bnv-cs-header-inner {
    max-width: 820px;
    margin:    0 auto;
    padding:   48px 24px 56px;
}
.bnv-cs-breadcrumb {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          rgba(240,237,229,.45);
    display:        flex;
    flex-wrap:      wrap;
    gap:            6px;
    align-items:    center;
    margin-bottom:  20px;
}
.bnv-cs-breadcrumb a {
    color:           inherit !important;
    text-decoration: none !important;
}
.bnv-cs-breadcrumb a:hover { color: rgba(240,237,229,.8) !important; }
.bnv-cs-cat {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding:        4px 10px;
    display:        inline-block;
    margin-bottom:  16px;
}
.bnv-cs-cat--vin         { background: rgba(122,62,44,.25);  color: #E8B4A2; }
.bnv-cs-cat--terroir     { background: rgba(42,107,74,.25);  color: #8ED4B0; }
.bnv-cs-cat--territoire  { background: rgba(58,82,120,.25);  color: #A8C0E8; }
.bnv-cs-cat--domaine     { background: rgba(196,146,42,.2);  color: var(--c-or, #C4922A); }
.bnv-cs-cat--food-drink  { background: rgba(184,92,24,.25);  color: #F0C49A; }
.bnv-cs-title {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     clamp(2rem, 5vw, 3.2rem);
    font-weight:   300;
    color:         var(--c-linge, #F0EDE5);
    line-height:   1.1;
    margin-bottom: 20px;
    text-wrap:     balance;
}
.bnv-cs-meta {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          rgba(240,237,229,.4);
    display:        flex;
    gap:            10px;
}

/* â”€â”€ Corps + sidebar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-cs-body {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 0;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px 80px;
    align-items: start;
}
@media (max-width: 900px) {
    .bnv-cs-body { grid-template-columns: 1fr; }
    .bnv-cs-sidebar { order: -1; border-bottom: 1px solid var(--c-bordure); padding-bottom: 32px; margin-bottom: 32px; }
}

/* â”€â”€ Contenu Ã©ditorial â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-cs-content {
    padding:    56px 56px 0 0;
    min-width:  0;
}
@media (max-width: 900px) { .bnv-cs-content { padding: 40px 0 0; } }

.bnv-cs-content h2 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     clamp(1.5rem, 3vw, 2rem);
    font-weight:   300;
    color:         var(--c-pierre, #2D2A26);
    margin:        48px 0 16px;
    line-height:   1.25;
    padding-top:   32px;
    border-top:    1px solid var(--c-bordure, #D8D4CC);
}
.bnv-cs-content h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.bnv-cs-content h3 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     1.25rem;
    font-weight:   400;
    color:         var(--c-pierre, #2D2A26);
    margin:        28px 0 10px;
    line-height:   1.3;
}
.bnv-cs-content p {
    font-size:   .97rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.85;
    margin-bottom: 18px;
}
.bnv-cs-content ul, .bnv-cs-content ol {
    margin-bottom: 18px;
    padding-left:  20px;
}
.bnv-cs-content li {
    font-size:   .97rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.75;
    margin-bottom: 6px;
}
.bnv-cs-content strong { color: var(--c-pierre, #2D2A26); font-weight: 500; }
.bnv-cs-content a {
    color:           var(--c-or-fonce, #A37820) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}
.bnv-cs-content a:hover { color: var(--c-or, #C4922A) !important; }

/* En bref */
.bnv-ca-enbref {
    background:    var(--c-linge, #F0EDE5);
    border-left:   3px solid var(--c-or, #C4922A);
    padding:       20px 24px;
    margin-bottom: 36px;
    margin-top:    8px;
}
.bnv-ca-enbref-label {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--c-or-fonce, #A37820);
    margin-bottom:  10px;
    font-weight:    500;
}
.bnv-ca-enbref ul { margin: 0; padding-left: 18px; }
.bnv-ca-enbref li {
    font-size:   .9rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.7;
    margin-bottom: 4px;
}

/* FAQ */
.bnv-ca-faq { margin-top: 48px; }
.bnv-ca-faq h2 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     1.6rem;
    font-weight:   300;
    color:         var(--c-pierre, #2D2A26);
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom:  1px solid var(--c-bordure, #D8D4CC);
}
.bnv-ca-faq-item {
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
    padding:       16px 0;
}
.bnv-ca-faq-item h3 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     1.1rem;
    font-weight:   400;
    color:         var(--c-pierre, #2D2A26);
    margin-bottom: 8px;
}
.bnv-ca-faq-item p {
    font-size:   .92rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.75;
    margin:      0;
}

/* DÃ©couvrir avec Benastra */
.bnv-ca-decouvrir {
    background:    var(--c-craie, #FAFAF5);
    border:        1px solid var(--c-bordure, #D8D4CC);
    padding:       28px 28px;
    margin-top:    48px;
}
.bnv-ca-decouvrir-label {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--c-or-fonce, #A37820);
    margin-bottom:  10px;
    display:        block;
}
.bnv-ca-decouvrir p { font-size: .92rem; color: var(--c-schiste); line-height: 1.7; margin-bottom: 14px; }
.bnv-ca-decouvrir-btn {
    display:         inline-block;
    font-family:     var(--font-mono, 'DM Mono', monospace);
    font-size:       9px;
    letter-spacing:  .12em;
    text-transform:  uppercase;
    padding:         10px 22px;
    background:      var(--c-pierre, #2D2A26);
    color:           var(--c-linge, #F0EDE5) !important;
    text-decoration: none !important;
    transition:      background .2s;
}
.bnv-ca-decouvrir-btn:hover { background: var(--c-or, #C4922A); }

/* â”€â”€ Sidebar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bnv-cs-sidebar {
    padding:     56px 0 0 40px;
    position:    sticky;
    top:         32px;
    border-left: 1px solid var(--c-bordure, #D8D4CC);
}
@media (max-width: 900px) { .bnv-cs-sidebar { padding: 32px 0 0; border-left: none; position: static; } }

.bnv-cs-related-label, .bnv-cs-produit-label {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--c-or-fonce, #A37820);
    margin-bottom:  12px;
    display:        block;
}
.bnv-cs-related ul { list-style: none; padding: 0; margin: 0 0 32px; }
.bnv-cs-related li { border-bottom: 1px solid var(--c-bordure); padding: 10px 0; }
.bnv-cs-related a {
    font-family:     var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:       1rem;
    color:           var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    line-height:     1.35;
    display:         block;
}
.bnv-cs-related a:hover { color: var(--c-or, #C4922A) !important; }

.bnv-cs-produit-cta { margin-bottom: 32px; }
.bnv-cs-produit-btn {
    display:         inline-block;
    font-family:     var(--font-mono, 'DM Mono', monospace);
    font-size:       9px;
    letter-spacing:  .1em;
    text-transform:  uppercase;
    padding:         10px 16px;
    border:          1px solid var(--c-bordure);
    color:           var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    width:           100%;
    text-align:      center;
    transition:      border-color .2s;
}
.bnv-cs-produit-btn:hover { border-color: var(--c-or); color: var(--c-or) !important; }

.bnv-cs-back {
    font-family:     var(--font-mono, 'DM Mono', monospace);
    font-size:       9px;
    letter-spacing:  .1em;
    text-transform:  uppercase;
    color:           var(--c-pierre-clair, #8A857F) !important;
    text-decoration: none !important;
}
.bnv-cs-back:hover { color: var(--c-pierre, #2D2A26) !important; }

/* â•â• ARCHIVE CATÃ‰GORIE â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.bnv-carnet-tax {}
.bnv-ca-tax-header {
    padding:    64px 24px 56px;
    background: var(--c-pierre, #2D2A26);
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.bnv-ca-tax-header-inner { max-width: 720px; margin: 0 auto; }
.bnv-ca-tax-header h1 {
    font-family:   var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size:     clamp(2rem, 4vw, 3rem);
    font-weight:   300;
    color:         var(--c-linge, #F0EDE5);
    margin:        12px 0 14px;
}
.bnv-ca-tax-desc { font-size: .95rem; color: rgba(240,237,229,.6); line-height: 1.7; }
.bnv-ca-tax-body { padding: 56px 24px 80px; max-width: 1100px; margin: 0 auto; }
.bnv-ca-grid--tax { margin-bottom: 40px; }
.bnv-ca-tax-footer { text-align: center; }

/* â•â• MOBILE GLOBAL â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
@media (max-width: 767px) {
    .bnv-ca-header  { padding: 56px 20px 48px; }
    .bnv-ca-univers { padding: 48px 20px; }
    .bnv-ca-recents { padding: 48px 20px; }
    .bnv-cs-header-inner { padding: 36px 20px 44px; }
    .bnv-ca-tax-body { padding: 36px 20px 56px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   MODES D'ACHAT — section boutique + home
   ══════════════════════════════════════════════════════════════════════════ */
.bn-modes-achat {
    padding:    24px 24px;
    border-top: 1px solid var(--c-bordure, #D8D4CC);
}
.bn-modes-achat--home {
    border-top:    none;
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
    background:    var(--c-sable, #F5F0E8);
    padding:       32px 24px;
}
.bn-modes-achat-inner {
    max-width: 1200px;
    margin:    0 auto;
}
.bn-modes-achat-eyebrow {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin:         0 0 6px;
}
.bn-modes-achat-section-title {
    font-size:   1.5rem;
    font-weight: 600;
    margin:      0 0 6px;
    color:       var(--c-pierre, #2D2A26);
    text-wrap:   balance;
}
.bn-modes-achat-section-sub {
    font-size:  1rem;
    color:      var(--c-schiste, #4A4540);
    margin:     0 0 16px;
    font-style: italic;
}
.bn-modes-achat-intro {
    color:      var(--c-schiste, #4A4540);
    margin:     0 0 18px;
    max-width:  620px;
    line-height: 1.65;
}
.bn-modes-achat-cards {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   20px;
}
.bn-modes-achat-card {
    background:     #fff;
    border:         1px solid var(--c-bordure, #D8D4CC);
    border-top:     3px solid var(--c-or, #C4922A);
    border-radius:  6px;
    padding:        18px 18px;
    display:        flex;
    flex-direction: column;
    gap:            0;
    transition:     box-shadow .2s, border-color .2s;
}
.bn-modes-achat-card:hover {
    box-shadow:   0 4px 24px rgba(0,0,0,.07);
}
.bn-modes-achat-card-eyebrow {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin:         0 0 10px;
}
.bn-modes-achat-card-title {
    font-size:   1.05rem;
    font-weight: 600;
    margin:      0 0 10px;
    color:       var(--c-pierre, #2D2A26);
    line-height: 1.3;
    text-wrap:   balance;
}
.bn-modes-achat-card-desc {
    color:       var(--c-schiste, #4A4540);
    font-size:   .875rem;
    flex:        1;
    margin:      0 0 24px;
    line-height: 1.6;
}
.bn-modes-achat-card-btn {
    display:         inline-block;
    background:      var(--c-pierre, #2D2A26);
    color:           #F5F0E8 !important;
    text-decoration: none;
    padding:         9px 18px;
    border-radius:   4px;
    font-size:       .80rem;
    letter-spacing:  .06em;
    font-weight:     500;
    text-align:      center;
    transition:      background .2s, color .2s;
    align-self:      flex-start;
    width:           100%;
    box-sizing:      border-box;
}
.bn-modes-achat-card-btn:hover {
    background: var(--c-or, #C4922A);
    color:      var(--c-pierre, #2D2A26) !important;
}

/* Home — 3 cartes côte à côte */
.bn-modes-achat-cards--three { grid-template-columns: repeat(3, 1fr); }

/* Mobile — cartes empilées */
@media (max-width: 900px) {
    .bn-modes-achat-cards--three { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .bn-modes-achat { padding: 40px 16px; }
    .bn-modes-achat--home { padding: 48px 16px; }
    .bn-modes-achat-cards { grid-template-columns: 1fr; }
    .bn-modes-achat-card { padding: 24px 20px; }
    .bn-modes-achat-card-btn { padding: 14px 20px; font-size: .88rem; }
}

/* Stagger — cartes "Nos formules" */
.bn-reveal-ready [data-bn-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .55s ease, transform .55s ease;
}
.bn-reveal-ready [data-bn-reveal].bn-visible {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .bn-reveal-ready [data-bn-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Panneaux version boutique (remplace les cartes à bordure) ── */
.bn-achat-panels {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   0;
}
.bn-achat-panel {
    position:       relative;
    overflow:       hidden;
    padding:        48px 44px 44px;
    display:        flex;
    flex-direction: column;
}
.bn-achat-panel--light { background: var(--c-linge, #F0EDE5); }
.bn-achat-panel--dark  { background: var(--c-pierre, #2D2A26); }

/* Grand chiffre décoratif en filigrane */
.bn-achat-num {
    position:       absolute;
    bottom:         -20px;
    right:          20px;
    font-family:    var(--font-display, 'Cormorant Garamond', serif);
    font-weight:    300;
    font-size:      10rem;
    line-height:    1;
    pointer-events: none;
    user-select:    none;
    opacity:        .06;
    color:          var(--c-pierre, #2D2A26);
}
.bn-achat-panel--dark .bn-achat-num { color: #fff; }

/* Eyebrow — réutilise .bn-modes-achat-card-eyebrow, surcharge couleur dark */
.bn-achat-panel--dark .bn-modes-achat-card-eyebrow { color: rgba(240,237,229,.5); }

/* Titre */
.bn-achat-title {
    font-family: var(--font-display, 'Cormorant Garamond', serif);
    font-style:  italic;
    font-weight: 300;
    font-size:   clamp(1.55rem, 2vw, 1.95rem);
    line-height: 1.2;
    margin:      0 0 14px;
}
.bn-achat-panel--light .bn-achat-title { color: var(--c-pierre, #2D2A26); }
.bn-achat-panel--dark  .bn-achat-title { color: var(--c-linge, #F0EDE5); }

/* Description */
.bn-achat-desc {
    font-size:   .9rem;
    line-height: 1.65;
    margin:      0 0 32px;
    flex:        1;
}
.bn-achat-panel--light .bn-achat-desc { color: var(--c-pierre-clair, #8A857F); }
.bn-achat-panel--dark  .bn-achat-desc { color: rgba(240,237,229,.65); }

/* Boutons */
.bn-achat-btn {
    display:         block;
    font-family:     var(--font-body, 'DM Sans', sans-serif);
    font-size:       .8rem;
    font-weight:     500;
    letter-spacing:  .07em;
    text-transform:  uppercase;
    text-decoration: none !important;
    text-align:      center;
    padding:         14px 28px;
    box-sizing:      border-box;
    transition:      opacity .18s;
    align-self:      flex-start;
    width:           100%;
}
.bn-achat-btn:hover { opacity: .8; }
.bn-achat-panel--light .bn-achat-btn {
    background: var(--c-pierre, #2D2A26);
    color:      var(--c-linge, #F0EDE5) !important;
}
.bn-achat-panel--dark .bn-achat-btn {
    background: var(--c-or, #C4922A);
    color:      #fff !important;
}

/* Mobile — panneaux empilés */
@media (max-width: 640px) {
    .bn-achat-panels { grid-template-columns: 1fr; }
    .bn-achat-panel  { padding: 36px 24px 32px; }
    .bn-achat-num    { font-size: 7rem; }
}

/* ── Intro CTA groupe sur fiche produit ── */
.bn-product-groupes-intro {
    font-size:   .8rem;
    color:       var(--c-schiste, #4A4540);
    margin:      0 0 6px;
    font-style:  italic;
}

/* ══════════════════════════════════════════════════════════════════════════
   FOOTER NAV — section Composer / Offrir
   ══════════════════════════════════════════════════════════════════════════ */
.bn-footer-nav {
    background: var(--c-pierre, #2D2A26);
    padding:    48px 24px;
    border-top: 1px solid rgba(255,255,255,.08);
}
.bn-footer-nav-inner {
    max-width: 900px;
    margin:    0 auto;
    display:   flex;
    gap:       64px;
}
.bn-footer-nav-title {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin:         0 0 14px;
}
.bn-footer-nav-col ul {
    list-style: none;
    margin:     0;
    padding:    0;
    display:    flex;
    flex-direction: column;
    gap:        10px;
}
.bn-footer-nav-col a {
    color:           #C8C4BC;
    text-decoration: none;
    font-size:       .875rem;
    transition:      color .15s;
}
.bn-footer-nav-col a:hover { color: #fff; }

@media (max-width: 480px) {
    .bn-footer-nav { padding: 36px 16px; }
    .bn-footer-nav-inner { gap: 40px; }
}

/* ══════════════════════════════════════════════════════════════════
   TICKER LIVRAISON — v3.3.1 — défilement gauche → droite (sens camion)
   ══════════════════════════════════════════════════════════════════ */

.bn-ticker-bar {
    background: var(--c-pierre, #2D2A26);
    height:     38px;
    overflow:   hidden;
    display:    flex;
    align-items: center;
    position:   relative;
    z-index:    200;
}

/* Texte accessible masqué visuellement */
.bn-ticker-sr-only {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
}

/* Piste : 4 copies pour un défilement sans saut visible */
.bn-ticker-track {
    display:     inline-flex;
    align-items: center;
    white-space: nowrap;
    /* Gauche → droite : démarre décalé de -50% (copies 3+4 visibles)
       puis se déplace vers 0 (copies 1+2 visibles = identiques → seamless) */
    animation: bn-ticker-ltr 45s linear infinite;
    will-change: transform;
}

@keyframes bn-ticker-ltr {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); }
}

/* Pause au survol */
.bn-ticker-bar:hover .bn-ticker-track {
    animation-play-state: paused;
}

.bn-ticker-item {
    display:        inline-flex;
    align-items:    center;
    gap:            10px;
    padding:        0 72px;
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      10px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color:          var(--c-linge, #F0EDE5);
    line-height:    1;
}

.bn-ticker-item svg {
    width:      15px;
    height:     15px;
    flex-shrink: 0;
    color:       var(--c-or, #C4922A);
    stroke-width: 1.5;
}

/* ══════════════════════════════════════════════════════════════════
   POPUP NEWSLETTER — v3.2.0
   ══════════════════════════════════════════════════════════════════ */

.bn-nl-overlay {
    position:       fixed;
    inset:          0;
    background:     rgba(45, 42, 38, .65);
    z-index:        99990;
    display:        flex;
    align-items:    center;
    justify-content: center;
    padding:        20px;
    backdrop-filter: blur(3px);
}
/* Correctif : forcer display:none quand l'attribut hidden est présent
   (le sélecteur de classe a la même spécificité que [hidden] dans la feuille UA) */
.bn-nl-overlay[hidden] { display: none !important; }

.bn-nl-box {
    background:  var(--c-craie, #FAFAF5);
    max-width:   480px;
    width:       100%;
    padding:     48px 40px 40px;
    position:    relative;
    border-radius: 2px;
}

.bn-nl-close {
    position:    absolute;
    top:         14px;
    right:       16px;
    background:  none;
    border:      none;
    font-size:   18px;
    color:       var(--c-pierre-clair, #8A857F);
    cursor:      pointer;
    padding:     4px 8px;
    line-height: 1;
    transition:  color .15s;
}
.bn-nl-close:hover { color: var(--c-pierre, #2D2A26); }

.bn-nl-eyebrow {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color:          var(--c-or, #C4922A);
    margin:         0 0 12px;
}

.bn-nl-title {
    font-family: var(--font-display, 'Cormorant Garamond', serif);
    font-size:   clamp(1.8rem, 3.5vw, 2.4rem);
    font-weight: 300;
    font-style:  italic;
    color:       var(--c-pierre, #2D2A26);
    margin:      0 0 14px;
    line-height: 1.15;
}

.bn-nl-desc {
    font-size:   .92rem;
    color:       var(--c-schiste, #4A4540);
    line-height: 1.65;
    margin:      0 0 6px;
}

.bn-nl-form {
    display: flex;
    gap:     8px;
    margin:  20px 0 12px;
}

.bn-nl-input {
    flex:        1;
    border:      1px solid var(--c-bordure, #D8D4CC);
    background:  #fff;
    padding:     12px 14px;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size:   .9rem;
    color:       var(--c-pierre, #2D2A26);
    border-radius: 1px;
    outline:     none;
    transition:  border-color .15s;
    min-width:   0;
}
.bn-nl-input:focus { border-color: var(--c-or, #C4922A); }

.bn-nl-submit {
    background:     var(--c-pierre, #2D2A26);
    color:          var(--c-linge, #F0EDE5);
    border:         none;
    padding:        12px 20px;
    font-family:    var(--font-body, 'DM Sans', sans-serif);
    font-size:      .82rem;
    font-weight:    500;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor:         pointer;
    border-radius:  1px;
    transition:     background .18s;
    white-space:    nowrap;
}
.bn-nl-submit:hover { background: var(--c-schiste, #4A4540); }

.bn-nl-legal {
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      9px;
    letter-spacing: .1em;
    color:          var(--c-pierre-clair, #8A857F);
    text-transform: uppercase;
    margin:         0;
}

.bn-nl-success {
    margin-top: 20px;
    padding:    14px 18px;
    background: rgba(196, 146, 42, .08);
    border-left: 2px solid var(--c-or, #C4922A);
    font-size:  .92rem;
    color:      var(--c-schiste, #4A4540);
}
.bn-nl-success p { margin: 0; }

@media (max-width: 480px) {
    .bn-nl-box   { padding: 40px 24px 32px; }
    .bn-nl-form  { flex-direction: column; }
    .bn-nl-submit { width: 100%; padding: 14px; }
}

/* ══════════════════════════════════════════════════════════════════
   SECTION INSTAGRAM — home page · v3.3.5
   ══════════════════════════════════════════════════════════════════ */

.bnv-instagram {
    padding:    72px 24px;
    background: var(--c-linge, #F0EDE5);
    text-align: center;
}

.bnv-instagram-head {
    margin-bottom: 40px;
}

.bnv-instagram-eyebrow {
    display:        inline-flex;
    align-items:    center;
    gap:            7px;
    font-family:    var(--font-mono, 'DM Mono', monospace);
    font-size:      10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--c-pierre-clair, #8A857F);
    margin:         0 0 14px;
}
.bnv-instagram-eyebrow svg {
    width:  14px;
    height: 14px;
    color:  var(--c-or, #C4922A);
    flex-shrink: 0;
}

.bnv-instagram-head h2 {
    font-family: var(--font-display, 'Cormorant Garamond', serif);
    font-size:   clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 300;
    font-style:  italic;
    color:       var(--c-pierre, #2D2A26);
    margin:      0 0 8px;
    line-height: 1.2;
}

.bnv-instagram-head p {
    font-size:  .9rem;
    color:      var(--c-pierre-clair, #8A857F);
    margin:     0;
}

/* Grille embeds Instagram natifs (Meta Embeds plugin) — 3 colonnes */
.bnv-instagram-posts {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   12px;
    max-width:             1100px;
    margin:                0 auto 36px;
    align-items:           start;
}

/* Override Instagram blockquote inline styles */
.bnv-instagram-posts blockquote.instagram-media {
    margin:    0 !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width:     100% !important;
    box-sizing: border-box;
    border-radius: 2px !important;
}

/* Iframe rendu par embed.js — pleine largeur colonne */
.bnv-instagram-posts iframe {
    width:      100% !important;
    max-width:  100% !important;
    display:    block;
}

/* Placeholder LightWidget (conservé pour usage futur) */
.bnv-instagram-widget {
    max-width: 1100px;
    margin:    0 auto 36px;
    overflow:  hidden;
}
.bnv-instagram-placeholder {
    background:  var(--c-craie, #FAFAF5);
    border:      1px dashed var(--c-bordure, #D8D4CC);
    padding:     48px 24px;
    text-align:  center;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size:   10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color:       var(--c-pierre-clair, #8A857F);
}

/* Grille 6 colonnes — tuiles carrées (conservé pour usage futur) */
.bnv-instagram-grid {
    display:               grid;
    grid-template-columns: repeat(6, 1fr);
    gap:                   4px;
    max-width:             1100px;
    margin:                0 auto 36px;
}

.bnv-instagram-tile {
    display:  block;
    aspect-ratio: 1;
    overflow: hidden;
    position: relative;
}

.bnv-instagram-tile img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
    transition: transform .4s ease, filter .4s ease;
}

.bnv-instagram-tile::after {
    content:    '';
    position:   absolute;
    inset:      0;
    background: rgba(196, 146, 42, .2);
    opacity:    0;
    transition: opacity .3s;
    pointer-events: none;
}

.bnv-instagram-tile:hover img  { transform: scale(1.05); filter: brightness(.88); }
.bnv-instagram-tile:hover::after { opacity: 1; }

/* Bouton CTA Instagram */
.bnv-instagram-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             9px;
    font-family:     var(--font-body, 'DM Sans', sans-serif);
    font-weight:     500;
    font-size:       .8rem;
    letter-spacing:  .12em;
    text-transform:  uppercase;
    padding:         15px 40px;
    border:          1px solid var(--c-bordure, #D8D4CC);
    color:           var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    transition:      border-color .2s, color .2s;
}
.bnv-instagram-btn svg   { width: 16px; height: 16px; flex-shrink: 0; }
.bnv-instagram-btn:hover { border-color: var(--c-or, #C4922A); color: var(--c-or, #C4922A) !important; }

/* Responsive */
@media (max-width: 900px) {
    .bnv-instagram-grid  { grid-template-columns: repeat(3, 1fr); }
    .bnv-instagram-posts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .bnv-instagram        { padding: 48px 16px; }
    .bnv-instagram-grid   { grid-template-columns: repeat(2, 1fr); gap: 3px; }
    .bnv-instagram-posts  { grid-template-columns: 1fr; }
    .bnv-instagram-widget { margin-bottom: 28px; }
    .bnv-instagram-btn    { padding: 14px 28px; }
}

/* ══════════════════════════════════════════════════════════════════
   CORRECTIONS UI — v3.3.9
   ══════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════
   HOME PAGE — CSS migré depuis inline <style> — v3.3.9
   Permet d'éditer post_content sans risque de casser le design
   ══════════════════════════════════════════════════════════════════ */

/* Base */
.bnv-home { font-family: var(--font-body, 'DM Sans', sans-serif); }

/* HERO */
.bnv-hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}
.bnv-hero-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 120px 24px 80px;
    width: 100%;
}
.bnv-hero-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--c-pierre, #2D2A26);
    margin-bottom: 20px;
}
.bnv-hero h1 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    font-weight: 300;
    color: var(--c-linge, #F0EDE5);
    line-height: 1.1;
    margin-bottom: 20px;
    text-wrap: balance;
    max-width: 720px;
}
.bnv-hero h1 em { font-style: italic; color: var(--c-or, #C4922A); }
.bnv-hero-sub {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-style: italic;
    font-size: 1.15rem;
    color: rgba(240,237,229,.7);
    line-height: 1.6;
    margin-bottom: 36px;
    max-width: 540px;
}
.bnv-hero-cta {
    display: inline-block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-weight: 500;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 15px 40px;
    background-color: var(--c-pierre, #2D2A26);
    color: var(--c-linge, #F0EDE5) !important;
    text-decoration: none !important;
    transition: background-color .2s;
}
.bnv-hero-cta:hover {
    background-color: var(--c-or, #C4922A) !important;
    color: var(--c-linge, #F0EDE5) !important;
}
.bnv-hero-bg-placeholder {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--c-pierre, #2D2A26);
}
.bnv-hero-bg-placeholder-inner {
    text-align: center;
    border: 1px dashed rgba(240,237,229,.2);
    padding: 24px 32px;
    border-radius: 2px;
}
.bnv-hero-bg-placeholder svg { width: 32px; height: 32px; color: rgba(240,237,229,.25); display: block; margin: 0 auto 10px; }
.bnv-hero-bg-placeholder p  { font-family: var(--font-mono, 'DM Mono', monospace); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: rgba(240,237,229,.3); line-height: 1.6; }

/* Scroll indicator */
.bnv-hero-scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    color: rgba(240, 237, 229, 0.5);
    animation: bnv-bounce 2.4s ease-in-out infinite;
    pointer-events: none;
}
.bnv-hero-scroll svg { width: 30px; height: 30px; display: block; }
@keyframes bnv-bounce {
    0%, 100% { transform: translateX(-50%) translateY(0);    opacity: .5; }
    50%       { transform: translateX(-50%) translateY(10px); opacity: .9; }
}
@media (max-width: 767px) { .bnv-hero-scroll { bottom: 24px; } }

/* RÉASSURANCE STRIP */
.bnv-reassurance {
    background: var(--c-linge, #F0EDE5);
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
    padding: 0 24px;
}
.bnv-reassurance-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 0;
}
.bnv-reassurance-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    border-right: 1px solid var(--c-bordure, #D8D4CC);
    flex: 1;
    justify-content: center;
}
.bnv-reassurance-item:last-child { border-right: none; }
.bnv-reassurance-item svg  { width: 18px; height: 18px; flex-shrink: 0; color: var(--c-or, #C4922A); }
.bnv-reassurance-item span {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 12px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--c-pierre, #2D2A26);
    line-height: 1.5;
    white-space: normal;
}
@media (max-width: 640px) {
    .bnv-reassurance-inner { flex-direction: column; gap: 0; }
    .bnv-reassurance-item  { border-right: none; border-bottom: 1px solid var(--c-bordure, #D8D4CC); padding: 14px 24px; justify-content: flex-start; }
    .bnv-reassurance-item:last-child { border-bottom: none; }
}

/* ACCROCHE */
.bnv-accroche {
    padding: 72px 24px;
    background-color: var(--c-craie, #FAFAF5);
    text-align: center;
}
.bnv-accroche-entity {
    max-width: 680px;
    margin: 0 auto 40px;
    font-size: .9rem;
    color: var(--c-pierre-clair, #8A857F);
    line-height: 1.75;
}
.bnv-accroche blockquote {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 300;
    font-style: italic;
    color: var(--c-pierre, #2D2A26);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.5;
    border: none;
    padding: 0;
}
.bnv-accroche cite {
    display: block;
    margin-top: 20px;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-pierre-clair, #8A857F);
    font-style: normal;
}

/* ENCART VIGNERON */
.bnv-vigneron {
    padding: 72px 24px;
    background: var(--c-linge, #F0EDE5);
}
.bnv-vigneron-inner {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}
.bnv-vigneron-photo { width: 100%; }
.bnv-vigneron-photo img { width: 100%; height: 480px; object-fit: cover; display: block; }
.bnv-vigneron-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin-bottom: 14px;
}
.bnv-vigneron-text h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 300;
    color: var(--c-pierre, #2D2A26);
    margin-bottom: 20px;
    line-height: 1.2;
}
.bnv-vigneron-text h2 em { font-style: italic; }
.bnv-vigneron-text p {
    font-size: .95rem;
    color: var(--c-schiste, #4A4540);
    line-height: 1.8;
    margin-bottom: 14px;
}
.bnv-vigneron-link {
    display: inline-block;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-or-fonce, #A37820) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(163,120,32,.4);
    padding-bottom: 2px;
    margin-top: 8px;
    transition: border-color .2s;
}
.bnv-vigneron-link:hover { border-color: var(--c-or-fonce, #A37820); }
@media (max-width: 768px) {
    .bnv-vigneron-inner      { grid-template-columns: 1fr; gap: 32px; }
    .bnv-vigneron-photo img  { height: 360px; object-position: center 15%; }
}

/* NOS VINS — grille */
.bnv-vins {
    padding: 72px 24px;
    background-color: var(--c-craie, #FAFAF5);
}
.bnv-vins-head {
    text-align: center;
    margin-bottom: 48px;
}
.bnv-vins-head h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    font-weight: 300;
    color: var(--c-pierre, #2D2A26);
    margin-bottom: 8px;
}
.bnv-vins-head p { font-size: .9rem; color: var(--c-pierre-clair, #8A857F); text-align: center !important; }
.bnv-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto 40px;
}
@media (max-width: 900px) { .bnv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .bnv-grid { grid-template-columns: 1fr; } }
.bnv-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--c-bordure, #D8D4CC);
    overflow: hidden;
    text-decoration: none !important;
    transition: border-color .2s, box-shadow .2s;
}
.bnv-card:hover { border-color: var(--c-or, #C4922A); box-shadow: 0 4px 20px rgba(45,42,38,.08); }
.bnv-card img { width: 100%; height: 260px; object-fit: cover; display: block; }
@media (max-width: 560px) { .bnv-card img { height: 340px; object-fit: contain; background-color: var(--c-linge, #F0EDE5); } }
.bnv-card-body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.bnv-card-title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--c-pierre, #2D2A26);
    margin: 0;
    line-height: 1.2;
}
.bnv-card-hint {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--c-pierre-clair, #8A857F);
    line-height: 1.4;
}
.bnv-card-price { font-size: .9rem; color: var(--c-schiste, #4A4540); margin-top: auto; padding-top: 10px; }
.bnv-card-price .woocommerce-Price-amount { font-family: var(--font-mono, 'DM Mono', monospace); font-size: .85rem; }
.bnv-vins-footer { text-align: center; }
.bnv-vins-note  { font-size: .82rem; color: var(--c-pierre-clair, #8A857F); margin-bottom: 16px; }
.bnv-vins-cta {
    display: inline-block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-weight: 500;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 13px 36px;
    border: 1px solid var(--c-bordure, #D8D4CC);
    color: var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    transition: border-color .2s, color .2s;
}
.bnv-vins-cta:hover { border-color: var(--c-or, #C4922A); color: var(--c-or, #C4922A) !important; }

/* TERROIR */
.bnv-terroir-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 480px;
}
.bnv-terroir-img { position: relative; overflow: hidden; min-height: 480px; }
.bnv-terroir-img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: center; display: block; }
.bnv-terroir-content {
    background: var(--c-schiste, #4A4540);
    padding: 64px 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.bnv-terroir-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin-bottom: 14px;
}
.bnv-terroir-content h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 300;
    color: var(--c-linge, #F0EDE5);
    margin-bottom: 20px;
    line-height: 1.2;
}
.bnv-terroir-content p {
    color: rgba(240,237,229,.65);
    font-size: .95rem;
    line-height: 1.75;
    margin-bottom: 14px;
}
.bnv-terroir-link {
    display: inline-block;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(196,146,42,.4);
    padding-bottom: 2px;
    margin-top: 8px;
}
@media (max-width: 768px) {
    .bnv-terroir-section  { grid-template-columns: 1fr; }
    .bnv-terroir-img      { min-height: 260px; }
    .bnv-terroir-content  { padding: 40px 28px; }
}

/* CHIFFRES */
.bnv-chiffres {
    padding: 56px 24px;
    background-color: var(--c-pierre, #2D2A26);
    display: flex;
    justify-content: center;
    gap: 64px;
    flex-wrap: wrap;
}
.bnv-chiffre { text-align: center; }
.bnv-chiffre-n {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 3.5rem;
    font-weight: 300;
    color: var(--c-or, #C4922A);
    line-height: 1;
    display: block;
}
.bnv-chiffre-l {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: 9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(240,237,229,.5);
    display: block;
    margin-top: 8px;
}
@media (max-width: 480px) { .bnv-chiffres { gap: 36px; } }

/* CTA FINAL */
.bnv-final-cta {
    padding: 80px 24px;
    background: var(--c-craie, #FAFAF5);
    text-align: center;
    border-top: 1px solid var(--c-bordure, #D8D4CC);
}
.bnv-final-cta h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 300;
    font-style: italic;
    color: var(--c-pierre, #2D2A26);
    margin-bottom: 12px;
    line-height: 1.3;
}
.bnv-final-cta p { font-size: .9rem; color: var(--c-pierre-clair, #8A857F); margin-bottom: 28px; }
.bnv-final-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.bnv-final-btn-primary {
    display: inline-block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-weight: 500;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 15px 40px;
    background: var(--c-pierre, #2D2A26);
    color: var(--c-linge, #F0EDE5) !important;
    text-decoration: none !important;
    transition: background .2s;
}
.bnv-final-btn-primary:hover { background: var(--c-or, #C4922A); }
.bnv-final-btn-secondary {
    display: inline-block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-weight: 500;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 15px 40px;
    border: 1px solid var(--c-bordure, #D8D4CC);
    color: var(--c-pierre, #2D2A26) !important;
    text-decoration: none !important;
    transition: border-color .2s, color .2s;
}
.bnv-final-btn-secondary:hover { border-color: var(--c-or, #C4922A); color: var(--c-or, #C4922A) !important; }

/* ── 1. Photo vignes du terroir : remplit toute la hauteur de la colonne ── */
.bnv-terroir-img {
    position:   relative !important;
    overflow:   hidden   !important;
    min-height: 480px    !important;
}
.bnv-terroir-img img {
    position:        absolute !important;
    top:             0        !important;
    left:            0        !important;
    width:           100%     !important;
    height:          100%     !important;
    max-width:       none     !important;
    max-height:      none     !important;
    object-fit:      cover    !important;
    object-position: center   !important;
    display:         block    !important;
}
@media (max-width: 768px) {
    .bnv-terroir-img { min-height: 300px !important; }
}

/* ── 2. Photo Joseph : ne pas couper le haut du crâne sur mobile ── */
.bnv-vigneron-photo img {
    object-position: center top;
}
@media (max-width: 768px) {
    .bnv-vigneron-photo img {
        height:          360px      !important;
        object-position: center 15% !important;
    }
}

/* ── 3. Cartes vins : bouteille entière visible sur mobile ── */
@media (max-width: 560px) {
    .bnv-card img,
    .bnv-card img[class] {
        height: 340px !important;
        object-fit: contain !important;
        background-color: var(--c-linge, #F0EDE5) !important;
    }
}

/* ════════════════════════════════════════════════════════════════
   INTENT CADEAU — Configurateur carton / triptyque
   ════════════════════════════════════════════════════════════════ */

.bn-carton-intent {
    background: var(--c-bg-content, #FAFAF5);
    border: 1px solid var(--c-bordure, #D8D4CC);
    border-radius: 4px;
    padding: 20px 24px;
    margin: 0 0 0;
}

.bn-carton-intent-question {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .875rem;
    font-weight: 500;
    color: var(--tx-principal, #2D2A26);
    margin: 0 0 12px;
}

.bn-carton-intent-choices {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 0;
}

.bn-carton-intent-label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1.5px solid var(--c-bordure, #D8D4CC);
    border-radius: 3px;
    cursor: pointer;
    transition: border-color .18s, background .18s;
    background: #fff;
    user-select: none;
}

.bn-carton-intent-label:hover {
    border-color: var(--c-or, #C4922A);
}

.bn-carton-intent-label--active {
    border-color: var(--c-or, #C4922A);
    background: #FBF6EE;
}

.bn-carton-intent-label input[type="radio"] {
    accent-color: var(--c-or, #C4922A);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.bn-carton-intent-text {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .875rem;
    color: var(--tx-principal, #2D2A26);
    font-weight: 400;
}

.bn-carton-gift-msg {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--c-bordure, #D8D4CC);
    animation: bn-fade-in .2s ease;
}

@keyframes bn-fade-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: none; }
}

.bn-carton-gift-msg-label {
    display: block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 500;
    color: var(--tx-principal, #2D2A26);
    margin-bottom: 8px;
}

.bn-carton-gift-msg-optional {
    font-weight: 400;
    color: var(--tx-secondaire, #8A857F);
}

.bn-carton-gift-message {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid var(--c-bordure, #D8D4CC);
    border-radius: 3px;
    padding: 10px 12px;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .875rem;
    color: var(--tx-principal, #2D2A26);
    background: #fff;
    resize: vertical;
    min-height: 72px;
    line-height: 1.5;
    transition: border-color .18s;
}

.bn-carton-gift-message:focus {
    outline: none;
    border-color: var(--c-or, #C4922A);
}

.bn-carton-gift-msg-counter {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .75rem;
    color: var(--tx-secondaire, #8A857F);
    text-align: right;
    margin-top: 4px;
}

/* ════════════════════════════════════════════════════════════════
   PRODUCT PAGE — CTA cadeau discret
   ════════════════════════════════════════════════════════════════ */

.bn-product-cadeau-hint {
    margin: 8px 0 0;
    font-size: .8125rem;
    color: var(--tx-secondaire, #8A857F);
}

.bn-product-cadeau-link {
    color: var(--c-or-fonce, #A37820);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color .15s;
}

.bn-product-cadeau-link:hover {
    color: var(--c-or, #C4922A);
}

/* ════════════════════════════════════════════════════════════════
   PAGE OFFRIR BENASTRA
   ════════════════════════════════════════════════════════════════ */

.bn-offrir-wrap {
    --c-or: #C4922A;
    --c-or-fonce: #A37820;
    font-family: var(--font-body, 'DM Sans', sans-serif);
}

/* ── Section commune ── */
.bn-offrir-section-inner {
    max-width: 1080px;
    margin-inline: auto;
    padding: 72px 24px;
}

.bn-offrir-section-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .6875rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin: 0 0 14px;
}

.bn-offrir-section-title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 400;
    color: var(--tx-principal, #2D2A26);
    margin: 0 0 24px;
    text-wrap: balance;
    line-height: 1.2;
}

/* ── HERO ── */
.bn-offrir-hero {
    background: var(--c-bg-primary, #F4F0E8);
    text-align: center;
    padding: 0;
}

.bn-offrir-hero-inner {
    max-width: 680px;
    margin-inline: auto;
    padding: 80px 24px 72px;
}

.bn-offrir-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .625rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin: 0 0 18px;
}

.bn-offrir-h1 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(2.5rem, 7vw, 4rem);
    font-weight: 300;
    color: var(--tx-principal, #2D2A26);
    letter-spacing: .04em;
    line-height: 1.05;
    margin: 0 0 20px;
}

.bn-offrir-hero-sub {
    font-size: 1rem;
    color: var(--tx-secondaire, #8A857F);
    margin: 0 0 36px;
    line-height: 1.65;
}

.bn-offrir-hero-ctas {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ── CTAs ── */
.bn-offrir-cta-primary {
    display: inline-block;
    background: var(--tx-principal, #2D2A26);
    color: #F4F0E8;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 14px 28px;
    border-radius: 2px;
    text-decoration: none;
    transition: background .2s;
}

.bn-offrir-cta-primary:hover {
    background: #4A4540;
    color: #F4F0E8;
}

.bn-offrir-cta-secondary {
    display: inline-block;
    border: 1.5px solid var(--tx-principal, #2D2A26);
    color: var(--tx-principal, #2D2A26);
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 13px 28px;
    border-radius: 2px;
    text-decoration: none;
    transition: background .2s, color .2s;
}

.bn-offrir-cta-secondary:hover {
    background: var(--tx-principal, #2D2A26);
    color: #F4F0E8;
}

/* ── SECTION CHOIX (3 cartes) ── */
.bn-offrir-choix {
    background: #fff;
}

.bn-offrir-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 36px;
}

@media (max-width: 860px) {
    .bn-offrir-cards { grid-template-columns: 1fr; }
}

.bn-offrir-card {
    border: 1px solid var(--c-bordure, #D8D4CC);
    border-radius: 4px;
    padding: 28px 24px 32px;
    display: flex;
    flex-direction: column;
}

.bn-offrir-card--featured {
    border-color: var(--c-or, #C4922A);
    background: #FBF6EE;
}

.bn-offrir-card-type {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .625rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin: 0 0 10px;
}

.bn-offrir-card-title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--tx-principal, #2D2A26);
    margin: 0 0 12px;
    line-height: 1.3;
    text-wrap: balance;
}

.bn-offrir-card-desc {
    font-size: .875rem;
    color: var(--tx-secondaire, #8A857F);
    line-height: 1.6;
    margin: 0 0 16px;
}

.bn-offrir-card-avantages {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex-grow: 1;
}

.bn-offrir-card-avantages li {
    font-size: .8125rem;
    color: var(--tx-principal, #2D2A26);
    padding-left: 18px;
    position: relative;
}

.bn-offrir-card-avantages li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--c-or, #C4922A);
    font-size: .75rem;
}

.bn-offrir-card-btn {
    display: block;
    text-align: center;
    border: 1.5px solid var(--tx-principal, #2D2A26);
    color: var(--tx-principal, #2D2A26);
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: 12px 16px;
    border-radius: 2px;
    text-decoration: none;
    transition: background .18s, color .18s;
}

.bn-offrir-card-btn:hover {
    background: var(--tx-principal, #2D2A26);
    color: #F4F0E8;
}

.bn-offrir-card-btn--featured {
    background: var(--tx-principal, #2D2A26);
    color: #F4F0E8;
    border-color: var(--tx-principal, #2D2A26);
}

.bn-offrir-card-btn--featured:hover {
    background: #4A4540;
    color: #F4F0E8;
}

.bn-offrir-avenir {
    text-align: center;
    font-size: .8125rem;
    color: var(--tx-secondaire, #8A857F);
    border-top: 1px solid var(--c-bordure, #D8D4CC);
    padding-top: 24px;
    margin: 0;
}

.bn-offrir-avenir-label {
    display: inline-block;
    background: var(--c-bg-primary, #F4F0E8);
    border: 1px solid var(--c-bordure, #D8D4CC);
    border-radius: 20px;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .6rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--tx-secondaire, #8A857F);
    padding: 2px 10px;
    margin-right: 8px;
    vertical-align: middle;
}

/* ── SECTION CARTE CADEAU ── */
.bn-offrir-gc {
    background: var(--c-bg-primary, #F4F0E8);
}

.bn-offrir-gc-inner {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 64px;
    align-items: center;
}

@media (max-width: 760px) {
    .bn-offrir-gc-inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

.bn-offrir-gc-desc {
    font-size: .9375rem;
    color: var(--tx-secondaire, #8A857F);
    line-height: 1.65;
    margin: 0 0 20px;
}

.bn-offrir-gc-details {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bn-offrir-gc-details li {
    font-size: .875rem;
    color: var(--tx-principal, #2D2A26);
    padding-left: 20px;
    position: relative;
    line-height: 1.5;
}

.bn-offrir-gc-details li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--c-or, #C4922A);
    font-size: .75rem;
    top: 3px;
}

.bn-offrir-gc-visual {
    display: flex;
    justify-content: center;
}

.bn-offrir-gc-card-mock {
    width: 260px;
    aspect-ratio: 1.6 / 1;
    background: linear-gradient(135deg, #2D2A26 0%, #4A4540 100%);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: 0 12px 40px rgba(0,0,0,.15);
}

.bn-offrir-gc-mock-logo {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.25rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #F4F0E8;
    margin: 0;
}

.bn-offrir-gc-mock-label {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .6rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(240,237,229,.55);
    margin: 0;
}

.bn-offrir-gc-mock-amount {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 2rem;
    font-weight: 300;
    color: var(--c-or, #C4922A);
    margin: 0;
}

/* ── OCCASIONS ── */
.bn-offrir-occasions {
    background: #fff;
}

.bn-offrir-occ-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.bn-offrir-occ-list li {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    color: var(--tx-principal, #2D2A26);
    background: var(--c-bg-primary, #F4F0E8);
    border: 1px solid var(--c-bordure, #D8D4CC);
    border-radius: 20px;
    padding: 6px 18px;
}

/* ── PETIT MOT ── */
.bn-offrir-mot {
    background: var(--c-bg-primary, #F4F0E8);
}

.bn-offrir-mot-desc {
    font-size: .9375rem;
    color: var(--tx-secondaire, #8A857F);
    line-height: 1.7;
    margin: 0;
    max-width: 620px;
}

/* ── RÉASSURANCE ── */
.bn-offrir-reassurance {
    background: var(--tx-principal, #2D2A26);
}

.bn-offrir-reassurance .bn-offrir-section-inner {
    padding: 56px 24px;
}

.bn-offrir-reassurance-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
}

@media (max-width: 860px) {
    .bn-offrir-reassurance-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .bn-offrir-reassurance-list {
        grid-template-columns: 1fr;
    }
}

.bn-offrir-reassurance-list li {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-left: 16px;
    border-left: 1px solid rgba(240,237,229,.2);
}

.bn-offrir-reassurance-list strong {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .04em;
    color: rgba(240,237,229,.95);
    text-transform: uppercase;
}

.bn-offrir-reassurance-list span {
    font-size: .8125rem;
    color: rgba(240,237,229,.5);
    line-height: 1.5;
}

/* ── FAQ ── */
.bn-offrir-faq {
    background: #fff;
}

.bn-offrir-faq-list {
    max-width: 680px;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--c-bordure, #D8D4CC);
    border-radius: 4px;
    overflow: hidden;
}

.bn-offrir-faq-item {
    border-bottom: 1px solid var(--c-bordure, #D8D4CC);
}

.bn-offrir-faq-item:last-child {
    border-bottom: none;
}

.bn-offrir-faq-q {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 18px 48px 18px 20px;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .9375rem;
    font-weight: 500;
    color: var(--tx-principal, #2D2A26);
    cursor: pointer;
    position: relative;
    transition: background .15s;
    line-height: 1.4;
}

.bn-offrir-faq-q:hover {
    background: var(--c-bg-primary, #F4F0E8);
    color: var(--tx-principal, #2D2A26);
}

.bn-offrir-faq-q::after {
    content: '+';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.25rem;
    color: var(--c-or, #C4922A);
    font-weight: 300;
    transition: transform .2s;
}

.bn-offrir-faq-q[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(45deg);
}

.bn-offrir-faq-a {
    padding: 0 20px 18px;
}

.bn-offrir-faq-a p {
    font-size: .875rem;
    color: var(--tx-secondaire, #8A857F);
    line-height: 1.65;
    margin: 0;
}

/* ── 4. Table récapitulatif commande : séparateur continu ── */
/* Le gap vient d'un border-spacing entre les <td>.
   On passe en border-collapse + border sur chaque cellule. */
table.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table {
    border-collapse: collapse !important;
}
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th {
    border-bottom: 1px solid var(--c-bordure, #D8D4CC) !important;
    border-top:    none !important;
    border-left:   none !important;
    border-right:  none !important;
}
/* Message livraison non disponible / devis international */
.bn-no-shipping {
    font-size:   0.9rem;
    color:       var(--tx-secondaire);
    line-height: 1.5;
    margin:      0;
}
.bn-no-shipping a {
    color:           var(--c-or-fonce, #A37820);
    text-decoration: underline;
}

.woocommerce-checkout-review-order-table thead th {
    border-bottom-width: 2px !important;
}

/* Prix dans le tableau récapitulatif checkout — taille texte normale */
.woocommerce-checkout-review-order-table .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .woocommerce-Price-amount.amount,
.woocommerce-checkout-review-order-table td.product-total .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table td.order-total .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .cart-subtotal .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount {
    font-size:   1rem !important;
    font-family: var(--font-body, 'Libre Baskerville', serif) !important;
    line-height: 1.4 !important;
    vertical-align: middle !important;
}

/* ============================================================
   CARTE CADEAU — Page frontend /carte-cadeau/
   ============================================================ */

/* ── Neutraliser les wrappers Astra sur cette page ───────── */
.ast-page-builder-template .gc-page,
body.page-template-page-carte-cadeau #content .ast-container,
body.page-template-page-carte-cadeau .site-content,
body.page-template-page-carte-cadeau #content,
body.page-template-page-carte-cadeau #primary,
body.page-template-page-carte-cadeau .content-area,
body.page-template-page-carte-cadeau .entry-content,
body.page-template-page-carte-cadeau .ast-article-single {
    padding:  0 !important;
    margin:   0 !important;
    max-width: 100% !important;
    width:    100% !important;
}

/* ── Page container ───────────────────────────────────────── */
.gc-page {
    background: var(--bg, #FAFAF5);
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

/* ── Hero ─────────────────────────────────────────────────── */
.gc-hero {
    background: var(--c-pierre, #2D2A26);
    padding: 80px 24px 72px;
    text-align: center;
}
.gc-hero-inner {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
}
.gc-hero-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .7rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin: 0 0 16px;
    text-align: center;
}
.gc-hero-title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 400;
    color: var(--c-linge, #F0EDE5);
    line-height: 1.15;
    margin: 0 0 16px;
}
.gc-hero-sub {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .9375rem;
    color: rgba(240,237,229,.65);
    margin: 0;
    max-width: 400px;
    margin-inline: auto;
}

/* ── Formulaire ───────────────────────────────────────────── */
.gc-form-section {
    padding: 56px 24px 64px;
}

/* ── Layout 2 colonnes (form | preview) ──────────────────── */
.gc-layout {
    max-width: 1160px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 520px 1fr;
    gap: 56px;
    align-items: start;
}
@media (max-width: 960px) {
    .gc-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* Colonne gauche */
.gc-col-form { min-width: 0; }

/* Colonne droite — aperçu */
.gc-col-preview { min-width: 0; }
.gc-preview-sticky {
    position: sticky;
    top: 80px;
}
.gc-preview-header {
    margin-bottom: 16px;
}
.gc-preview-eyebrow {
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .7rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--c-or, #C4922A);
    margin: 0 0 6px;
}
.gc-preview-hint {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .875rem;
    color: var(--c-pierre-clair, #8A857F);
    margin: 0;
}
.gc-preview-frame-wrap {
    position: relative;
    border: 1px solid var(--c-bordure, #D8D4CC);
    background: #f4f4f4;
    border-radius: 2px;
    overflow: hidden;
}
.gc-preview-iframe {
    display: block;
    width: 100%;
    height: 640px;
    border: none;
    background: #fff;
}
@media (max-width: 960px) {
    .gc-preview-iframe { height: 480px; }
}


/* ── Étape ────────────────────────────────────────────────── */
.gc-step-section {
    margin-bottom: 48px;
}
.gc-step-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}
.gc-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    background: var(--c-or, #C4922A);
    color: #fff;
    border-radius: 50%;
    font-family: var(--font-mono, 'DM Mono', monospace);
    font-size: .8125rem;
    font-weight: 700;
}
.gc-step-title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.4375rem;
    font-weight: 500;
    color: var(--c-pierre, #2D2A26);
    margin: 0;
}
.gc-optional {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 400;
    color: var(--c-pierre-clair, #8A857F);
}

/* ── Montant — boutons preset ─────────────────────────────── */
.gc-amount-presets {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.gc-amount-btn {
    flex: 1 1 calc(25% - 9px);
    min-width: 100px;
    border: 1.5px solid var(--c-bordure, #D8D4CC);
    background: #fff;
    color: var(--c-pierre, #2D2A26);
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.25rem;
    padding: 16px 12px;
    cursor: pointer;
    transition: border-color .18s, background .18s, color .18s;
    text-align: center;
}
.gc-amount-btn:hover {
    border-color: var(--c-or, #C4922A);
    color: var(--c-or, #C4922A);
}
.gc-amount-btn.is-active {
    border-color: var(--c-or, #C4922A);
    background: var(--c-or, #C4922A);
    color: #fff;
}

/* ── Montant — saisie libre ───────────────────────────────── */
.gc-amount-custom {
    margin-top: 4px;
}
.gc-amount-input-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0;
    max-width: 200px;
    width: 100%;
}
.gc-amount-input {
    padding-right: 36px !important;
}
.gc-input-suffix {
    position: absolute;
    right: 14px;
    color: var(--c-pierre-clair, #8A857F);
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.1rem;
    pointer-events: none;
}

/* ── Inputs ───────────────────────────────────────────────── */
.gc-label {
    display: block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    font-weight: 500;
    color: var(--c-pierre, #2D2A26);
    letter-spacing: .03em;
    margin-bottom: 8px;
}
.gc-input,
.gc-textarea {
    width: 100%;
    border: 1.5px solid var(--c-bordure, #D8D4CC);
    background: #fff;
    color: var(--c-pierre, #2D2A26);
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .9375rem;
    padding: 12px 16px;
    outline: none;
    transition: border-color .18s;
    border-radius: 0;
    -webkit-appearance: none;
    appearance: none;
}
.gc-input:focus,
.gc-textarea:focus {
    border-color: var(--c-or, #C4922A);
}
.gc-textarea {
    resize: vertical;
    min-height: 100px;
}
.gc-field-hint {
    font-size: .78rem;
    color: var(--c-pierre-clair, #8A857F);
    margin: 6px 0 0;
}
.gc-field-error {
    font-size: .8125rem;
    color: #c0392b;
    margin: 6px 0 0;
    font-family: var(--font-body, 'DM Sans', sans-serif);
}
.gc-char-count {
    font-size: .78rem;
    color: var(--c-pierre-clair, #8A857F);
    text-align: right;
    margin: 6px 0 0;
}

/* ── Templates ────────────────────────────────────────────── */
.gc-templates-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 560px) {
    .gc-templates-grid { grid-template-columns: 1fr; }
}
.gc-template-card {
    cursor: pointer;
    border: 2px solid var(--c-bordure, #D8D4CC);
    background: #fff;
    transition: border-color .18s;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.gc-template-card:hover {
    border-color: var(--c-or, #C4922A);
}
.gc-template-card.is-selected {
    border-color: var(--c-or, #C4922A);
    box-shadow: 0 0 0 2px var(--c-or, #C4922A);
}
.gc-template-radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}
.gc-template-preview {
    height: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
/* ── Fonds thèmes ───────────────────────────────────── */
.gc-template-preview--elegant          { background: #F5F2EC; }
.gc-template-preview--champagne-nude   { background: #EBD9B8; }
.gc-template-preview--terra-cotta      { background: #B84830; }
.gc-template-preview--rouge-velours    { background: #6B0F1A; }
.gc-template-preview--fuchsia-electrique { background: #D90166; }
.gc-template-preview--emeraude-festif  { background: #064635; }

.gc-template-preview-logo {
    font-family: Georgia, serif;
    font-size: .8125rem;
    letter-spacing: .15em;
    text-transform: uppercase;
}

/* ── Logo couleur par thème ─────────────────────────── */
.gc-template-preview--elegant          .gc-template-preview-logo { color: #2A2218; }
.gc-template-preview--champagne-nude   .gc-template-preview-logo { color: #7A5820; }
.gc-template-preview--terra-cotta      .gc-template-preview-logo { color: #F0B870; }
.gc-template-preview--rouge-velours    .gc-template-preview-logo { color: #D4AF37; }
.gc-template-preview--fuchsia-electrique .gc-template-preview-logo { color: #FFE600; }
.gc-template-preview--emeraude-festif  .gc-template-preview-logo { color: #2ECC71; }

.gc-template-preview-tag {
    font-family: 'DM Mono', 'Courier New', monospace;
    font-size: .6rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* ── Tag couleur par thème ──────────────────────────── */
.gc-template-preview--elegant          .gc-template-preview-tag { color: #7A6030; }
.gc-template-preview--champagne-nude   .gc-template-preview-tag { color: #A07828; }
.gc-template-preview--terra-cotta      .gc-template-preview-tag { color: rgba(240,184,112,.85); }
.gc-template-preview--rouge-velours    .gc-template-preview-tag { color: rgba(212,175,55,.85); }
.gc-template-preview--fuchsia-electrique .gc-template-preview-tag { color: rgba(255,230,0,.9); }
.gc-template-preview--emeraude-festif  .gc-template-preview-tag { color: rgba(46,204,113,.85); }
.gc-template-label {
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .875rem;
    font-weight: 600;
    color: var(--c-pierre, #2D2A26);
    padding: 10px 14px 4px;
}
.gc-template-desc {
    font-size: .78rem;
    color: var(--c-pierre-clair, #8A857F);
    padding: 0 14px 12px;
    line-height: 1.4;
}

/* ── Champs email ─────────────────────────────────────────── */
.gc-fields-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
@media (max-width: 560px) {
    .gc-fields-row { grid-template-columns: 1fr; }
}
.gc-field {
    display: flex;
    flex-direction: column;
}
.gc-required {
    color: var(--c-argile, #8B3A2A);
}

/* ── Notice d'erreur globale ──────────────────────────────── */
.gc-notice-error {
    background: #fff5f5;
    border: 1.5px solid #e5a0a0;
    border-left: 4px solid #c0392b;
    color: #7b1c1c;
    padding: 14px 18px;
    font-size: .9rem;
    margin-bottom: 28px;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    line-height: 1.5;
}

/* ── CTA ──────────────────────────────────────────────────── */
.gc-cta-section {
    border-top: 1px solid var(--c-bordure, #D8D4CC);
    padding-top: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.gc-cta-total {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 1.25rem;
    color: var(--c-pierre, #2D2A26);
    margin: 0;
    min-height: 1.5em;
}
.gc-btn-submit {
    background: var(--c-pierre, #2D2A26);
    color: var(--c-linge, #F0EDE5);
    font-family: var(--font-mono, 'DM Mono', 'Courier New', monospace);
    font-size: .75rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    border: none;
    padding: 18px 48px;
    cursor: pointer;
    transition: background .2s, color .2s;
    width: 100%;
    max-width: 380px;
}
.gc-btn-submit:hover {
    background: var(--c-or, #C4922A);
    color: #fff;
}
.gc-form-error {
    font-size: .8125rem;
    color: #c0392b;
    text-align: center;
    margin: 0;
}
.gc-manual-note {
    font-size: .8rem;
    color: var(--c-texte-discret, #6B6560);
    line-height: 1.55;
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--c-fond-milieu, #F0EDE5);
    border-radius: 4px;
    border-left: 3px solid var(--c-or, #C4922A);
}

/* ── Réassurance ──────────────────────────────────────────── */
.gc-reassurance {
    background: var(--c-pierre, #2D2A26);
    padding: 40px 24px;
}
.gc-reassurance-inner {
    max-width: 700px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (max-width: 560px) {
    .gc-reassurance-inner { grid-template-columns: 1fr; gap: 16px; }
}
.gc-reassurance-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    color: rgba(240,237,229,.8);
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: .8125rem;
    line-height: 1.5;
}
.gc-reassurance-icon {
    font-size: 1.25rem;
    margin-bottom: 4px;
}
.gc-reassurance-item strong {
    display: block;
    color: var(--c-linge, #F0EDE5);
    font-weight: 600;
    font-size: .875rem;
}

/* ── Page template Astra overrides ───────────────────────── */
.gc-page .entry-title,
.gc-page .page-header {
    display: none;
}
.gc-page .entry-content {
    padding: 0;
    margin: 0;
}
.ast-page-builder-template .gc-page {
    width: 100%;
}

/* ═══════════════════════════════════════════════════════════════════
   MAGNUM PERSONNALISÉ v3.5.0
   ═══════════════════════════════════════════════════════════════════ */

/* ── Offrir-benastra : carte magnum ─────────────────────────────── */
.bn-offrir-card--magnum { border: 2px solid var(--bn-or, #C4922A); }
.bn-offrir-card-btn--magnum { background: var(--bn-or, #C4922A); color: #fff; }
.bn-offrir-card-btn--magnum:hover { background: var(--bn-or-dark, #A37820); }

/* ── Wrap général ───────────────────────────────────────────────── */
.bn-mgn-wrap { --linge: #F4F0E8; --craie: #FAFAF5; --or: #C4922A; --or-dark: #A37820;
  --pierre: #2D2A26; --schiste: #4A4540; --bordure: #D8D4CC; --pierre-clair: #8A857F;
  color: var(--pierre); font-family: 'DM Sans', sans-serif; }
.bn-mgn-section-inner { max-width: 900px; margin: 0 auto; padding: 0 16px; }
.bn-mgn-eyebrow { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--pierre-clair); margin: 0 0 12px; }
.bn-mgn-section-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem,4vw,2.2rem);
  font-weight: 400; color: var(--pierre); margin: 0 0 28px; }

/* ── Hero ───────────────────────────────────────────────────────── */
.bn-mgn-hero { background: var(--pierre); color: var(--linge);
  padding: clamp(60px,10vw,120px) 16px; text-align: center; }
.bn-mgn-hero-inner { max-width: 680px; margin: 0 auto; }
.bn-mgn-hero .bn-mgn-eyebrow { color: var(--or); }
.bn-mgn-h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem,6vw,3.8rem);
  font-weight: 300; letter-spacing: .04em; margin: 0 0 16px; color: #fff; }
.bn-mgn-hero-sub { font-size: 1.05rem; color: var(--linge); opacity: .85; margin: 0 0 8px; }
.bn-mgn-hero-delai { display: block; width: fit-content; margin: 12px auto 28px; font-size: .85rem;
  background: rgba(196,146,42,.15); color: var(--or); border: 1px solid rgba(196,146,42,.3);
  border-radius: 20px; padding: 6px 16px; }
.bn-mgn-cta-primary { display: inline-block; background: var(--or); color: #fff;
  padding: 14px 32px; font-size: .95rem; letter-spacing: .04em; text-decoration: none;
  border-radius: 2px; transition: background .2s; }
.bn-mgn-cta-primary:hover { background: var(--or-dark); color: #fff; }
.bn-mgn-cta-secondary { display: inline-block; margin-left: 16px; color: var(--linge);
  font-size: .9rem; text-decoration: underline; opacity: .75; }
.bn-mgn-cta-secondary:hover { opacity: 1; color: #fff; }

/* ── Produit ────────────────────────────────────────────────────── */
.bn-mgn-produit { padding: clamp(48px,8vw,96px) 16px; background: var(--craie); }
.bn-mgn-produit-grid { display: grid; grid-template-columns: 240px 1fr; gap: 48px; align-items: start; }
@media(max-width:640px){ .bn-mgn-produit-grid { grid-template-columns: 1fr; } }
.bn-mgn-bottle-img img { width: 100%; height: auto; border-radius: 2px;
  box-shadow: 0 8px 32px rgba(0,0,0,.12); }
.bn-mgn-produit-titre { font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.4rem,3vw,2rem); font-weight: 400; margin: 0 0 12px; }
.bn-mgn-produit-desc { color: var(--schiste); line-height: 1.65; margin: 0 0 24px; font-size: .95rem; }
.bn-mgn-prix-detail { border: 1px solid var(--bordure); border-radius: 4px;
  padding: 16px 20px; margin: 0 0 20px; }
.bn-mgn-prix-ligne { display: flex; justify-content: space-between; font-size: .9rem;
  padding: 4px 0; color: var(--schiste); }
.bn-mgn-prix-perso { color: var(--or); }
.bn-mgn-prix-total { border-top: 1px solid var(--bordure); margin-top: 8px; padding-top: 12px;
  font-weight: 600; color: var(--pierre); font-size: .95rem; }
.bn-mgn-qty-min-notice { font-size: .82rem; color: var(--pierre); background: rgba(196,146,42,.08);
  border: 1px solid rgba(196,146,42,.25); border-radius: 3px; padding: 8px 14px; margin: 0 0 12px; }
.bn-mgn-produit-mention { font-size: .8rem; color: var(--pierre-clair); margin: 0 0 24px; }
.bn-mgn-cta-inline { margin-top: 8px; }
.bn-mgn-epuise { font-size: .9rem; color: #c0392b; }

/* ── Configurateur ──────────────────────────────────────────────── */
.bn-mgn-config { padding: clamp(48px,8vw,96px) 16px; background: var(--linge);
  position: relative; }
.bn-mgn-step { position: relative; }
.bn-mgn-step-title { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem;
  font-weight: 400; margin: 0 0 8px; display: flex; align-items: center; gap: 12px; }
.bn-mgn-step-num { display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; background: var(--or); color: #fff;
  border-radius: 50%; font-size: .75rem; font-family: 'DM Mono', monospace;
  flex-shrink: 0; }
.bn-mgn-step-desc { color: var(--schiste); font-size: .9rem; margin: 0 0 24px; }

/* ── Upload zone ────────────────────────────────────────────────── */
.bn-upload-zone { border: 2px dashed var(--bordure); border-radius: 6px;
  padding: 48px 24px; text-align: center; cursor: pointer; transition: border-color .2s, background .2s;
  background: var(--craie); }
.bn-upload-zone:hover, .bn-upload-zone--over { border-color: var(--or); background: #FFF8F0; }
.bn-upload-zone input[type=file] { display: none; }
.bn-upload-icon { width: 40px; height: 40px; color: var(--pierre-clair); margin: 0 auto 12px; display: block; }
.bn-upload-text { font-size: 1rem; margin: 0 0 4px; color: var(--pierre); }
.bn-upload-hint { font-size: .82rem; color: var(--pierre-clair); margin: 0; }
.bn-upload-conseil { font-size: .82rem; color: var(--pierre-clair); margin: 12px 0 0; }
.bn-upload-progress { display: flex; align-items: center; gap: 10px; margin-top: 16px;
  font-size: .9rem; color: var(--schiste); }
.bn-upload-progress[hidden] { display: none; }
.bn-upload-spinner { display: inline-block; width: 16px; height: 16px;
  border: 2px solid var(--bordure); border-top-color: var(--or);
  border-radius: 50%; animation: bn-spin .6s linear infinite; flex-shrink: 0; }
@keyframes bn-spin { to { transform: rotate(360deg); } }
.bn-upload-error { margin-top: 12px; padding: 10px 14px; background: #FEF2F2;
  border: 1px solid #FECACA; border-radius: 4px; color: #B91C1C; font-size: .88rem; }

/* ── Editeur ────────────────────────────────────────────────────── */
.bn-editor-layout { display: grid; grid-template-columns: 360px 1fr; gap: 32px; align-items: start; }
.bn-mockup-wrap canvas { display: block; width: auto !important; max-width: 100% !important; height: auto; max-height: 440px; }
@media(max-width:780px){ .bn-editor-layout { grid-template-columns: 1fr; } }
.bn-editor-col-label { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--pierre-clair); margin: 0 0 8px; }
.bn-canvas-wrap, .bn-mockup-wrap { border-radius: 4px; overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.08); display: inline-block; }
.bn-canvas-wrap canvas, .bn-mockup-wrap canvas { display: block; max-width: 100%; height: auto; cursor: grab; }
.bn-canvas-wrap canvas:active { cursor: grabbing; }
.bn-canvas-hint { font-size: .75rem; color: var(--pierre-clair); margin: 6px 0 0; }
.bn-mgn-btn-ghost { background: none; border: 1px solid var(--bordure); color: var(--schiste);
  padding: 8px 18px; border-radius: 2px; font-size: .85rem; cursor: pointer; margin-top: 12px;
  transition: border-color .2s; }
.bn-mgn-btn-ghost:hover { border-color: var(--or); color: var(--or); }

/* ── DPI ────────────────────────────────────────────────────────── */
.bn-dpi-block { display: flex; align-items: center; gap: 10px;
  margin-top: 24px; padding: 14px 18px; background: var(--craie);
  border: 1px solid var(--bordure); border-radius: 4px; }
.bn-dpi-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; background: var(--bordure); }
.bn-dpi-dot--good { background: #16A34A; }
.bn-dpi-dot--ok   { background: #D97706; }
.bn-dpi-dot--bad  { background: #DC2626; }
.bn-dpi-text { font-size: .9rem; color: var(--schiste); flex: 1; }
.bn-dpi-val { font-family: 'DM Mono', monospace; font-size: .82rem; color: var(--pierre-clair); white-space: nowrap; }
.bn-dpi-msg { margin-top: 8px; font-size: .83rem; color: var(--schiste); padding-left: 4px; }

/* ── Intention ──────────────────────────────────────────────────── */
.bn-mgn-intent { margin-top: 28px; }
.bn-mgn-intent-q { font-size: .9rem; color: var(--schiste); margin: 0 0 10px; }
.bn-mgn-intent-choices { display: flex; gap: 10px; flex-wrap: wrap; }
.bn-mgn-intent-lbl { display: flex; align-items: center; gap: 8px; cursor: pointer;
  padding: 10px 18px; border: 1px solid #D8D4CC; border-radius: 20px;
  font-size: .88rem; color: #4A4540; transition: border-color .2s, color .2s, background .2s; }
.bn-mgn-intent-lbl:hover { border-color: #C4922A; color: #C4922A; }
.bn-mgn-intent-lbl--active { border-color: #C4922A !important; color: #C4922A !important; background: #FFF8F0 !important; }
.bn-mgn-gift-msg-wrap { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.bn-mgn-gift-msg-wrap[hidden] { display: none; }
.bn-mgn-gift-msg-label { font-size: .85rem; color: #3a2e22; }
.bn-mgn-optional { color: #888; font-weight: 400; }
.bn-mgn-gift-msg-ta { width: 100%; padding: 10px 12px; border: 1px solid #d6cfc5; border-radius: 6px; font-size: .9rem; font-family: inherit; color: #3a2e22; background: #faf8f5; resize: vertical; line-height: 1.5; }
.bn-mgn-gift-msg-ta:focus { outline: none; border-color: #C4922A; box-shadow: 0 0 0 2px rgba(196,146,42,.15); }
.bn-mgn-gift-msg-count { font-size: .75rem; color: #999; text-align: right; }
.bn-mgn-intent-radio { display: none; }

/* ── Panier ─────────────────────────────────────────────────────── */
.bn-mgn-cart-block { margin-top: 32px; padding: 24px; background: var(--craie);
  border: 1px solid var(--bordure); border-radius: 4px; }
.bn-mgn-cart-recap { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px;
  margin-bottom: 16px; font-size: .9rem; color: var(--schiste); }
.bn-mgn-total-lbl, .bn-mgn-total-val { font-weight: 600; color: var(--pierre);
  padding-top: 12px; border-top: 1px solid var(--bordure); font-size: .95rem; }
.bn-mgn-delai-recap { font-size: .82rem; color: var(--pierre-clair); margin: 0 0 16px; }
#bn-add-to-cart { width: 100%; padding: 16px; font-size: 1rem; border: none; cursor: pointer; }
#bn-add-to-cart:disabled { opacity: .45; cursor: not-allowed; }

/* ── Succes overlay ─────────────────────────────────────────────── */
.bn-success-overlay { position: fixed; inset: 0; background: rgba(29,27,24,.7);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999; padding: 16px; }
.bn-success-overlay[hidden] { display: none; }
.bn-success-box { background: var(--craie); border-radius: 6px; padding: 40px 32px;
  max-width: 420px; width: 100%; text-align: center;
  box-shadow: 0 24px 64px rgba(0,0,0,.25); }
.bn-success-check { font-size: 2.5rem; color: #16A34A; margin-bottom: 12px; }
.bn-success-h { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem;
  font-weight: 400; margin: 0 0 10px; color: var(--pierre); }
.bn-success-sub { font-size: .9rem; color: var(--schiste); margin: 0 0 24px; }
.bn-success-btns { display: flex; flex-direction: column; gap: 10px; }

/* ── Sections informatives ──────────────────────────────────────── */
.bn-mgn-how, .bn-mgn-occasions, .bn-mgn-delai, .bn-mgn-faq, .bn-mgn-reassurance {
  padding: clamp(40px,7vw,80px) 16px; }
.bn-mgn-how      { background: var(--craie); }
.bn-mgn-occasions{ background: var(--linge); }
.bn-mgn-delai    { background: var(--craie); }
.bn-mgn-faq      { background: var(--linge); }
.bn-mgn-reassurance { background: var(--pierre); }

.bn-mgn-steps-list { margin: 0; padding-left: 20px; }
.bn-mgn-steps-list li { margin-bottom: 20px; line-height: 1.6;
  color: var(--schiste); font-size: .95rem; }
.bn-mgn-steps-list li strong { color: var(--pierre); }

.bn-mgn-occ-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 16px; }
.bn-mgn-occ-item { padding: 20px; background: var(--craie); border-radius: 4px;
  font-size: .9rem; line-height: 1.55; color: var(--schiste); }
.bn-mgn-occ-item strong { display: block; color: var(--pierre); margin-bottom: 4px; }

.bn-mgn-delai-desc { font-size: .98rem; line-height: 1.7; color: var(--schiste); margin: 0 0 12px; }
.bn-mgn-delai-note { font-size: .82rem; color: var(--pierre-clair); margin: 0; }

/* ── FAQ ────────────────────────────────────────────────────────── */
.bn-mgn-faq-list { display: flex; flex-direction: column; gap: 1px; }
.bn-mgn-faq-item { border-bottom: 1px solid var(--bordure); }
.bn-mgn-faq-q { width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 18px 4px; font-size: .95rem; font-family: 'DM Sans', sans-serif;
  color: var(--pierre); font-weight: 500; }
.bn-mgn-faq-q:hover { color: var(--or); }
.bn-mgn-faq-a p { padding: 0 4px 16px; color: var(--schiste); font-size: .9rem; line-height: 1.65; margin: 0; }

/* ── Reassurance ────────────────────────────────────────────────── */
.bn-mgn-rea-list { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 24px; }
.bn-mgn-rea-list li { display: flex; flex-direction: column; gap: 4px; }
.bn-mgn-rea-list li strong { color: var(--linge); font-size: .88rem; }
.bn-mgn-rea-list li span { color: rgba(244,240,232,.6); font-size: .8rem; line-height: 1.4; }

/* ── CTA fiche produit Magnum ───────────────────────────────────── */
.bn-magnum-pdp-cta { margin-top: 20px; padding: 16px 20px;
  background: #FFF8F0; border: 1px solid rgba(196,146,42,.3); border-radius: 4px; }
.bn-magnum-pdp-cta-intro { font-size: .85rem; color: var(--pierre-clair, #8A857F); margin: 0 0 6px; }
.bn-magnum-pdp-cta-link { font-size: .9rem; color: #C4922A; text-decoration: none; font-weight: 500; }
.bn-magnum-pdp-cta-link:hover { text-decoration: underline; }

/* ── Quantité ───────────────────────────────────────────────────── */
.bn-mgn-qty { margin-top: 28px; }
.bn-mgn-qty-label { display: block; font-size: .9rem; color: #4A4540; margin-bottom: 10px; font-weight: 500; }
.bn-mgn-qty-row { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.bn-mgn-qty-presets { display: flex; gap: 8px; flex-wrap: wrap; }
.bn-mgn-qty-ctrl { display: flex; align-items: center; gap: 0; width: fit-content; border: 1px solid #D8D4CC; border-radius: 4px; overflow: hidden; flex-shrink: 0; }
.bn-mgn-qty-btn { background: none; border: none; width: 40px; height: 44px; font-size: 1.2rem; color: #4A4540; cursor: pointer; transition: background .15s; flex-shrink: 0; line-height: 1; }
.bn-mgn-qty-btn:hover { background: #F4F0E8; }
.bn-mgn-qty-input { width: 56px; height: 44px; border: none; border-left: 1px solid #D8D4CC; border-right: 1px solid #D8D4CC; text-align: center; font-size: 1rem; font-family: 'DM Sans', sans-serif; color: #2D2A26; -moz-appearance: textfield; }
.bn-mgn-qty-input::-webkit-outer-spin-button, .bn-mgn-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.bn-mgn-qty-hint { font-size: .78rem; color: #8A857F; margin: 8px 0 0; }
.bn-mgn-qty-preset { display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border: 1px solid #D8D4CC; border-radius: 4px; background: #FAFAF5;
  font-size: .88rem; color: #4A4540; cursor: pointer; font-family: 'DM Sans', sans-serif;
  transition: border-color .2s, background .2s, color .2s; white-space: nowrap; }
.bn-mgn-qty-preset:hover { border-color: #C4922A; color: #C4922A; background: #FFF8F0; }
.bn-mgn-qty-preset--active { border-color: #C4922A !important; color: #C4922A !important; background: #FFF8F0 !important; }
.bn-mgn-qty-preset-price { font-weight: 600; }

/* ═══════════════════════════════════════════════════════════
   Animations homepage — D : entrée cinétique texte hero
   ═══════════════════════════════════════════════════════════ */
@keyframes bn-fadein-up {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}
.bnv-hero-eyebrow { animation: bn-fadein-up .7s ease .40s both; }
.bnv-hero h1      { animation: bn-fadein-up .85s ease .72s both; }
.bnv-hero-sub     { animation: bn-fadein-up .7s ease 1.10s both; }
.bnv-hero-cta     { animation: bn-fadein-up .6s ease 1.50s both; }
.bnv-hero-cta.bn-cta-gold {
	background-color: var(--c-or, #C4922A) !important;
	color:            var(--c-pierre, #2D2A26) !important;
	border-color:     var(--c-or, #C4922A) !important;
}

/* Accessibilité : respecter la préférence système */
@media (prefers-reduced-motion: reduce) {
	.bnv-hero { animation: none !important; background-position: center center !important; }
	.bnv-hero-eyebrow, .bnv-hero h1, .bnv-hero-sub, .bnv-hero-cta {
		animation: none !important; opacity: 1 !important; transform: none !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   Popup upsell pre-checkout — Pierre & Lumière
   ═══════════════════════════════════════════════════════════ */
#bn-upsell-overlay {
	position:        fixed;
	inset:           0;
	background:      rgba(45, 42, 38, .72);
	z-index:         99999;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         16px;
	opacity:         0;
	transition:      opacity .35s ease;
}
#bn-upsell-overlay.bn-up-on { opacity: 1; }

.bn-upsell-modal {
	background:    var(--c-craie, #FAFAF5);
	border-radius: 4px;
	max-width:     480px;
	width:         100%;
	padding:       32px 28px 24px;
	position:      relative;
	transform:     translateY(20px);
	transition:    transform .35s ease;
	box-shadow:    0 12px 48px rgba(45,42,38,.22);
}
#bn-upsell-overlay.bn-up-on .bn-upsell-modal { transform: translateY(0); }

.bn-upsell-close {
	position:   absolute;
	top:        14px;
	right:      16px;
	background: none;
	border:     none;
	font-size:  1.4rem;
	color:      var(--c-pierre-clair, #8A857F);
	cursor:     pointer;
	line-height: 1;
	padding:    4px;
}
.bn-upsell-close:hover { color: var(--c-pierre, #2D2A26); }

.bn-upsell-tag {
	display:         inline-block;
	font-family:     var(--font-mono, 'DM Mono', monospace);
	font-size:       0.62rem;
	letter-spacing:  .15em;
	text-transform:  uppercase;
	color:           var(--c-or, #C4922A);
	margin-bottom:   16px;
}

.bn-upsell-body {
	display:         flex;
	gap:             20px;
	align-items:     flex-start;
	margin-bottom:   20px;
}

.bn-upsell-img {
	width:         96px;
	height:        120px;
	object-fit:    contain;
	flex-shrink:   0;
	border-radius: 2px;
}

.bn-upsell-info { flex: 1; }

.bn-upsell-headline {
	font-family:   var(--font-display, 'Cormorant Garamond', serif);
	font-style:    italic;
	font-size:     1.3rem;
	font-weight:   300;
	line-height:   1.25;
	color:         var(--c-pierre, #2D2A26);
	margin:        0 0 8px;
}

.bn-upsell-tagline {
	font-family: var(--font-body, 'Jost', sans-serif);
	font-size:   0.85rem;
	color:       var(--c-schiste, #4A4540);
	line-height: 1.55;
	margin:      0 0 10px;
}

.bn-upsell-price {
	font-family: var(--font-body, 'Jost', sans-serif);
	font-size:   1rem;
	font-weight: 600;
	color:       var(--c-pierre, #2D2A26);
}

.bn-upsell-btn-yes {
	display:          block;
	width:            100%;
	background:       var(--c-pierre, #2D2A26);
	color:            var(--c-linge, #F0EDE5);
	border:           none;
	border-radius:    2px;
	padding:          14px 20px;
	font-family:      var(--font-mono, 'DM Mono', monospace);
	font-size:        0.72rem;
	letter-spacing:   .12em;
	text-transform:   uppercase;
	cursor:           pointer;
	margin-bottom:    10px;
	transition:       background .2s;
}
.bn-upsell-btn-yes:hover { background: var(--c-schiste, #4A4540); }
.bn-upsell-btn-yes:disabled { opacity: .6; cursor: wait; }

.bn-upsell-btn-no {
	display:     block;
	width:       100%;
	background:  none;
	border:      1px solid var(--c-bordure, #D8D4CC);
	border-radius: 2px;
	padding:     11px 20px;
	font-family: var(--font-mono, 'DM Mono', monospace);
	font-size:   0.68rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color:       var(--c-pierre-clair, #8A857F);
	cursor:      pointer;
	transition:  border-color .2s, color .2s;
}
.bn-upsell-btn-no:hover { border-color: var(--c-pierre, #2D2A26); color: var(--c-pierre, #2D2A26); }

.bn-upsell-footnote {
	font-family: var(--font-body, 'Jost', sans-serif);
	font-size:   0.7rem;
	color:       var(--c-pierre-clair, #8A857F);
	text-align:  center;
	margin:      12px 0 0;
}

@media (max-width: 480px) {
	.bn-upsell-modal { padding: 24px 16px 20px; }
	.bn-upsell-img   { width: 72px; height: 90px; }
	.bn-upsell-headline { font-size: 1.1rem; }
}
