  /* ============================================================ */
  /* === BASE — Layout des cards produits commun à TOUS les thèmes
     Ces règles ont priorité sur les thèmes via spécificité élevée.
     Les thèmes peuvent surcharger font-family / size / color.
  ============================================================ */
  body .product-card-premium .meta,
  .shop-grid .product-card-premium .meta {
    padding: 12px 14px 16px;
    box-sizing: border-box;
    width: 100%;
  }
  body .product-card-premium .meta-top {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
  }
  body .product-card-premium .name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
    padding-right: 4px;
    white-space: normal;
  }
  /* Mobile : titre complet affiché (retour à la ligne, jamais coupé) */
  @media (max-width: 760px) {
    body .product-card-premium .name {
      display: block;
      -webkit-line-clamp: unset;
      overflow: visible;
      text-overflow: unset;
    }
  }
  body .product-card-premium .price {
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    white-space: nowrap;
  }
  body .product-card-premium .sub {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 4px;
    font-size: 12px;
    opacity: 0.7;
  }

  /* ============================================================ */
  @media (max-width: 760px) {
  }
  @media (min-width: 1000px) {
  }


  /* ============================================================ */
  /* THÈME : BOLD (Gen Z, vibrant, gradients, énergique)          */
  /* ============================================================ */
  body.theme-bold {
    --radius: 20px;
    --radius-lg: 28px;
    background: #ffffff;
  }
  body.theme-bold .shop-nav {
    background: #ffffff !important;
    border-bottom: 1px solid #e5e7eb !important;
    padding: 14px 24px;
    z-index: 100 !important;
  }
  body.theme-bold .lv-shop-name,
  body.theme-bold .lv-name-text {
    font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.04em !important;
    font-size: 24px !important;
    background: linear-gradient(135deg, #f43f5e 0%, #a855f7 50%, #3b82f6 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent !important;
  }
  body.theme-bold .lv-nav-links-left a {
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
    font-size: 14px !important;
    color: #1c1917 !important;
  }
  body.theme-bold .lv-nav-links-left a:hover {
    opacity: 1;
    color: #f43f5e !important;
  }
  body.theme-bold .lv-banner {
    border-radius: 28px;
    margin: 8px;
    overflow: hidden;
    min-height: 72vh;
  }
  body.theme-bold .lv-banner.gradient {
    background: linear-gradient(135deg, #f43f5e 0%, #f97316 25%, #a855f7 75%, #3b82f6 100%) !important;
  }
  body.theme-bold .lv-banner-content {
    text-align: center;
  }
  body.theme-bold .lv-hero-title {
    font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.05em !important;
    font-size: clamp(48px, 11vw, 144px) !important;
    line-height: 0.9 !important;
    color: white !important;
    text-shadow: 0 4px 30px rgba(0,0,0,0.2);
  }
  body.theme-bold .lv-hero-title em {
    font-style: normal;
    background: linear-gradient(135deg, #fef08a 0%, #fbbf24 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  body.theme-bold .lv-hero-subtitle {
    font-size: 17px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    margin-bottom: 32px !important;
  }
  body.theme-bold .lv-hero-cta {
    border-radius: 100px;
    padding: 18px 36px;
    font-weight: 700;
    letter-spacing: -0.01em;
    text-transform: none;
    font-size: 15px;
    background: white;
    color: #1c1917;
    border: none;
    box-shadow: 0 4px 30px rgba(0,0,0,0.15);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  body.theme-bold .lv-hero-cta:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 40px rgba(0,0,0,0.25);
    background: white;
    color: #1c1917;
  }
  body.theme-bold h2,
  body.theme-bold .section-title {
    font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.04em !important;
    font-size: clamp(36px, 5vw, 64px) !important;
    line-height: 1 !important;
  }
  body.theme-bold h2 em,
  body.theme-bold .section-title em {
    font-style: normal;
    background: linear-gradient(135deg, #f43f5e 0%, #a855f7 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  body.theme-bold .section-eyebrow {
    font-weight: 700;
    text-transform: none;
    letter-spacing: -0.01em;
    font-size: 14px;
    color: #f43f5e;
  }
  body.theme-bold .product-card-premium {
    border-radius: 20px;
    border: none;
    background: #fafaf9;
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  }
  body.theme-bold .product-card-premium:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
  }
  body.theme-bold .product-card-premium .media {
    border-radius: 16px;
    margin: 8px;
    overflow: hidden;
  }
  body.theme-bold .product-card-premium .meta {
    padding: 8px 16px 18px;
  }
  body.theme-bold .product-card-premium .name {
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -0.01em;
  }
  body.theme-bold .product-card-premium .price {
    font-weight: 700;
    color: #1c1917;
    font-size: 15px;
  }
  body.theme-bold .filter-pill,
  body.theme-bold .cat-filter,
  body.theme-bold .cat-filter-sub,
  body.theme-bold .section-link {
    border-radius: 100px;
    text-transform: none;
    letter-spacing: -0.01em;
    font-size: 13px;
    font-weight: 700;
  }
  body.theme-bold .cat-filter.active {
    background: linear-gradient(135deg, #f43f5e 0%, #a855f7 100%);
    color: white;
    border-color: transparent;
  }
  body.theme-bold .product-search {
    border-radius: 100px;
    padding: 14px 22px;
    background: #fafaf9;
    border-color: #fafaf9;
    font-weight: 500;
  }
  body.theme-bold .badge-corner,
  body.theme-bold .badge-new {
    border-radius: 100px;
    text-transform: none;
    letter-spacing: -0.01em;
    font-size: 11px;
    font-weight: 700;
    background: linear-gradient(135deg, #f43f5e 0%, #a855f7 100%);
    color: white;
  }

  /* ============================================================ */
  /* THÈME : STUDIO (créatif, design portfolio, asymétrique)      */
  /* ============================================================ */
  body.theme-studio {
    --radius: 0;
    --radius-lg: 0;
    background: #f8f7f3;
  }
  body.theme-studio .shop-nav {
    background: #f8f7f3;
    border-bottom: 2px solid #1c1917;
  }
  body.theme-studio .lv-shop-name,
  body.theme-studio .lv-name-text {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.04em !important;
    font-size: 26px !important;
    font-style: italic;
  }
  body.theme-studio .lv-nav-links-left a {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic;
    text-transform: lowercase !important;
    font-size: 17px !important;
    letter-spacing: 0 !important;
  }
  body.theme-studio .lv-banner {
    border-radius: 0;
    min-height: 85vh;
    margin: 16px;
    overflow: hidden;
    border: 2px solid #1c1917;
  }
  body.theme-studio .lv-banner.gradient {
    background: #ffd803 !important;
  }
  body.theme-studio .lv-banner-content {
    text-align: left;
    max-width: 800px;
    padding: 0 60px;
  }
  body.theme-studio .lv-hero-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: clamp(56px, 11vw, 160px) !important;
    line-height: 0.85 !important;
    font-weight: 900 !important;
    letter-spacing: -0.05em !important;
    color: #1c1917 !important;
    text-shadow: none;
  }
  body.theme-studio .lv-banner.has-image .lv-hero-title {
    color: white !important;
  }
  body.theme-studio .lv-hero-title em {
    font-style: italic;
    font-weight: 400;
  }
  body.theme-studio .lv-hero-subtitle {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 22px !important;
    font-style: italic;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-bottom: 36px !important;
    color: #1c1917 !important;
    opacity: 1 !important;
  }
  body.theme-studio .lv-banner.has-image .lv-hero-subtitle {
    color: white !important;
  }
  body.theme-studio .lv-hero-cta {
    border-radius: 0;
    padding: 16px 36px;
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    font-size: 16px;
    font-style: italic;
    background: #3c2e1e;  /* brun chocolat profond (vs noir froid) — garde le contraste avec le jaune */
    color: #ffd803;
    border: 2px solid #3c2e1e;
    box-shadow: 0 4px 12px rgba(60, 46, 30, 0.18);
  }
  body.theme-studio .lv-hero-cta:hover {
    background: #ffd803;
    color: #3c2e1e;
    border-color: #ffd803;
  }
  body.theme-studio h2,
  body.theme-studio .section-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 900 !important;
    font-size: clamp(40px, 6vw, 80px) !important;
    letter-spacing: -0.04em !important;
    line-height: 0.95 !important;
  }
  body.theme-studio h2 em,
  body.theme-studio .section-title em {
    font-style: italic;
    font-weight: 400;
  }
  body.theme-studio .section-eyebrow {
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-size: 16px;
    letter-spacing: 0;
    text-transform: lowercase;
    color: #1c1917;
  }
  body.theme-studio .product-card-premium {
    border-radius: 0;
    border: 2px solid #1c1917;
    background: white;
    transition: transform 0.18s ease;
  }
  body.theme-studio .product-card-premium:hover {
    transform: translate(-4px, -4px);
    box-shadow: 8px 8px 0 #1c1917;
  }
  body.theme-studio .product-card-premium .media {
    aspect-ratio: 1 / 1;
    border-bottom: 2px solid #1c1917;
  }
  body.theme-studio .product-card-premium .meta {
    padding: 14px 16px;
  }
  body.theme-studio .product-card-premium .name {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 17px;
    font-style: italic;
  }
  body.theme-studio .product-card-premium .price {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 900;
    font-size: 18px;
    color: #1c1917;
  }
  body.theme-studio .lv-cat-card {
    border-radius: 0;
    border: 2px solid #1c1917;
    transition: transform 0.18s ease;
  }
  body.theme-studio .lv-cat-card:hover {
    transform: translate(-4px, -4px);
    box-shadow: 8px 8px 0 #1c1917;
  }
  body.theme-studio .lv-cat-card-title {
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -0.02em;
  }
  body.theme-studio .filter-pill,
  body.theme-studio .cat-filter,
  body.theme-studio .cat-filter-sub,
  body.theme-studio .section-link {
    border-radius: 0;
    border: 2px solid #1c1917;
    background: white;
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    text-transform: lowercase;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
  }
  body.theme-studio .cat-filter.active {
    background: #ffd803;
    color: #1c1917;
  }
  body.theme-studio .product-search {
    border-radius: 0;
    border: 2px solid #1c1917;
    background: white;
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
  }
  body.theme-studio .badge-corner,
  body.theme-studio .badge-new {
    border-radius: 0;
    border: 2px solid #1c1917;
    background: #ffd803;
    color: #1c1917;
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    text-transform: lowercase;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
  }

  /* ============================================================
     THEME: FLOATING (Pill Glassmorphism - inspiration luxe/agency)
     ============================================================
     Navigation : pill noire flottante avec backdrop-blur
     Cards : encadrées de la même manière, légèrement floating
     ============================================================ */

  body.theme-floating {
    background: var(--bg);
  }

  /* Nav : pill flottante au-dessus de l'image hero (brun chocolat translucide, plus chaud que noir) */
  body.theme-floating .shop-nav {
    position: fixed;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px);
    max-width: 1200px;
    background: rgba(60, 46, 30, 0.5);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 100px;
    padding: 12px 30px;
    box-shadow: 0 8px 32px rgba(60, 46, 30, 0.18);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 100;
  }
  /* Espace à gauche de la première catégorie (comme les autres styles) */
  body.theme-floating .lv-nav-links-left {
    padding-left: 6px;
  }
  /* Quand on scroll : la pill se transforme en barre fine collée en haut.
     Plus de noir : on passe en blanc translucide avec texte sombre — design "color flip" élégant. */
  body.theme-floating.nav-scrolled .shop-nav {
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: 1px solid rgba(20, 18, 16, 0.08) !important;
    padding: 10px 24px !important;
    background: rgba(255, 253, 250, 0.92) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    backdrop-filter: blur(20px) saturate(180%);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  }
  /* Quand la nav est en mode scrolled, le texte/icônes deviennent sombres pour rester lisibles sur fond blanc */
  body.theme-floating.nav-scrolled .shop-nav,
  body.theme-floating.nav-scrolled .shop-nav a,
  body.theme-floating.nav-scrolled .shop-nav button,
  body.theme-floating.nav-scrolled .lv-shop-name,
  body.theme-floating.nav-scrolled .lv-nav-link,
  body.theme-floating.nav-scrolled .lv-nav-link-icon {
    color: #2a1f15 !important;
  }
  body.theme-floating.nav-scrolled .lv-nav-link:hover,
  body.theme-floating.nav-scrolled .lv-nav-link-icon:hover {
    opacity: 0.65;
  }
  /* Si banner promo : abaisser la pill */
  body.theme-floating.has-promo-banner .shop-nav {
    top: 56px;
  }
  body.theme-floating.has-promo-banner.nav-scrolled .shop-nav {
    top: 0 !important;
  }
  /* Mobile : équilibrer haut/bas */
  @media (max-width: 760px) {
    body.theme-floating.has-promo-banner .shop-nav {
      top: 50px;
    }
  }

  /* Couleur du contenu de la nav : blanc avec opacity */
  body.theme-floating .shop-nav,
  body.theme-floating .shop-nav a,
  body.theme-floating .shop-nav button,
  body.theme-floating .lv-shop-name {
    color: #fff;
  }
  body.theme-floating .lv-nav-link {
    color: rgba(255, 255, 255, 0.92);
    font-weight: 500;
    letter-spacing: 0.02em;
    transition: opacity 0.2s;
  }
  body.theme-floating .lv-nav-link:hover {
    opacity: 0.7;
  }
  body.theme-floating .lv-nav-link-icon {
    color: #fff;
  }
  body.theme-floating .lv-nav-link-icon:hover {
    opacity: 0.7;
  }
  /* Le bouton hamburger en blanc plein (sans gradient doré, sans bordure)
     IMPORTANT : on cible la VRAIE classe rendue dans le HTML : .mobile-nav-toggle */
  /* En floating, le burger est TOUJOURS visible (desktop + mobile) : c'est le
     principe du menu flottant. Règle placée ici (CSS partagé) et non en inline
     dans shop.html, sinon les autres pages de la boutique (contact, pages perso,
     qui chargent shop-nav.css où le burger est masqué en desktop) n'ont pas de
     burger → menu différent d'une page à l'autre. */
  body.theme-floating .lv-nav-left .mobile-nav-toggle,
  body.theme-floating .shop-nav .mobile-nav-toggle {
    display: flex !important;
  }
  /* En floating, les liens ne s'affichent QUE dans la bulle déroulante (.open).
     Sans ça, les autres pages (contact, pages perso) montraient l'ancien menu
     inline À CÔTÉ du burger → deux menus en même temps. */
  body.theme-floating .lv-nav-links-left:not(.open),
  body.theme-floating .shop-nav-links:not(.open) {
    display: none !important;
  }

  /* ── FLOATING : sur toutes les pages boutique (contact, favoris, produit,
     pages perso), la pill est `fixed` → son conteneur ne prend AUCUNE place et
     le menu chevauchait le haut du contenu (titre de bannière, titre de page).
     On réserve la hauteur du menu sur ce conteneur : tout le contenu démarre
     sous la pill, sur toutes ces pages d'un coup. ── */
  body.theme-floating #shared-nav-container,
  body.theme-floating #shared-nav {
    display: block !important;
    height: 96px !important;
  }
  body.theme-floating.has-promo-banner #shared-nav-container,
  body.theme-floating.has-promo-banner #shared-nav {
    height: 144px !important;
  }
  @media (max-width: 760px) {
    body.theme-floating #shared-nav-container,
    body.theme-floating #shared-nav {
      height: 74px !important;
    }
    body.theme-floating.has-promo-banner #shared-nav-container,
    body.theme-floating.has-promo-banner #shared-nav {
      height: 114px !important;
    }
  }

  /* Mode "Tous les produits" (/slug/produits) : la bannière est masquée, la
     grille démarre en haut → même dégagement sous la pill. */
  body.theme-floating.catalog-view-only #catalogue {
    padding-top: 116px !important;
  }
  @media (max-width: 760px) {
    body.theme-floating.catalog-view-only #catalogue {
      padding-top: 94px !important;
    }
  }

  body.theme-floating .mobile-nav-toggle,
  body.theme-floating .mobile-menu-toggle {
    background: #ffffff !important;
    border-radius: 100px !important;
    width: 42px !important;
    height: 42px !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
  }

  /* ═══ FLOATING : drawer déroulant (desktop ET mobile) ═══
     Le floating utilise le burger partout. Le menu s'ouvre en panneau
     déroulant sous la pill (même look que mobile), à toutes les tailles. */
  body.theme-floating .lv-nav-links-left.open {
    display: flex !important;
    position: absolute !important;
    inset: auto !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 70vh !important;
    background: linear-gradient(155deg, #faf5eb 0%, #f0e6d0 100%) !important;
    border: 1px solid rgba(200, 161, 101, 0.35) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 40px rgba(60, 46, 30, 0.18) !important;
    padding: 8px 6px !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 200 !important;
    animation: floating-drawer-in 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  }
  body.theme-floating.nav-scrolled .lv-nav-links-left.open {
    top: 100% !important;
    border-radius: 0 0 18px 18px !important;
    border-top: none !important;
  }
  body.theme-floating .lv-nav-links-left.open a,
  body.theme-floating .lv-nav-links-left.open .mega-menu-trigger {
    color: #3d2f1e !important;
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 11px 14px !important;
    text-align: center !important;
    border-radius: 10px !important;
    border-bottom: none !important;
    width: 100% !important;
    display: block !important;
    transition: background 0.15s, color 0.15s !important;
  }
  body.theme-floating .lv-nav-links-left.open a:hover,
  body.theme-floating .lv-nav-links-left.open .mega-menu-trigger:hover,
  body.theme-floating .lv-nav-links-left.open .mega-menu-title:hover {
    background: rgba(200, 161, 101, 0.2) !important;
    color: var(--floating-gold-dark) !important;
    opacity: 1 !important;
  }
  body.theme-floating .lv-nav-links-left.open > .mega-menu-wrap,
  body.theme-floating .lv-nav-links-left.open .mega-menu-wrap {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 100% !important;
  }
  /* Sur desktop, le mega-menu panel dans le drawer floating s'affiche en liste
     pleine largeur, avec le MÊME fond que le reste du drawer (transparent). */
  body.theme-floating .lv-nav-links-left.open > .mega-menu-wrap {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-panel {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    margin-top: 4px !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
    z-index: auto !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-grid {
    display: block !important;
    padding: 0 !important;
    text-align: center !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-col {
    margin-bottom: 4px !important;
    text-align: center !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-title {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    font-weight: 700 !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-subs {
    display: block !important;
    text-align: center !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-menu-subs a {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  body.theme-floating .lv-nav-links-left.open .mega-arrow { display: none !important; }
  body.theme-floating .mobile-nav-toggle span,
  body.theme-floating .mobile-menu-toggle span {
    background: #0a0a0a !important;
    height: 2px !important;
  }
  body.theme-floating .mobile-nav-toggle:hover,
  body.theme-floating .mobile-menu-toggle:hover {
    background: #ffffff !important;
  }
  /* État ouvert : conserve le même style (juste les barres en croix) */
  body.theme-floating .mobile-nav-toggle.is-open,
  body.theme-floating .mobile-menu-toggle.is-open,
  body.theme-floating.drawer-open .mobile-nav-toggle {
    background: #ffffff !important;
    border: none !important;
  }
  body.theme-floating .mobile-nav-toggle.is-open span,
  body.theme-floating .mobile-menu-toggle.is-open span,
  body.theme-floating.drawer-open .mobile-nav-toggle span {
    background: #0a0a0a !important;
  }
  /* Push le contenu en bas pour que le hero soit visible derrière la nav */
  body.theme-floating .shop-main {
    padding-top: 0;
  }
  body.theme-floating .lv-hero,
  body.theme-floating .shop-hero {
    margin-top: 0;
  }

  /* Cards produits encadrées style pill (border-radius coordonné) */
  body.theme-floating .product-card-premium {
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 16px;
    overflow: hidden;
    background: var(--bg);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  }
  body.theme-floating .product-card-premium:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
    border-color: rgba(0,0,0,0.12);
  }
  body.theme-floating .product-card-premium .media {
    border-radius: 0;
  }
  body.theme-floating .product-card-premium .img {
    border-radius: 0;
  }
  /* Sections (coup de cœur, story, etc.) avec wrappers stylés */
  body.theme-floating .lv-featured-section,
  body.theme-floating .custom-section {
    background: var(--bg);
  }
  /* Boutons primaires : style pill, couleur chaude bois/caramel (pas noir froid) */
  body.theme-floating .btn-primary {
    border-radius: 100px;
    padding: 14px 28px;
    background: linear-gradient(135deg, #6b4423 0%, #8a5a30 100%);
    color: #fff5e6;
    border: none;
    font-weight: 500;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 14px rgba(107, 68, 35, 0.18);
  }
  body.theme-floating .btn-primary:hover {
    background: linear-gradient(135deg, #5a3919 0%, #6b4423 100%);
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(107, 68, 35, 0.25);
  }

  /* Filtres catégories : pills */
  body.theme-floating .cat-filter {
    border-radius: 100px;
    padding: 8px 18px;
    border: 1px solid var(--line);
    background: var(--bg);
    font-weight: 500;
  }
  body.theme-floating .cat-filter.active {
    background: linear-gradient(135deg, #d4a574 0%, #b8864e 100%);
    color: #2a1f15;
    border-color: #b8864e;
    font-weight: 600;
  }

  /* Search bar produits aussi en pill */
  body.theme-floating .product-search {
    border-radius: 100px;
    padding: 12px 20px;
  }

  /* Mobile : la pill reste lisible */
  @media (max-width: 860px) {
    body.theme-floating .shop-nav {
      /* Pas de transform translateX : on utilise left/right pour éviter le saut au scroll */
      top: 14px;
      left: 14px !important;
      right: 14px !important;
      transform: none !important;
      width: auto !important;
      max-width: none !important;
      padding: 10px 16px;
    }
    body.theme-floating.has-promo-banner .shop-nav {
      top: 50px;
    }
    /* Au scroll : full-width sans transform non plus */
    body.theme-floating.nav-scrolled .shop-nav {
      top: 0 !important;
      left: 0 !important;
      right: 0 !important;
      transform: none !important;
    }
  }

  /* ============================================================
     THEME FLOATING : améliorations avancées pour distinctivité
     ============================================================ */

  /* Couleur accent doré pour le thème (réutilisable) */
  body.theme-floating {
    --floating-gold: #c8a165;
    --floating-gold-dark: #8b6332;
    --floating-deep: #1a1410;
    --floating-cream: #f5ebd9;
  }

  /* === HERO : ajout d'un overlay sombre élégant en haut === */
  body.theme-floating .lv-hero::after,
  body.theme-floating .shop-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 220px;
    background: linear-gradient(to bottom, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 100%);
    pointer-events: none;
    z-index: 1;
  }

  /* === TYPOGRAPHIE LUXE === */
  body.theme-floating .lv-hero-title,
  body.theme-floating .shop-hero h1,
  body.theme-floating .lv-story-title,
  body.theme-floating .custom-section-title,
  body.theme-floating .lv-featured-title {
    font-family: 'Fraunces', 'Playfair Display', Georgia, serif;
    font-weight: 400;
    letter-spacing: -0.015em;
    line-height: 1.05;
  }
  body.theme-floating .lv-story-eyebrow,
  body.theme-floating .custom-section-eyebrow,
  body.theme-floating .lv-featured-eyebrow {
    color: var(--floating-gold);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 11px;
    font-weight: 600;
  }

  /* === NAV : améliorations typographiques === */
  body.theme-floating .lv-nav-link {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
  }
  body.theme-floating .lv-shop-name {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    letter-spacing: -0.01em;
    font-size: 18px;
    /* Pas de troncature : le nom complet est conservé.
       Si pas assez de place, autorise le retour à la ligne. */
    white-space: normal;
    word-break: break-word;
    text-align: center;
    line-height: 1.15;
    min-width: 0;
    flex-shrink: 1;
  }
  body.theme-floating .lv-name-text {
    white-space: normal;
    word-break: break-word;
    overflow: visible;
    text-overflow: clip;
    max-width: 100%;
  }

  /* La pill flottante est étroite : on masque les réseaux sociaux pour ne pas
     bousculer les liens nav. Ils restent accessibles depuis le footer + page contact. */
  body.theme-floating .lv-nav-social {
    display: none !important;
  }
  /* Logo apparence un peu plus brillante avec effet inset */
  body.theme-floating .lv-shop-name img,
  body.theme-floating .lv-shop-name svg {
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));
  }

  /* === DROPDOWN MOBILE FLOATING : ancré dans la pill, sort vers le bas === */
  @media (max-width: 860px) {
    body.theme-floating .shop-nav {
      position: fixed;
    }
    /* Le drawer = absolute par rapport à la nav */
    body.theme-floating .lv-nav-links-left.open {
      display: flex !important;
      position: absolute !important;
      inset: auto !important;
      top: calc(100% + 8px) !important;
      right: 0 !important;
      left: 0 !important;
      bottom: auto !important;
      width: 100% !important;
      max-width: 100% !important;
      height: auto !important;
      max-height: 70vh !important;
      background: linear-gradient(155deg, #faf5eb 0%, #f0e6d0 100%) !important;
      border: 1px solid rgba(200, 161, 101, 0.35) !important;
      border-radius: 18px !important;
      box-shadow: 0 16px 40px rgba(60, 46, 30, 0.18) !important;
      padding: 8px 6px !important;
      flex-direction: column !important;
      align-items: stretch !important;
      justify-content: flex-start !important;
      gap: 0 !important;
      overflow-y: auto !important;
      -webkit-overflow-scrolling: touch !important;
      animation: floating-drawer-in 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    }
    body.theme-floating.nav-scrolled .lv-nav-links-left.open {
      top: 100% !important;
      border-radius: 0 0 18px 18px !important;
      border-top: none !important;
    }
    /* Liens principaux : texte foncé sur fond clair (au lieu de blanc sur noir) */
    body.theme-floating .lv-nav-links-left.open a,
    body.theme-floating .lv-nav-links-left.open .mega-menu-trigger {
      color: #3d2f1e !important;
      font-family: 'Inter', -apple-system, sans-serif !important;
      font-size: 12px !important;
      font-weight: 600 !important;
      letter-spacing: 0.12em !important;
      text-transform: uppercase !important;
      padding: 10px 14px !important;
      text-align: center !important;
      border-radius: 10px !important;
      border-bottom: none !important;
      width: 100% !important;
      display: block !important;
      transition: background 0.15s, color 0.15s !important;
    }
    body.theme-floating .lv-nav-links-left.open a:hover,
    body.theme-floating .lv-nav-links-left.open .mega-menu-trigger:hover {
      background: rgba(200, 161, 101, 0.2) !important;
      color: var(--floating-gold-dark) !important;
    }
    /* Le wrap autour de "Collections" doit prendre toute la largeur ET être un block */
    body.theme-floating .lv-nav-links-left.open > .mega-menu-wrap,
    body.theme-floating .lv-nav-links-left.open .mega-menu-wrap {
      width: 100% !important;
      max-width: 100% !important;
      display: block !important;
      text-align: center !important;
    }
    /* Le trigger "Collections ▾" doit être centré dans le wrap */
    body.theme-floating .lv-nav-links-left.open .mega-menu-trigger {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 6px !important;
      width: 100% !important;
      text-align: center !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-arrow {
      display: inline-block !important;
      font-size: 9px !important;
    }
    /* Annule les surcharges potentielles */
    body.theme-floating .lv-nav-links-left.open a:not(.mega-menu-title):not(.mega-menu-subs a):not(.mega-menu-footer a) {
      font-size: 12px !important;
    }
    /* Override pour les sous-items qui doivent être un peu plus visibles */
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a {
      font-size: 13px !important;
      font-weight: 400 !important;
      text-transform: none !important;
      letter-spacing: 0.02em !important;
      padding: 7px 14px 7px 24px !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-title {
      font-size: 10px !important;
      font-weight: 700 !important;
      letter-spacing: 0.15em !important;
      padding: 10px 14px 4px !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-footer a {
      font-size: 11px !important;
      padding: 8px 14px !important;
    }

    /* === MEGA MENU DANS LE DRAWER MOBILE === */
    /* Sur mobile : le mega-menu s'affiche en pleine largeur (pas en dropdown hover) */
    body.theme-floating .lv-nav-links-left.open .mega-menu-wrap {
      display: block !important;
      width: 100% !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-trigger {
      color: #3d2f1e !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 11px !important;
      font-weight: 600 !important;
      letter-spacing: 0.12em !important;
      text-transform: uppercase !important;
      padding: 9px 14px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 6px !important;
      border-radius: 10px !important;
      width: 100% !important;
      cursor: default !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-arrow {
      display: none !important;
    }
    /* Sur mobile, le mega-menu panel est toujours visible (pas de hover) */
    body.theme-floating .lv-nav-links-left.open .mega-menu-panel {
      position: static !important;
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
      background: transparent !important;
      box-shadow: none !important;
      border: none !important;
      padding: 0 !important;
      transform: none !important;
      width: auto !important;
      pointer-events: auto !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-grid {
      display: flex !important;
      flex-direction: column !important;
      gap: 0 !important;
      grid-template-columns: none !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-col {
      padding: 0 !important;
    }
    /* Titre de catégorie (NOS UNIVERS, FIGURINES) */
    body.theme-floating .lv-nav-links-left.open .mega-menu-title {
      color: var(--floating-gold-dark) !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 10px !important;
      font-weight: 700 !important;
      letter-spacing: 0.15em !important;
      text-transform: uppercase !important;
      padding: 12px 14px 6px !important;
      display: block !important;
      text-align: center !important;
      border-bottom: none !important;
    }
    /* Sous-items (DRAGON BALL Z, NARUTO, ONE PIECE) : texte foncé sur fond clair */
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs {
      display: flex !important;
      flex-direction: column !important;
      gap: 0 !important;
      padding: 0 !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a {
      color: #5a3919 !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 13px !important;
      font-weight: 400 !important;
      letter-spacing: 0.02em !important;
      text-transform: none !important;
      padding: 8px 14px !important;
      text-align: center !important;
      border-radius: 8px !important;
      transition: background 0.15s, color 0.15s !important;
      display: block !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a:hover,
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a:active {
      background: rgba(200, 161, 101, 0.18) !important;
      color: var(--floating-gold-dark) !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-footer {
      border-top: 1px solid rgba(200, 161, 101, 0.15) !important;
      margin-top: 8px !important;
      padding: 10px 14px 4px !important;
      text-align: center !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-footer a {
      color: var(--floating-gold-dark) !important;
      font-size: 11px !important;
      font-weight: 600 !important;
      letter-spacing: 0.1em !important;
      text-transform: uppercase !important;
      padding: 0 !important;
      text-align: center !important;
    }

    /* Socials en bas : serrés et centrés */
    body.theme-floating .lv-nav-links-left.open .lv-mobile-socials {
      border-top: 1px solid rgba(200, 161, 101, 0.18) !important;
      padding: 10px 0 6px !important;
      margin: 6px auto 0 !important;
      gap: 10px !important;
      justify-content: center !important;
      align-items: center !important;
      display: flex !important;
      flex-direction: row !important;
      width: 100% !important;
    }
    body.theme-floating .lv-nav-links-left.open .lv-mobile-socials a {
      color: var(--floating-gold) !important;
      width: 32px !important;
      min-width: 32px !important;
      max-width: 32px !important;
      height: 32px !important;
      min-height: 32px !important;
      max-height: 32px !important;
      background: rgba(200, 161, 101, 0.08) !important;
      border-radius: 100px !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      border: 1px solid rgba(200, 161, 101, 0.25) !important;
      transition: all 0.2s !important;
      padding: 0 !important;
      margin: 0 !important;
      box-sizing: border-box !important;
      flex: 0 0 32px !important;
      opacity: 1 !important;
    }
    body.theme-floating .lv-nav-links-left.open .lv-mobile-socials a:hover,
    body.theme-floating .lv-nav-links-left.open .lv-mobile-socials a:active {
      background: var(--floating-gold) !important;
      color: var(--floating-deep) !important;
    }
    body.theme-floating .lv-nav-links-left.open .lv-mobile-socials a svg {
      width: 15px !important;
      height: 15px !important;
      display: block !important;
    }
  }

  /* === CARDS PRODUITS : style premium === */
  body.theme-floating .product-card-premium {
    position: relative;
    border: 1px solid rgba(20,20,18,0.08);
    border-radius: 20px;
    overflow: hidden;
    background: var(--bg);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:
      0 1px 3px rgba(0,0,0,0.03),
      0 4px 16px rgba(0,0,0,0.04);
  }
  body.theme-floating .product-card-premium:hover {
    transform: translateY(-6px);
    box-shadow:
      0 4px 12px rgba(0,0,0,0.06),
      0 20px 40px rgba(0,0,0,0.12);
    border-color: rgba(200, 161, 101, 0.3);
  }
  /* Effet de lueur dorée subtile au hover */
  body.theme-floating .product-card-premium::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: radial-gradient(circle at 50% 0%,
                  rgba(200, 161, 101, 0.08) 0%,
                  transparent 60%);
    opacity: 0;
    transition: opacity 0.35s;
  }
  body.theme-floating .product-card-premium:hover::after {
    opacity: 1;
  }
  /* Le prix en doré sur les cards */
  body.theme-floating .product-card-premium .price,
  body.theme-floating .product-card-premium .price-final {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: 17px;
    letter-spacing: -0.01em;
  }
  body.theme-floating .product-card-premium .name {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    letter-spacing: -0.005em;
  }

  /* === SECTION SEPARATORS : ligne dorée fine === */
  body.theme-floating .lv-featured-section,
  body.theme-floating .lv-story-section,
  body.theme-floating .custom-section,
  body.theme-floating .lv-categories-section {
    position: relative;
  }
  body.theme-floating .lv-story-section::before,
  body.theme-floating .custom-section::before {
    content: '';
    display: block;
    width: 40px;
    height: 1px;
    background: var(--floating-gold);
    margin: 0 auto 32px;
  }

  /* === BOUTONS PREMIUM === */
  body.theme-floating .btn-primary {
    border-radius: 100px;
    padding: 16px 32px;
    background: var(--floating-deep);
    color: #fff;
    border: none;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 12px;
    font-family: 'Inter', sans-serif;
    transition: all 0.25s;
    position: relative;
    overflow: hidden;
  }
  body.theme-floating .btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg,
                  transparent,
                  rgba(200, 161, 101, 0.3),
                  transparent);
    transition: left 0.6s;
  }
  body.theme-floating .btn-primary:hover::before {
    left: 100%;
  }
  body.theme-floating .btn-primary:hover {
    background: linear-gradient(135deg, var(--floating-deep) 0%, #2c2620 100%);
  }

  /* === CART BUTTON et icônes de nav === */
  body.theme-floating .lv-icon-badge {
    background: var(--floating-gold);
    color: var(--floating-deep);
    border: 1px solid rgba(255,255,255,0.3);
    font-weight: 700;
  }

  /* === FOOTER : crème chaud avec accents dorés (compact) === */
  body.theme-floating .shop-footer {
    background: linear-gradient(180deg, #faf5eb 0%, #f0e6d0 100%);
    color: #3d2f1e;
    padding: 28px 24px 16px;
    margin-top: 40px;
    border-top: 1px solid rgba(200, 161, 101, 0.25);
  }
  body.theme-floating .shop-footer a {
    color: #5a3919;
    font-weight: 500;
  }
  body.theme-floating .shop-footer a:hover {
    color: var(--floating-gold-dark);
  }
  body.theme-floating .shop-footer-col h4 {
    color: var(--floating-gold-dark);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 11px;
    font-weight: 700;
  }
  body.theme-floating .shop-footer-bottom {
    color: #6b5340;
    border-top: 1px solid rgba(200, 161, 101, 0.2);
  }

  /* === BORDEREAUX hor === */
  body.theme-floating hr,
  body.theme-floating .divider {
    border-color: rgba(200, 161, 101, 0.2);
  }

  /* === HERO TITLE ajustements mobile === */
  @media (max-width: 760px) {
    body.theme-floating .lv-shop-name {
      font-size: 16px;
    }
    body.theme-floating .lv-nav-links-left.open a {
      font-size: 28px !important;
      padding: 14px 0 !important;
    }
  }

  /* === STATS / BANNIÈRES === */
  body.theme-floating .lv-banner {
    color: var(--floating-cream);
    border-bottom: 1px solid rgba(200, 161, 101, 0.2);
  }
  /* Sans image : dégradé de marque (plus clair qu'avant) */
  body.theme-floating .lv-banner.gradient {
    background: linear-gradient(135deg, var(--floating-deep) 0%, #3a2b1c 100%) !important;
  }
  /* Avec image : on garde l'image, overlay allégé pour ne pas être trop sombre */
  body.theme-floating .lv-banner.has-image::after {
    background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.22) 70%, rgba(0,0,0,0.38) 100%) !important;
  }

  /* === BADGES (NEW, PROMO etc.) === */
  body.theme-floating .badge-corner,
  body.theme-floating .badge-new {
    background: var(--floating-gold);
    color: var(--floating-deep);
    border-radius: 100px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10px;
    font-weight: 700;
    padding: 4px 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  }

  /* === HOPLA FOOTER LINK === */
  body.theme-floating .hopla-footer-link {
    color: rgba(255,248,235,0.5);
  }

  @keyframes floating-drawer-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* === MEGA MENU DESKTOP dans le drawer floating (burger partout) ===
     Dans le drawer ouvert, le panel est transparent et prend le fond du drawer,
     avec un hover discret qui n'éclaircit pas le texte. */
  @media (min-width: 761px) {
    body.theme-floating .lv-nav-links-left.open .mega-menu-title {
      color: var(--floating-gold-dark) !important;
      font-family: 'Inter', -apple-system, sans-serif !important;
      font-size: 11px !important;
      font-weight: 700 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.15em !important;
      padding: 10px 14px 4px !important;
      display: block !important;
      border-bottom: none !important;
      margin-bottom: 2px !important;
    }
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a {
      color: #5a3919 !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 13px !important;
      font-weight: 400 !important;
      text-transform: none !important;
      letter-spacing: 0.02em !important;
      padding: 8px 14px !important;
      transition: background 0.15s !important;
      border-radius: 10px !important;
    }
    /* Hover discret : léger fond doré translucide, SANS éclaircir le texte */
    body.theme-floating .lv-nav-links-left.open .mega-menu-subs a:hover,
    body.theme-floating .lv-nav-links-left.open a:hover,
    body.theme-floating .lv-nav-links-left.open .mega-menu-title:hover {
      background: rgba(200, 161, 101, 0.18) !important;
      color: #3d2f1e !important;
      opacity: 1 !important;
    }
  }

  /* === MEGA MENU DESKTOP : style floating/bulle premium (crème) LEGACY === */
  @media (min-width: 761px) {
    /* Ne PAS appliquer le fond bulle crème quand le panel est dans le drawer ouvert */
    body.theme-floating .lv-nav-links-left.open .mega-menu-panel {
      background: transparent !important;
      border: none !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      padding: 0 !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
    body.theme-floating .mega-menu-panel {
      background: linear-gradient(155deg, #faf5eb 0%, #f0e6d0 100%) !important;
      border: 1px solid rgba(200, 161, 101, 0.35) !important;
      border-radius: 18px !important;
      box-shadow: 0 16px 50px rgba(60, 46, 30, 0.2) !important;
      padding: 22px 26px !important;
      backdrop-filter: blur(20px) saturate(180%) !important;
      -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
      animation: floating-drawer-in 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    }
    body.theme-floating .mega-menu-title {
      color: var(--floating-gold-dark) !important;
      font-family: 'Inter', -apple-system, sans-serif !important;
      font-size: 11px !important;
      font-weight: 700 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.15em !important;
      padding-bottom: 8px !important;
      display: block !important;
      border-bottom: 1px solid rgba(200, 161, 101, 0.3) !important;
      margin-bottom: 8px !important;
    }
    body.theme-floating .mega-menu-subs a {
      color: #5a3919 !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 13px !important;
      font-weight: 400 !important;
      text-transform: none !important;
      letter-spacing: 0.02em !important;
      padding: 6px 0 !important;
      transition: color 0.15s, padding-left 0.15s !important;
      border-radius: 0 !important;
    }
    body.theme-floating .mega-menu-subs a:hover {
      color: var(--floating-gold-dark) !important;
      padding-left: 6px !important;
      background: transparent !important;
    }
    body.theme-floating .mega-menu-footer {
      border-top: 1px solid rgba(200, 161, 101, 0.3) !important;
      margin-top: 16px !important;
      padding-top: 14px !important;
    }
    body.theme-floating .mega-menu-footer a {
      color: var(--floating-gold-dark) !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 11px !important;
      font-weight: 600 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.12em !important;
    }
    body.theme-floating .mega-menu-footer a:hover {
      color: #3d2f1e !important;
    }
  }
  @media (min-width: 760px) {
  }
  @media (max-width: 760px) {
  }
  @media (min-width: 760px) {
  }
  @media (min-width: 760px) {
  }
  @media (min-width: 760px) {
  }

  /* ─── FLOATING : 2 colonnes grandes cards arrondies sur mobile, 3 cols sur desktop ─── */
  body.theme-floating .products-grid-premium,
  body.theme-floating .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
  @media (min-width: 760px) {
    body.theme-floating .products-grid-premium,
    body.theme-floating .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 22px !important;
    }
  }
  body.theme-floating .product-card,
  body.theme-floating .product-card-premium,
  body.theme-floating .lv-product-card {
    border-radius: 20px !important;
    overflow: hidden !important;
  }
  body.theme-floating .product-card .img-wrap,
  body.theme-floating .product-card-premium .img-wrap,
  body.theme-floating .lv-product-card .img-wrap,
  body.theme-floating .product-card .img-main,
  body.theme-floating .product-card-premium .img-main,
  body.theme-floating .lv-product-card .img-main {
    border-radius: 16px !important;
  }
  @media (min-width: 760px) {
  }

  /* ─── FLOATING (Pâtisserie) ─── */
  body.theme-floating .contact-nav {
    background: rgba(255, 248, 235, 0.92) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(200, 161, 101, 0.2) !important;
  }
  body.theme-floating .contact-nav .shop-name-nav,
  body.theme-floating .contact-nav .lv-name-text {
    color: #5e3a10 !important;
    font-family: 'Fraunces', Georgia, serif !important;
  }
  body.theme-floating .contact-title {
    font-family: 'Fraunces', Georgia, serif !important;
    color: #5e3a10 !important;
  }
  body.theme-floating .contact-form-section h2 {
    font-family: 'Fraunces', Georgia, serif !important;
    color: #5e3a10 !important;
  }
  body.theme-floating .contact-form-section {
    background: #fff !important;
    border: 1px solid rgba(200, 161, 101, 0.3) !important;
    border-radius: 20px !important;
  }
  body.theme-floating .contact-info-card {
    background: #fff !important;
    border: 1px solid rgba(200, 161, 101, 0.3) !important;
    border-radius: 16px !important;
  }


  /* ============================================================
     📱 PADDING MOBILE pour TOUS les footers thématiques
     Évite que le texte ne soit collé aux bords sur smartphone.
     ============================================================ */
  @media (max-width: 760px) {,,
    body.theme-floating .shop-footer,
    body.theme-floating footer{
      padding-left: 20px !important;
      padding-right: 20px !important;
      padding-top: 50px !important;
      padding-bottom: 30px !important;
    }
  }

  /* FLOATING */
  body.theme-floating .back-link {
    background: white !important;
    border: 1px solid rgba(200, 161, 101, 0.4) !important;
    color: #5e3a10 !important;
  }
  body.theme-floating .back-link:hover {
    background: rgba(247, 201, 142, 0.2) !important;
  }


  /* ============================================================
     📜 STYLE VINTAGE (Vide-dressing) - Inspiration brocante chic, Etsy
     ============================================================
     Caractéristiques :
     - Fond papier vieilli (#f3ead7)
     - Bordures décoratives doubles
     - Polices serif (Playfair / Fraunces) + cursive
     - Ornements ❋ ✦ ◆ entre sections (au lieu de numéros romains)
     - Étiquettes papier sur produits
     - Couleurs : sépia, kraft, rouille, lin
  */
  body.theme-vintage {
    --v-paper: #f3ead7;
    --v-paper-dark: #e8dec3;
    --v-sepia: #5e4a2e;
    --v-ink: #3a2818;
    --v-rust: #a85a32;
    --v-cream: #faf3e3;
    --v-line: rgba(94, 74, 46, 0.3);
    
    background-color: var(--v-paper) !important;
    color: var(--v-ink) !important;
  }

  /* Nav top : fond crème ivoire avec bordure double */
  body.theme-vintage .shop-nav {
    background: #faf3e3 !important;                        /* crème opaque hardcoded */
    border-bottom: 2px solid #5e4a2e !important;           /* bord sépia bien visible */
    box-shadow: 0 1px 0 #5e4a2e, 0 2px 12px rgba(94, 74, 46, 0.08) !important;
    z-index: 100 !important;
  }
  body.theme-vintage .lv-shop-name,
  body.theme-vintage .lv-name-text {
    color: var(--v-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
  }
  body.theme-vintage .lv-nav-links-left a,
  body.theme-vintage .shop-nav-links a {
    color: var(--v-sepia) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 13px !important;
    font-style: italic !important;
    text-transform: none !important;
  }
  body.theme-vintage .lv-nav-links-left a:hover,
  body.theme-vintage .shop-nav-links a:hover {
    color: var(--v-rust) !important;
  }
  body.theme-vintage .lv-nav-link-icon {
    color: var(--v-ink) !important;
  }
  body.theme-vintage .lv-nav-link-icon:hover {
    color: var(--v-rust) !important;
  }

  /* Hero : titre serif énorme + sous-titre encadré */
  body.theme-vintage .lv-banner {
    background-color: var(--v-paper) !important;
    position: relative;
  }
  /* Cadre décoratif sur le hero (double ligne intérieure) */
  body.theme-vintage .lv-banner::after {
    content: '';
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
    pointer-events: none;
    z-index: 1;
  }
  body.theme-vintage .lv-banner-content {
    position: relative;
    z-index: 2;
  }
  body.theme-vintage .lv-hero-title {
    font-family: 'Fraunces', 'Playfair Display', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: italic !important;
    font-size: clamp(48px, 9vw, 120px) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.02em !important;
    color: white !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
  }
  body.theme-vintage .lv-hero-subtitle {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 11px !important;
    letter-spacing: 0.4em !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, 0.92) !important;
    margin-top: 18px !important;
    padding: 8px 24px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    display: inline-block !important;
  }
  body.theme-vintage .lv-hero-cta {
    background: var(--v-cream) !important;
    color: var(--v-ink) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 14px 36px !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 500 !important;
    font-style: italic !important;
    text-transform: none !important;
    letter-spacing: 0.04em !important;
    font-size: 15px !important;
    position: relative;
  }
  body.theme-vintage .lv-hero-cta::before {
    content: '❋ ';
    color: var(--v-rust);
    margin-right: 6px;
  }
  body.theme-vintage .lv-hero-cta::after {
    content: ' ❋';
    color: var(--v-rust);
    margin-left: 6px;
  }
  body.theme-vintage .lv-hero-cta:hover {
    background: white !important;
    transform: translateY(-1px);
  }

  /* Sections : ornement ✦ au lieu de numéro romain, titre serif italique géant */
  body.theme-vintage .section-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: var(--v-ink) !important;
    font-size: clamp(36px, 5.5vw, 60px) !important;
    text-align: center !important;
    margin: 36px 0 16px !important;
    line-height: 1 !important;
    letter-spacing: -0.01em !important;
  }
  body.theme-vintage .section-title em {
    font-style: normal !important;
    font-weight: 500 !important;
    color: var(--v-rust) !important;
  }
  body.theme-vintage .section-title::before {
    content: '✦';
    display: block;
    text-align: center;
    color: var(--v-rust);
    font-size: 18px;
    margin-bottom: 12px;
    opacity: 0.7;
  }
  body.theme-vintage .section-eyebrow,
  body.theme-vintage .eyebrow {
    color: var(--v-rust) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.32em !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    opacity: 1 !important;
    text-align: center !important;
  }
  body.theme-vintage .section-head {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    margin-bottom: 32px !important;
  }
  body.theme-vintage .section-link {
    color: var(--v-rust) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    border-bottom: 1px solid var(--v-rust) !important;
    padding-bottom: 2px !important;
  }
  body.theme-vintage .catalog-section,
  body.theme-vintage .featured-section {
    background: var(--v-paper) !important;
  }

  /* Cards produits : étiquette papier kraft */
  body.theme-vintage .product-card,
  body.theme-vintage .lv-product-card,
  body.theme-vintage .product-card-premium {
    background: var(--v-cream) !important;
    border: 1px solid var(--v-line) !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 0 var(--v-line) !important;  /* double border effect */
    padding: 6px !important;
    transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
  }
  body.theme-vintage .product-card:hover,
  body.theme-vintage .lv-product-card:hover {
    transform: translateY(-4px) rotate(-0.5deg) !important;
    box-shadow: 0 8px 20px rgba(94, 74, 46, 0.12) !important;
  }
  body.theme-vintage .product-card .img-wrap,
  body.theme-vintage .lv-product-card .img-wrap {
    background-color: var(--v-paper-dark) !important;
    border-radius: 0 !important;
    aspect-ratio: 4 / 5 !important;
  }
  body.theme-vintage .product-card-name,
  body.theme-vintage .lv-product-name {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 500 !important;
    font-style: italic !important;
    color: var(--v-ink) !important;
    text-align: center !important;
    margin: 12px 0 4px !important;
    padding: 0 8px !important;
    font-size: 15px !important;
  }
  body.theme-vintage .product-card-price,
  body.theme-vintage .lv-product-price {
    font-family: 'Fraunces', Georgia, serif !important;
    color: var(--v-rust) !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    padding: 0 8px 12px !important;
    position: relative;
  }
  body.theme-vintage .product-card-price::before {
    content: '— ';
    color: var(--v-sepia);
    opacity: 0.5;
  }
  body.theme-vintage .product-card-price::after {
    content: ' —';
    color: var(--v-sepia);
    opacity: 0.5;
  }

  /* Story section : papier vieilli avec ornement */
  body.theme-vintage .lv-story-section {
    background: var(--v-paper-dark) !important;
    padding: 70px 0 !important;
    position: relative;
    border-top: 1px solid var(--v-line);
    border-bottom: 1px solid var(--v-line);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), inset 0 -1px 0 rgba(255, 255, 255, 0.4);
  }
  body.theme-vintage .lv-story-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: var(--v-ink) !important;
    font-size: clamp(36px, 5vw, 56px) !important;
    line-height: 1.05 !important;
    margin-bottom: 24px !important;
  }
  body.theme-vintage .lv-story-eyebrow {
    font-family: 'Fraunces', Georgia, serif !important;
    color: var(--v-rust) !important;
    font-size: 11px !important;
    letter-spacing: 0.4em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    margin-bottom: 20px !important;
  }
  body.theme-vintage .lv-story-eyebrow::before {
    content: '◆ ';
    color: var(--v-rust);
    opacity: 0.7;
  }
  body.theme-vintage .lv-story-section p {
    font-family: 'Fraunces', Georgia, serif !important;
    color: var(--v-sepia) !important;
    line-height: 1.8 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
  }
  /* Lettrine sur le premier paragraphe (effet livre ancien) */
  body.theme-vintage .lv-story-text p:first-child::first-letter {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 64px;
    font-weight: 500;
    font-style: italic;
    float: left;
    line-height: 0.85;
    padding: 6px 12px 0 0;
    color: var(--v-rust);
  }

  /* Filtres catégories : pills crème bordées sépia, italique */
  body.theme-vintage .cat-filter,
  body.theme-vintage .cat-filter-btn {
    background: var(--v-cream) !important;
    color: var(--v-sepia) !important;
    border: 1px solid var(--v-line) !important;
    border-radius: 0 !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    padding: 8px 18px !important;
    margin-right: 6px !important;
  }
  body.theme-vintage .cat-filter:hover,
  body.theme-vintage .cat-filter-btn:hover {
    background: var(--v-paper) !important;
    border-color: var(--v-sepia) !important;
  }
  body.theme-vintage .cat-filter.active,
  body.theme-vintage .cat-filter-btn.active {
    background: var(--v-ink) !important;
    color: var(--v-cream) !important;
    border-color: var(--v-ink) !important;
  }

  /* Recherche : champ avec sous-ligne sépia */
  body.theme-vintage .product-search {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--v-sepia) !important;
    border-radius: 0 !important;
    color: var(--v-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-size: 16px !important;
    padding: 10px 0 !important;
  }
  body.theme-vintage .product-search::placeholder {
    color: var(--v-sepia) !important;
    opacity: 0.6;
    font-style: italic;
  }
  body.theme-vintage .product-search:focus {
    outline: none !important;
    border-bottom-width: 2px !important;
  }

  /* Badges */
  body.theme-vintage .badge-new,
  body.theme-vintage .badge-corner {
    background: var(--v-rust) !important;
    color: var(--v-cream) !important;
    border-radius: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.2em !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    padding: 4px 8px !important;
  }

  /* Footer : papier kraft clair (compact, sans noir) */
  body.theme-vintage .shop-footer,
  body.theme-vintage footer {
    background: #f3ead7 !important;
    color: var(--v-ink, #3a2818) !important;
    padding: 28px 24px 16px !important;
    margin-top: 32px !important;
    border-top: 2px double rgba(94, 74, 46, 0.25) !important;
  }
  body.theme-vintage .shop-footer *,
  body.theme-vintage footer * {
    color: rgba(58, 40, 24, 0.8) !important;
  }
  body.theme-vintage .shop-footer-brand {
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: var(--v-ink, #3a2818) !important;
    font-size: 13px !important;
  }
  body.theme-vintage .shop-footer h4 {
    color: var(--v-ink, #3a2818) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-size: 13px !important;
    letter-spacing: 0.06em !important;
  }
  body.theme-vintage .shop-footer a {
    color: rgba(58, 40, 24, 0.78) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 13px !important;
  }
  body.theme-vintage .shop-footer a:hover {
    color: var(--v-accent, #a85a32) !important;
  }

  /* Page contact : papier vieilli */
  body.theme-vintage .contact-nav {
    background: var(--v-cream) !important;
    border-bottom: 1px solid var(--v-line) !important;
  }
  body.theme-vintage .contact-nav .shop-name-nav,
  body.theme-vintage .contact-nav .lv-name-text {
    color: var(--v-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
  }
  body.theme-vintage .contact-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: var(--v-ink) !important;
  }
  body.theme-vintage .contact-title em {
    color: var(--v-rust) !important;
    font-weight: 500 !important;
  }
  body.theme-vintage .contact-form-section h2 {
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    color: var(--v-ink) !important;
  }
  body.theme-vintage .contact-form-section,
  body.theme-vintage .contact-info-card {
    background: var(--v-cream) !important;
    border: 1px solid var(--v-line) !important;
    border-radius: 2px !important;
  }
  /* Back-link */
  body.theme-vintage .back-link {
    background: var(--v-cream) !important;
    border: 1px solid var(--v-sepia) !important;
    color: var(--v-ink) !important;
  }
  body.theme-vintage .back-link:hover {
    background: var(--v-paper-dark) !important;
  }

  /* Grille produits : 3 colonnes (pas 4 comme editorial) */
  body.theme-vintage .products-grid-premium,
  body.theme-vintage .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px 18px !important;
  }
  @media (min-width: 760px) {
    body.theme-vintage .products-grid-premium,
    body.theme-vintage .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 30px 22px !important;
    }
  }


  /* ============================================================
     💎 STYLE EDITORIAL (Bijoux) — Luxury Minimal façon Mejuri / Ring Concierge
     ============================================================
     Refonte 2026 : abandon du style "magazine vintage" (numéros romains,
     lettrines, fonds crème chargés) au profit d'une approche luxe contemporain :
     - Beaucoup d'espace blanc (breathing room)
     - Typo serif délicate institutionnelle (pas italique magazine)
     - Photos lifestyle dominantes
     - Nav minimaliste (nom à gauche, icônes à droite)
     - Sections aérées sans ornements
     - Détails or/champagne pour signaler le luxe
     
     Variables :
     - Fond : #ffffff (blanc pur)
     - Accent : #b8956b (champagne / or rosé)
     - Ink : #1c1917 (noir doux)
     - Soft : #a8a29e (gris discret)
  */
  body.theme-editorial {
    --ed-bg: #ffffff;
    --ed-soft-bg: #fafaf9;
    --ed-ink: #1c1917;
    --ed-ink-soft: #57534e;
    --ed-ink-faint: #a8a29e;
    --ed-accent: #b8956b;
    --ed-line: rgba(28, 25, 23, 0.08);
    
    background-color: var(--ed-bg) !important;
    color: var(--ed-ink) !important;
  }

  /* ───── NAV TOP : minimaliste, juste nom + icônes ───── */
  body.theme-editorial .shop-nav {
    background: #ffffff !important;                         /* blanc pur OPAQUE */
    border-bottom: 1px solid #d4d4d8 !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04) !important;
    padding: 16px 28px !important;
    z-index: 100 !important;
  }
  body.theme-editorial .lv-shop-name,
  body.theme-editorial .lv-name-text {
    color: var(--ed-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-size: 19px !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
  }
  body.theme-editorial .lv-nav-links-left a,
  body.theme-editorial .shop-nav-links a {
    color: var(--ed-ink-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    transition: color 0.2s ease !important;
  }
  body.theme-editorial .lv-nav-links-left a:hover,
  body.theme-editorial .shop-nav-links a:hover {
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .lv-nav-link-icon {
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .lv-nav-link-icon:hover {
    color: var(--ed-accent) !important;
  }

  /* ───── HERO : grand format, texte simple, élégant ───── */
  body.theme-editorial .lv-banner {
    min-height: 88vh !important;
    background-color: var(--ed-soft-bg) !important;
  }
  body.theme-editorial .lv-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0.4) 100%);
    pointer-events: none;
    z-index: 1;
  }
  body.theme-editorial .lv-banner-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 720px !important;
    padding: 0 24px !important;
  }
  body.theme-editorial .lv-hero-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    font-size: clamp(48px, 7vw, 96px) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.025em !important;
    color: white !important;
    margin-bottom: 24px !important;
    padding-bottom: 0.12em !important;
    overflow: visible !important;
  }
  body.theme-editorial .lv-hero-title em {
    font-style: italic !important;
    font-weight: 300 !important;
  }
  body.theme-editorial .lv-hero-subtitle {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, 0.92) !important;
    margin-bottom: 36px !important;
  }
  body.theme-editorial .lv-hero-cta {
    background: white !important;
    color: var(--ed-ink) !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 16px 40px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    font-size: 14px !important;
    transition: all 0.3s ease !important;
  }
  body.theme-editorial .lv-hero-cta:hover {
    background: var(--ed-ink) !important;
    color: white !important;
    transform: translateY(-1px);
  }

  /* ───── SECTIONS : sobres, juste eyebrow + titre, beaucoup de blanc ───── */
  body.theme-editorial .catalog-section,
  body.theme-editorial .featured-section {
    background: var(--ed-bg) !important;
  }
  body.theme-editorial .section-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    color: var(--ed-ink) !important;
    font-size: clamp(36px, 5vw, 58px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    text-align: center !important;
    margin: 12px 0 16px !important;
  }
  body.theme-editorial .section-title em {
    font-style: italic !important;
    font-weight: 300 !important;
    color: var(--ed-accent) !important;
  }
  body.theme-editorial .section-eyebrow,
  body.theme-editorial .eyebrow {
    color: var(--ed-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.36em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
    margin-bottom: 4px !important;
  }
  body.theme-editorial .section-head {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    margin-bottom: 48px !important;
  }
  body.theme-editorial .section-link {
    color: var(--ed-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    border-bottom: 1px solid var(--ed-ink) !important;
    padding-bottom: 2px !important;
  }
  body.theme-editorial .section-link:hover {
    color: var(--ed-accent) !important;
    border-bottom-color: var(--ed-accent) !important;
  }

  /* ───── CARDS PRODUITS : photo plein cadre, sobres, hover delicatement ───── */
  body.theme-editorial .product-card,
  body.theme-editorial .lv-product-card,
  body.theme-editorial .product-card-premium {
    background: var(--bg) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    padding: 0 !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  body.theme-editorial .product-card-premium:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1) !important;
    border-color: rgba(0, 0, 0, 0.14) !important;
  }
  body.theme-editorial .product-card:hover,
  body.theme-editorial .lv-product-card:hover {
    transform: translateY(-4px);
  }
  body.theme-editorial .product-card .img-wrap,
  body.theme-editorial .lv-product-card .img-wrap {
    background-color: var(--ed-soft-bg) !important;
    border-radius: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin-bottom: 16px !important;
    overflow: hidden;
  }
  body.theme-editorial .product-card .img-main,
  body.theme-editorial .lv-product-card .img-main {
    transition: transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  body.theme-editorial .product-card:hover .img-main,
  body.theme-editorial .lv-product-card:hover .img-main {
    transform: scale(1.05);
  }
  body.theme-editorial .product-card-name,
  body.theme-editorial .lv-product-name {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    color: var(--ed-ink) !important;
    text-align: center !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    letter-spacing: 0.01em !important;
  }
  body.theme-editorial .product-card-price,
  body.theme-editorial .lv-product-price {
    font-family: 'Inter', sans-serif !important;
    color: var(--ed-ink-soft) !important;
    text-align: center !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.04em !important;
    padding: 0 !important;
  }

  /* ───── GRILLE : 3 colonnes desktop, 2 mobile, espacée ───── */
  body.theme-editorial .products-grid-premium,
  body.theme-editorial .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px 20px !important;
  }
  @media (min-width: 760px) {
    body.theme-editorial .products-grid-premium,
    body.theme-editorial .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 56px 36px !important;
    }
  }

  /* ───── STORY : fond soft, layout aéré ───── */
  body.theme-editorial .lv-story-section {
    background: var(--ed-soft-bg) !important;
    padding: 80px 0 !important;
  }
  body.theme-editorial .lv-story-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    color: var(--ed-ink) !important;
    font-size: clamp(32px, 4.5vw, 52px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 24px !important;
  }
  body.theme-editorial .lv-story-eyebrow {
    color: var(--ed-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.36em !important;
    text-transform: uppercase !important;
    margin-bottom: 16px !important;
  }
  body.theme-editorial .lv-story-section p {
    color: var(--ed-ink-soft) !important;
    line-height: 1.8 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
  }

  /* ───── FILTRES & RECHERCHE ───── */
  body.theme-editorial .cat-filter,
  body.theme-editorial .cat-filter-btn {
    background: transparent !important;
    color: var(--ed-ink-soft) !important;
    border: none !important;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    padding: 8px 0 !important;
    margin-right: 24px !important;
    transition: all 0.2s ease !important;
  }
  body.theme-editorial .cat-filter:hover,
  body.theme-editorial .cat-filter-btn:hover {
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .cat-filter.active,
  body.theme-editorial .cat-filter-btn.active {
    color: var(--ed-ink) !important;
    background: transparent !important;
    border-bottom-color: var(--ed-ink) !important;
    font-weight: 500 !important;
  }
  body.theme-editorial .product-search {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--ed-line) !important;
    border-radius: 0 !important;
    color: var(--ed-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 10px 0 !important;
  }
  body.theme-editorial .product-search:focus {
    border-bottom-color: var(--ed-ink) !important;
    outline: none !important;
  }
  body.theme-editorial .product-search::placeholder {
    color: var(--ed-ink-faint) !important;
  }

  /* ───── BADGES ───── */
  body.theme-editorial .badge-new,
  body.theme-editorial .badge-corner {
    background: var(--ed-ink) !important;
    color: white !important;
    border-radius: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 9px !important;
    font-weight: 500 !important;
    padding: 5px 10px !important;
  }

  /* ───── FOOTER : crème foncé chaud, élégant (compact) ───── */
  body.theme-editorial .shop-footer,
  body.theme-editorial footer {
    background: linear-gradient(180deg, #f4ebd9 0%, #e8dcc4 100%) !important;
    color: #3d2f1e !important;
    padding: 28px 24px 16px !important;
    margin-top: 32px !important;
    border-top: 1px solid rgba(60, 40, 20, 0.08) !important;
  }
  body.theme-editorial .shop-footer *,
  body.theme-editorial footer * {
    color: #3d2f1e !important;
  }
  body.theme-editorial .shop-footer-brand {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    color: #1c1209 !important;
    font-size: 13px !important;
    letter-spacing: 0 !important;
    font-style: normal !important;
  }
  body.theme-editorial .shop-footer h4 {
    color: #1c1209 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
  }
  body.theme-editorial .shop-footer a {
    color: #3d2f1e !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12.5px !important;
  }
  body.theme-editorial .shop-footer a:hover {
    color: var(--ed-accent) !important;
  }

  /* ───── PAGE CONTACT ───── */
  body.theme-editorial .contact-nav {
    background: rgba(255, 255, 255, 0.95) !important;
    border-bottom: 1px solid var(--ed-line) !important;
  }
  body.theme-editorial .contact-nav .shop-name-nav,
  body.theme-editorial .contact-nav .lv-name-text {
    color: var(--ed-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
  }
  body.theme-editorial .contact-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .contact-title em {
    font-style: italic !important;
    color: var(--ed-accent) !important;
  }
  body.theme-editorial .contact-form-section h2 {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .contact-form-section,
  body.theme-editorial .contact-info-card {
    background: var(--ed-soft-bg) !important;
    border: 1px solid var(--ed-line) !important;
    border-radius: 0 !important;
  }

  /* ───── BACK-LINK ───── */
  body.theme-editorial .back-link {
    background: white !important;
    border: 1px solid var(--ed-line) !important;
    color: var(--ed-ink) !important;
  }
  body.theme-editorial .back-link:hover {
    background: var(--ed-soft-bg) !important;
    border-color: var(--ed-ink) !important;
  }

  /* ───── ESPACEMENT EXTRA pour breathing room (luxury hallmark) ───── */
  body.theme-editorial .shop-section {
    padding: 80px 24px !important;
  }
  @media (max-width: 860px) {
    body.theme-editorial .shop-section { padding: 56px 20px !important; }
  }
  @media (min-width: 760px) {
  }
  @media (max-width: 760px) {
  }
  @media (max-width: 860px) {
  }
  @media (min-width: 760px) {
  }
  @media (max-width: 760px) {
  }
  @media (max-width: 860px) {
  }


  /* ============================================================
     💄 STYLE BOUTIQUE (Beauté) — Apothicaire façon Aesop
     ============================================================
     Différenciation forte :
     - Fond CRÈME chaud (mais différent du Mode beige sable)
     - PAS de centrage tout : alignement gauche dominant
     - Typo Fraunces avec une voix institutionnelle
     - Pas d'accent couleur vif : juste un olive/kraft doux
     - Cards produits sur fond uni (look apothicaire)
     - Sections avec descriptions LONGUES (Aesop écrit beaucoup)
     - Aucune flèche, aucun gimmick visuel
  */
  body.theme-boutique {
    --bt-bg: #f5f1e8;          /* crème chaud (différent du blanc Bijoux et beige Mode) */
    --bt-bg-paper: #ebe5d5;     /* crème plus dense pour cards */
    --bt-bg-dark: #2d2a22;      /* kraft brun foncé pour footer */
    --bt-ink: #1f1d17;          /* presque noir mais chaud */
    --bt-ink-soft: #5a5448;     /* olive doux */
    --bt-ink-faint: #8a8270;
    --bt-accent: #6b6347;       /* kraki / olive — Aesop signature */
    --bt-line: rgba(31, 29, 23, 0.1);
    
    background-color: var(--bt-bg) !important;
    color: var(--bt-ink) !important;
  }

  /* ───── NAV : très très sobre, alignement linéaire ───── */
  body.theme-boutique .shop-nav {
    background: #f5f1e8 !important;                         /* crème kraft OPAQUE */
    border-bottom: 1px solid #2d2a22 !important;           /* kraft foncé bien visible */
    box-shadow: 0 2px 10px rgba(45, 42, 34, 0.08) !important;
    padding: 20px 32px !important;
    z-index: 100 !important;
  }
  body.theme-boutique .lv-shop-name,
  body.theme-boutique .lv-name-text {
    color: var(--bt-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-size: 20px !important;
    font-style: normal !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
  body.theme-boutique .lv-nav-links-left a,
  body.theme-boutique .shop-nav-links a {
    color: var(--bt-ink-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
  }
  body.theme-boutique .lv-nav-link-icon {
    color: var(--bt-ink) !important;
  }
  body.theme-boutique .lv-nav-link-icon:hover {
    color: var(--bt-accent) !important;
  }

  /* ───── HERO : ÉCRITURE DOMINE, pas la photo ───── */
  body.theme-boutique .lv-banner {
    min-height: 92vh !important;
    background-color: var(--bt-bg-paper) !important;
    position: relative;
  }
  body.theme-boutique .lv-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(245,241,232,0.1) 0%, rgba(245,241,232,0.85) 100%);
    pointer-events: none;
    z-index: 1;
  }
  body.theme-boutique .lv-banner-content {
    position: relative;
    z-index: 2;
    text-align: left !important;
    align-items: flex-start !important;
    max-width: 720px !important;
    padding: 0 5vw !important;
    align-self: flex-end;
    margin-bottom: 12vh;
  }
  body.theme-boutique .lv-hero-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    font-size: clamp(40px, 5.5vw, 72px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.015em !important;
    text-transform: none !important;
    color: var(--bt-ink) !important;
    margin-bottom: 24px !important;
    text-align: left !important;
  }
  body.theme-boutique .lv-hero-subtitle {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    color: white !important;
    line-height: 1.6 !important;
    margin-bottom: 32px !important;
    text-align: left !important;
    max-width: 480px !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
  }
  /* Hero title aussi en blanc avec ombre pour lisibilité sur photo */
  body.theme-boutique .lv-hero-title {
    color: white !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
  }
  /* CTA hero : blanc plein sur photo */
  body.theme-boutique .lv-hero-cta {
    background: white !important;
    color: var(--bt-ink) !important;
  }
  body.theme-boutique .lv-hero-cta:hover {
    background: var(--bt-bg) !important;
  }
  body.theme-boutique .lv-hero-cta {
    background: var(--bt-ink) !important;
    color: var(--bt-bg) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 14px 32px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0.04em !important;
    font-size: 13px !important;
    transition: all 0.3s ease !important;
  }
  body.theme-boutique .lv-hero-cta:hover {
    background: var(--bt-accent) !important;
  }

  /* ───── SECTIONS : alignement gauche, mais centré pour titres ───── */
  body.theme-boutique .catalog-section,
  body.theme-boutique .featured-section {
    background: var(--bt-bg) !important;
  }
  body.theme-boutique .section-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
    color: var(--bt-ink) !important;
    font-size: clamp(32px, 4.5vw, 52px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.015em !important;
    text-transform: none !important;
    text-align: left !important;
    margin: 4px 0 24px !important;
  }
  body.theme-boutique .section-title em {
    font-style: italic !important;
    color: var(--bt-accent) !important;
  }
  body.theme-boutique .section-eyebrow,
  body.theme-boutique .eyebrow {
    color: var(--bt-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
    margin-bottom: 8px !important;
    text-align: left !important;
  }
  body.theme-boutique .section-head {
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    margin-bottom: 40px !important;
    border-bottom: 1px solid var(--bt-line);
    padding-bottom: 24px;
  }
  body.theme-boutique .section-link {
    color: var(--bt-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    border-bottom: 1px solid var(--bt-ink) !important;
    padding-bottom: 2px !important;
  }

  /* ───── CARDS PRODUITS : packaging sur fond crème dense ───── */
  body.theme-boutique .product-card,
  body.theme-boutique .lv-product-card,
  body.theme-boutique .product-card-premium {
    background: var(--bg) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    padding: 0 !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  body.theme-boutique .product-card-premium:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1) !important;
    border-color: rgba(0, 0, 0, 0.14) !important;
  }
  body.theme-boutique .product-card:hover,
  body.theme-boutique .lv-product-card:hover {
    transform: translateY(-3px);
  }
  body.theme-boutique .product-card .img-wrap,
  body.theme-boutique .lv-product-card .img-wrap {
    background-color: var(--bt-bg-paper) !important;
    border-radius: 0 !important;
    aspect-ratio: 4 / 5 !important;
    margin-bottom: 18px !important;
    overflow: hidden;
  }
  body.theme-boutique .product-card .img-main,
  body.theme-boutique .lv-product-card .img-main {
    transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  body.theme-boutique .product-card:hover .img-main,
  body.theme-boutique .lv-product-card:hover .img-main {
    transform: scale(1.04);
  }
  body.theme-boutique .product-card-name,
  body.theme-boutique .lv-product-name {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-size: 16px !important;
    color: var(--bt-ink) !important;
    text-align: left !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
  }
  body.theme-boutique .product-card-price,
  body.theme-boutique .lv-product-price {
    font-family: 'Inter', sans-serif !important;
    color: var(--bt-ink-soft) !important;
    text-align: left !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.04em !important;
    padding: 0 !important;
  }

  /* ───── GRILLE : 3 cols desktop, 2 mobile, gap moyen ───── */
  body.theme-boutique .products-grid-premium,
  body.theme-boutique .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px 16px !important;
  }
  @media (min-width: 760px) {
    body.theme-boutique .products-grid-premium,
    body.theme-boutique .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 56px 32px !important;
    }
  }

  /* ───── STORY : fond paper, alignement gauche ───── */
  body.theme-boutique .lv-story-section {
    background: var(--bt-bg-paper) !important;
    padding: 100px 0 !important;
  }
  body.theme-boutique .lv-story-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: italic !important;
    color: var(--bt-ink) !important;
    font-size: clamp(32px, 4.5vw, 52px) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.015em !important;
    margin-bottom: 28px !important;
  }
  body.theme-boutique .lv-story-eyebrow {
    color: var(--bt-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    margin-bottom: 18px !important;
  }
  body.theme-boutique .lv-story-section p {
    color: var(--bt-ink-soft) !important;
    line-height: 1.85 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    font-family: 'Inter', sans-serif !important;
  }

  /* ───── FILTRES : liens sobres ───── */
  body.theme-boutique .cat-filter,
  body.theme-boutique .cat-filter-btn {
    background: transparent !important;
    color: var(--bt-ink-soft) !important;
    border: none !important;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    padding: 8px 0 !important;
    margin-right: 28px !important;
  }
  body.theme-boutique .cat-filter:hover {
    color: var(--bt-ink) !important;
  }
  body.theme-boutique .cat-filter.active {
    color: var(--bt-ink) !important;
    border-bottom-color: var(--bt-ink) !important;
    font-weight: 500 !important;
  }
  body.theme-boutique .product-search {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--bt-line) !important;
    border-radius: 0 !important;
    color: var(--bt-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 16px !important;
    padding: 10px 0 !important;
  }
  body.theme-boutique .product-search:focus {
    border-bottom-color: var(--bt-ink) !important;
    outline: none !important;
  }
  body.theme-boutique .product-search::placeholder {
    color: var(--bt-ink-faint) !important;
  }

  /* ───── BADGES ───── */
  body.theme-boutique .badge-new,
  body.theme-boutique .badge-corner {
    background: var(--bt-accent) !important;
    color: var(--bt-bg) !important;
    border-radius: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.18em !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 9px !important;
    font-weight: 500 !important;
    padding: 5px 10px !important;
  }

  /* ───── FOOTER : crème beige doux (clean) ───── */
  body.theme-boutique .shop-footer,
  body.theme-boutique footer {
    background: #f5f1e8 !important;
    color: var(--bt-ink, #2d2a22) !important;
    padding: 28px 24px 16px !important;
    margin-top: 32px !important;
    border-top: 1px solid rgba(45, 42, 34, 0.1) !important;
  }
  body.theme-boutique .shop-footer *,
  body.theme-boutique footer * {
    color: rgba(45, 42, 34, 0.75) !important;
  }
  body.theme-boutique .shop-footer-brand {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    color: var(--bt-ink, #2d2a22) !important;
    font-size: 13px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-style: normal !important;
  }
  body.theme-boutique .shop-footer h4 {
    color: var(--bt-ink, #2d2a22) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
  }
  body.theme-boutique .shop-footer a {
    color: rgba(45, 42, 34, 0.7) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12.5px !important;
  }
  body.theme-boutique .shop-footer a:hover {
    color: var(--bt-accent, #8b5a3c) !important;
  }

  /* ───── PAGE CONTACT ───── */
  body.theme-boutique .contact-nav {
    background: rgba(245, 241, 232, 0.95) !important;
    border-bottom: 1px solid var(--bt-line) !important;
  }
  body.theme-boutique .contact-nav .shop-name-nav,
  body.theme-boutique .contact-nav .lv-name-text {
    color: var(--bt-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: normal !important;
  }
  body.theme-boutique .contact-title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    color: var(--bt-ink) !important;
    letter-spacing: -0.015em !important;
  }
  body.theme-boutique .contact-title em {
    color: var(--bt-accent) !important;
  }
  body.theme-boutique .contact-form-section h2 {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    color: var(--bt-ink) !important;
  }
  body.theme-boutique .contact-form-section,
  body.theme-boutique .contact-info-card {
    background: var(--bt-bg-paper) !important;
    border: 1px solid var(--bt-line) !important;
    border-radius: 0 !important;
  }

  /* ───── BACK-LINK ───── */
  body.theme-boutique .back-link {
    background: var(--bt-bg-paper) !important;
    border: 1px solid var(--bt-line) !important;
    color: var(--bt-ink) !important;
    border-radius: 100px !important;
  }
  body.theme-boutique .back-link:hover {
    background: var(--bt-bg) !important;
    border-color: var(--bt-ink) !important;
  }

  /* ───── ESPACEMENT ───── */
  body.theme-boutique .shop-section {
    padding: 80px 32px !important;
  }
  @media (max-width: 860px) {
    body.theme-boutique .shop-section { padding: 50px 20px !important; }
  }


  /* ============================================================
     🛠️ COUVERTURE UNIVERSELLE — Classes manquantes pour tous thèmes
     ============================================================
     Ce bloc s'assure qu'aucun élément critique n'est invisible ou
     mal stylé sur les pages produit, story, catégories, reviews, etc.
     Chaque thème utilise ses propres variables CSS.
  */

  /* ───── BREADCRUMB (fiche produit) ───── */
  body.theme-editorial .breadcrumb, body.theme-editorial .breadcrumb a, body.theme-editorial .breadcrumb span, body.theme-editorial .cat-breadcrumb {
    color: var(--ed-ink-soft) !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-editorial .breadcrumb a:hover { color: var(--ed-ink) !important; }
  body.theme-editorial .breadcrumb .current { color: var(--ed-ink) !important; }

  body.theme-boutique .breadcrumb, body.theme-boutique .breadcrumb a, body.theme-boutique .breadcrumb span, body.theme-boutique .cat-breadcrumb {
    color: var(--bt-ink-soft) !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-boutique .breadcrumb a:hover { color: var(--bt-ink) !important; }
  body.theme-boutique .breadcrumb .current { color: var(--bt-ink) !important; }

  body.theme-vintage .breadcrumb, body.theme-vintage .breadcrumb a, body.theme-vintage .breadcrumb span, body.theme-vintage .cat-breadcrumb {
    color: var(--v-sepia) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
  }
  body.theme-vintage .breadcrumb a:hover { color: var(--v-rust) !important; }
  body.theme-vintage .breadcrumb .current { color: var(--v-ink) !important; }

  body.theme-floating .breadcrumb, body.theme-floating .breadcrumb a, body.theme-floating .breadcrumb span, body.theme-floating .cat-breadcrumb {
    color: #6b4f1f !important;
  }
  body.theme-floating .breadcrumb a:hover { color: #5e3a10 !important; }

  /* ───── PRICE — Prix sur fiche produit ───── */
  body.theme-editorial .price-main, body.theme-editorial .price, body.theme-editorial .product-detail-price {
    color: var(--ed-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
  }
  body.theme-boutique .price-main, body.theme-boutique .price, body.theme-boutique .product-detail-price {
    color: var(--bt-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
  }
  body.theme-vintage .price-main, body.theme-vintage .price, body.theme-vintage .product-detail-price {
    color: var(--v-rust) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 600 !important;
  }
  body.theme-floating .price-main, body.theme-floating .price, body.theme-floating .product-detail-price {
    color: #5e3a10 !important;
    font-weight: 600 !important;
  }

  /* ───── DESCRIPTIONS PRODUIT ───── */
  body.theme-editorial .product-description, body.theme-editorial .product-detail-desc, body.theme-editorial .shop-description {
    color: var(--ed-ink-soft) !important;
    line-height: 1.7 !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-boutique .product-description, body.theme-boutique .product-detail-desc, body.theme-boutique .shop-description {
    color: var(--bt-ink-soft) !important;
    line-height: 1.8 !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-vintage .product-description, body.theme-vintage .product-detail-desc, body.theme-vintage .shop-description {
    color: var(--v-sepia) !important;
    line-height: 1.8 !important;
    font-family: 'Fraunces', Georgia, serif !important;
  }
  body.theme-floating .product-description, body.theme-floating .product-detail-desc, body.theme-floating .shop-description {
    color: #6b4f1f !important;
    line-height: 1.7 !important;
  }

  /* ───── SHIPPING INFO ───── */
  body.theme-editorial .shipping-hint, body.theme-editorial .product-shipping-info { color: var(--ed-ink-soft) !important; }
  body.theme-boutique .shipping-hint, body.theme-boutique .product-shipping-info { color: var(--bt-ink-soft) !important; }
  body.theme-vintage .shipping-hint, body.theme-vintage .product-shipping-info { color: var(--v-sepia) !important; font-style: italic; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-floating .shipping-hint, body.theme-floating .product-shipping-info { color: #6b4f1f !important; }

  /* ───── VARIANTES ───── */
  body.theme-editorial .variant-label, body.theme-editorial .variants-hint { color: var(--ed-ink) !important; font-family: 'Inter', sans-serif !important; }
  body.theme-editorial .variants-hint { color: var(--ed-ink-soft) !important; }
  body.theme-boutique .variant-label, body.theme-boutique .variants-hint { color: var(--bt-ink) !important; font-family: 'Inter', sans-serif !important; }
  body.theme-boutique .variants-hint { color: var(--bt-ink-soft) !important; }
  body.theme-vintage .variant-label { color: var(--v-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .variants-hint { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic; }
  body.theme-floating .variant-label, body.theme-floating .variants-hint { color: #5e3a10 !important; }
  body.theme-floating .variants-hint { color: #6b4f1f !important; }

  /* ───── REVIEWS (avis) ───── */
  body.theme-editorial .reviews-summary, body.theme-editorial .reviews-empty { color: var(--ed-ink-soft) !important; }
  body.theme-editorial .review-item-page { background: var(--ed-soft-bg) !important; border: 1px solid var(--ed-line) !important; }
  body.theme-editorial .review-header-page, body.theme-editorial .review-comment-page { color: var(--ed-ink) !important; }
  body.theme-editorial .review-date-page { color: var(--ed-ink-soft) !important; font-size: 12px !important; }
  body.theme-editorial .review-reply-page { background: white !important; border-left: 2px solid var(--ed-accent) !important; color: var(--ed-ink-soft) !important; }
  body.theme-editorial .reviews-page-section { background: var(--ed-bg) !important; border-top: 1px solid var(--ed-line) !important; }

  body.theme-boutique .reviews-summary, body.theme-boutique .reviews-empty { color: var(--bt-ink-soft) !important; }
  body.theme-boutique .review-item-page { background: var(--bt-bg-paper) !important; border: 1px solid var(--bt-line) !important; }
  body.theme-boutique .review-header-page, body.theme-boutique .review-comment-page { color: var(--bt-ink) !important; }
  body.theme-boutique .review-date-page { color: var(--bt-ink-soft) !important; font-size: 12px !important; }
  body.theme-boutique .review-reply-page { background: var(--bt-bg) !important; border-left: 2px solid var(--bt-accent) !important; color: var(--bt-ink-soft) !important; }
  body.theme-boutique .reviews-page-section { background: var(--bt-bg) !important; border-top: 1px solid var(--bt-line) !important; }

  body.theme-vintage .reviews-summary, body.theme-vintage .reviews-empty { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .review-item-page { background: var(--v-cream) !important; border: 1px solid var(--v-line) !important; }
  body.theme-vintage .review-header-page, body.theme-vintage .review-comment-page { color: var(--v-ink) !important; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-vintage .review-date-page { color: var(--v-sepia) !important; font-size: 12px !important; font-style: italic; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-vintage .review-reply-page { background: var(--v-paper-dark) !important; border-left: 2px solid var(--v-rust) !important; color: var(--v-sepia) !important; }
  body.theme-vintage .reviews-page-section { background: var(--v-paper) !important; border-top: 1px solid var(--v-line) !important; }

  body.theme-floating .reviews-summary, body.theme-floating .reviews-empty { color: #6b4f1f !important; }
  body.theme-floating .review-item-page { background: white !important; border: 1px solid rgba(200, 161, 101, 0.3) !important; border-radius: 16px !important; }
  body.theme-floating .review-header-page, body.theme-floating .review-comment-page { color: #5e3a10 !important; }
  body.theme-floating .review-date-page { color: #8a7250 !important; font-size: 12px !important; }
  body.theme-floating .reviews-page-section { background: #fff8eb !important; }

  /* ───── BOUTON ADD TO CART PRODUIT ───── */
  body.theme-editorial .add-to-cart-btn-page, body.theme-editorial .btn-primary {
    background: var(--ed-ink) !important;
    color: white !important;
    border-radius: 100px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    border: 2px solid var(--ed-ink) !important;
  }
  body.theme-editorial .add-to-cart-btn-page:hover { background: var(--ed-accent) !important; border-color: var(--ed-accent) !important; }

  body.theme-boutique .add-to-cart-btn-page, body.theme-boutique .btn-primary {
    background: var(--bt-ink) !important;
    color: var(--bt-bg) !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    border: none !important;
  }
  body.theme-boutique .add-to-cart-btn-page:hover { background: var(--bt-accent) !important; }

  body.theme-vintage .add-to-cart-btn-page, body.theme-vintage .btn-primary {
    background: var(--v-ink) !important;
    color: var(--v-cream) !important;
    border-radius: 0 !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 500 !important;
    border: 1px solid var(--v-ink) !important;
  }
  body.theme-vintage .add-to-cart-btn-page:hover { background: var(--v-rust) !important; border-color: var(--v-rust) !important; }
  body.theme-vintage .add-to-cart-btn-page::before { content: '✦ '; opacity: 0.7; }

  body.theme-floating .add-to-cart-btn-page, body.theme-floating .btn-primary {
    background: linear-gradient(135deg, #f7c98e 0%, #e09850 100%) !important;
    color: white !important;
    border-radius: 12px !important;
    border: none !important;
    font-weight: 600 !important;
  }

  /* ───── BOUTON FAVORI PAGE PRODUIT ───── */
  body.theme-editorial .favorite-btn-page { background: white !important; border: 1px solid var(--ed-line) !important; color: var(--ed-ink) !important; }
  body.theme-editorial .favorite-btn-page svg { stroke: var(--ed-ink) !important; }
  body.theme-editorial .favorite-btn-page.active { background: var(--ed-soft-bg) !important; }
  body.theme-editorial .favorite-btn-page.active svg { fill: var(--ed-accent) !important; stroke: var(--ed-accent) !important; }

  body.theme-boutique .favorite-btn-page { background: white !important; border: 1px solid var(--bt-line) !important; color: var(--bt-ink) !important; }
  body.theme-boutique .favorite-btn-page svg { stroke: var(--bt-ink) !important; }
  body.theme-boutique .favorite-btn-page.active svg { fill: var(--bt-accent) !important; stroke: var(--bt-accent) !important; }

  body.theme-vintage .favorite-btn-page { background: var(--v-cream) !important; border: 1px solid var(--v-line) !important; color: var(--v-ink) !important; }
  body.theme-vintage .favorite-btn-page svg { stroke: var(--v-ink) !important; }
  body.theme-vintage .favorite-btn-page.active svg { fill: var(--v-rust) !important; stroke: var(--v-rust) !important; }

  body.theme-floating .favorite-btn-page { background: white !important; border: 1px solid rgba(200, 161, 101, 0.3) !important; border-radius: 12px !important; }
  body.theme-floating .favorite-btn-page.active svg { fill: #e09850 !important; stroke: #e09850 !important; }

  /* ───── BOUTON CONTACT SUBMIT ───── */
  body.theme-editorial .contact-submit-btn { background: var(--ed-ink) !important; color: white !important; border-radius: 100px !important; }
  body.theme-editorial .contact-submit-btn:hover { background: var(--ed-accent) !important; }

  body.theme-boutique .contact-submit-btn { background: var(--bt-ink) !important; color: var(--bt-bg) !important; border-radius: 0 !important; }
  body.theme-boutique .contact-submit-btn:hover { background: var(--bt-accent) !important; }

  body.theme-vintage .contact-submit-btn { background: var(--v-ink) !important; color: var(--v-cream) !important; border-radius: 0 !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .contact-submit-btn::before { content: '✦ '; }
  body.theme-vintage .contact-submit-btn:hover { background: var(--v-rust) !important; }

  body.theme-floating .contact-submit-btn { background: linear-gradient(135deg, #f7c98e 0%, #e09850 100%) !important; color: white !important; border-radius: 12px !important; }

  /* ───── CONTACT SUBTITLE & EYEBROW ───── */
  body.theme-editorial .contact-subtitle { color: var(--ed-ink-soft) !important; font-family: 'Inter', sans-serif !important; }
  body.theme-editorial .contact-eyebrow { color: var(--ed-accent) !important; }

  body.theme-boutique .contact-subtitle { color: var(--bt-ink-soft) !important; font-family: 'Inter', sans-serif !important; }
  body.theme-boutique .contact-eyebrow { color: var(--bt-accent) !important; }

  body.theme-vintage .contact-subtitle { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .contact-eyebrow { color: var(--v-rust) !important; }

  body.theme-floating .contact-subtitle { color: #6b4f1f !important; }
  body.theme-floating .contact-eyebrow { color: #c87850 !important; }

  /* ───── CATEGORIES (lv-cat-card) ───── */
  body.theme-editorial .lv-cat-card-title { color: white !important; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-editorial .lv-cat-card-cta { color: white !important; font-family: 'Inter', sans-serif !important; }
  body.theme-editorial .lv-cat-subchip { color: var(--ed-ink) !important; border: 1px solid var(--ed-line) !important; background: white !important; }

  body.theme-boutique .lv-cat-card-title { color: white !important; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-boutique .lv-cat-card-cta { color: white !important; }
  body.theme-boutique .lv-cat-subchip { color: var(--bt-ink) !important; border: 1px solid var(--bt-line) !important; background: white !important; }

  body.theme-vintage .lv-cat-card-title { color: white !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .lv-cat-card-cta { color: white !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic; }
  body.theme-vintage .lv-cat-subchip { color: var(--v-ink) !important; border: 1px solid var(--v-line) !important; background: var(--v-cream) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }

  body.theme-floating .lv-cat-card-title { color: white !important; }
  body.theme-floating .lv-cat-card-cta { color: white !important; }
  body.theme-floating .lv-cat-subchip { background: white !important; border: 1px solid rgba(200, 161, 101, 0.3) !important; color: #5e3a10 !important; border-radius: 100px !important; }

  /* ───── RELATED PRODUCTS ───── */
  body.theme-editorial .related-section { background: var(--ed-soft-bg) !important; border-top: 1px solid var(--ed-line) !important; }
  body.theme-editorial .related-card { background: transparent !important; }
  body.theme-editorial .related-price { color: var(--ed-ink-soft) !important; }

  body.theme-boutique .related-section { background: var(--bt-bg-paper) !important; border-top: 1px solid var(--bt-line) !important; }
  body.theme-boutique .related-card { background: transparent !important; }
  body.theme-boutique .related-price { color: var(--bt-ink-soft) !important; }

  body.theme-vintage .related-section { background: var(--v-paper-dark) !important; border-top: 1px solid var(--v-line) !important; }
  body.theme-vintage .related-card { background: var(--v-cream) !important; border: 1px solid var(--v-line) !important; }
  body.theme-vintage .related-price { color: var(--v-rust) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }

  body.theme-floating .related-section { background: #fff3dc !important; }
  body.theme-floating .related-card { background: white !important; border-radius: 16px !important; }
  body.theme-floating .related-price { color: #5e3a10 !important; font-weight: 600 !important; }

  /* ───── CUSTOM SECTIONS ───── */
  body.theme-editorial .custom-section { background: var(--ed-bg) !important; }
  body.theme-editorial .custom-section-title { color: var(--ed-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-weight: 300 !important; }
  body.theme-editorial .custom-section-eyebrow { color: var(--ed-accent) !important; }

  body.theme-boutique .custom-section { background: var(--bt-bg-paper) !important; }
  body.theme-boutique .custom-section-title { color: var(--bt-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-weight: 300 !important; }
  body.theme-boutique .custom-section-eyebrow { color: var(--bt-accent) !important; }

  body.theme-vintage .custom-section { background: var(--v-paper-dark) !important; }
  body.theme-vintage .custom-section-title { color: var(--v-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .custom-section-eyebrow { color: var(--v-rust) !important; }

  body.theme-floating .custom-section { background: #fff3dc !important; }
  body.theme-floating .custom-section-title { color: #5e3a10 !important; }
  body.theme-floating .custom-section-eyebrow { color: #c87850 !important; }

  /* ───── STORY PARAGRAPH / SIGNATURE / PLACEHOLDER ───── */
  body.theme-editorial .lv-story-paragraph { color: var(--ed-ink-soft) !important; line-height: 1.8 !important; }
  body.theme-editorial .lv-story-signature { color: var(--ed-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-editorial .lv-story-placeholder { background: var(--ed-soft-bg) !important; color: var(--ed-ink-faint) !important; }

  body.theme-boutique .lv-story-paragraph { color: var(--bt-ink-soft) !important; line-height: 1.85 !important; }
  body.theme-boutique .lv-story-signature { color: var(--bt-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-boutique .lv-story-placeholder { background: var(--bt-bg-paper) !important; color: var(--bt-ink-faint) !important; }

  body.theme-vintage .lv-story-paragraph { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; }
  body.theme-vintage .lv-story-signature { color: var(--v-rust) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .lv-story-placeholder { background: var(--v-paper-dark) !important; color: var(--v-sepia) !important; }

  body.theme-floating .lv-story-paragraph { color: #6b4f1f !important; line-height: 1.7 !important; }
  body.theme-floating .lv-story-signature { color: #5e3a10 !important; }
  body.theme-floating .lv-story-placeholder { background: #fff3dc !important; color: #8a7250 !important; }

  /* ───── FILTER SECTION (drawer) ───── */
  body.theme-editorial .filter-section, body.theme-editorial .filter-section-title { color: var(--ed-ink) !important; }
  body.theme-boutique .filter-section, body.theme-boutique .filter-section-title { color: var(--bt-ink) !important; }
  body.theme-vintage .filter-section, body.theme-vintage .filter-section-title { color: var(--v-ink) !important; }
  body.theme-floating .filter-section, body.theme-floating .filter-section-title { color: #5e3a10 !important; }

  /* ───── MODAL (panier, etc.) ───── */
  body.theme-editorial .modal { background: white !important; color: var(--ed-ink) !important; }
  body.theme-editorial .modal-close { color: var(--ed-ink) !important; }
  body.theme-boutique .modal { background: white !important; color: var(--bt-ink) !important; }
  body.theme-boutique .modal-close { color: var(--bt-ink) !important; }
  body.theme-vintage .modal { background: var(--v-cream) !important; color: var(--v-ink) !important; border: 1px solid var(--v-line) !important; }
  body.theme-vintage .modal-close { color: var(--v-ink) !important; }
  body.theme-floating .modal { background: white !important; color: #5e3a10 !important; border-radius: 20px !important; }

  /* ───── LIGHTBOX (image plein écran fiche produit) ───── */
  body.theme-editorial .lightbox-counter { color: var(--ed-ink-soft) !important; }
  body.theme-boutique .lightbox-counter { color: var(--bt-ink-soft) !important; }
  body.theme-vintage .lightbox-counter { color: var(--v-sepia) !important; }
  body.theme-floating .lightbox-counter { color: #6b4f1f !important; }

  /* ───── SHOW MORE REVIEWS ───── */
  body.theme-editorial .show-more-reviews-btn { background: transparent !important; border: 1px solid var(--ed-ink) !important; color: var(--ed-ink) !important; }
  body.theme-editorial .show-more-reviews-btn:hover { background: var(--ed-ink) !important; color: white !important; }

  body.theme-boutique .show-more-reviews-btn { background: transparent !important; border: 1px solid var(--bt-ink) !important; color: var(--bt-ink) !important; }
  body.theme-boutique .show-more-reviews-btn:hover { background: var(--bt-ink) !important; color: var(--bt-bg) !important; }

  body.theme-vintage .show-more-reviews-btn { background: var(--v-cream) !important; border: 1px solid var(--v-ink) !important; color: var(--v-ink) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .show-more-reviews-btn:hover { background: var(--v-ink) !important; color: var(--v-cream) !important; }

  body.theme-floating .show-more-reviews-btn { background: white !important; border: 1px solid rgba(200, 161, 101, 0.3) !important; color: #5e3a10 !important; border-radius: 100px !important; }

  body.theme-floating .modal-close {
    color: #5e3a10 !important;
  }

  /* ───── PROMO BANNER — la couleur est définie dans le dashboard et appliquée
     en inline style sur l'élément. PAS d'override par thème (sinon la couleur
     choisie par le vendeur serait écrasée). On garde juste la typo italique
     pour vintage qui fait partie de sa signature. ───── */
  body.theme-vintage .promo-banner {
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic !important;
  }


  /* ───── LV CATEGORIES SECTION (carrousel catégories) ───── */
  body.theme-editorial .lv-categories-section { background: var(--ed-bg) !important; }
  body.theme-boutique .lv-categories-section { background: var(--bt-bg) !important; }
  body.theme-vintage .lv-categories-section { background: var(--v-paper) !important; }

  /* ───── RATING ROW (étoiles + lien avis) ───── */
  body.theme-editorial .rating-row { color: var(--ed-ink-soft) !important; }
  body.theme-editorial .rating-row a { color: var(--ed-ink-soft) !important; }
  body.theme-editorial .rating-row a:hover { color: var(--ed-ink) !important; }

  body.theme-boutique .rating-row { color: var(--bt-ink-soft) !important; }
  body.theme-boutique .rating-row a { color: var(--bt-ink-soft) !important; }
  body.theme-boutique .rating-row a:hover { color: var(--bt-ink) !important; }

  body.theme-vintage .rating-row { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-vintage .rating-row a { color: var(--v-sepia) !important; }
  body.theme-vintage .rating-row a:hover { color: var(--v-rust) !important; }

  body.theme-floating .rating-row { color: #6b4f1f !important; }
  body.theme-floating .rating-row a { color: #6b4f1f !important; }

  /* ───── SHARE BUTTONS ───── */
  body.theme-editorial .share-row, body.theme-editorial .share-label { color: var(--ed-ink-soft) !important; }
  body.theme-boutique .share-row, body.theme-boutique .share-label { color: var(--bt-ink-soft) !important; }
  body.theme-vintage .share-row, body.theme-vintage .share-label { color: var(--v-sepia) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-floating .share-row, body.theme-floating .share-label { color: #6b4f1f !important; }

  /* ───── PRODUCT NAME (h1 fiche produit) ───── */
  body.theme-editorial #product-name, body.theme-editorial .product-name {
    color: var(--ed-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-style: normal !important;
  }
  body.theme-boutique #product-name, body.theme-boutique .product-name {
    color: var(--bt-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
  }
  body.theme-vintage #product-name, body.theme-vintage .product-name {
    color: var(--v-ink) !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 400 !important;
    font-style: italic !important;
  }
  body.theme-floating #product-name, body.theme-floating .product-name {
    color: #5e3a10 !important;
  }

  /* ───── COMING SOON BADGE ───── */
  body.theme-editorial .coming-soon-badge { background: var(--ed-soft-bg) !important; color: var(--ed-ink) !important; border: 1px solid var(--ed-line) !important; }
  body.theme-boutique .coming-soon-badge { background: var(--bt-bg-paper) !important; color: var(--bt-ink) !important; border: 1px solid var(--bt-line) !important; }
  body.theme-vintage .coming-soon-badge { background: var(--v-cream) !important; color: var(--v-ink) !important; border: 1px solid var(--v-line) !important; }
  body.theme-floating .coming-soon-badge { background: white !important; color: #5e3a10 !important; border-radius: 100px !important; }

  /* ───── ADDED TO CART TOAST ───── */
  body.theme-editorial .added-to-cart-toast { background: var(--ed-ink) !important; color: white !important; }
  body.theme-boutique .added-to-cart-toast { background: var(--bt-ink) !important; color: var(--bt-bg) !important; }
  body.theme-vintage .added-to-cart-toast { background: var(--v-ink) !important; color: var(--v-cream) !important; font-family: 'Fraunces', Georgia, serif !important; font-style: italic !important; }
  body.theme-floating .added-to-cart-toast { background: linear-gradient(135deg, #f7c98e 0%, #e09850 100%) !important; color: white !important; border-radius: 16px !important; }


  /* ============================================================
     ⚫ STYLE CLASSIC (Tech) — Premium Dark façon Bose / B&O / Apple
     ============================================================
     Refonte complète 2026 :
     - Plus de vert néon (trop geek)
     - Plus de JetBrains Mono partout (trop terminal)
     - Plus de "$ ", "// ", "▸ " préfixes gimmicky
     - Inter partout, propre et lisible
     - Accent CUIVRE SUBTIL (signal premium product, pas tech bro)
     - Gris CLAIRS pour le texte secondaire (lisibilité forte)
     - Cards sur fond légèrement éclairci (relief visuel)
     - Vibe : Apple Store dark mode + B&O minimalisme
  */
  body.theme-classic {
    --t-bg: #0a0a0a;            /* noir profond */
    --t-bg-soft: #141414;       /* zones soulignées */
    --t-surface: #1a1a1a;       /* cards, blocks */
    --t-surface-high: #232323;  /* modals, hover states */
    --t-border: rgba(255, 255, 255, 0.1);
    --t-border-strong: rgba(255, 255, 255, 0.2);
    
    --t-text: #ffffff;          /* texte principal blanc pur */
    --t-text-soft: #d4d4d4;     /* texte secondaire CLAIR (pas gris foncé) */
    --t-text-faint: #a8a8a8;    /* texte tertiaire encore lisible */
    
    --t-accent: #d4a574;        /* cuivre subtil (premium product, pas geek) */
    --t-accent-hover: #e0b384;  /* hover plus clair */

    /* Override des variables globales --ink-* pour le mode dark.
       Sans ça, les éléments qui utilisent var(--ink-3), var(--ink-soft)
       (livraison, frais bancaires, reviews-empty, etc.) restent en gris
       foncé illisible sur fond noir. */
    --ink: #ffffff;
    --ink-2: #f4f4f5;
    --ink-3: #d4d4d4;
    --ink-soft: #d4d4d4;
    --ink-faint: #a8a8a8;
    --bg-subtle: #1a1a1a;
    --bg-soft: #141414;
    --bg: #0a0a0a;
    --line: rgba(255, 255, 255, 0.1);

    /* CRITICAL : override des variables --theme-* utilisées par styles.css
       .themed .product-card-premium .meta { background: var(--theme-bg) }
       Sans ce override, les cards seraient noires (theme-classic) mais
       le bloc .meta dessous resterait blanc. */
    --theme-bg: #000000;
    --theme-surface: #000000;
    --theme-ink: #ffffff;

    background-color: var(--t-bg) !important;
    color: var(--t-text) !important;
  }

  /* Force du fond noir sur les cards même via .themed (qui surcharge tout) */
  body.theme-classic .product-card-premium {
    background: #0f0f0f !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5) !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  body.theme-classic .product-card-premium:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.7) !important;
    border-color: rgba(212, 165, 116, 0.4) !important;  /* cuivre subtil au hover */
  }
  body.theme-classic .product-card-premium .meta,
  body.theme-classic.themed .product-card-premium .meta,
  body.theme-classic .product-card .meta,
  body.theme-classic .lv-product-card .meta {
    background: #0f0f0f !important;
    color: #ffffff !important;
  }
  body.theme-classic .product-card-premium .name,
  body.theme-classic .product-card-premium .price {
    color: #ffffff !important;
  }
  body.theme-classic .product-card-premium .sub {
    color: #d4d4d4 !important;
  }

  /* Reviews-empty : background card noire + texte clair */
  body.theme-classic .reviews-empty {
    background: #1a1a1a !important;
    color: #d4d4d4 !important;
    border: 1px solid rgba(255, 255, 255, 0.08);
  }

  /* ───── NAV : noir avec backdrop blur ───── */
  body.theme-classic .shop-nav,
  body.theme-classic .product-nav {
    background: #0a0a0a !important;                          /* noir profond opaque */
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5) !important;
    padding: 18px 32px !important;
    z-index: 100 !important;
  }
  body.theme-classic .lv-shop-name,
  body.theme-classic .lv-name-text,
  body.theme-classic .shop-name,
  body.theme-classic .shop-name-nav {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 17px !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    font-style: normal !important;
  }
  body.theme-classic .lv-nav-links-left a,
  body.theme-classic .shop-nav-links a {
    color: var(--t-text-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
  }
  body.theme-classic .lv-nav-links-left a:hover,
  body.theme-classic .shop-nav-links a:hover {
    color: var(--t-text) !important;
  }

  /* Icônes nav */
  body.theme-classic .lv-nav-link-icon:not(.lv-nav-social),
  body.theme-classic .nav-cart-btn,
  body.theme-classic .back-link,
  body.theme-classic .lv-cart-btn,
  body.theme-classic .shop-nav-actions button {
    color: var(--t-text) !important;
  }
  body.theme-classic .lv-nav-link-icon:not(.lv-nav-social) svg,
  body.theme-classic .nav-cart-btn svg,
  body.theme-classic .back-link svg,
  body.theme-classic .shop-nav-actions svg {
    stroke: var(--t-text) !important;
    color: var(--t-text) !important;
  }
  /* RIEN sur les SVG sociaux : on laisse les gradients/fills natifs (Instagram, Facebook, TikTok) */
  body.theme-classic .lv-nav-link-icon:not(.lv-nav-social):hover,
  body.theme-classic .nav-cart-btn:hover {
    color: var(--t-accent) !important;
  }
  body.theme-classic .lv-nav-link-icon:not(.lv-nav-social):hover svg,
  body.theme-classic .nav-cart-btn:hover svg {
    stroke: var(--t-accent) !important;
  }
  /* Badge compteur (cuivre au lieu de vert) */
  body.theme-classic .cart-count-badge,
  body.theme-classic .lv-icon-badge {
    background: var(--t-accent) !important;
    color: #0a0a0a !important;
  }
  /* Hamburger menu mobile */
  body.theme-classic .shop-nav-toggle span {
    background: var(--t-text) !important;
  }
  body.theme-classic .shop-nav-links.open {
    background: rgba(10, 10, 10, 0.98) !important;
    border-top: 1px solid var(--t-border) !important;
  }
  body.theme-classic .shop-nav-links.open a {
    color: var(--t-text) !important;
  }

  /* ───── HERO : grand format, photo dominante ───── */
  body.theme-classic .lv-banner {
    min-height: 92vh !important;
    background-color: var(--t-bg) !important;
  }
  /* Pattern subtil très discret (au lieu du grid néon vert) */
  body.theme-classic .lv-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0.5) 100%);
    pointer-events: none;
    z-index: 1;
  }
  body.theme-classic .lv-banner-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 760px !important;
    padding: 0 24px !important;
  }
  body.theme-classic .lv-hero-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-style: normal !important;
    font-size: clamp(48px, 7.5vw, 96px) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.03em !important;
    text-transform: none !important;
    color: white !important;
    margin-bottom: 24px !important;
  }
  body.theme-classic .lv-hero-title em {
    font-style: normal !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, 0.6) !important;
  }
  body.theme-classic .lv-hero-subtitle {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    color: rgba(255, 255, 255, 0.95) !important;
    margin-bottom: 32px !important;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6 !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
  }
  body.theme-classic .lv-hero-cta {
    background: var(--t-accent) !important;
    color: #0a0a0a !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    font-size: 14px !important;
    transition: all 0.25s ease !important;
  }
  body.theme-classic .lv-hero-cta:hover {
    background: var(--t-accent-hover) !important;
    transform: translateY(-1px);
  }
  body.theme-classic .lv-hero-cta::after {
    content: ' →';
    margin-left: 4px;
  }

  /* ───── SECTIONS ───── */
  body.theme-classic main,
  body.theme-classic .container {
    background-color: var(--t-bg) !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .catalog-section,
  body.theme-classic .featured-section {
    background: var(--t-bg) !important;
  }
  body.theme-classic h2,
  body.theme-classic h3,
  body.theme-classic .section-title {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: clamp(28px, 4vw, 48px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.03em !important;
    text-align: center !important;
    text-transform: none !important;
  }
  body.theme-classic .section-title em {
    color: var(--t-accent) !important;
    font-style: normal !important;
    font-weight: 600 !important;
  }
  body.theme-classic .section-eyebrow,
  body.theme-classic .eyebrow {
    color: var(--t-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
    margin-bottom: 8px !important;
    text-align: center !important;
  }
  body.theme-classic .section-eyebrow::before {
    content: '' !important;
  }
  body.theme-classic .section-head {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    margin-bottom: 40px !important;
  }
  body.theme-classic .section-link {
    color: var(--t-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    border-bottom: 1px solid var(--t-accent) !important;
    padding-bottom: 2px !important;
  }
  body.theme-classic .section-link:hover {
    color: var(--t-accent-hover) !important;
  }

  /* ───── CARDS PRODUITS : noir pur avec bordure VISIBLE ───── */
  body.theme-classic .product-card,
  body.theme-classic .lv-product-card,
  body.theme-classic .product-card-premium,
  body.theme-classic .related-card {
    background: #0f0f0f !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;     /* bordure plus visible */
    border-radius: 14px !important;
    color: var(--t-text) !important;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4) !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  body.theme-classic .product-card:hover,
  body.theme-classic .lv-product-card:hover,
  body.theme-classic .product-card-premium:hover,
  body.theme-classic .related-card:hover {
    border-color: rgba(255, 255, 255, 0.3) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.6) !important;
  }
  body.theme-classic .product-card .img-wrap,
  body.theme-classic .lv-product-card .img-wrap,
  body.theme-classic .product-card-premium .media,
  body.theme-classic .related-img-wrap {
    background-color: #000000 !important;
    border-radius: 0 !important;
    aspect-ratio: 1 / 1 !important;
  }
  body.theme-classic .product-card .img-main,
  body.theme-classic .lv-product-card .img-main {
    transition: transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  body.theme-classic .product-card:hover .img-main,
  body.theme-classic .lv-product-card:hover .img-main {
    transform: scale(1.04);
  }
  body.theme-classic .product-card-name,
  body.theme-classic .lv-product-name,
  body.theme-classic .related-name {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 15px !important;
    text-transform: none !important;
    margin: 14px 16px 4px !important;
    padding: 0 !important;
    text-align: left !important;
  }
  body.theme-classic .product-card-price,
  body.theme-classic .lv-product-price,
  body.theme-classic .related-price {
    color: var(--t-text-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: 0.01em !important;
    margin: 0 16px 16px !important;
    padding: 0 !important;
    text-align: left !important;
  }

  /* ───── GRILLE PRODUITS ───── */
  body.theme-classic .products-grid-premium,
  body.theme-classic .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
  @media (min-width: 760px) {
    body.theme-classic .products-grid-premium,
    body.theme-classic .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 24px !important;
    }
  }
  @media (min-width: 1100px) {
    body.theme-classic .products-grid-premium,
    body.theme-classic .products-grid {
      grid-template-columns: repeat(4, 1fr) !important;
    }
  }

  /* ───── STORY SECTION ───── */
  body.theme-classic .lv-story-section {
    background: var(--t-surface) !important;
    border-top: 1px solid var(--t-border) !important;
    border-bottom: 1px solid var(--t-border) !important;
  }
  body.theme-classic .lv-story-title {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-style: normal !important;
    font-size: clamp(32px, 4.5vw, 52px) !important;
    letter-spacing: -0.03em !important;
  }
  body.theme-classic .lv-story-eyebrow {
    color: var(--t-accent) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
  }
  body.theme-classic .lv-story-section p,
  body.theme-classic .lv-story-paragraph {
    color: var(--t-text-soft) !important;
    line-height: 1.75 !important;
    font-size: 16px !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-classic .lv-story-signature {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-classic .lv-story-placeholder {
    background: var(--t-bg-soft) !important;
    color: var(--t-text-soft) !important;
  }

  /* ───── FICHE PRODUIT ───── */
  body.theme-classic .breadcrumb,
  body.theme-classic .breadcrumb a,
  body.theme-classic .breadcrumb span,
  body.theme-classic .cat-breadcrumb {
    color: var(--t-text-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
  }
  body.theme-classic .breadcrumb a:hover {
    color: var(--t-text) !important;
  }
  body.theme-classic .breadcrumb .current {
    color: var(--t-text) !important;
  }

  body.theme-classic .gallery-main {
    background-color: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 12px !important;
  }
  body.theme-classic .gallery-thumbs button,
  body.theme-classic .gallery-thumbs .thumb,
  body.theme-classic .gallery-thumb {
    border: 1.5px solid var(--t-border) !important;
    background-color: var(--t-surface) !important;
    border-radius: 8px !important;
  }
  body.theme-classic .gallery-thumbs button.active,
  body.theme-classic .gallery-thumbs .thumb.active,
  body.theme-classic .gallery-thumb.active {
    border-color: var(--t-accent) !important;
  }
  body.theme-classic .gallery-nav {
    background: rgba(20, 20, 20, 0.85) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-border) !important;
    backdrop-filter: blur(10px);
  }
  body.theme-classic .gallery-nav:hover {
    background: var(--t-surface-high) !important;
    border-color: var(--t-accent) !important;
  }
  body.theme-classic .gallery-zoom-hint {
    color: var(--t-text-faint) !important;
  }

  body.theme-classic .lightbox {
    background: rgba(0, 0, 0, 0.95) !important;
  }
  body.theme-classic .lightbox-nav,
  body.theme-classic .lightbox-close {
    background: rgba(20, 20, 20, 0.85) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-border) !important;
    backdrop-filter: blur(10px);
  }
  body.theme-classic .lightbox-nav:hover,
  body.theme-classic .lightbox-close:hover {
    border-color: var(--t-accent) !important;
  }
  body.theme-classic .lightbox-counter {
    color: var(--t-text-soft) !important;
  }

  /* Nom du produit (h1) */
  body.theme-classic .product-name,
  body.theme-classic .product-detail-name,
  body.theme-classic #product-name,
  body.theme-classic h1 {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-style: normal !important;
    letter-spacing: -0.02em !important;
  }
  body.theme-classic .product-description,
  body.theme-classic .product-detail-desc {
    color: var(--t-text-soft) !important;
    line-height: 1.7 !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-classic .shop-description {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .stock-info {
    color: var(--t-text-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
  }
  body.theme-classic .shipping-hint,
  body.theme-classic .product-shipping-info {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .stripe-note-page {
    color: var(--t-text-faint) !important;
  }
  body.theme-classic .price-main,
  body.theme-classic .price,
  body.theme-classic .product-detail-price {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
  }

  /* Variantes */
  body.theme-classic .variant-section,
  body.theme-classic .variant-label,
  body.theme-classic .field label {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
  }
  body.theme-classic .variants-hint {
    color: var(--t-text-soft) !important;
    font-size: 12px !important;
  }
  body.theme-classic .variant-options button,
  body.theme-classic .size-options button {
    background: var(--t-surface) !important;
    border: 1.5px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 8px !important;
  }
  /* Pastilles de COULEUR : leur fond EST la couleur du produit (posée en style
     inline). Il ne faut donc jamais l'écraser, sinon toutes les variantes
     apparaissent noires. On ne styles que la bordure. */
  body.theme-classic .color-options button {
    border: 1.5px solid var(--t-border) !important;
    border-radius: 8px !important;
  }
  body.theme-classic .variant-options button:hover,
  body.theme-classic .size-options button:hover {
    border-color: var(--t-border-strong) !important;
    background: var(--t-surface-high) !important;
  }
  body.theme-classic .color-options button:hover {
    border-color: var(--t-border-strong) !important;
  }
  body.theme-classic .variant-options button.selected,
  body.theme-classic .size-options button.selected {
    border-color: var(--t-accent) !important;
    background: var(--t-surface-high) !important;
  }
  /* Couleur sélectionnée : anneau d'accent, sans toucher au fond (la couleur) */
  body.theme-classic .color-options button.selected {
    border-color: var(--t-accent) !important;
    box-shadow: 0 0 0 2px var(--t-accent) !important;
  }

  /* Quantité */
  body.theme-classic .quantity-row {
    background: transparent !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .quantity-row label {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .quantity-controls-page {
    background: var(--t-surface) !important;
    border: 1.5px solid var(--t-border) !important;
    border-radius: 100px !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .quantity-controls-page button {
    color: var(--t-text) !important;
    background: transparent !important;
  }
  body.theme-classic .quantity-controls-page button:hover {
    color: var(--t-accent) !important;
    background: var(--t-surface-high) !important;
  }
  body.theme-classic .quantity-controls-page input {
    background: transparent !important;
    color: var(--t-text) !important;
    border: none !important;
  }

  /* Bouton add-to-cart */
  body.theme-classic .add-to-cart-btn-page,
  body.theme-classic .btn-primary {
    background: var(--t-accent) !important;
    color: #0a0a0a !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 14px 28px !important;
    transition: all 0.25s ease !important;
  }
  body.theme-classic .add-to-cart-btn-page:hover,
  body.theme-classic .btn-primary:hover {
    background: var(--t-accent-hover) !important;
    transform: translateY(-1px);
  }
  body.theme-classic .add-to-cart-btn-page:disabled {
    background: var(--t-surface) !important;
    color: var(--t-text-faint) !important;
  }

  /* Bouton favori */
  body.theme-classic .favorite-btn-page {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 100px !important;
  }
  body.theme-classic .favorite-btn-page svg {
    stroke: var(--t-text) !important;
  }
  body.theme-classic .favorite-btn-page.active {
    background: var(--t-surface-high) !important;
    border-color: var(--t-accent) !important;
  }
  body.theme-classic .favorite-btn-page.active svg {
    fill: var(--t-accent) !important;
    stroke: var(--t-accent) !important;
  }

  /* Rating row */
  body.theme-classic .rating-row {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .rating-row a {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .rating-row a:hover {
    color: var(--t-text) !important;
  }

  /* Share */
  body.theme-classic .share-row,
  body.theme-classic .share-label,
  body.theme-classic .socials-row {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .share-btn,
  body.theme-classic .social-link {
    background: #ffffff !important;          /* fond blanc fixe pour faire ressortir les icônes de marque */
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #0a0a0a !important;
    border-radius: 100px !important;
    transition: background 0.2s ease, border-color 0.2s ease !important;
  }
  body.theme-classic .share-btn:hover,
  body.theme-classic .social-link:hover {
    background: #f5f5f5 !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    /* Pas de transform/box-shadow cuivre : trop bizarre sur fond noir */
  }
  /* Icônes sociales DANS LA NAV TOP : on RESPECTE les couleurs natives des
     SVG de marque (gradient Instagram, bleu Facebook, etc.).
     Pas d'override de fill/stroke ! */
  body.theme-classic .lv-nav-social {
    background: transparent !important;
    border: none !important;
  }
  body.theme-classic .lv-nav-social:hover {
    background: rgba(255, 255, 255, 0.08) !important;
  }
  /* Pas de règle svg{} : les SVG gardent leurs couleurs natives (gradient, fill marque) */

  /* Related */
  body.theme-classic .related-section {
    background: var(--t-bg) !important;
    border-top: 1px solid var(--t-border) !important;
  }

  /* Reviews */
  body.theme-classic .reviews-page-section {
    background: var(--t-bg) !important;
    border-top: 1px solid var(--t-border) !important;
  }
  body.theme-classic .reviews-summary {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .reviews-empty {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .stars {
    color: var(--t-accent) !important;
  }
  body.theme-classic .review-item-page {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 12px !important;
  }
  body.theme-classic .review-header-page {
    color: var(--t-text) !important;
  }
  body.theme-classic .review-comment-page {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .review-date-page {
    color: var(--t-text-faint) !important;
    font-size: 12px !important;
  }
  body.theme-classic .review-reply-page {
    background: var(--t-surface-high) !important;
    color: var(--t-text-soft) !important;
    border-left: 2px solid var(--t-accent) !important;
  }
  body.theme-classic .show-more-reviews-btn {
    background: transparent !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 100px !important;
  }
  body.theme-classic .show-more-reviews-btn:hover {
    border-color: var(--t-accent) !important;
    color: var(--t-accent) !important;
  }

  /* Coming soon */
  body.theme-classic .coming-soon-badge {
    background: var(--t-surface) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-accent) !important;
  }
  body.theme-classic .csb-icon { color: var(--t-accent) !important; }
  body.theme-classic .csb-text { color: var(--t-text) !important; }

  /* Toast */
  body.theme-classic .added-to-cart-toast {
    background: var(--t-surface-high) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-border) !important;
  }

  /* Catégories */
  body.theme-classic .lv-categories-section {
    background: var(--t-bg) !important;
  }
  body.theme-classic .lv-cat-card {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 12px !important;
  }
  body.theme-classic .lv-cat-card-title {
    color: white !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
  }
  body.theme-classic .lv-cat-card-cta {
    color: white !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-classic .lv-cat-subchip {
    background: var(--t-surface) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 100px !important;
  }

  /* Custom sections */
  body.theme-classic .custom-section {
    background: var(--t-surface) !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .custom-section-title {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
  }
  body.theme-classic .custom-section-eyebrow {
    color: var(--t-accent) !important;
    font-family: 'Inter', sans-serif !important;
  }

  /* Promo banner — couleur respectée depuis le dashboard, on garde juste le border-bottom */
  body.theme-classic .promo-banner {
    border-bottom: 1px solid var(--t-border) !important;
  }

  /* Filtres */
  body.theme-classic .cat-filter,
  body.theme-classic .cat-filter-btn {
    background: transparent !important;
    color: var(--t-text-soft) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 100px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    padding: 8px 18px !important;
  }
  body.theme-classic .cat-filter:hover,
  body.theme-classic .cat-filter-btn:hover {
    border-color: var(--t-border-strong) !important;
    color: var(--t-text) !important;
    background: var(--t-surface) !important;
  }
  body.theme-classic .cat-filter.active,
  body.theme-classic .cat-filter-btn.active {
    background: var(--t-text) !important;
    color: var(--t-bg) !important;
    border-color: var(--t-text) !important;
  }
  body.theme-classic .product-search {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 100px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 12px 20px !important;
  }
  body.theme-classic .product-search:focus {
    border-color: var(--t-accent) !important;
    outline: none !important;
  }
  body.theme-classic .product-search::placeholder {
    color: var(--t-text-faint) !important;
  }
  body.theme-classic .filter-section,
  body.theme-classic .filter-section-title {
    color: var(--t-text) !important;
  }

  /* Badges */
  body.theme-classic .badge-new,
  body.theme-classic .badge-corner {
    background: var(--t-accent) !important;
    color: #0a0a0a !important;
    border-radius: 100px !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    padding: 4px 10px !important;
  }

  /* Modals */
  body.theme-classic .modal,
  body.theme-classic .modal.cart-modal {
    background: var(--t-surface) !important;
    color: var(--t-text) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 16px !important;
  }
  body.theme-classic .modal-backdrop {
    background: rgba(0, 0, 0, 0.7) !important;
    backdrop-filter: blur(8px);
  }
  body.theme-classic .modal h2,
  body.theme-classic .modal h3,
  body.theme-classic .modal label {
    color: var(--t-text) !important;
  }
  body.theme-classic .modal-close {
    color: var(--t-text) !important;
  }
  body.theme-classic .modal input,
  body.theme-classic .modal select,
  body.theme-classic .modal textarea {
    background: var(--t-bg) !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 8px !important;
  }
  body.theme-classic .modal input:focus,
  body.theme-classic .modal select:focus {
    border-color: var(--t-accent) !important;
    outline: none !important;
  }

  /* Footer (compact) */
  body.theme-classic .shop-footer,
  body.theme-classic footer {
    background: #050505 !important;
    color: var(--t-text-soft) !important;
    border-top: 1px solid var(--t-border) !important;
    padding: 28px 24px 16px !important;
    margin-top: 32px !important;
  }
  body.theme-classic .shop-footer *,
  body.theme-classic footer * {
    color: var(--t-text-soft);
  }
  body.theme-classic .shop-footer-brand {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: none !important;
  }
  body.theme-classic .shop-footer h4 {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
  }
  body.theme-classic .shop-footer a {
    color: var(--t-text-soft) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12.5px !important;
  }
  body.theme-classic .shop-footer a:hover {
    color: var(--t-text) !important;
  }

  /* Page contact */
  body.theme-classic .contact-nav {
    background: rgba(10, 10, 10, 0.85) !important;
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--t-border) !important;
  }
  body.theme-classic .contact-nav .shop-name-nav,
  body.theme-classic .contact-nav .lv-name-text {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    text-transform: none !important;
    font-style: normal !important;
  }
  body.theme-classic .contact-title {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
  }
  body.theme-classic .contact-title em {
    color: var(--t-accent) !important;
    font-style: normal !important;
  }
  body.theme-classic .contact-subtitle {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .contact-eyebrow {
    color: var(--t-accent) !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-classic .contact-form-section h2 {
    color: var(--t-text) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
  }
  body.theme-classic .contact-form-section .form-intro {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .contact-form-section {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 12px !important;
  }
  body.theme-classic .contact-info-card {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    border-radius: 12px !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .contact-info-card * {
    color: inherit !important;
  }
  body.theme-classic .contact-info-card h3,
  body.theme-classic .contact-info-card strong {
    color: var(--t-text) !important;
  }
  body.theme-classic .contact-info-card a {
    color: var(--t-accent) !important;
  }
  body.theme-classic .contact-form-page label {
    color: var(--t-text) !important;
  }
  body.theme-classic .contact-form-page input,
  body.theme-classic .contact-form-page textarea {
    background: var(--t-bg) !important;
    border: 1.5px solid var(--t-border) !important;
    color: var(--t-text) !important;
    border-radius: 8px !important;
  }
  body.theme-classic .contact-form-page input:focus,
  body.theme-classic .contact-form-page textarea:focus {
    border-color: var(--t-accent) !important;
    outline: none !important;
  }
  body.theme-classic .contact-form-page input::placeholder,
  body.theme-classic .contact-form-page textarea::placeholder {
    color: var(--t-text-faint) !important;
  }
  body.theme-classic .contact-submit-btn {
    background: var(--t-accent) !important;
    color: #0a0a0a !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    text-transform: none !important;
    border-radius: 100px !important;
    border: none !important;
  }
  body.theme-classic .contact-submit-btn:hover {
    background: var(--t-accent-hover) !important;
  }
  body.theme-classic .map-link {
    color: var(--t-text-soft) !important;
  }
  body.theme-classic .map-link:hover {
    color: var(--t-accent) !important;
  }
  body.theme-classic .contact-nav .back-link {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .contact-nav .back-link:hover {
    border-color: var(--t-accent) !important;
    color: var(--t-accent) !important;
  }

  /* Back-link général */
  body.theme-classic .back-link {
    background: var(--t-surface) !important;
    border: 1px solid var(--t-border) !important;
    color: var(--t-text) !important;
  }
  body.theme-classic .back-link:hover {
    background: var(--t-surface-high) !important;
    border-color: var(--t-accent) !important;
    color: var(--t-accent) !important;
  }

  /* Espacement section */
  body.theme-classic .shop-section {
    padding: 70px 32px !important;
  }
  @media (max-width: 860px) {
    body.theme-classic .shop-section { padding: 50px 20px !important; }
  }


  /* ============================================================
     👗 STYLE LOOKBOOK (Mode) — Graphique noir & blanc (Off-White / COS / SSENSE)
     ============================================================
     Différenciation forte avec Beauté (qui est crème + olive) :
     - Fond BLANC PUR (pas crème)
     - Accent NOIR PUR (pas olive/caramel)
     - Hero ALIGNÉ GAUCHE (vs droite avant, ou bas-gauche Beauté)
     - Noms produits en UPPERCASE Inter 500 (vs italique serif partout ailleurs)
     - Grille stricte avec photos rectangulaires
     - Sections avec barres décoratives noires
     - Footer noir contrasté
     - Vibe : streetwear premium SSENSE / COS
  */
  body.theme-lookbook {
    --lb-bg: #ffffff;
    --lb-bg-soft: #f5f5f5;
    --lb-bg-dark: #ebebeb;
    --lb-ink: #000000;          /* noir pur */
    --lb-ink-soft: #555555;
    --lb-ink-faint: #999999;
    --lb-line: rgba(0, 0, 0, 0.1);
    
    background-color: var(--lb-bg) !important;
    color: var(--lb-ink) !important;
  }

  /* ───── NAV : blanc minimaliste OPAQUE ───── */
  body.theme-lookbook .shop-nav {
    background: #ffffff !important;
    border-bottom: 1px solid #000000 !important;           /* trait noir net (style SSENSE) */
    padding: 16px 28px !important;
    z-index: 100 !important;
  }
  body.theme-lookbook .lv-shop-name,
  body.theme-lookbook .lv-name-text {
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    font-style: normal !important;
  }
  body.theme-lookbook .lv-nav-links-left a,
  body.theme-lookbook .shop-nav-links a {
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
  }
  body.theme-lookbook .lv-nav-links-left a:hover {
    opacity: 0.6;
  }
  body.theme-lookbook .lv-nav-link-icon { color: var(--lb-ink) !important; }
  body.theme-lookbook .lv-nav-link-icon:hover { opacity: 0.6 !important; }

  /* ───── HERO : photo grande + texte ALIGNÉ GAUCHE en bas ───── */
  body.theme-lookbook .lv-banner {
    min-height: 90vh !important;
    background-color: var(--lb-bg-dark) !important;
    position: relative;
  }
  body.theme-lookbook .lv-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 100%);
    pointer-events: none;
    z-index: 1;
  }
  body.theme-lookbook .lv-banner-content {
    position: absolute;
    bottom: 8vh;
    left: 5vw;
    z-index: 2;
    text-align: left !important;
    align-items: flex-start !important;
    max-width: 640px !important;
    padding: 0 !important;
  }
  body.theme-lookbook .lv-hero-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    font-size: clamp(48px, 8vw, 112px) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.04em !important;
    text-transform: uppercase !important;
    color: white !important;
    margin-bottom: 24px !important;
    text-align: left !important;
  }
  body.theme-lookbook .lv-hero-title em {
    font-style: normal !important;
    font-weight: 300 !important;
    color: rgba(255, 255, 255, 0.7) !important;
  }
  body.theme-lookbook .lv-hero-subtitle {
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.3em !important;
    text-transform: uppercase !important;
    color: white !important;
    margin-bottom: 28px !important;
    text-align: left !important;
  }
  body.theme-lookbook .lv-hero-cta {
    background: white !important;
    color: var(--lb-ink) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 16px 36px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    font-size: 12px !important;
    transition: all 0.25s ease !important;
  }
  body.theme-lookbook .lv-hero-cta:hover {
    background: var(--lb-ink) !important;
    color: white !important;
  }

  /* ───── SECTIONS : titres UPPERCASE noirs alignés gauche, barre décorative ───── */
  body.theme-lookbook .catalog-section,
  body.theme-lookbook .featured-section {
    background: var(--lb-bg) !important;
  }
  body.theme-lookbook .section-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    color: var(--lb-ink) !important;
    font-size: clamp(28px, 4.5vw, 56px) !important;
    line-height: 1 !important;
    letter-spacing: -0.03em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    margin: 8px 0 24px !important;
  }
  body.theme-lookbook .section-title em {
    font-style: normal !important;
    font-weight: 300 !important;
    color: var(--lb-ink-soft) !important;
  }
  body.theme-lookbook .section-eyebrow,
  body.theme-lookbook .eyebrow {
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
    margin-bottom: 12px !important;
    text-align: left !important;
    padding-left: 24px !important;
    position: relative !important;
  }
  body.theme-lookbook .section-eyebrow::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 16px;
    height: 2px;
    background: var(--lb-ink);
  }
  body.theme-lookbook .section-head {
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    margin-bottom: 32px !important;
    border-bottom: 2px solid var(--lb-ink) !important;
    padding-bottom: 20px !important;
  }
  body.theme-lookbook .section-link {
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    border-bottom: 2px solid var(--lb-ink) !important;
    padding-bottom: 2px !important;
    text-decoration: none !important;
  }

  /* ───── CARDS PRODUITS : photo dominante + nom UPPERCASE ───── */
  body.theme-lookbook .product-card,
  body.theme-lookbook .lv-product-card,
  body.theme-lookbook .product-card-premium {
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    padding: 0 !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease !important;
  }
  body.theme-lookbook .product-card-premium:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1) !important;
    border-color: rgba(0, 0, 0, 0.14) !important;
  }
  body.theme-lookbook .product-card .img-wrap,
  body.theme-lookbook .lv-product-card .img-wrap {
    background-color: var(--lb-bg-soft) !important;
    border-radius: 0 !important;
    aspect-ratio: 3 / 4 !important;
    margin-bottom: 12px !important;
    overflow: hidden;
  }
  body.theme-lookbook .product-card .img-main,
  body.theme-lookbook .lv-product-card .img-main {
    transition: transform 1.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  body.theme-lookbook .product-card:hover .img-main,
  body.theme-lookbook .lv-product-card:hover .img-main {
    transform: scale(1.05);
  }
  body.theme-lookbook .product-card-name,
  body.theme-lookbook .lv-product-name {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    color: var(--lb-ink) !important;
    text-align: left !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
  }
  body.theme-lookbook .product-card-price,
  body.theme-lookbook .lv-product-price {
    font-family: 'Inter', sans-serif !important;
    color: var(--lb-ink) !important;
    text-align: left !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    padding: 0 !important;
  }

  /* ───── GRILLE : 2 cols mobile / 3 cols tablette / 4 cols desktop (stricte) ───── */
  body.theme-lookbook .products-grid-premium,
  body.theme-lookbook .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px 12px !important;
  }
  @media (min-width: 760px) {
    body.theme-lookbook .products-grid-premium,
    body.theme-lookbook .products-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 40px 16px !important;
    }
  }
  @media (min-width: 1100px) {
    body.theme-lookbook .products-grid-premium,
    body.theme-lookbook .products-grid {
      grid-template-columns: repeat(4, 1fr) !important;
      gap: 48px 20px !important;
    }
  }

  /* ───── STORY : noir avec texte blanc (différenciation forte) ───── */
  body.theme-lookbook .lv-story-section {
    background: var(--lb-ink) !important;
    color: white !important;
    padding: 80px 0 !important;
  }
  body.theme-lookbook .lv-story-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    color: white !important;
    font-size: clamp(32px, 5vw, 56px) !important;
    line-height: 1 !important;
    letter-spacing: -0.03em !important;
    text-transform: uppercase !important;
    margin-bottom: 28px !important;
  }
  body.theme-lookbook .lv-story-eyebrow {
    color: white !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    margin-bottom: 20px !important;
    padding-left: 24px !important;
    position: relative !important;
  }
  body.theme-lookbook .lv-story-eyebrow::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 16px;
    height: 2px;
    background: white;
  }
  body.theme-lookbook .lv-story-section p,
  body.theme-lookbook .lv-story-paragraph {
    color: rgba(255, 255, 255, 0.85) !important;
    line-height: 1.7 !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    font-family: 'Inter', sans-serif !important;
  }
  body.theme-lookbook .lv-story-signature {
    color: white !important;
  }

  /* ───── FILTRES : liens texte UPPERCASE noirs ───── */
  body.theme-lookbook .cat-filter,
  body.theme-lookbook .cat-filter-btn {
    background: transparent !important;
    color: var(--lb-ink) !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.2em !important;
    padding: 8px 0 !important;
    margin-right: 28px !important;
    opacity: 0.5;
    transition: all 0.2s ease !important;
  }
  body.theme-lookbook .cat-filter:hover { opacity: 0.8; }
  body.theme-lookbook .cat-filter.active,
  body.theme-lookbook .cat-filter-btn.active {
    color: var(--lb-ink) !important;
    background: transparent !important;
    border-bottom-color: var(--lb-ink) !important;
    opacity: 1;
    font-weight: 700 !important;
  }
  body.theme-lookbook .product-search {
    background: transparent !important;
    border: none !important;
    border-bottom: 2px solid var(--lb-ink) !important;
    border-radius: 0 !important;
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    padding: 10px 0 !important;
  }
  body.theme-lookbook .product-search:focus {
    outline: none !important;
  }
  body.theme-lookbook .product-search::placeholder {
    color: var(--lb-ink-faint) !important;
    text-transform: uppercase;
  }

  /* ───── BADGES : noir carré ───── */
  body.theme-lookbook .badge-new,
  body.theme-lookbook .badge-corner {
    background: var(--lb-ink) !important;
    color: white !important;
    border-radius: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.2em !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    padding: 6px 10px !important;
  }

  /* ───── FOOTER : blanc clean (fashion editorial) ───── */
  body.theme-lookbook .shop-footer,
  body.theme-lookbook footer {
    background: #ffffff !important;
    color: #000000 !important;
    padding: 28px 24px 16px !important;
    margin-top: 32px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
  }
  body.theme-lookbook .shop-footer *,
  body.theme-lookbook footer * {
    color: rgba(0, 0, 0, 0.7) !important;
  }
  body.theme-lookbook .shop-footer-brand {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    color: #000000 !important;
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    font-style: normal !important;
  }
  body.theme-lookbook .shop-footer h4 {
    color: #000000 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
  }
  body.theme-lookbook .shop-footer a {
    color: rgba(0, 0, 0, 0.65) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
  }
  body.theme-lookbook .shop-footer a:hover {
    color: #000000 !important;
  }

  /* ───── PAGE CONTACT ───── */
  body.theme-lookbook .contact-nav {
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid var(--lb-line) !important;
  }
  body.theme-lookbook .contact-nav .shop-name-nav,
  body.theme-lookbook .contact-nav .lv-name-text {
    color: var(--lb-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    font-style: normal !important;
  }
  body.theme-lookbook .contact-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    color: var(--lb-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: -0.03em !important;
  }
  body.theme-lookbook .contact-title em {
    font-style: normal !important;
    font-weight: 300 !important;
    color: var(--lb-ink-soft) !important;
  }
  body.theme-lookbook .contact-form-section h2 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: var(--lb-ink) !important;
  }
  body.theme-lookbook .contact-form-section,
  body.theme-lookbook .contact-info-card {
    background: var(--lb-bg-soft) !important;
    border: none !important;
    border-radius: 0 !important;
  }

  /* ───── BACK-LINK ───── */
  body.theme-lookbook .back-link {
    background: white !important;
    border: 2px solid var(--lb-ink) !important;
    color: var(--lb-ink) !important;
    border-radius: 100px !important;
  }
  body.theme-lookbook .back-link:hover {
    background: var(--lb-ink) !important;
    color: white !important;
  }

  /* ───── BOUTONS ─────  */
  body.theme-lookbook .add-to-cart-btn-page,
  body.theme-lookbook .btn-primary {
    background: var(--lb-ink) !important;
    color: white !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    font-size: 13px !important;
    border: 2px solid var(--lb-ink) !important;
    padding: 16px 32px !important;
  }
  body.theme-lookbook .add-to-cart-btn-page:hover {
    background: white !important;
    color: var(--lb-ink) !important;
  }
  body.theme-lookbook .contact-submit-btn {
    background: var(--lb-ink) !important;
    color: white !important;
    border-radius: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    font-weight: 700 !important;
  }
  body.theme-lookbook .contact-submit-btn:hover {
    background: #333 !important;
  }

  /* ───── ESPACEMENT ───── */
  body.theme-lookbook .shop-section {
    padding: 70px 32px !important;
  }
  @media (max-width: 860px) {
    body.theme-lookbook .shop-section { padding: 44px 20px !important; }
  }


  /* ============================================================
     📖 LISIBILITÉ HEROS — Force le contraste sur photos
     ============================================================
     Quand le hero a une banner_url (image en arrière-plan), tous les
     textes par-dessus doivent rester lisibles. Solutions appliquées :
     1. Couleur claire (blanc ou très clair)
     2. Text-shadow forte pour ressortir sur images claires
     3. Font-weight 500 minimum pour les paragraphes longs
  */
  body.theme-editorial .lv-hero-title,
  body.theme-lookbook .lv-hero-title,
  body.theme-boutique .lv-hero-title,
  body.theme-vintage .lv-hero-title,
  body.theme-classic .lv-hero-title {
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
  }
  body.theme-editorial .lv-hero-subtitle,
  body.theme-vintage .lv-hero-subtitle {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
  }

  /* ════════════════════════════════════════════════════════════
     TECH/CLASSIC : Adapter les drawers/modals au thème dark
     (search overlay, cart drawer, favoris page, etc.)
     ════════════════════════════════════════════════════════════ */
  body.theme-classic .search-panel,
  body.theme-classic .cart-drawer,
  body.theme-classic .cart-drawer-content,
  body.theme-classic .filters-drawer,
  body.theme-classic .favorites-panel,
  body.theme-classic .modal-content,
  body.theme-classic .checkout-modal {
    background: #0f0f0f !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
  }
  body.theme-classic .search-panel input,
  body.theme-classic .cart-drawer input {
    background: #1a1a1a !important;
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
  }
  body.theme-classic .search-panel input::placeholder,
  body.theme-classic .cart-drawer input::placeholder {
    color: #888 !important;
  }
  /* Bouton retour rond (cohérence avec les autres boutons icônes) */
  body.theme-classic .back-link,
  body.theme-classic .favorites-back-btn {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    border-radius: 100px !important;
  }
  body.theme-classic .back-link:hover,
  body.theme-classic .favorites-back-btn:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
  }

  /* ════════════════════════════════════════════════════════════
     GRILLE PRODUITS : 4 COLONNES sur PC (>= 1000px) pour TOUS les thèmes
     ════════════════════════════════════════════════════════════ */
  @media (min-width: 1000px) {
    body.theme-editorial .products-grid-premium,
    body.theme-editorial .products-grid,
    body.theme-boutique .products-grid-premium,
    body.theme-boutique .products-grid,
    body.theme-lookbook .products-grid-premium,
    body.theme-lookbook .products-grid,
    body.theme-classic .products-grid-premium,
    body.theme-classic .products-grid,
    body.theme-vintage .products-grid-premium,
    body.theme-vintage .products-grid,
    body.theme-floating .products-grid-premium,
    body.theme-floating .products-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
      gap: 32px 20px !important;
    }
  }
  @media (min-width: 1280px) {
    body.theme-editorial .products-grid-premium,
    body.theme-editorial .products-grid {
      gap: 40px 24px !important;
    }
    body.theme-lookbook .products-grid-premium,
    body.theme-lookbook .products-grid {
      gap: 40px 18px !important;
    }
  }

  /* ════════════════════════════════════════════════════════════
     DIFFÉRENCIATION HERO — détails signature de chaque template
     ════════════════════════════════════════════════════════════ */

  /* === EDITORIAL : hero magazine (pré-header retiré à la demande) === */
  /* Titre serif italic ample pour le hero éditorial */
  body.theme-editorial .lv-hero-title {
    font-style: italic !important;
    font-weight: 300 !important;
  }
  body.theme-editorial .lv-hero-title em {
    font-style: normal !important;
    font-weight: 500 !important;
  }

  /* === LOOKBOOK : hero épuré (labels non-éditables retirés à la demande) === */
  body.theme-lookbook .lv-hero {
    position: relative;
  }
  @media (max-width: 760px) {
    body.theme-lookbook .lv-hero::before,
    body.theme-lookbook .lv-hero::after {
      top: 16px;
      left: 16px;
      font-size: 9px;
    }
    body.theme-lookbook .lv-hero::after {
      top: auto;
      bottom: 16px;
    }
  }

  /* === BOUTIQUE : séparateur ornemental ✦ entre les sections === */
  body.theme-boutique .lv-hero-subtitle::before {
    content: '✦';
    display: block;
    font-size: 18px;
    color: var(--bt-accent, #8b5a3c);
    margin: 0 auto 16px;
    opacity: 0.7;
  }
  /* Petite signature en bas du hero Boutique */
  body.theme-boutique .lv-hero {
    position: relative;
  }
  body.theme-boutique .lv-hero::after {
    content: '— Made in France —';
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-size: 12px;
    color: var(--bt-ink, #2d2a22);
    opacity: 0.65;
    letter-spacing: 0.04em;
  }

  /* ════════════════════════════════════════════════════════════
     SECTIONS distinctives selon le template
     ════════════════════════════════════════════════════════════ */

  /* Editorial : drop-cap (lettrine) sur le premier paragraphe story */
  body.theme-editorial .lv-story-section p:first-of-type::first-letter {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 4.5em;
    line-height: 0.85;
    float: left;
    margin: 6px 12px 0 0;
    color: var(--ed-accent, #c0392b);
    font-weight: 400;
    font-style: italic;
  }

  /* Boutique : sections avec séparateur ornemental */
  body.theme-boutique .shop-section + .shop-section::before {
    content: '✦';
    display: block;
    text-align: center;
    font-size: 20px;
    color: var(--bt-accent, #8b5a3c);
    opacity: 0.4;
    margin: -10px 0 30px;
  }

  /* Lookbook : titres de section UPPERCASE noir massif */
  body.theme-lookbook .shop-section-title,
  body.theme-lookbook .lv-categories-title,
  body.theme-lookbook .lv-story-title,
  body.theme-lookbook .lv-featured-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.01em !important;
  }

  /* ══════════════════════════════════════════════════════════════
     BANNIÈRE AVEC IMAGE — correctifs transverses aux thèmes
     ──────────────────────────────────────────────────────────────
     Plusieurs thèmes imposent une hauteur (min-height: 72/85/92vh)
     et remettent le contenu en position:relative. Résultat :
       • des bandes vides autour de l'image,
       • le titre affiché SOUS l'image au lieu d'être dessus.
     Quand une image est présente, la hauteur vient de l'image et le
     texte se superpose. Ces règles arrivent en fin de feuille et
     utilisent !important pour passer devant les overrides de thème.
     ══════════════════════════════════════════════════════════════ */
  body .lv-banner.has-image,
  body .shop-banner.has-image {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: block !important;
  }

  body .shop-banner.has-image .lv-banner-media {
    display: block !important;
    width: 100% !important;
  }
  body .shop-banner.has-image .lv-banner-media img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: 90vh !important;
    object-fit: contain !important;
  }
  /* ═══ Mobile : réserver la hauteur EXACTE de l'image ═══
     Sur mobile la hauteur vient de l'image (height:auto) : tant qu'elle n'est
     pas chargée, le navigateur ignore la place à prévoir et pousse tout le
     contenu vers le bas à l'arrivée (CLS ≈ 0,58). En lui donnant le ratio réel
     de l'image, il réserve d'avance la bonne hauteur.
     → aucun recadrage, aucune bande, rendu strictement identique.
     Si la variable est absente (boutique non encore migrée), rien ne change. */
  @media (max-width: 760px) {
    body .shop-banner.has-image .lv-banner-media img {
      aspect-ratio: var(--banner-ratio-mobile, var(--banner-ratio, auto));
    }
  }

  /* ═══ Ordinateur : bannière de hauteur fixe, image cadrée plein écran ═══
     Sur grand écran, une image entière laissait des bandes vides sur les côtés.
     On fixe donc la hauteur à 85 % de l'écran et l'image est recadrée pour
     occuper toute la largeur (recadrage centré, pas de déformation). */
  @media (min-width: 761px) {
    body .shop-banner.has-image .lv-banner-media img {
      height: 85vh !important;
      max-height: 85vh !important;
      object-fit: cover !important;
      object-position: center !important;
    }
  }

  body .shop-banner.has-image .shop-banner-content,
  body .shop-banner.has-image .lv-banner-content {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 6vw !important;
    box-sizing: border-box !important;
  }

  body .shop-banner.has-image.banner-align-left .shop-banner-content,
  body .shop-banner.has-image.banner-align-left .lv-banner-content {
    align-items: flex-start !important;
  }
  body .shop-banner.has-image.banner-align-right .shop-banner-content,
  body .shop-banner.has-image.banner-align-right .lv-banner-content {
    align-items: flex-end !important;
  }

  /* Style « Tech » (classic) : fond très sombre → contour de bulle blanc
     pour que le bouton de contact se détache nettement. */
  body.theme-classic .contact-fab,
  body.theme-ink .contact-fab {
    --fab-ring: #ffffff;
  }

  /* ══════════════════════════════════════════════════════════════
     BANNIÈRE AVEC IMAGE — texte proportionnel à la hauteur de l'image
     ──────────────────────────────────────────────────────────────
     --banner-h est posée en JS (initBannerTextScale) et vaut la hauteur
     réelle de la bannière. Les tailles en dépendent, si bien que le texte
     reste à l'intérieur de l'image, qu'elle soit panoramique ou portrait.
     Les clamp() bornent le résultat pour rester lisible aux extrêmes.
     ══════════════════════════════════════════════════════════════ */
  body .shop-banner.has-image .shop-banner-content,
  body .shop-banner.has-image .lv-banner-content {
    /* Marge interne. ATTENTION : un padding vertical en % se calcule sur la
       LARGEUR du conteneur, jamais sur sa hauteur. Sur une bannière basse,
       « 7% » valait donc plus que la hauteur entière. On l'exprime en fonction
       de --banner-h (la hauteur réelle, posée par initBannerTextScale). */
    padding: calc(var(--banner-h, 320px) * 0.07) 6vw !important;
    gap: 0 !important;
  }

  body .shop-banner.has-image .lv-hero-title {
    /* borné par la HAUTEUR de l'image et par la LARGEUR disponible :
       un mot long (« nurserybabylove ») ne déborde donc jamais. */
    font-size: clamp(15px, min(calc(var(--banner-h, 320px) * 0.17), 11vw), 68px) !important;
    line-height: 1.05 !important;
    margin: 0 0 calc(var(--banner-h, 320px) * 0.035) !important;
    padding-bottom: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  body .shop-banner.has-image .lv-hero-subtitle {
    font-size: clamp(9px, calc(var(--banner-h, 320px) * 0.052), 20px) !important;
    line-height: 1.35 !important;
    margin: 0 0 calc(var(--banner-h, 320px) * 0.05) !important;
  }

  body .shop-banner.has-image .lv-hero-cta {
    font-size: clamp(8px, calc(var(--banner-h, 320px) * 0.04), 15px) !important;
    padding: calc(var(--banner-h, 320px) * 0.028) calc(var(--banner-h, 320px) * 0.07) !important;
    line-height: 1.2 !important;
  }

  /* ══════════════════════════════════════════════════════════════
     MOBILE, sans image de bannière dédiée
     ──────────────────────────────────────────────────────────────
     L'image prévue pour le PC est réutilisée telle quelle : jamais
     agrandie, jamais rognée. Elle garde sa taille et se centre.
     (Sur grand écran, à l'inverse, elle occupe toute la largeur.)
     ══════════════════════════════════════════════════════════════ */
  @media (max-width: 760px) {
    body .shop-banner.has-image.banner-mobile-fallback .lv-banner-media {
      display: flex !important;
      justify-content: center !important;
      background: var(--bg-subtle, #f5f5f4);
    }
    body .shop-banner.has-image.banner-mobile-fallback .lv-banner-media img {
      width: auto !important;      /* pas d'agrandissement */
      max-width: 100% !important;  /* mais jamais de débordement */
      height: auto !important;
      margin: 0 auto !important;
    }
  }

  /* ══════════════════════════════════════════════════════════════
     BANNIÈRE BASSE — le texte s'efface au lieu d'être rogné
     ──────────────────────────────────────────────────────────────
     Sur une image très panoramique, la bannière devient trop basse pour
     accueillir titre + sous-titre + bouton. Le script initBannerTextScale
     pose alors ces classes, du moins important au plus important.
     ══════════════════════════════════════════════════════════════ */
  body .shop-banner.has-image.banner-hide-subtitle .lv-hero-subtitle {
    display: none !important;
  }
  body .shop-banner.has-image.banner-hide-cta .lv-hero-cta {
    display: none !important;
  }

  /* Filet de sécurité : le bloc de texte ne dépasse jamais la bannière. */
  body .shop-banner.has-image .shop-banner-content,
  body .shop-banner.has-image .lv-banner-content {
    max-height: 100% !important;
    overflow: hidden !important;
  }

  /* ══════════════════════════════════════════════════════════════
     COULEURS PERSONNALISÉES — Magazine, Boutique, Floating
     ──────────────────────────────────────────────────────────────
     --shop-primary   : accent (boutons, liens, détails)
     --shop-secondary : fond du site
     Elles sont posées sur <body> par applyShopColors(). En leur absence,
     le repli rend exactement les couleurs d'origine de chaque style.
     color-mix() dérive les nuances (surfaces, survols) à partir d'elles.
     ══════════════════════════════════════════════════════════════ */

  /* ── Magazine (editorial) ── */
  body.theme-editorial {
    --ed-accent: var(--shop-primary, #b8956b);
    --ed-bg: var(--shop-secondary, #ffffff);
    --ed-soft-bg: color-mix(in srgb, var(--shop-secondary, #ffffff) 92%, #000);
  }

  /* ── Boutique ── */
  body.theme-boutique {
    --bt-accent: var(--shop-primary, #6b6347);
    --bt-bg: var(--shop-secondary, #f5f1e8);
    --bt-bg-paper: color-mix(in srgb, var(--shop-secondary, #f5f1e8) 90%, #000);
  }

  /* ── Floating ── */
  body.theme-floating {
    --floating-gold: var(--shop-primary, #c8a165);
    --floating-gold-dark: color-mix(in srgb, var(--shop-primary, #c8a165) 70%, #000);
    --floating-cream: var(--shop-secondary, #f5ebd9);
  }

  /* ══════════════════════════════════════════════════════════════
     COULEURS DU MENU ET DU PIED DE PAGE
     ──────────────────────────────────────────────────────────────
     Ces règles ne s'activent que si le vendeur a choisi une couleur
     (classes posées par applyShopColors). Sans cela, chaque style
     conserve exactement son apparence d'origine.
     Le texte (--shop-menu-fg / --shop-footer-fg) est calculé selon la
     luminance du fond, pour rester lisible sur clair comme sur foncé.
     ══════════════════════════════════════════════════════════════ */

  /* ── Menu : barre du haut (ordinateur) ── */
  body.has-menu-color.theme-editorial .shop-nav,
  body.has-menu-color.theme-boutique .shop-nav,
  body.has-menu-color.theme-floating .shop-nav {
    background: var(--shop-menu) !important;
  }
  body.has-menu-color.theme-editorial .shop-nav a,
  body.has-menu-color.theme-editorial .lv-shop-name,
  body.has-menu-color.theme-editorial .lv-name-text,
  body.has-menu-color.theme-boutique .shop-nav a,
  body.has-menu-color.theme-boutique .lv-shop-name,
  body.has-menu-color.theme-boutique .lv-name-text,
  body.has-menu-color.theme-floating .shop-nav a,
  body.has-menu-color.theme-floating .lv-shop-name,
  body.has-menu-color.theme-floating .lv-name-text {
    color: var(--shop-menu-fg) !important;
  }
  body.has-menu-color .shop-nav .mobile-nav-toggle span {
    background: var(--shop-menu-fg) !important;
  }

  /* ── Menu : panneau latéral (mobile) ── */
  body.has-menu-color .lv-nav-links-left.hopla-drawer {
    background: var(--shop-menu) !important;
  }
  body.has-menu-color .lv-nav-links-left.hopla-drawer a,
  body.has-menu-color .lv-nav-links-left.hopla-drawer .mega-menu-trigger,
  body.has-menu-color .lv-nav-links-left.hopla-drawer .mega-menu-title,
  body.has-menu-color .lv-nav-links-left.hopla-drawer .hopla-drawer-logo-text {
    color: var(--shop-menu-fg) !important;
  }

  /* ── Pied de page ── */
  body.has-footer-color.theme-editorial .shop-footer,
  body.has-footer-color.theme-boutique .shop-footer,
  body.has-footer-color.theme-floating .shop-footer,
  body.has-footer-color.theme-editorial .product-footer,
  body.has-footer-color.theme-boutique .product-footer,
  body.has-footer-color.theme-floating .product-footer {
    background: var(--shop-footer) !important;
  }
  /* La couleur du TEXTE doit être limitée aux mêmes thèmes que le fond ci-dessus.
     Sinon, sur un thème non concerné (Tech/classic), le fond restait celui du
     thème (noir) tandis que le texte prenait la couleur calculée pour la couleur
     perso (foncée) → texte noir sur fond noir. */
  body.has-footer-color.theme-editorial .shop-footer,
  body.has-footer-color.theme-editorial .shop-footer a,
  body.has-footer-color.theme-editorial .shop-footer h4,
  body.has-footer-color.theme-editorial .shop-footer-brand,
  body.has-footer-color.theme-editorial .shop-footer-bottom,
  body.has-footer-color.theme-editorial .shop-footer-bottom a,
  body.has-footer-color.theme-boutique .shop-footer,
  body.has-footer-color.theme-boutique .shop-footer a,
  body.has-footer-color.theme-boutique .shop-footer h4,
  body.has-footer-color.theme-boutique .shop-footer-brand,
  body.has-footer-color.theme-boutique .shop-footer-bottom,
  body.has-footer-color.theme-boutique .shop-footer-bottom a,
  body.has-footer-color.theme-floating .shop-footer,
  body.has-footer-color.theme-floating .shop-footer a,
  body.has-footer-color.theme-floating .shop-footer h4,
  body.has-footer-color.theme-floating .shop-footer-brand,
  body.has-footer-color.theme-floating .shop-footer-bottom,
  body.has-footer-color.theme-floating .shop-footer-bottom a,
  body.has-footer-color.theme-editorial .product-footer,
  body.has-footer-color.theme-editorial .product-footer a,
  body.has-footer-color.theme-editorial .product-footer h4,
  body.has-footer-color.theme-editorial .product-footer-brand,
  body.has-footer-color.theme-editorial .product-footer-bottom,
  body.has-footer-color.theme-editorial .product-footer-bottom a,
  body.has-footer-color.theme-boutique .product-footer,
  body.has-footer-color.theme-boutique .product-footer a,
  body.has-footer-color.theme-boutique .product-footer h4,
  body.has-footer-color.theme-boutique .product-footer-brand,
  body.has-footer-color.theme-boutique .product-footer-bottom,
  body.has-footer-color.theme-boutique .product-footer-bottom a,
  body.has-footer-color.theme-floating .product-footer,
  body.has-footer-color.theme-floating .product-footer a,
  body.has-footer-color.theme-floating .product-footer h4,
  body.has-footer-color.theme-floating .product-footer-brand,
  body.has-footer-color.theme-floating .product-footer-bottom,
  body.has-footer-color.theme-floating .product-footer-bottom a {
    color: var(--shop-footer-fg) !important;
  }
  body.has-footer-color .shop-footer a:hover,
  body.has-footer-color .product-footer a:hover {
    opacity: 0.75;
  }

  /* ── Survol du menu : la couleur d'accent, jamais un simple fondu ── */
  body.has-menu-color .shop-nav a:hover,
  body.has-menu-color .lv-nav-links-left a:hover,
  body.has-menu-color .lv-nav-links-left .mega-menu-trigger:hover,
  body.has-menu-color .lv-nav-links-left .mega-menu-title:hover {
    color: var(--shop-primary, var(--shop-menu-fg)) !important;
    opacity: 1 !important;
  }
  /* Le logo/titre de la boutique est exclu : au survol c'est SON TEXTE qui
     doit changer, pas le fond de sa zone. */
  body.has-menu-color .lv-nav-links-left.hopla-drawer a:not(.hopla-drawer-logo):hover {
    background: color-mix(in srgb, var(--shop-menu-fg) 10%, transparent) !important;
    color: var(--shop-primary, var(--shop-menu-fg)) !important;
    opacity: 1 !important;
  }
  body.has-menu-color .hopla-drawer-logo:hover,
  body.has-menu-color .hopla-drawer-logo:hover .hopla-drawer-logo-text {
    background: transparent !important;
    color: var(--shop-primary, var(--shop-menu-fg)) !important;
    opacity: 1 !important;
  }

  /* ── Icônes du menu latéral : lisibles sur fond clair comme foncé ──
     Elles étaient fixées en sombre (--hopla-nav-text), donc invisibles
     sur un menu foncé. Elles suivent désormais la couleur du texte. */
  body.has-menu-color .lv-nav-links-left.hopla-drawer .lv-mobile-socials a {
    background: color-mix(in srgb, var(--shop-menu-fg) 12%, transparent) !important;
    color: var(--shop-menu-fg) !important;
  }
  body.has-menu-color .lv-nav-links-left.hopla-drawer .lv-mobile-socials a:hover {
    background: color-mix(in srgb, var(--shop-menu-fg) 22%, transparent) !important;
  }
  body.has-menu-color .hopla-drawer-close,
  body.has-menu-color .hopla-drawer-header,
  body.has-menu-color .hopla-drawer-logo-text {
    color: var(--shop-menu-fg) !important;
  }
  body.has-menu-color .hopla-drawer-close:hover {
    background: color-mix(in srgb, var(--shop-menu-fg) 10%, transparent) !important;
  }
  /* Icônes de la barre du haut (panier, recherche, favoris) */
  body.has-menu-color .shop-nav svg {
    color: var(--shop-menu-fg) !important;
  }

  /* ── Burger : survol accordé au menu ──
     Le fond gris fixe (rgba noir) était invisible sur un menu foncé.
     Les barres prennent la couleur d'accent au survol. */
  body.has-menu-color .mobile-nav-toggle:hover {
    background: color-mix(in srgb, var(--shop-menu-fg) 10%, transparent) !important;
  }
  body.has-menu-color .mobile-nav-toggle span {
    background: var(--shop-menu-fg) !important;
    transition: background 0.18s ease;
  }
  body.has-menu-color .mobile-nav-toggle:hover span {
    background: var(--shop-primary, var(--shop-menu-fg)) !important;
  }

  /* ── FLOATING : le bouton burger est un cercle BLANC fixe. Les barres doivent
     donc contraster avec le blanc (rester foncées), et NON suivre la couleur du
     menu (--shop-menu-fg) qui, sur un menu foncé, devient blanche → burger blanc
     sur blanc invisible + survol rose sur rose. On force le foncé, uniquement en
     floating, sans toucher aux autres thèmes. ── */
  body.has-menu-color.theme-floating .shop-nav .mobile-nav-toggle span,
  body.has-menu-color.theme-floating .shop-nav .mobile-nav-toggle:hover span,
  body.has-menu-color.theme-floating .shop-nav .mobile-nav-toggle.is-open span {
    background: #0a0a0a !important;
  }
  body.has-menu-color.theme-floating .shop-nav .mobile-nav-toggle:hover {
    background: #ffffff !important;
  }

  /* ── FLOATING + couleur de menu perso : la BULLE déroulante (.lv-nav-links-left.open)
     et son contenu (liens, titres) gardaient leurs couleurs de base (crème/brun) car
     ils sont sortis de .shop-nav. On les fait suivre la couleur du menu — UNIQUEMENT
     en floating, sans impacter les autres thèmes. ── */
  body.has-menu-color.theme-floating .lv-nav-links-left.open {
    background: var(--shop-menu) !important;
    border-color: color-mix(in srgb, var(--shop-menu-fg) 22%, transparent) !important;
  }
  body.has-menu-color.theme-floating .lv-nav-links-left.open a,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .mega-menu-trigger,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .mega-menu-title,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .mega-menu-subs a,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .hopla-drawer-logo-text,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .lv-name-text {
    color: var(--shop-menu-fg) !important;
  }
  body.has-menu-color.theme-floating .lv-nav-links-left.open a:hover,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .mega-menu-trigger:hover,
  body.has-menu-color.theme-floating .lv-nav-links-left.open .mega-menu-title:hover {
    background: color-mix(in srgb, var(--shop-menu-fg) 12%, transparent) !important;
    color: var(--shop-menu-fg) !important;
  }

  /* ── Bouton « Découvrir » de la bannière ──
     Au survol, il se remplit de la couleur d'accent, avec un texte lisible. */
  body.has-primary-color .lv-hero-cta:hover {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: var(--shop-primary-fg) !important;
  }

  /* ══════════════════════════════════════════════════════════════
     BULLE DE CONTACT — suit les couleurs choisies
     ──────────────────────────────────────────────────────────────
     Fond : couleur du menu. Anneau : couleur d'accent.
     L'icône reprend le texte calculé du menu, donc elle reste lisible
     sur un fond clair comme sur un fond foncé. Ces règles arrivent
     après celles des thèmes (anneau blanc du style Tech), qu'elles
     remplacent dès que le vendeur a choisi ses couleurs.
     ══════════════════════════════════════════════════════════════ */
  body.has-menu-color .contact-fab {
    --fab-bg: var(--shop-menu);
  }
  body.has-primary-color .contact-fab {
    --fab-ring: var(--shop-primary);
  }
  body.has-menu-color .contact-fab-main,
  body.has-menu-color .contact-fab-action.act-message {
    color: var(--shop-menu-fg) !important;
  }
  /* Le liseré de séparation s'adapte : clair sur bulle foncée, et l'inverse. */
  body.has-menu-color .contact-fab-main {
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.3),
                0 0 0 2.5px var(--fab-ring),
                0 0 0 3.5px color-mix(in srgb, var(--shop-menu-fg) 28%, transparent) !important;
  }
