/*
Theme Name:   Viral BuyPukka Child
Description:  Thème enfant Flatsome — BuyPukka (Discover. Shop. Be Viral.)
Author:       BuyPukka
Template:     flatsome
Version:      6.3.1
Requires at least: 6.4
Requires PHP: 7.4
WC requires at least: 8.3
Text Domain:  viral-buypukka
License:      GPL v2 or later
*/

/* IMPORTS */
@import url("../flatsome/style.css");
@import url('https://fonts.googleapis.com/css2?family=Sora:ital,wght@0,600;0,700;0,800;1,800&family=Inter:wght@400;500;600&display=swap');

/* DESIGN TOKENS — Identité Black + Lime (brand board client). Préfixe --vbp-* partagé avec le plugin ; --bp-* = alias thème */
:root {
    --vbp-navy:       #0B0B0F;
    --vbp-blue:       #00E5FF;
    --vbp-blue-soft:  #DFFBFF;
    --vbp-coral:      #A3FF12;
    --vbp-coral-dark: #8FE000;
    --vbp-green:      #16A34A;
    --vbp-amber:      #FFD600;
    --vbp-red:        #DC2626;
    --vbp-violet:     #FF3D9A;
    --vbp-bg:         #FFFFFF;
    --vbp-surface:    #FFFFFF;
    --vbp-text:       #111111;
    --vbp-muted:      #7A7A7A;
    --vbp-line:       #E6E6EA;
    --vbp-radius:     12px;
    --vbp-radius-lg:  16px;
    --vbp-shadow:     0 1px 2px rgba(11,11,15,.06), 0 8px 24px rgba(11,11,15,.08);
    --vbp-font-head:  'Sora', system-ui, sans-serif;
    --vbp-font-body:  'Inter', system-ui, sans-serif;

    /* Nouveaux tokens de marque (brand board) */
    --vbp-black:    #0B0B0F;
    --vbp-ink:      #111111;
    --vbp-white:    #FFFFFF;
    --vbp-lime:     #A3FF12;
    --vbp-cyan:     #00E5FF;
    --vbp-pink:     #FF3D9A;
    --vbp-yellow:   #FFD600;
    --vbp-gray-900: #1F1F24;
    --vbp-gray-500: #7A7A7A;
    --vbp-gray-100: #F4F4F6;

    /* Alias rétrocompat --bp-* (ne rien casser dans le HTML existant) */
    --bp-navy: var(--vbp-navy); --bp-blue: var(--vbp-blue); --bp-blue-dim: var(--vbp-blue-soft);
    --bp-blue-glow: rgba(0,229,255,.22); --bp-coral: var(--vbp-coral); --bp-coral-dark: var(--vbp-coral-dark);
    --bp-green: var(--vbp-green); --bp-green-dim: rgba(22,163,74,.12); --bp-amber: var(--vbp-amber);
    --bp-red: var(--vbp-red); --bp-red-dim: rgba(220,38,38,.10); --bp-violet: var(--vbp-violet);
    --bp-text: var(--vbp-text); --bp-text-2: #333338; --bp-text-3: var(--vbp-muted); --bp-text-4: #A6A6AC;
    --bp-bg: var(--vbp-bg); --bp-white: var(--vbp-surface); --bp-line: var(--vbp-line); --bp-line-2: #D6D6DC;
    --bp-r-sm: 8px; --bp-r-md: var(--vbp-radius); --bp-r-lg: var(--vbp-radius-lg);
    --bp-r-pill: 999px; --bp-r-card: var(--vbp-radius-lg);
    --bp-grad-brand: linear-gradient(135deg, var(--vbp-navy) 0%, var(--vbp-gray-900) 100%);
    --bp-grad-fire: linear-gradient(135deg, var(--vbp-coral) 0%, var(--vbp-coral-dark) 100%);
    --bp-shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --bp-shadow-card: var(--vbp-shadow);
    --bp-shadow-card-hover: 0 10px 28px rgba(11,11,15,.16), 0 20px 40px rgba(0,0,0,.08);
    --bp-shadow-blue: 0 4px 14px rgba(0,229,255,.28); --bp-shadow-coral: 0 4px 14px rgba(163,255,18,.35);
    --bp-font-head: var(--vbp-font-head); --bp-font-body: var(--vbp-font-body);
    --bp-ease: cubic-bezier(0.22,1,0.36,1); --bp-ease-bounce: cubic-bezier(0.34,1.56,0.64,1);
    --bp-t-fast: 140ms; --bp-t-base: 240ms; --bp-t-slow: 380ms; --bp-z-bar: 900;
}

/* RESET & BASE */
*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: var(--bp-font-body); color: var(--bp-text); background: var(--bp-bg);
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .site-title, .page-title h1, .entry-title, .product_title, .woocommerce-loop-product__title {
    font-family: var(--bp-font-head) !important; /* ponytail: Flatsome inlines font-family on these selectors, no lighter override exists */
    letter-spacing: -0.02em;
    color: var(--bp-text) !important;
}

p, li, td, th, label, .nav-top a, .header-nav a { font-family: var(--bp-font-body); }

/* HEADER — barre noire, nav blanche uppercase, hover lime */
#header, .header-main {
    background: var(--vbp-black) !important; /* ponytail: overrides Flatsome inline header bg */
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
}
.header-bg-color, .header-top { background: var(--vbp-black) !important; }

.site-title {
    font-family: var(--bp-font-head) !important; font-weight: 800 !important;
    font-size: 21px !important; letter-spacing: -0.03em !important; color: var(--vbp-white) !important;
}
.header-logo .logo img { max-height: 34px; width: auto; }

.nav > li > a {
    font-family: var(--bp-font-body) !important; font-weight: 600 !important; font-size: 12px !important;
    text-transform: uppercase !important; letter-spacing: .08em !important;
    color: var(--vbp-white) !important; transition: color var(--bp-t-fast) var(--bp-ease);
}
.nav > li > a:hover, .nav > li.current-menu-item > a { color: var(--vbp-lime) !important; }
.nav > li.current-menu-item > a { position: relative; }
.nav > li.current-menu-item > a::after {
    content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px;
    background: var(--vbp-lime); border-radius: var(--bp-r-pill);
}

.header-search-form {
    background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: var(--bp-r-pill) !important; padding: 9px 18px !important;
    transition: border-color var(--bp-t-fast), box-shadow var(--bp-t-fast);
}
.header-search-form:focus-within { border-color: var(--vbp-lime) !important; box-shadow: 0 0 0 3px rgba(163,255,18,.22) !important; }
.header-search-form input {
    background: transparent !important; border: none !important; font-family: var(--bp-font-body) !important;
    font-size: 14px !important; color: var(--vbp-white) !important;
}
.header-search-form input::placeholder { color: rgba(255,255,255,.5) !important; }

.cart-icon-handle, .header-icon { color: var(--vbp-white) !important; transition: color var(--bp-t-fast); }
.cart-icon:hover .cart-icon-handle, .header-icon:hover { color: var(--vbp-lime) !important; }
.header-cart-link .cart-icon-count {
    background: var(--vbp-lime) !important; color: var(--vbp-ink) !important;
    font-weight: 700 !important; font-size: 11px !important; border-radius: var(--bp-r-pill) !important;
    min-width: 18px !important; height: 18px !important; line-height: 18px !important;
}

/* ANNOUNCEMENT BAR — .bp-bar : noir, texte lime */
.bp-bar {
    background: var(--vbp-black); color: var(--vbp-lime); padding: 11px 0;
    font-family: var(--bp-font-body); font-size: 13.5px; font-weight: 500;
    position: relative; z-index: var(--bp-z-bar); overflow: hidden;
}
.bp-bar__inner {
    display: flex; align-items: center; justify-content: center; gap: 20px;
    flex-wrap: wrap; position: relative; z-index: 1;
}
.bp-bar__pill {
    background: rgba(163,255,18,.12); border: 1px solid rgba(163,255,18,.4); color: var(--vbp-lime);
    border-radius: var(--bp-r-pill); padding: 2px 10px; font-size: 11px; font-weight: 700;
    letter-spacing: 0.04em; display: inline-flex; align-items: center; gap: 5px;
}
.bp-bar__cta {
    background: var(--vbp-lime); color: var(--vbp-ink) !important; border: none;
    padding: 5px 15px; border-radius: var(--bp-r-pill); font-size: 12.5px; font-weight: 700;
    text-decoration: none; transition: transform var(--bp-t-fast) var(--bp-ease-bounce), box-shadow var(--bp-t-fast);
    white-space: nowrap; display: inline-flex; align-items: center; gap: 5px;
}
.bp-bar__cta:hover { color: var(--vbp-ink) !important; transform: scale(1.04); box-shadow: 0 2px 8px rgba(0,0,0,.35); }

/* PRODUCT CARDS — hover lift + fix positionnement badge plugin
   Root cause : .box-text-products { position:relative } vole le rôle de parent
   de positionnement à .col-inner → badge plugin mal placé. */
.woocommerce ul.products li.product .col-inner {
    position: relative !important; /* ponytail: Flatsome pose ce style inline, la spécificité l'exige */
    overflow: hidden; border-radius: var(--bp-r-card) !important;
    background: var(--bp-white); box-shadow: var(--bp-shadow-card); border: 1.5px solid var(--bp-line);
    transition: transform var(--bp-t-base) var(--bp-ease), box-shadow var(--bp-t-base) var(--bp-ease), border-color var(--bp-t-base);
}
.woocommerce ul.products li.product .box-text-products {
    position: static !important; /* ponytail: seule correction possible sans toucher au plugin */
}
.woocommerce ul.products li.product:hover .col-inner {
    transform: translateY(-5px); box-shadow: var(--bp-shadow-card-hover); border-color: rgba(163,255,18,.35);
}
.box-image { position: relative; overflow: hidden; border-radius: var(--bp-r-card) var(--bp-r-card) 0 0; }
.box-image img { display: block; width: 100%; transition: transform var(--bp-t-slow) var(--bp-ease); will-change: transform; }
.woocommerce ul.products li.product:hover .box-image img { transform: scale(1.05); }
.box-text-products, .box-text { padding: 14px 16px 16px !important; } /* ponytail: override padding inline Flatsome */

.woocommerce-loop-product__title, .woocommerce ul.products li.product h2 {
    font-family: var(--bp-font-head) !important; font-size: 14px !important; font-weight: 600 !important;
    line-height: 1.45 !important; color: var(--bp-text) !important; margin: 0 0 8px !important; letter-spacing: -.01em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce ul.products li.product .onsale {
    background: var(--vbp-lime) !important; color: var(--vbp-ink) !important;
    font-weight: 700 !important; font-size: 11px !important; border-radius: var(--bp-r-pill) !important;
    padding: 4px 10px !important; min-height: auto !important; min-width: auto !important; line-height: 1.5 !important;
    top: 12px !important; right: 12px !important; left: auto !important; box-shadow: var(--bp-shadow-coral) !important;
}

/* PRIX */
.price {
    font-family: var(--bp-font-head) !important; font-weight: 700 !important; font-size: 18px !important;
    color: var(--bp-text) !important; letter-spacing: -.02em !important;
}
.price del { color: var(--bp-text-4) !important; font-weight: 400 !important; font-size: 13.5px !important; }
.price ins { text-decoration: none !important; color: var(--bp-green) !important; }
.woocommerce ul.products li.product .price ins { background: var(--bp-green-dim); border-radius: var(--bp-r-sm); padding: 1px 6px; }

/* BOUTONS — pill lime, texte noir, flèche →. FIX: exclut les .vbu-* rendus par le plugin */
.button:not([class*="vbu-"]), .btn:not([class*="vbu-"]), input[type="submit"]:not([class*="vbu-"]),
.woocommerce-Button, .single_add_to_cart_button {
    font-family: var(--bp-font-body) !important; font-weight: 700 !important; font-size: 14.5px !important;
    background: var(--vbp-lime) !important; color: var(--vbp-ink) !important; border: none !important;
    border-radius: var(--bp-r-pill) !important; padding: 13px 28px !important;
    text-transform: none !important; letter-spacing: -.01em !important;
    transition: background var(--bp-t-fast) var(--bp-ease), transform var(--bp-t-fast) var(--bp-ease-bounce), box-shadow var(--bp-t-fast) !important;
}
.button:not([class*="vbu-"]):hover, .btn:not([class*="vbu-"]):hover, input[type="submit"]:not([class*="vbu-"]):hover,
.woocommerce-Button:hover, .single_add_to_cart_button:hover {
    background: var(--vbp-coral-dark) !important; color: var(--vbp-ink) !important;
    transform: translateY(-2px) !important; box-shadow: 0 8px 20px rgba(163,255,18,.35) !important;
}
.button.outline, .bp-btn-outline {
    background: transparent !important; color: var(--vbp-ink) !important;
    border: 2px solid var(--vbp-ink) !important; box-shadow: none !important;
}
.button.outline:hover, .bp-btn-outline:hover { background: var(--vbp-gray-100) !important; transform: translateY(-1px) !important; }

/* Boutons maison BuyPukka : pill lime pleine ou contour blanc sur fond sombre */
.bp-btn {
    display: inline-flex; align-items: center; gap: 8px; background: var(--vbp-lime); color: var(--vbp-ink);
    font-family: var(--bp-font-body); font-weight: 700; font-size: 14.5px; text-decoration: none;
    border-radius: var(--bp-r-pill); padding: 13px 26px; transition: transform var(--bp-t-fast) var(--bp-ease-bounce), background var(--bp-t-fast);
}
.bp-btn:hover { background: var(--vbp-coral-dark); color: var(--vbp-ink); transform: translateY(-2px); }
.bp-btn--ghost {
    background: transparent; color: var(--vbp-white); border: 1.5px solid rgba(255,255,255,.5);
}
.bp-btn--ghost:hover { background: rgba(255,255,255,.1); color: var(--vbp-white); }

/* Lien de section "Voir tout →" */
.bp-section__link { color: var(--vbp-ink); font-weight: 700; text-decoration: none; white-space: nowrap; }
.bp-section__link:hover { color: var(--vbp-coral-dark); }

/* COIN BADGE — élément gamification propre au thème */
.bp-coin {
    display: inline-flex; align-items: center; gap: 4px; background: rgba(255,214,0,.15);
    border: 1.5px solid var(--vbp-yellow); border-radius: var(--bp-r-pill); padding: 3px 10px;
    font-size: 12px; font-weight: 700; color: #6B5900;
}
.bp-coin__icon { font-size: 14px; animation: bp-coin-spin 3s linear infinite; }
@keyframes bp-coin-spin { 0%, 100% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } }

/* HERO / PAGE TITRE (pages non-accueil) */
.page-title-bg { background: var(--vbp-black) !important; position: relative; overflow: hidden; }
.page-title h1, .page-title .entry-title { color: var(--vbp-white) !important; font-weight: 800 !important; position: relative; z-index: 1; }
.page-title .subtitle, .page-title p {
    color: rgba(255,255,255,.75) !important; font-family: var(--bp-font-body) !important; position: relative; z-index: 1;
}

/* ═══════════════════════════════════════════════════════════
   PAGE ACCUEIL — page-templates/home-viral.php
═══════════════════════════════════════════════════════════ */
.bp-section { padding: 56px 0; }
.bp-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.bp-section__title { font-family: var(--bp-font-head); font-weight: 800; font-size: 26px; margin: 0 0 6px; color: var(--bp-text); }
.bp-section__sub { font-size: 14.5px; color: var(--bp-text-3); margin: 0; }
.bp-section--dark { background: var(--vbp-black); color: var(--vbp-white); }
.bp-section--dark .bp-section__title { color: var(--vbp-white); }
.bp-section--dark .bp-section__sub { color: rgba(255,255,255,.65); }
.bp-section--dark .bp-section__link { color: var(--vbp-lime); }

/* 01 — HERO */
.bp-hero3 { background: var(--vbp-black); color: var(--vbp-white); padding: 56px 0; overflow: hidden; }
.bp-hero3__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.bp-hero3__title { font-size: 34px; line-height: 1.15; font-weight: 800; margin: 0 0 16px; color: var(--vbp-white); }
.bp-hero3__title em { font-style: normal; color: var(--vbp-lime); }
.bp-hero3__subtitle { font-size: 16px; color: rgba(255,255,255,.75); margin: 0 0 24px; max-width: 480px; }
.bp-hero3__search { display: flex; align-items: center; gap: 6px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: var(--bp-r-pill); padding: 6px 6px 6px 20px; max-width: 460px; }
.bp-hero3__search-input { flex: 1; background: transparent; border: none; color: var(--vbp-white); font-family: var(--bp-font-body); font-size: 14.5px; padding: 8px 0; }
.bp-hero3__search-input::placeholder { color: rgba(255,255,255,.5); }
.bp-hero3__search-input:focus { outline: none; }
.bp-hero3__search-submit { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--vbp-lime); color: var(--vbp-ink); border: none; display: grid; place-items: center; cursor: pointer; transition: transform var(--bp-t-fast) var(--bp-ease-bounce); }
.bp-hero3__search-submit:hover { transform: scale(1.06); }
.bp-hero3__trust { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; }
.bp-hero3__trust li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,.85); }
.bp-hero3__trust svg { flex-shrink: 0; color: var(--vbp-lime); }
.bp-hero3__visual { border-radius: var(--vbp-radius-lg); overflow: hidden; background: var(--vbp-gray-900); min-height: 240px; }
.bp-hero3__visual img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (min-width: 900px) {
    .bp-hero3__grid { grid-template-columns: 1.05fr .95fr; gap: 48px; }
    .bp-hero3__title { font-size: 44px; }
    .bp-hero3__trust { grid-template-columns: 1fr 1fr; }
}

/* 02 — CATÉGORIES */
.bp-cats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.bp-cats__tile { position: relative; display: block; min-height: 170px; border-radius: var(--vbp-radius-lg); overflow: hidden; background: var(--vbp-gray-900) center / cover no-repeat; text-decoration: none; }
.bp-cats__tile::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,11,15,.85) 0%, rgba(11,11,15,.15) 65%); }
.bp-cats__tile:hover img { transform: scale(1.08); }
.bp-cats__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform var(--bp-t-slow) var(--bp-ease); z-index: 0; }
.bp-cats__name { position: absolute; left: 14px; bottom: 14px; right: 46px; z-index: 1; color: var(--vbp-white) !important; font-family: var(--bp-font-head); font-weight: 700; font-size: 15px; line-height: 1.25; }
.bp-cats__arrow { position: absolute; right: 12px; bottom: 12px; z-index: 1; width: 30px; height: 30px; border-radius: 50%; background: var(--vbp-lime); color: var(--vbp-ink); display: grid; place-items: center; }

@media (min-width: 900px) { .bp-cats__grid { grid-template-columns: repeat(4, 1fr); } }

/* 05 — NOUVEAUTÉS : cartes sombres sur section blanche */
.bp-new { background: var(--vbp-white); }
.bp-new .woocommerce ul.products li.product .col-inner { background: var(--vbp-black); border-color: var(--vbp-gray-900); }
.bp-new .woocommerce-loop-product__title { color: var(--vbp-white) !important; }
.bp-new .price { color: var(--vbp-white) !important; }
.bp-new .price ins { color: var(--vbp-lime) !important; background: transparent; }
.bp-new .vbp-badge--new { background: var(--vbp-lime) !important; color: var(--vbp-ink) !important; font-weight: 700; }
.bp-new .yith-wcwl-add-to-wishlist { position: absolute; top: 12px; right: 12px; z-index: 2; }

/* 06 — VIRAL : bande de polaroïds */
.bp-buzz__row { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px 4px 18px; -webkit-overflow-scrolling: touch; }
.bp-polaroid { flex: 0 0 200px; scroll-snap-align: center; background: var(--vbp-white); border-radius: 6px; padding: 10px 10px 20px; box-shadow: 0 12px 24px rgba(0,0,0,.18); text-decoration: none; position: relative; transition: transform var(--bp-t-base) var(--bp-ease); }
.bp-polaroid:hover { transform: translateY(-4px) rotate(0deg) !important; }
.bp-polaroid__img { display: block; width: 100%; height: 200px; object-fit: cover; border-radius: 2px; background: var(--vbp-gray-100); }
.bp-polaroid__star { position: absolute; top: -10px; right: -8px; width: 34px; height: 34px; }
.bp-polaroid__caption { display: block; margin-top: 10px; font-family: var(--bp-font-head); font-weight: 700; font-size: 13px; color: var(--vbp-ink); text-align: center; }
.bp-polaroid__views { position: absolute; left: 10px; bottom: 28px; background: var(--vbp-black); color: var(--vbp-white); font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: var(--bp-r-pill); }

@media (min-width: 900px) { .bp-buzz__row { overflow: visible; } }

/* 07 — À PROPOS */
.bp-about { position: relative; padding: 0; }
.bp-about__media { position: relative; min-height: 380px; background: var(--vbp-black) center / cover no-repeat; display: flex; align-items: center; }
.bp-about__media::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,11,15,.88) 0%, rgba(11,11,15,.35) 60%, transparent 100%); }
.bp-about__content { position: relative; z-index: 1; max-width: 520px; padding: 56px 24px; color: var(--vbp-white); }
.bp-about__content h2 { color: var(--vbp-white) !important; font-size: 28px; margin: 0 0 14px; }
.bp-about__content p { color: rgba(255,255,255,.8); margin: 0 0 24px; }

/* 08 — RÉSEAUX SOCIAUX */
.bp-social__icons { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0 0 28px; }
.bp-social__icons a { color: var(--vbp-ink); transition: color var(--bp-t-fast); }
.bp-social__icons a:hover { color: var(--vbp-coral-dark); }
.bp-social__hashtag { font-family: var(--bp-font-head); font-weight: 700; color: var(--vbp-coral-dark); }
.bp-social__strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.bp-social__strip img { display: block; width: 100%; height: 130px; object-fit: cover; border-radius: 8px; }

@media (min-width: 900px) { .bp-social__strip { grid-template-columns: repeat(6, 1fr); } }

/* 09 — ENGAGEMENT */
.bp-values { position: relative; background: var(--vbp-black) center / cover no-repeat; color: var(--vbp-white); }
.bp-values::before { content: ''; position: absolute; inset: 0; background: rgba(11,11,15,.72); }
.bp-values .container { position: relative; z-index: 1; }
.bp-values__grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
.bp-values__item { text-align: center; }
.bp-values__icon { width: 48px; height: 48px; margin: 0 auto 14px; display: grid; place-items: center; border-radius: 50%; background: rgba(163,255,18,.14); color: var(--vbp-lime); }
.bp-values__item h3 { color: var(--vbp-white) !important; font-size: 17px; margin: 0 0 8px; }
.bp-values__item p { color: rgba(255,255,255,.7); font-size: 14px; margin: 0; }

@media (min-width: 900px) { .bp-values__grid { grid-template-columns: repeat(3, 1fr); } }

/* 10 — NEWSLETTER */
.bp-newsletter { background: var(--vbp-black); color: var(--vbp-white); }
.bp-newsletter__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.bp-newsletter__title { color: var(--vbp-white) !important; font-size: 28px; margin: 0 0 10px; }
.bp-newsletter__sub { color: rgba(255,255,255,.7); margin: 0 0 22px; }
.bp-newsletter__script { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.bp-newsletter__spark { width: 64px; height: 64px; }
.bp-newsletter__script span { font-family: var(--bp-font-head); font-style: italic; font-weight: 800; font-size: 26px; color: var(--vbp-lime); }

@media (min-width: 900px) { .bp-newsletter__grid { grid-template-columns: 1.1fr .9fr; } }

/* WOOCOMMERCE — Global polish */
.woocommerce .star-rating { color: var(--vbp-yellow) !important; }
.woocommerce .star-rating::before { color: rgba(255,214,0,.2) !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-radius: var(--bp-r-md) !important; font-family: var(--bp-font-body) !important;
}
.woocommerce-message { border-left-color: var(--bp-green) !important; background: var(--bp-green-dim) !important; }
.woocommerce-error { border-left-color: var(--bp-red) !important; background: var(--bp-red-dim) !important; }

.quantity {
    display: inline-flex; align-items: center; border: 2px solid var(--bp-line);
    border-radius: var(--bp-r-md); overflow: hidden;
    transition: border-color var(--bp-t-fast), box-shadow var(--bp-t-fast);
}
.quantity:focus-within { border-color: var(--vbp-lime); box-shadow: 0 0 0 3px var(--bp-blue-glow); }
.quantity input[type="number"] {
    border: none !important; text-align: center !important; font-weight: 600 !important;
    width: 56px !important; padding: 8px 4px !important; color: var(--bp-text) !important;
}

/* FOOTER — noir, texte blanc */
#footer, .footer-1, .footer-2, .footer-bottom { background: var(--vbp-black) !important; color: rgba(255,255,255,.7) !important; }
#footer a { color: rgba(255,255,255,.85) !important; }
#footer a:hover { color: var(--vbp-lime) !important; }
#footer h3, #footer h4, #footer .widget-title { color: var(--vbp-white) !important; }
#footer hr, #footer .divider { border-color: rgba(255,255,255,.12) !important; }
.footer-bottom, .footer-bottom .copyright-footer { color: rgba(255,255,255,.55) !important; }

/* RESPONSIVE — Mobile-first */
@media (max-width: 768px) {
    .bp-bar__inner { gap: 10px; font-size: 12.5px; }
    .bp-section { padding: 40px 0; }
}
@media (max-width: 480px) {
    .bp-bar__inner { flex-direction: column; gap: 8px; }
}

/* A11Y / PRINT / REDUCED MOTION */
:focus-visible { outline: 2px solid var(--vbp-lime); outline-offset: 3px; border-radius: 3px; }
@media print { .bp-bar { display: none !important; } }
@media (prefers-contrast: high) {
    :root { --vbp-blue: #007A8A; --vbp-green: #15803D; --vbp-line: #B8B8C0; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important;
    }
}

/* 6.0.2 — Flatsome recolore les titres : forcer le hero */
.bp-hero3 h1.bp-hero3__title, .bp-hero3 .bp-hero3__title { color: #FFFFFF !important; }
.bp-hero3 .bp-hero3__title em { color: #A3FF12 !important; }
.header-logo img, #logo img { max-height: 54px; width: auto; }

/* 6.0.3 — hero pleine largeur sur photo (maquette « Des idées d'aujourd'hui ») */
.bp-hero3--bleed { position: relative; padding: 0; min-height: 560px; display: flex; align-items: center; background: var(--vbp-black) center right / cover no-repeat; }
.bp-hero3--bleed .bp-hero3__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,11,15,.94) 0%, rgba(11,11,15,.82) 38%, rgba(11,11,15,.35) 62%, rgba(11,11,15,.15) 100%); }
.bp-hero3--bleed .container { position: relative; width: 100%; }
.bp-hero3__content { max-width: 620px; padding: 64px 0; }
.bp-hero3__eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-family: var(--bp-font-body); font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--vbp-lime); }
.bp-hero3__eyebrow span { display: inline-block; width: 44px; height: 3px; background: var(--vbp-lime); border-radius: 2px; }
.bp-hero3--bleed .bp-hero3__title { font-size: 40px; line-height: 1.02; letter-spacing: -.02em; margin: 0 0 18px; }
.bp-hero3--bleed .bp-hero3__subtitle { font-size: 18px; color: rgba(255,255,255,.9); margin: 0 0 26px; max-width: 520px; }
.bp-hero3--bleed .bp-hero3__search { background: #FFFFFF; border: none; max-width: 640px; padding: 8px 8px 8px 22px; gap: 12px; box-shadow: 0 12px 40px rgba(0,0,0,.35); }
.bp-hero3__search-icon { color: var(--vbp-gray-500); flex-shrink: 0; }
.bp-hero3--bleed .bp-hero3__search-input { color: var(--vbp-ink); font-size: 16px; padding: 10px 0; }
.bp-hero3--bleed .bp-hero3__search-input::placeholder { color: var(--vbp-gray-500); }
.bp-hero3--bleed .bp-hero3__search-submit { width: 52px; height: 52px; }
.bp-hero3--bleed .bp-hero3__trust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; margin-top: 34px; }
.bp-hero3--bleed .bp-hero3__trust li { align-items: center; gap: 12px; font-size: 13px; line-height: 1.3; }
.bp-hero3--bleed .bp-hero3__trust span { display: flex; flex-direction: column; color: rgba(255,255,255,.8); }
.bp-hero3--bleed .bp-hero3__trust strong { color: #FFFFFF; font-family: var(--bp-font-head); font-weight: 700; font-size: 15px; }
@media (max-width: 767px) {
    .bp-hero3--bleed { background-position: 72% center; min-height: 0; }
    .bp-hero3--bleed .bp-hero3__shade { background: linear-gradient(180deg, rgba(11,11,15,.55) 0%, rgba(11,11,15,.92) 45%, rgba(11,11,15,.97) 100%); }
    .bp-hero3__content { padding: 150px 0 40px; }
    .bp-hero3--bleed .bp-hero3__title { font-size: 34px; }
}
@media (min-width: 1024px) {
    .bp-hero3--bleed { min-height: 640px; }
    .bp-hero3__content { max-width: 680px; }
    .bp-hero3--bleed .bp-hero3__title { font-size: 62px; }
    .bp-hero3--bleed .bp-hero3__trust { grid-template-columns: repeat(4, auto); justify-content: start; gap: 18px 34px; }
}

/* 6.0.4 — garanties du hero sur une ligne */
.bp-hero3--bleed .bp-hero3__trust { width: max-content; max-width: 100%; }
.bp-hero3--bleed .bp-hero3__trust strong, .bp-hero3--bleed .bp-hero3__trust span { white-space: nowrap; }
@media (min-width: 1024px) { .bp-hero3--bleed .bp-hero3__trust { grid-template-columns: repeat(4, max-content); } }

/* 6.1.0 — gabarit page-templates/page-brand.php (À propos, Aide, Livraison, Retours, Contact, Viral, Offres, Nouveautés) */
.page-template-page-brand .bp-page-brand { max-width: 820px; margin: 0 auto; padding: 56px 0 72px; }
.bp-page-brand h1 { font-family: var(--vbp-font-head); font-weight: 800; font-size: 34px; color: var(--vbp-ink); margin: 0 0 28px; }
.bp-page-brand__content { font-family: var(--vbp-font-body); font-size: 16px; line-height: 1.7; color: var(--vbp-text); }
.bp-page-brand__content h2 { font-family: var(--vbp-font-head); font-weight: 800; font-size: 24px; color: var(--vbp-ink); margin: 0 0 16px; }
.bp-page-brand__content h3 { font-family: var(--vbp-font-head); font-weight: 700; font-size: 18px; color: var(--vbp-ink); margin: 34px 0 10px; }
.bp-page-brand__content h3:first-child { margin-top: 0; }
.bp-page-brand__content p { margin: 0 0 16px; }
.bp-page-brand__content a { color: var(--vbp-coral-dark); font-weight: 600; text-decoration: underline; }
.bp-page-brand__content a:hover { color: var(--vbp-lime); }
@media (max-width: 767px) { .bp-page-brand { padding: 36px 0 48px; } .bp-page-brand h1 { font-size: 27px; } }

/* 6.1.0 — section « Baromètre viral » (accueil, entre le buzz et l'à-propos) */
.bp-barometer { background: var(--vbp-black); }
@media (max-width: 480px) { .bp-hero3--bleed .bp-hero3__trust { grid-template-columns: 1fr; width: auto; } }

/* 6.1.1 — titres blancs dans le baromètre et les sections sombres (Flatsome recolore les titres) */
.vbp-barometer h1, .vbp-barometer h2, .vbp-barometer h3, .vbp-barometer .vbp-barometer__title,
.bp-section--dark h2, .bp-section--dark h3, .bp-barometer h2, .bp-barometer h3 { color: #FFFFFF !important; }
.vbp-barometer a { color: #FFFFFF; }
.vbp-video-section h2 { color: var(--vbp-ink); }

/* 6.2.1 — zone de contenu libre (UX Builder) sur l'accueil */
.bp-custom { padding: 48px 0; background: #fff; }
.bp-custom:empty { display: none; }
