/**
 * Theme Name: Blocksy Child
 * Description: Thème enfant Natural Fawaid (Blocksy) — charte graphique 2026
 * Author: Kito Digital
 * Author URI: https://kito.digital
 * Template: blocksy
 * Version: 4.0.3
 * Text Domain: blocksy
 */

/*
===============================================
NATURAL FAWAID - style.css du thème enfant v4.0 · Charte graphique 2026
Palette : Noir Ébène #0D0A07 · Or Sidr #C9A063 · Crème Cire #F5ECDF · Encre #1C150E
          Bronze Profond #7A5427 · Rouge Sceau #8E1C1F (accent rare)
Référence : /natural-fawaid-brand/ (README.md + brand-guidelines.html)
Stack : WordPress 6.x + Blocksy Pro 2.x + Stackable 3.x + WooCommerce 9.x
Dernière maj : Septembre 2026
===============================================

TABLE DES MATIÈRES
------------------
 1.  TOKENS DE LA CHARTE (variables --nf-*)
 2.  TYPOGRAPHIE (font-face + hiérarchie)
 3.  RESET & UTILITAIRES GLOBAUX
 4.  STRUCTURE DU SITE (header, menu, mega menu, footer, cartes produits)
 5.  SYSTÈME DE BOUTONS NF
     5.1  Reset universel builders
     5.2  Base commune (pilule, Nunito 700)
     5.3  Primary or : authentique, miel, naturel, prestige + boutons natifs
     5.4  Secondary contour : terroir, subtil
     5.5  États actif / focus
     5.6  Variante sur fond sombre
 6.  CLASSES UTILITAIRES NF (cartes, badges, prix)
 7.  WOOCOMMERCE - SHIPPING & CHECKOUT
 8.  WOOCOMMERCE - PRODUITS & PLUGINS (bundles, countdown)
 9.  PAGES PRODUITS SPÉCIFIQUES (31836, 33187, 33246)
10.  PAGES SPÉCIFIQUES & DIVERS
11.  MENU : icônes, mega menu, lien promo
12.  BANNIÈRE LIVRAISON
13.  PAIEMENTS EXPRESS
14.  TABLEAU DES REMISES & FAQ PRODUIT
15.  PRODUCT REVIEW (Specs / Pour / Contre)
16.  BOUTONS CT-PRODUCT-ACTIONS-GROUP
17.  STORE NOTICE
18.  RESPONSIVE
19.  ACCESSIBILITÉ (prefers-reduced-motion)
20.  SPÉCIFIQUE THÈME ENFANT (newsletter Fluent Forms, produit 31068,
     message Dijon au checkout)
21.  CORRECTIF DIMENSIONS DES BOUTONS · PAGE BOUTIQUE (intro .nf-shop)
22.  BLOC « POUR ALLER PLUS LOIN » (fiche produit, ajout 28/09/2026)
23.  GRILLE BOUTIQUE MOBILE (cartes plus larges, ajout 28/09/2026)

NOTES IMPORTANTES
-----------------
- Ce fichier est chargé par functions.php (handle « nf-child-style »),
  après Blocksy, Stackable et nf-articles.css.
- Il reprend l'intégralité du CSS additionnel v4.0 (vérifié règle par règle
  le 28/09/2026 : 281 règles, toutes présentes ici). Personnaliser → CSS
  additionnel doit rester VIDE : chargé après ce fichier, il en écrasait les
  corrections (--nf-primary repassait au rouge) et alourdissait chaque page.
- Couleurs : uniquement les tokens --nf-* ci-dessous. Ne plus utiliser
  var(--theme-palette-color-N) dans ce fichier : la palette Blocksy a changé
  d'ordre et ces références donnaient des couleurs imprévisibles.
- Boutons : 2 styles seulement (or plein / contour). Les anciennes classes
  .btn-nf-* restent valides pour ne rien casser dans le contenu existant.
- !important : conservés là où Stackable/Blocksy/WooCommerce l'imposent.
- Breakpoints : 1024px · 768px · 480px (Blocksy)
===============================================
*/


/* ========================================================
   1. TOKENS DE LA CHARTE
   ======================================================== */
:root {
  /* Fonds */
  --nf-noir-950:   #0D0A07;
  --nf-noir-900:   #15100B;
  --nf-brun-800:   #1E1710;
  /* Ors */
  --nf-or-300:     #E4C893;
  --nf-or-500:     #C9A063;
  --nf-or-600:     #A87A42;
  --nf-or-700:     #9A6B35;
  --nf-or-800:     #7A5427;
  /* Crèmes */
  --nf-creme-50:   #FBF6EE;
  --nf-creme-100:  #F5ECDF;
  --nf-creme-200:  #EADDC8;
  /* Neutres chauds */
  --nf-sable-400:  #C2B5A2;
  --nf-pierre-500: #8F8372;
  --nf-encre-700:  #5B4A37;
  --nf-encre-950:  #1C150E;
  /* Accent et statuts */
  --nf-sceau-700:  #8E1C1F;
  --nf-vert-700:   #4E6B32;

  /* Dégradés, lignes, ombres */
  --nf-gradient-gold: linear-gradient(135deg, #E4C893 0%, #C9A063 45%, #A87A42 100%);
  --nf-gradient-edge: linear-gradient(90deg, transparent, rgba(201, 160, 99, 0.7), transparent);
  --nf-border-dark:   rgba(201, 160, 99, 0.22);
  --nf-border-dark-strong: rgba(201, 160, 99, 0.45);
  --nf-border-light:  rgba(28, 21, 14, 0.14);
  --nf-border-light-strong: rgba(28, 21, 14, 0.28);
  --nf-tint-gold:     rgba(201, 160, 99, 0.10);
  --nf-shadow-sm:     0 8px 22px -14px rgba(28, 21, 14, 0.35);
  --nf-shadow-md:     0 6px 20px -8px rgba(201, 160, 99, 0.55);
  --nf-shadow-lg:     0 10px 26px -8px rgba(201, 160, 99, 0.65);

  /* Formes et mouvement */
  --nf-radius-sm:   10px;
  --nf-radius-md:   18px;
  --nf-radius-full: 100px;
  --nf-ease:        cubic-bezier(0.22, 0.61, 0.36, 1);

  /* Paiements express (inchangé) */
  --mb-card:            0.25rem;
  --express-btn-height: 40px;
  --express-gap:        4px;
  --express-block-gap:  4px;

  /* Compatibilité avec les anciennes variables
     28/09/2026 : --nf-primary pointait vers le rouge sceau, ce qui gardait
     le bordeaux comme couleur principale partout où un contenu (blocs HTML,
     Stackable) utilise encore var(--nf-primary). Il suit désormais l'Encre,
     comme dans nf-articles.css. Le rouge reste disponible : --nf-sceau-700. */
  --nf-primary:   var(--nf-encre-950);
  --nf-secondary: var(--nf-or-500);
}


/* ========================================================
   2. TYPOGRAPHIE — EFCO Brookshire (titres) + Nunito Sans (texte)
   ======================================================== */
@font-face {
  font-family: 'EFCO Brookshire';
  src: url('fonts/EFCOBrookshire-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

h1, h2, h3, .site-title, .logo-text {
  font-family: 'EFCO Brookshire', serif;
  font-weight: 400;
  letter-spacing: 0.01em;
}


/* ========================================================
   3. RESET & UTILITAIRES GLOBAUX
   ======================================================== */
.visually-hidden {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ct-title-label {
  text-transform: none !important;
}

.ct-container-full {
  margin-bottom: 48px;
}

::selection {
  background: var(--nf-or-300);
  color: var(--nf-noir-950);
}


/* ========================================================
   4. STRUCTURE DU SITE
   ======================================================== */

/* --- 4.1 Fond : crème uni (remplace le dégradé) --- */
html body,
html body .site-main {
  background: var(--nf-creme-100);
}

/* --- 4.2 Header : Noir Ébène, filet or entre les lignes --- */
html body #header [data-row],
html body #header [data-sticky] [data-row] {
  background-color: var(--nf-noir-950);
  background-image: none;
}

html body #header [data-row="bottom"] {
  border-top: 1px solid var(--nf-border-dark);
}

html body #header [data-id="menu"] > ul > li > .ct-menu-link {
  color: var(--nf-sable-400);
  font-weight: 600;
  font-style: normal;
  transition: color 0.2s var(--nf-ease);
}

html body #header [data-id="menu"] > ul > li > .ct-menu-link:hover,
html body #header [data-id="menu"] > ul > li.current-menu-item > .ct-menu-link,
html body #header [data-id="menu"] > ul > li.current-menu-ancestor > .ct-menu-link,
html body #header [data-id="menu"] > ul > li.current_page_parent > .ct-menu-link {
  color: var(--nf-or-300);
}

html body #header [data-id="account"],
html body #header [data-id="wish-list"],
html body #header [data-id="cart"],
html body #header [data-id="compare"],
html body #header [data-id="search"],
html body #header [data-id="trigger"] {
  --theme-link-initial-color: var(--nf-creme-100);
  --theme-link-hover-color: var(--nf-or-300);
  --theme-icon-color: var(--nf-creme-100);
  --theme-icon-hover-color: var(--nf-or-300);
  font-style: normal;
}

html body #header [data-id="account"] *,
html body #header [data-id="wish-list"] *,
html body #header [data-id="cart"] *,
html body #header [data-id="compare"] * {
  font-style: normal;
}

/* --- 4.3 Mega menu boutique : panneau crème --- */
html body .nf-mega-boutique .entry-content > .stk-block-columns {
  background: var(--nf-creme-100) !important;
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-md);
  overflow: hidden;
}

html body .nf-mega-boutique .stk-block-heading__text {
  color: var(--nf-encre-950);
  font-weight: 400;
}

html body .nf-mega-boutique p,
html body .nf-mega-boutique .stk-block-text__text {
  color: var(--nf-encre-700);
}

/* --- 4.4 Cartes produits (archives) --- */
html body ul.products li.product {
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-md);
  box-shadow: none;
  transition: transform 0.35s var(--nf-ease), box-shadow 0.35s var(--nf-ease), border-color 0.35s var(--nf-ease);
}

html body ul.products li.product:hover {
  transform: translateY(-4px);
  border-color: var(--nf-border-light-strong);
  box-shadow: var(--nf-shadow-sm);
}

html body ul.products li.product .woocommerce-loop-product__title {
  color: var(--nf-encre-950);
  font-weight: 400;
}

html body ul.products li.product .price {
  color: var(--nf-or-800);
  font-family: 'EFCO Brookshire', Georgia, serif;
  font-weight: 400;
  font-size: 1.25rem;
}

html body ul.products li.product .price del { color: var(--nf-pierre-500); }
html body ul.products li.product .price ins { text-decoration: none; }

/* --- 4.5 Liens de contenu --- */
html body .entry-content a:not([class]) {
  color: var(--nf-or-800);
  text-decoration-color: rgba(122, 84, 39, 0.35);
  text-underline-offset: 3px;
}

html body .entry-content a:not([class]):hover {
  color: var(--nf-encre-950);
}

/* --- 4.6 Footer : Noir Ébène + filet or --- */
html body #footer {
  background: var(--nf-noir-950);
  border-top: 1px solid var(--nf-border-dark);
  --theme-text-color: var(--nf-sable-400);
  --theme-link-initial-color: var(--nf-creme-100);
  --theme-link-hover-color: var(--nf-or-300);
  --theme-headings-color: var(--nf-creme-100);
}

html body #footer h1,
html body #footer h2,
html body #footer h3,
html body #footer h4,
html body #footer .widget-title {
  color: var(--nf-creme-100);
}


/* ========================================================
   5. SYSTÈME DE BOUTONS NATURAL FAWAID
   Deux styles : or plein (primary) et contour (secondary).
   Correspondance des anciennes classes :
   - authentique, miel, naturel → primary
   - prestige                   → primary grand format (CTA final)
   - terroir, subtil            → secondary
   ======================================================== */

/* --- 5.1 RESET UNIVERSEL BUILDERS --- */
.btn-nf-authentique .stk-button,
.btn-nf-authentique .wp-block-button__link,
.btn-nf-authentique .ct-button,
.btn-nf-miel .stk-button,
.btn-nf-miel .wp-block-button__link,
.btn-nf-miel .ct-button,
.btn-nf-terroir .stk-button,
.btn-nf-terroir .wp-block-button__link,
.btn-nf-terroir .ct-button,
.btn-nf-naturel .stk-button,
.btn-nf-naturel .wp-block-button__link,
.btn-nf-naturel .ct-button,
.btn-nf-prestige .stk-button,
.btn-nf-prestige .wp-block-button__link,
.btn-nf-prestige .ct-button,
.btn-nf-subtil .stk-button,
.btn-nf-subtil .wp-block-button__link,
.btn-nf-subtil .ct-button {
  --stk-hover-transition: none !important;
  background-image: none !important;
  background-color: transparent !important;
}

.btn-nf-authentique .stk-button::before,
.btn-nf-authentique .stk-button::after,
.btn-nf-authentique .wp-block-button__link::before,
.btn-nf-authentique .wp-block-button__link::after,
.btn-nf-miel .stk-button::before,
.btn-nf-miel .stk-button::after,
.btn-nf-miel .wp-block-button__link::before,
.btn-nf-miel .wp-block-button__link::after,
.btn-nf-terroir .stk-button::before,
.btn-nf-terroir .stk-button::after,
.btn-nf-terroir .wp-block-button__link::before,
.btn-nf-terroir .wp-block-button__link::after,
.btn-nf-naturel .stk-button::before,
.btn-nf-naturel .stk-button::after,
.btn-nf-naturel .wp-block-button__link::before,
.btn-nf-naturel .wp-block-button__link::after,
.btn-nf-prestige .stk-button::before,
.btn-nf-prestige .stk-button::after,
.btn-nf-prestige .wp-block-button__link::before,
.btn-nf-prestige .wp-block-button__link::after,
.btn-nf-subtil .stk-button::before,
.btn-nf-subtil .stk-button::after,
.btn-nf-subtil .wp-block-button__link::before,
.btn-nf-subtil .wp-block-button__link::after {
  display: none !important;
}

/* --- 5.2 BASE COMMUNE --- */
.btn-nf-authentique .stk-button,
.btn-nf-authentique .wp-block-button__link,
.btn-nf-authentique .ct-button,
.btn-nf-miel .stk-button,
.btn-nf-miel .wp-block-button__link,
.btn-nf-miel .ct-button,
.btn-nf-terroir .stk-button,
.btn-nf-terroir .wp-block-button__link,
.btn-nf-terroir .ct-button,
.btn-nf-naturel .stk-button,
.btn-nf-naturel .wp-block-button__link,
.btn-nf-naturel .ct-button,
.btn-nf-prestige .stk-button,
.btn-nf-prestige .wp-block-button__link,
.btn-nf-prestige .ct-button,
.btn-nf-subtil .stk-button,
.btn-nf-subtil .wp-block-button__link,
.btn-nf-subtil .ct-button {
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  white-space: nowrap !important;
  padding: 0 1.6rem !important;
  border-radius: var(--nf-radius-full) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  min-width: 160px !important;
  height: auto !important;
  min-height: 52px !important;
  line-height: 1.2 !important;
  transition:
    transform 0.25s var(--nf-ease),
    box-shadow 0.25s var(--nf-ease),
    background-color 0.25s var(--nf-ease),
    border-color 0.25s var(--nf-ease),
    color 0.25s var(--nf-ease) !important;
  position: relative !important;
}

.btn-nf-authentique .stk-button__inner-text,
.btn-nf-miel .stk-button__inner-text,
.btn-nf-terroir .stk-button__inner-text,
.btn-nf-naturel .stk-button__inner-text,
.btn-nf-prestige .stk-button__inner-text,
.btn-nf-subtil .stk-button__inner-text {
  font-style: normal !important;
  text-transform: none !important;
  position: relative !important;
  z-index: 2 !important;
}

/* --- 5.3 PRIMARY OR — authentique, miel, naturel, prestige
   + boutons natifs (Stackable sans classe, Gutenberg, WooCommerce) --- */
.btn-nf-authentique .stk-button,
.btn-nf-authentique .wp-block-button__link,
.btn-nf-authentique .ct-button,
.btn-nf-miel .stk-button,
.btn-nf-miel .wp-block-button__link,
.btn-nf-miel .ct-button,
.btn-nf-naturel .stk-button,
.btn-nf-naturel .wp-block-button__link,
.btn-nf-naturel .ct-button,
.btn-nf-prestige .stk-button,
.btn-nf-prestige .wp-block-button__link,
.btn-nf-prestige .ct-button,
html body .stk-block-button:not([class*="btn-nf-"]) .stk-button,
html body .wp-block-button:not(.is-style-outline):not([class*="btn-nf-"]) .wp-block-button__link,
html body a.button,
html body button.button,
html body .single_add_to_cart_button,
html body .checkout-button,
html body #place_order,
html body ul.products .add_to_cart_button,
html body ul.products .button.product_type_variable {
  border: 1px solid transparent !important;
  background: var(--nf-gradient-gold) !important;
  background-color: var(--nf-or-500) !important;
  color: var(--nf-noir-950) !important;
  box-shadow: var(--nf-shadow-md) !important;
  border-radius: var(--nf-radius-full) !important;
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

html body a.button,
html body button.button,
html body .single_add_to_cart_button,
html body .checkout-button,
html body #place_order,
html body ul.products .add_to_cart_button,
html body ul.products .button.product_type_variable,
html body .stk-block-button:not([class*="btn-nf-"]) .stk-button {
  min-height: 48px;
  padding-inline: 1.6rem;
  transition: transform 0.25s var(--nf-ease), box-shadow 0.25s var(--nf-ease);
}

.btn-nf-authentique .stk-button__inner-text,
.btn-nf-authentique .wp-block-button__link span,
.btn-nf-authentique .ct-button span,
.btn-nf-miel .stk-button__inner-text,
.btn-nf-miel .wp-block-button__link span,
.btn-nf-miel .ct-button span,
.btn-nf-naturel .stk-button__inner-text,
.btn-nf-naturel .wp-block-button__link span,
.btn-nf-naturel .ct-button span,
.btn-nf-prestige .stk-button__inner-text,
.btn-nf-prestige .wp-block-button__link span,
.btn-nf-prestige .ct-button span,
html body .stk-block-button:not([class*="btn-nf-"]) .stk-button * {
  color: var(--nf-noir-950) !important;
  text-transform: none !important;
  font-style: normal !important;
}

.btn-nf-authentique .stk-button:hover,
.btn-nf-authentique .wp-block-button__link:hover,
.btn-nf-authentique .ct-button:hover,
.btn-nf-miel .stk-button:hover,
.btn-nf-miel .wp-block-button__link:hover,
.btn-nf-miel .ct-button:hover,
.btn-nf-naturel .stk-button:hover,
.btn-nf-naturel .wp-block-button__link:hover,
.btn-nf-naturel .ct-button:hover,
.btn-nf-prestige .stk-button:hover,
.btn-nf-prestige .wp-block-button__link:hover,
.btn-nf-prestige .ct-button:hover,
html body .stk-block-button:not([class*="btn-nf-"]) .stk-button:hover,
html body .wp-block-button:not(.is-style-outline):not([class*="btn-nf-"]) .wp-block-button__link:hover,
html body a.button:hover,
html body button.button:hover,
html body .single_add_to_cart_button:hover,
html body .checkout-button:hover,
html body #place_order:hover,
html body ul.products .add_to_cart_button:hover {
  background: var(--nf-gradient-gold) !important;
  color: var(--nf-noir-950) !important;
  box-shadow: var(--nf-shadow-lg) !important;
  transform: translateY(-2px) !important;
  opacity: 1 !important;
  filter: none !important;
}

/* L'effet « darken » de Stackable assombrirait le dégradé */
html body .stk--hover-effect-darken:hover::before,
html body .stk--hover-effect-darken:hover::after {
  opacity: 0 !important;
}

/* Prestige = CTA final : plus haut, halo discret */
.btn-nf-prestige .stk-button,
.btn-nf-prestige .wp-block-button__link,
.btn-nf-prestige .ct-button {
  font-size: 17px !important;
  min-height: 58px !important;
  padding: 0 2rem !important;
  min-width: 220px !important;
  overflow: visible !important;
}

.btn-nf-prestige .stk-button::after,
.btn-nf-prestige .wp-block-button__link::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -4px !important;
  border-radius: inherit !important;
  border: 1px solid rgba(228, 200, 147, 0.55) !important;
  opacity: 0;
  animation: nf-pulse 2.8s var(--nf-ease) infinite;
  pointer-events: none !important;
  background: none !important;
}

@keyframes nf-pulse {
  0%   { opacity: 0.8; transform: scale(1); }
  70%  { opacity: 0;   transform: scale(1.08); }
  100% { opacity: 0;   transform: scale(1.08); }
}

/* --- 5.4 SECONDARY CONTOUR — terroir, subtil --- */
.btn-nf-terroir .stk-button,
.btn-nf-terroir .wp-block-button__link,
.btn-nf-terroir .ct-button,
.btn-nf-subtil .stk-button,
.btn-nf-subtil .wp-block-button__link,
.btn-nf-subtil .ct-button {
  border: 1px solid var(--nf-border-light-strong) !important;
  background: transparent !important;
  color: var(--nf-encre-950) !important;
  box-shadow: none !important;
}

.btn-nf-terroir .stk-button__inner-text,
.btn-nf-terroir .wp-block-button__link span,
.btn-nf-terroir .ct-button span,
.btn-nf-subtil .stk-button__inner-text,
.btn-nf-subtil .wp-block-button__link span,
.btn-nf-subtil .ct-button span {
  color: var(--nf-encre-950) !important;
}

.btn-nf-terroir .stk-button:hover,
.btn-nf-terroir .wp-block-button__link:hover,
.btn-nf-terroir .ct-button:hover,
.btn-nf-subtil .stk-button:hover,
.btn-nf-subtil .wp-block-button__link:hover,
.btn-nf-subtil .ct-button:hover {
  border-color: var(--nf-or-800) !important;
  background: rgba(154, 107, 53, 0.08) !important;
}

.btn-nf-terroir .stk-button:hover .stk-button__inner-text,
.btn-nf-terroir .wp-block-button__link:hover span,
.btn-nf-terroir .ct-button:hover span,
.btn-nf-subtil .stk-button:hover .stk-button__inner-text,
.btn-nf-subtil .wp-block-button__link:hover span,
.btn-nf-subtil .ct-button:hover span {
  color: var(--nf-or-800) !important;
}

/* --- 5.5 ÉTATS ACTIF & FOCUS --- */
.btn-nf-authentique .stk-button:active,
.btn-nf-authentique .wp-block-button__link:active,
.btn-nf-authentique .ct-button:active,
.btn-nf-miel .stk-button:active,
.btn-nf-miel .wp-block-button__link:active,
.btn-nf-miel .ct-button:active,
.btn-nf-naturel .stk-button:active,
.btn-nf-naturel .wp-block-button__link:active,
.btn-nf-naturel .ct-button:active,
.btn-nf-prestige .stk-button:active,
.btn-nf-prestige .wp-block-button__link:active,
.btn-nf-prestige .ct-button:active {
  transform: translateY(0) !important;
  box-shadow: var(--nf-shadow-md) !important;
}

.btn-nf-terroir .stk-button:active,
.btn-nf-terroir .wp-block-button__link:active,
.btn-nf-terroir .ct-button:active,
.btn-nf-subtil .stk-button:active,
.btn-nf-subtil .wp-block-button__link:active,
.btn-nf-subtil .ct-button:active {
  background: rgba(154, 107, 53, 0.14) !important;
}

.btn-nf-authentique .stk-button:focus-visible,
.btn-nf-authentique .wp-block-button__link:focus-visible,
.btn-nf-authentique .ct-button:focus-visible,
.btn-nf-miel .stk-button:focus-visible,
.btn-nf-miel .wp-block-button__link:focus-visible,
.btn-nf-miel .ct-button:focus-visible,
.btn-nf-terroir .stk-button:focus-visible,
.btn-nf-terroir .wp-block-button__link:focus-visible,
.btn-nf-terroir .ct-button:focus-visible,
.btn-nf-naturel .stk-button:focus-visible,
.btn-nf-naturel .wp-block-button__link:focus-visible,
.btn-nf-naturel .ct-button:focus-visible,
.btn-nf-prestige .stk-button:focus-visible,
.btn-nf-prestige .wp-block-button__link:focus-visible,
.btn-nf-prestige .ct-button:focus-visible,
.btn-nf-subtil .stk-button:focus-visible,
.btn-nf-subtil .wp-block-button__link:focus-visible,
.btn-nf-subtil .ct-button:focus-visible,
html body .stk-button:focus-visible,
html body .wp-block-button__link:focus-visible,
html body .button:focus-visible {
  outline: 2px solid var(--nf-or-800) !important;
  outline-offset: 3px !important;
}

/* --- 5.6 SUR FOND SOMBRE (section sombre, mode sombre, header, footer) ---
   Ajoutez la classe .nf-on-dark au bloc parent Stackable si besoin. */
.nf-on-dark .btn-nf-terroir .stk-button,
.nf-on-dark .btn-nf-subtil .stk-button,
[data-theme="dark"] .btn-nf-terroir .stk-button,
[data-theme="dark"] .btn-nf-subtil .stk-button,
.dark-mode .btn-nf-terroir .stk-button,
.dark-mode .btn-nf-subtil .stk-button,
.nf-on-dark .btn-nf-terroir .wp-block-button__link,
.nf-on-dark .btn-nf-subtil .wp-block-button__link {
  border-color: var(--nf-border-dark) !important;
  color: var(--nf-creme-100) !important;
}

.nf-on-dark .btn-nf-terroir .stk-button__inner-text,
.nf-on-dark .btn-nf-subtil .stk-button__inner-text,
[data-theme="dark"] .btn-nf-terroir .stk-button__inner-text,
[data-theme="dark"] .btn-nf-subtil .stk-button__inner-text,
.dark-mode .btn-nf-terroir .stk-button__inner-text,
.dark-mode .btn-nf-subtil .stk-button__inner-text {
  color: var(--nf-creme-100) !important;
}

.nf-on-dark .btn-nf-terroir .stk-button:hover,
.nf-on-dark .btn-nf-subtil .stk-button:hover,
[data-theme="dark"] .btn-nf-terroir .stk-button:hover,
[data-theme="dark"] .btn-nf-subtil .stk-button:hover,
.dark-mode .btn-nf-terroir .stk-button:hover,
.dark-mode .btn-nf-subtil .stk-button:hover {
  border-color: var(--nf-or-500) !important;
  background: rgba(201, 160, 99, 0.07) !important;
}

.nf-on-dark .btn-nf-terroir .stk-button:hover .stk-button__inner-text,
.nf-on-dark .btn-nf-subtil .stk-button:hover .stk-button__inner-text,
[data-theme="dark"] .btn-nf-terroir .stk-button:hover .stk-button__inner-text,
[data-theme="dark"] .btn-nf-subtil .stk-button:hover .stk-button__inner-text,
.dark-mode .btn-nf-terroir .stk-button:hover .stk-button__inner-text,
.dark-mode .btn-nf-subtil .stk-button:hover .stk-button__inner-text {
  color: var(--nf-or-300) !important;
}


/* ========================================================
   6. CLASSES UTILITAIRES NF
   ======================================================== */
.nf-product-card {
  background: var(--nf-creme-50) !important;
  border: 1px solid var(--nf-border-light) !important;
  border-radius: var(--nf-radius-md) !important;
  padding: 24px !important;
  box-shadow: none !important;
  transition: transform 0.35s var(--nf-ease), box-shadow 0.35s var(--nf-ease), border-color 0.35s var(--nf-ease) !important;
}

.nf-product-card:hover {
  box-shadow: var(--nf-shadow-sm) !important;
  transform: translateY(-4px) !important;
  border-color: var(--nf-border-light-strong) !important;
}

/* Badge accent (ex-« authentique ») : rouge sceau, usage rare */
.nf-badge-authentique {
  background: var(--nf-sceau-700) !important;
  color: var(--nf-creme-100) !important;
  padding: 4px 12px !important;
  border-radius: var(--nf-radius-full) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
}

/* Badge or (ex-« terroir ») : tag de la charte */
.nf-badge-terroir {
  background: var(--nf-tint-gold) !important;
  border: 1px solid var(--nf-border-dark) !important;
  color: var(--nf-or-800) !important;
  padding: 4px 12px !important;
  border-radius: var(--nf-radius-full) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
}

.nf-price-premium {
  color: var(--nf-or-800) !important;
  font-size: 2rem !important;
  font-weight: 400 !important;
  font-family: 'EFCO Brookshire', Georgia, serif !important;
  line-height: 1 !important;
}

.nf-text-accent {
  color: var(--nf-or-800) !important;
  font-weight: 700 !important;
}


/* ========================================================
   7. WOOCOMMERCE — SHIPPING & CHECKOUT
   ======================================================== */

/* --- 7.1 Barre de progression livraison --- */
.ct-shipping-progress-mini-cart .ct-message p,
.ct-shipping-progress-cart-page .ct-message p,
.ct-shipping-progress-checkout-page .ct-message p {
  color: var(--nf-or-800);
}

/* --- 7.2 Méthodes d'expédition — cartes sélectionnables --- */
.woocommerce-checkout ul#shipping_method,
.woocommerce-cart ul#shipping_method,
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods#shipping_method {
  list-style: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 100%;
}

.woocommerce-checkout ul#shipping_method input[type="radio"],
.woocommerce-cart ul#shipping_method input[type="radio"],
.woocommerce-cart .cart_totals ul#shipping_method input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.woocommerce-checkout ul#shipping_method > li,
.woocommerce-cart ul#shipping_method > li,
.woocommerce-cart .cart_totals ul#shipping_method > li {
  margin: var(--mb-card) 0 !important;
}

.woocommerce-checkout ul#shipping_method > li > label,
.woocommerce-cart ul#shipping_method > li > label,
.woocommerce-cart .cart_totals ul#shipping_method > li > label {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  width: 100%;
  min-height: 3.25rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-sm);
  background: var(--nf-creme-50);
  color: var(--nf-encre-950);
  font-weight: 600;
  cursor: pointer;
  box-shadow: none;
  transition: border-color 0.25s var(--nf-ease), background-color 0.25s var(--nf-ease),
              box-shadow 0.25s var(--nf-ease), transform 0.25s var(--nf-ease);
}

.woocommerce-checkout ul#shipping_method > li > label::before,
.woocommerce-cart ul#shipping_method > li > label::before,
.woocommerce-cart .cart_totals ul#shipping_method > li > label::before {
  content: "";
  display: inline-block;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.95;
}

.woocommerce-checkout ul#shipping_method > li > label .woocommerce-Price-amount,
.woocommerce-cart ul#shipping_method > li > label .woocommerce-Price-amount,
.woocommerce-cart .cart_totals ul#shipping_method > li > label .woocommerce-Price-amount {
  margin-left: auto !important;
  white-space: nowrap;
  font-weight: 700;
  color: var(--nf-encre-950);
  padding: 0.35rem 0.7rem;
  border-radius: var(--nf-radius-full);
  background: var(--nf-creme-100);
  border: 1px solid var(--nf-border-light);
  box-shadow: none;
}

.woocommerce-checkout ul#shipping_method > li > label:hover,
.woocommerce-cart ul#shipping_method > li > label:hover,
.woocommerce-cart .cart_totals ul#shipping_method > li > label:hover {
  background: var(--nf-creme-50);
  border-color: var(--nf-border-light-strong);
  color: var(--nf-encre-950);
  box-shadow: var(--nf-shadow-sm);
  transform: translateY(-1px);
}

.woocommerce-checkout ul#shipping_method input[type="radio"]:focus-visible + label,
.woocommerce-cart ul#shipping_method input[type="radio"]:focus-visible + label,
.woocommerce-cart .cart_totals ul#shipping_method input[type="radio"]:focus-visible + label {
  outline: 2px solid var(--nf-or-800);
  outline-offset: 2px;
}

.woocommerce-checkout ul#shipping_method input[type="radio"]:checked + label,
.woocommerce-cart ul#shipping_method input[type="radio"]:checked + label,
.woocommerce-cart .cart_totals ul#shipping_method input[type="radio"]:checked + label {
  border-color: var(--nf-or-500);
  background: var(--nf-creme-50);
  color: var(--nf-encre-950);
  box-shadow: inset 0 0 0 1px var(--nf-or-500), var(--nf-shadow-sm);
}

/* Logos transporteurs */
input.shipping_method[value^="boxtal_connect:4"]  + label::before,
input.shipping_method[value^="boxtal_connect:14"] + label::before {
  background-image: url('https://naturalfawaid.com/wp-content/uploads/icons-transport/Mondial_Relay.svg');
}

input.shipping_method[value^="boxtal_connect:5"]  + label::before,
input.shipping_method[value^="boxtal_connect:15"] + label::before {
  background-image: url('https://naturalfawaid.com/wp-content/uploads/icons-transport/colissimo-logo.svg');
}

input.shipping_method[value^="boxtal_connect:6"]  + label::before,
input.shipping_method[value^="boxtal_connect:16"] + label::before {
  background-image: url('https://naturalfawaid.com/wp-content/uploads/icons-transport/ups-icon.svg');
}

input.shipping_method[value="flat_rate:13"] + label::before {
  background-image: url('https://naturalfawaid.com/wp-content/uploads/icons-transport/remise-main-propre.svg');
}

/* --- 7.3 Bloc point relais Boxtal --- */
.woocommerce-checkout ul#shipping_method .bw-parcel-point,
.woocommerce-cart ul#shipping_method .bw-parcel-point,
.woocommerce-cart .cart_totals ul#shipping_method .bw-parcel-point {
  display: none;
}

.woocommerce-checkout ul#shipping_method li input[type="radio"]:checked + label + .bw-parcel-point,
.woocommerce-cart ul#shipping_method li input[type="radio"]:checked + label + .bw-parcel-point,
.woocommerce-cart .cart_totals ul#shipping_method li input[type="radio"]:checked + label + .bw-parcel-point {
  display: block;
  margin: 0.5rem 0 0;
  padding: 0.75rem 1rem;
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-sm);
  line-height: 1.4;
  color: var(--nf-encre-950);
}

.bw-parcel-point .bw-parcel-client-0 {
  font-weight: 700;
  color: var(--nf-encre-950);
}

.bw-parcel-point small {
  display: inline-block;
  margin-top: 0.25rem;
  color: var(--nf-encre-700);
}

.bw-parcel-point .bw-select-parcel {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.55rem 1rem;
  border: 1px solid var(--nf-border-light-strong);
  border-radius: var(--nf-radius-full);
  background: transparent;
  color: var(--nf-encre-950);
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.25s var(--nf-ease), border-color 0.25s var(--nf-ease), color 0.25s var(--nf-ease);
}

.bw-parcel-point .bw-select-parcel:hover {
  background: rgba(154, 107, 53, 0.08);
  border-color: var(--nf-or-800);
  color: var(--nf-or-800);
}

/* --- 7.4 Tables checkout --- */
.woocommerce table.shop_table,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tr {
  border: none !important;
  box-shadow: none !important;
}

.woocommerce-shipping-destination,
.woocommerce-shipping-calculator {
  margin-top: 0.75rem;
}


/* ========================================================
   8. WOOCOMMERCE — PRODUITS & PLUGINS
   ======================================================== */

/* --- 8.1 Smart Bundles WPC --- */
.woosb-products[class*="woosb-products-layout-grid"] .woosb-product {
  border-radius: var(--nf-radius-md);
  transition: transform 0.35s var(--nf-ease), border-color 0.35s var(--nf-ease), box-shadow 0.35s var(--nf-ease);
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product:hover {
  border-color: var(--nf-or-500);
  transform: translateY(-4px);
  box-shadow: var(--nf-shadow-sm);
}

/* --- 8.2 Countdown Premium Blocksy --- */
.ct-product-sale-countdown {
  margin-top: 20px;
  padding: 20px 24px;
  border-radius: var(--nf-radius-md);
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
  overflow: hidden;
  transition: transform 0.35s var(--nf-ease), box-shadow 0.35s var(--nf-ease);
}

.ct-product-sale-countdown::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: var(--nf-gradient-gold);
}

.ct-product-sale-countdown .ct-module-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--nf-or-800);
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

.ct-product-sale-countdown [data-date] {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
}

.ct-product-sale-countdown [data-date] > span {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 10px;
  border-radius: var(--nf-radius-sm);
  background: var(--nf-creme-100);
  border: 1px solid var(--nf-border-light);
  box-shadow: none;
  min-width: 0;
}

.ct-product-sale-countdown [data-date] > span b {
  font-family: 'EFCO Brookshire', Georgia, serif;
  font-size: 1.75rem;
  font-weight: 400;
  color: var(--nf-encre-950);
  line-height: 1.1;
  margin-bottom: 2px;
}

.ct-product-sale-countdown [data-date] > span small {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--nf-encre-700);
  line-height: 1.1;
}

.ct-product-sale-countdown [data-date] *::before,
.ct-product-sale-countdown [data-date] *::after {
  content: none !important;
}


/* ========================================================
   9. PAGES PRODUITS SPÉCIFIQUES
   ======================================================== */

/* --- 9.1 Produit 31836 — Pack personnalisable --- */
body.postid-31836 .ct-product-gallery-container > span:nth-child(1) {
  display: none !important;
}

.postid-31836 .nf-pack-remise {
  margin: 0 !important;
  padding: 14px 18px !important;
  background: var(--nf-tint-gold);
  border-left: 3px solid var(--nf-or-500);
  border-radius: var(--nf-radius-sm);
  font-size: 16px;
  line-height: 1.5;
  color: var(--nf-encre-950);
  font-weight: 600;
  box-shadow: none;
  animation: nf-heartbeat 2.4s ease-in-out infinite;
  transform-origin: center left;
}

.postid-31836 .nf-pack-remise strong {
  color: var(--nf-or-800);
  font-weight: 800;
}

@keyframes nf-heartbeat {
  0%, 40%, 100% { transform: scale(1); }
  10%            { transform: scale(1.02); }
  20%            { transform: scale(0.99); }
  30%            { transform: scale(1.025); }
}

/* Grille produit bundle */
body.postid-31836 .woosb-products .woosb-item-product {
  display: grid !important;
  grid-template-columns: 44px 1fr;
  grid-template-areas:
    "thumb title"
    "thumb actions";
  column-gap: 14px;
  row-gap: 8px;
  align-items: start;
  padding: 10px 0;
}

body.postid-31836 .woosb-products .woosb-thumb    { grid-area: thumb; }
body.postid-31836 .woosb-products .woosb-title    { grid-area: title; min-width: 0; }
body.postid-31836 .woosb-products .woosb-quantity { grid-area: actions; }
body.postid-31836 .woosb-products .woosb-price    { grid-area: actions; justify-self: end; }

body.postid-31836 .woosb-products .woosb-name a {
  display: inline !important;
  overflow: visible !important;
  white-space: normal;
}

body.postid-31836 .woosb-products .woosb-quantity {
  display: flex;
  align-items: center;
}

body.postid-31836 .woosb-products .woosb-quantity .quantity[data-type="type-2"] {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.postid-31836 .woosb-products .ct-increase,
body.postid-31836 .woosb-products .ct-decrease {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--nf-border-light-strong);
  border-radius: 50%;
  color: var(--nf-encre-950);
  cursor: pointer;
  user-select: none;
  position: static !important;
  transition: border-color 0.25s var(--nf-ease), color 0.25s var(--nf-ease);
}

body.postid-31836 .woosb-products .ct-increase:hover,
body.postid-31836 .woosb-products .ct-decrease:hover {
  border-color: var(--nf-or-800);
  color: var(--nf-or-800);
}

body.postid-31836 .woosb-products .ct-increase::before { content: "+"; }
body.postid-31836 .woosb-products .ct-decrease::before { content: "-"; }

body.postid-31836 .woosb-products input.woosb-qty {
  width: 64px !important;
  height: 36px !important;
  text-align: center !important;
  padding: 0 8px !important;
  border: 1px solid var(--nf-border-light-strong) !important;
  border-radius: var(--nf-radius-sm) !important;
  background: var(--nf-creme-50) !important;
  color: var(--nf-encre-950) !important;
}

body.postid-31836 .woosb-products .woosb-price {
  white-space: nowrap;
  text-align: right;
  align-self: center;
}

body.postid-31836 .woosb-products .ct-decrease    { order: 1 !important; }
body.postid-31836 .woosb-products input.woosb-qty { order: 2 !important; }
body.postid-31836 .woosb-products .ct-increase    { order: 3 !important; }

/* --- 9.2 Produit 33187 — Déstockage -53%
   ⚠️ TEMPORAIRE — À SUPPRIMER APRÈS FIN DE PROMOTION --- */
.postid-33187 .woocommerce-product-gallery {
  position: relative;
}

.postid-33187 .woocommerce-product-gallery::before {
  content: "-53% déstockage";
  position: absolute;
  top: 20px;
  left: 20px;
  background: var(--nf-sceau-700);
  color: var(--nf-creme-100);
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: var(--nf-radius-full);
  z-index: 10;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  box-shadow: none;
  pointer-events: none;
}

.postid-33187 .onsale {
  display: none !important;
}

/* --- 9.3 Produit 33246 — Badge Nouveauté (rouge sceau de la charte) --- */
body.postid-33246 .woocommerce-product-gallery {
  position: relative;
}

body.postid-33246 .woocommerce-product-gallery::before {
  content: "Nouveau";
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 10;
  background: var(--nf-sceau-700);
  color: var(--nf-creme-100);
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45em 1em;
  border-radius: var(--nf-radius-full);
  border: 0;
  box-shadow: none;
  pointer-events: none;
}


/* ========================================================
   10. PAGES SPÉCIFIQUES & DIVERS
   ======================================================== */

/* Page 410 (CGV) — masque les puces de liste */
body.page-id-410 li::marker {
  content: none;
}

body.page-id-410 li::before {
  content: none !important;
}

/* Variation « Réduction » dans le panier : pastille or */
dd.variation-Rduction > p:nth-child(1) > span:nth-child(1) {
  background: var(--nf-gradient-gold);
  color: var(--nf-noir-950);
  font-weight: 700;
  padding: 4px 12px;
  border-radius: var(--nf-radius-full);
  display: inline-block;
  animation: nf-gift-beat 1.7s ease-in-out infinite;
}

@keyframes nf-gift-beat {
  0%, 100% { transform: scale(1);    box-shadow: 0 0 0 rgba(201, 160, 99, 0); }
  50%       { transform: scale(1.06); box-shadow: 0 0 14px rgba(201, 160, 99, 0.55); }
}

/* Bloc avis Google — couleur du nom */
.ti-footer.source-Google strong,
.ti-footer.source-Google span,
.ti-footer.source-Google div {
  color: var(--nf-encre-950) !important;
}


/* ========================================================
   11. MENU & NAVIGATION
   ======================================================== */

/* --- 11.1 Icône panier devant "Boutique" --- */
.icon-boutique > a::before {
  content: "\f54e";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  margin-right: 8px;
  font-size: 1em;
  line-height: 1;
  display: inline-block;
}

/* --- 11.2 Mega Menu Boutique (positionnement) --- */
li.nf-boutique {
  position: unset !important;
}

li.nf-boutique > .sub-menu {
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(1200px, 95vw) !important;
  max-width: 1200px !important;
}

li.nf-boutique > .sub-menu .sub-menu {
  left: auto !important;
  right: auto !important;
  transform: none !important;
}

/* --- 11.3 Lien promo (.nf-promo-en-cours) — or de la charte --- */
a.nf-promo-en-cours {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  padding: 0.45em 1em;
  background: var(--nf-gradient-gold);
  background-image: var(--nf-gradient-gold);
  color: var(--nf-noir-950) !important;
  font-family: 'Nunito Sans', system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 0.85em;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  border: 0;
  border-radius: var(--nf-radius-full);
  box-shadow: var(--nf-shadow-md);
  position: relative;
  overflow: hidden;
  transition: transform 0.25s var(--nf-ease), box-shadow 0.25s var(--nf-ease);
  animation: none;
}

/* Reflet lumineux au survol */
a.nf-promo-en-cours::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.35) 50%, transparent 100%);
  transition: left 0.6s var(--nf-ease);
  pointer-events: none;
}

a.nf-promo-en-cours:hover::before {
  left: 100%;
}

a.nf-promo-en-cours:hover {
  transform: translateY(-2px);
  box-shadow: var(--nf-shadow-lg);
  background: var(--nf-gradient-gold);
  background-image: var(--nf-gradient-gold);
  filter: none;
}

a.nf-promo-en-cours:focus-visible {
  outline: 2px solid var(--nf-or-300);
  outline-offset: 3px;
}

/* Variante accent (ex-bordeaux, ex-vert) : rouge sceau, pour « Nouveau » ou une vraie promo */
a.nf-promo-en-cours--bordeaux,
a.nf-promo-en-cours--new {
  background: var(--nf-sceau-700);
  background-image: none;
  color: var(--nf-creme-100) !important;
  box-shadow: none;
}

a.nf-promo-en-cours--bordeaux:hover,
a.nf-promo-en-cours--new:hover {
  background: var(--nf-sceau-700);
  background-image: none;
  box-shadow: 0 8px 20px -10px rgba(142, 28, 31, 0.6);
}

a.nf-promo-en-cours--bordeaux *,
a.nf-promo-en-cours--new * {
  color: var(--nf-creme-100) !important;
}

/* Pastille intérieure (« 7 produits ») */
a.nf-promo-en-cours .nf-promo-badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.2em 0.5em;
  background: rgba(13, 10, 7, 0.12);
  border: 0;
  border-radius: var(--nf-radius-full);
  color: var(--nf-noir-950);
  font-size: 0.82em;
  font-weight: 800;
  letter-spacing: 0;
}

a.nf-promo-en-cours--bordeaux .nf-promo-badge,
a.nf-promo-en-cours--new .nf-promo-badge {
  background: rgba(245, 236, 223, 0.18);
}

/* Variante Nouveautés : même style que le lien promo or */
a.nf-promo-en-cours--news {
  background: var(--nf-gradient-gold);
  background-image: var(--nf-gradient-gold);
  color: var(--nf-noir-950) !important;
  box-shadow: var(--nf-shadow-md);
  animation: none;
}

a.nf-promo-en-cours--news:hover {
  background: var(--nf-gradient-gold);
  background-image: var(--nf-gradient-gold);
  box-shadow: var(--nf-shadow-lg);
  filter: none;
}

a.nf-promo-en-cours--news .nf-promo-news-icon {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--nf-noir-950);
  font-size: 0.95em;
  animation: nf-news-sparkle 2s ease-in-out infinite;
}

a.nf-promo-en-cours--news .nf-promo-news-text {
  position: relative;
  z-index: 1;
}

@keyframes nf-news-sparkle {
  0%, 100% { transform: scale(1) rotate(0deg);    opacity: 0.85; }
  50%      { transform: scale(1.15) rotate(12deg); opacity: 1; }
}

.ct-header a.nf-promo-en-cours {
  margin-left: 0.5rem;
}

/* --- 11.4 Offcanvas Blocksy / menu mobile --- */
.ct-offcanvas a.nf-promo-en-cours,
.ct-mobile-menu a.nf-promo-en-cours {
  display: flex;
  margin: 1rem 1.5rem;
  background: var(--nf-gradient-gold) !important;
  background-image: var(--nf-gradient-gold) !important;
  color: var(--nf-noir-950) !important;
  border: 0 !important;
  border-radius: var(--nf-radius-full);
  position: relative;
  z-index: 5;
  box-shadow: var(--nf-shadow-md);
  overflow: hidden;
}

.ct-offcanvas a.nf-promo-en-cours:hover,
.ct-offcanvas a.nf-promo-en-cours:focus,
.ct-offcanvas a.nf-promo-en-cours:active,
.ct-mobile-menu a.nf-promo-en-cours:hover,
.ct-mobile-menu a.nf-promo-en-cours:focus,
.ct-mobile-menu a.nf-promo-en-cours:active {
  background: var(--nf-gradient-gold) !important;
  background-image: var(--nf-gradient-gold) !important;
  color: var(--nf-noir-950) !important;
  box-shadow: var(--nf-shadow-lg);
}

.ct-offcanvas a.nf-promo-en-cours .nf-promo-news-icon,
.ct-mobile-menu a.nf-promo-en-cours .nf-promo-news-icon,
.ct-offcanvas a.nf-promo-en-cours .nf-promo-badge,
.ct-mobile-menu a.nf-promo-en-cours .nf-promo-badge {
  color: var(--nf-noir-950);
}

@media (max-width: 767px) {
  .ct-offcanvas a.nf-promo-en-cours,
  .ct-mobile-menu a.nf-promo-en-cours {
    min-height: 48px;
    padding: 0.65rem 1rem;
    font-size: 0.95rem;
  }
}


/* ========================================================
   12. BANNIÈRE LIVRAISON
   ======================================================== */
.shipping-strip {
  position: relative;
  overflow: hidden;
  padding: 0.4rem 0;
  background: var(--nf-creme-50);
  border-radius: var(--nf-radius-full);
  border: 1px solid var(--nf-border-light);
  box-shadow: none;
  display: block;
}

.shipping-strip-inner {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.shipping-chip {
  font-size: 0.8rem;
  font-weight: 600;
  margin: 0;
  padding: 0.3rem 1.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--nf-encre-950);
  border-radius: var(--nf-radius-full);
  border: 1px solid var(--nf-border-light);
  background: var(--nf-creme-100);
}

.shipping-chip strong {
  font-weight: 800;
  color: var(--nf-or-800);
}

.shipping-banner { display: none; }

@media (min-width: 1024px) {
  .shipping-strip {
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
  }

  .shipping-strip-inner {
    animation: nf-shipping-slide 26s linear infinite;
  }

  @keyframes nf-shipping-slide {
    0%   { transform: translateX(100%); }
    100% { transform: translateX(-100%); }
  }
}

@media (max-width: 1023px) {
  .shipping-strip { display: none; }

  .shipping-banner {
    font-size: 0.9rem;
    line-height: 1.45;
    padding: 0;
    margin: 0.5rem 0;
    display: inline-block;
    animation: nf-heartbeat-text 2.2s ease-in-out infinite;
    transform-origin: center left;
  }

  .shipping-strong {
    font-weight: 700;
    color: var(--nf-or-300);
    letter-spacing: 0.03em;
  }

  @keyframes nf-heartbeat-text {
    0%, 40%, 100% { transform: scale(1); }
    10%            { transform: scale(1.03); }
    20%            { transform: scale(0.99); }
    30%            { transform: scale(1.035); }
  }
}


/* ========================================================
   13. PAIEMENTS EXPRESS
   ======================================================== */
.woocommerce-cart .wc-proceed-to-checkout {
  display: flex;
  flex-direction: column;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  margin: 0 0 var(--express-block-gap) 0 !important;
}

.woocommerce-cart .wc-proceed-to-checkout > p,
.woocommerce-cart .wc-proceed-to-checkout > h1,
.woocommerce-cart .wc-proceed-to-checkout > h2,
.woocommerce-cart .wc-proceed-to-checkout > h3,
.woocommerce-cart .wc-proceed-to-checkout > h4 {
  margin: 0 0 var(--express-block-gap) 0 !important;
}

.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods,
.wc-stripe-product-checkout-container ul.wc_stripe_cart_payment_methods,
.woocommerce-cart .wc-proceed-to-checkout ul.wc_stripe_product_payment_methods,
.woocommerce-cart .wc-proceed-to-checkout ul.wc_stripe_cart_payment_methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: var(--express-gap) !important;
}

.wc-stripe-product-checkout-container li[class^="payment_method"],
.woocommerce-cart .wc-proceed-to-checkout li[class^="payment_method"] {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wc-stripe-product-checkout-container .payment-box,
.woocommerce-cart .wc-proceed-to-checkout .payment-box {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wc-stripe-googlepay-product-container,
.wc-stripe-googlepay-cart-container,
.gpay-button-container,
.gpay-button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: var(--express-btn-height) !important;
}

#wc-stripe-applepay-container,
.wc-stripe-applepay-container {
  width: 100% !important;
  max-width: 100% !important;
  height: var(--express-btn-height) !important;
}

.wc-ppcp-product-button-container,
.wc-ppcp-cart-button-container,
.woocommerce-cart .wc-proceed-to-checkout .wc-ppcp-product-button-container,
.woocommerce-cart .wc-proceed-to-checkout .wc-ppcp-cart-button-container {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.wc-ppcp-product-button-container iframe,
.wc-ppcp-cart-button-container iframe {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: var(--express-btn-height) !important;
}

.wc-stripe-product-checkout-container iframe,
.woocommerce-cart .wc-proceed-to-checkout iframe,
.gpay-button {
  border-radius: var(--nf-radius-sm) !important;
  overflow: hidden !important;
}

.woocommerce-cart .wc-proceed-to-checkout br {
  display: none !important;
}


/* ========================================================
   14. TABLEAU DES REMISES & FAQ PRODUIT
   ======================================================== */
.woocommerce table.remises_table {
  width: 100%;
  border-collapse: collapse !important;
  border: 1px solid var(--nf-border-light) !important;
  font-size: clamp(13px, 3.5vw, 14px);
  background: var(--nf-creme-50);
}

.woocommerce table.remises_table th,
.woocommerce table.remises_table td {
  padding: 10px 12px;
  text-align: left;
  border: 1px solid var(--nf-border-light) !important;
  vertical-align: middle;
  color: var(--nf-encre-950);
}

.woocommerce table.remises_table thead th {
  background-color: var(--nf-creme-200);
  color: var(--nf-or-800);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.woocommerce table.remises_table td strong {
  color: var(--nf-vert-700);
  font-weight: 700;
}

.product-faq {
  display: grid;
  gap: 0.75rem;
  margin-top: 2rem;
}

.product-faq .faq-item {
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  padding: 1.25rem 1.5rem;
  border-radius: var(--nf-radius-sm);
}

.product-faq .faq-item h3 {
  margin: 0 0 0.5rem;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--nf-encre-950);
}

.product-faq .faq-item p {
  margin: 0;
  line-height: 1.65;
  color: var(--nf-encre-700);
}


/* ========================================================
   15. PRODUCT REVIEW — Specs / Pour / Contre
   ======================================================== */

/* Conteneur global */
.ct-product-info {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  align-items: start !important;
  width: 100% !important;
}

/* Blocs */
.ct-specs,
.ct-product-review-pros,
.ct-product-review-cons {
  border-radius: var(--nf-radius-md) !important;
  overflow: hidden !important;
  border: 1px solid var(--nf-border-light) !important;
  background: var(--nf-creme-50) !important;
  padding: 0 !important;
  box-shadow: none !important;
  transition: box-shadow 0.35s var(--nf-ease) !important;
}

.ct-specs:hover,
.ct-product-review-pros:hover,
.ct-product-review-cons:hover {
  box-shadow: var(--nf-shadow-sm) !important;
}

/* Titres h5 : label majuscule de la charte */
.ct-specs h5,
.ct-product-review-pros h5,
.ct-product-review-cons h5 {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 14px 16px !important;
  margin: 0 !important;
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  position: relative !important;
  background: var(--nf-creme-100) !important;
  border-bottom: 1px solid var(--nf-border-light) !important;
}

/* Liseré haut */
.ct-specs h5::after,
.ct-product-review-pros h5::after,
.ct-product-review-cons h5::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 3px !important;
}

/* Pastille d'icône */
.ct-specs h5::before,
.ct-product-review-pros h5::before,
.ct-product-review-cons h5::before {
  content: "" !important;
  display: inline-flex !important;
  flex-shrink: 0 !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
}

.ct-specs h5 svg,
.ct-product-review-pros h5 svg,
.ct-product-review-cons h5 svg {
  display: none !important;
}

/* Specs : or */
.ct-specs h5 {
  color: var(--nf-or-800) !important;
}
.ct-specs h5::after {
  background: var(--nf-gradient-gold) !important;
}
.ct-specs h5::before {
  background: var(--nf-encre-950) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23C9A063' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E") center / 15px no-repeat !important;
}

/* Pour : vert olive (statut succès) */
.ct-product-review-pros h5 {
  color: var(--nf-vert-700) !important;
}
.ct-product-review-pros h5::after {
  background: var(--nf-vert-700) !important;
}
.ct-product-review-pros h5::before {
  background: rgba(78, 107, 50, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234E6B32' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 9V5a3 3 0 00-3-3l-4 9v11h11.28a2 2 0 002-1.7l1.38-9a2 2 0 00-2-2.3H14z'/%3E%3Cpath d='M7 22H4a2 2 0 01-2-2v-7a2 2 0 012-2h3'/%3E%3C/svg%3E") center / 15px no-repeat !important;
}

/* Contre : rouge sceau */
.ct-product-review-cons h5 {
  color: var(--nf-sceau-700) !important;
}
.ct-product-review-cons h5::after {
  background: var(--nf-sceau-700) !important;
}
.ct-product-review-cons h5::before {
  background: rgba(142, 28, 31, 0.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238E1C1F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 15v4a3 3 0 003 3l4-9V2H5.72a2 2 0 00-2 1.7l-1.38 9a2 2 0 002 2.3H10z'/%3E%3Cpath d='M17 2h2.67A2.31 2.31 0 0122 4v7a2.31 2.31 0 01-2.33 2H17'/%3E%3C/svg%3E") center / 15px no-repeat !important;
}

/* Specs — wrapper + items */
.ct-specs > *:not(h5) {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding: 14px !important;
  margin: 0 !important;
  list-style: none !important;
}

.ct-specs li {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  padding: 10px 12px !important;
  border-radius: var(--nf-radius-sm) !important;
  background: var(--nf-creme-100) !important;
  border: 1px solid var(--nf-border-light) !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.ct-specs li svg {
  display: none !important;
}

/* Libellé */
.ct-specs li strong,
.ct-specs li b {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  color: var(--nf-or-800) !important;
  line-height: 1.3 !important;
  margin: 0 0 4px !important;
}

/* Valeur */
.ct-specs li > *:not(strong):not(b):not(svg) {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--nf-encre-950) !important;
  line-height: 1.55 !important;
}

/* Pour — wrapper + items */
.ct-product-review-pros > *:not(h5),
.ct-product-review-cons > *:not(h5) {
  padding: 14px !important;
  margin: 0 !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.ct-product-review-pros li,
.ct-product-review-cons li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border-radius: var(--nf-radius-sm) !important;
  background: var(--nf-creme-100) !important;
  border: 1px solid var(--nf-border-light) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  color: var(--nf-encre-950) !important;
  margin: 0 !important;
  list-style: none !important;
}

.ct-product-review-pros li svg,
.ct-product-review-cons li svg {
  display: none !important;
}

.ct-product-review-pros li::before,
.ct-product-review-cons li::before {
  content: "" !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border-radius: 50% !important;
}

.ct-product-review-pros li::before {
  background: rgba(78, 107, 50, 0.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%234E6B32' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat !important;
}

.ct-product-review-cons li::before {
  background: rgba(142, 28, 31, 0.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%238E1C1F' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E") center / 11px no-repeat !important;
}

.ct-product-review-pros li strong,
.ct-product-review-cons li strong {
  font-weight: 700 !important;
}


/* ========================================================
   16. BOUTONS CT-PRODUCT-ACTIONS-GROUP
   Pages avis produit : « Lire les avis clients » + « Commander »
   ======================================================== */
.ct-product-actions-group {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 8px 0 32px !important;
}

.ct-product-actions-group .ct-button::before,
.ct-product-actions-group .ct-button::after {
  display: none !important;
}

/* Base commune : pilule de la charte */
.ct-product-actions-group .ct-button {
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  white-space: nowrap !important;
  padding: 0 1.8rem !important;
  border-radius: var(--nf-radius-full) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 220px !important;
  height: auto !important;
  min-height: 52px !important;
  line-height: 1.2 !important;
  transition: transform 0.25s var(--nf-ease), box-shadow 0.25s var(--nf-ease),
              border-color 0.25s var(--nf-ease), color 0.25s var(--nf-ease) !important;
  position: relative !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
}

/* 1er bouton « Lire les avis clients » : secondary contour */
.ct-product-actions-group .ct-button:first-child {
  background: transparent !important;
  color: var(--nf-encre-950) !important;
  border: 1px solid var(--nf-border-light-strong) !important;
  box-shadow: none !important;
}

.ct-product-actions-group .ct-button:first-child:hover {
  background: rgba(154, 107, 53, 0.08) !important;
  border-color: var(--nf-or-800) !important;
  color: var(--nf-or-800) !important;
  transform: none !important;
}

/* 2e bouton « Commander » : primary or */
.ct-product-actions-group .ct-button:last-child {
  background: var(--nf-gradient-gold) !important;
  color: var(--nf-noir-950) !important;
  border: 1px solid transparent !important;
  box-shadow: var(--nf-shadow-md) !important;
}

.ct-product-actions-group .ct-button:last-child:hover {
  background: var(--nf-gradient-gold) !important;
  box-shadow: var(--nf-shadow-lg) !important;
  transform: translateY(-2px) !important;
  color: var(--nf-noir-950) !important;
}

.ct-product-actions-group .ct-button:focus-visible {
  outline: 2px solid var(--nf-or-800) !important;
  outline-offset: 3px !important;
}

.ct-product-actions-group .ct-button:active {
  transform: translateY(0) !important;
}

@media (max-width: 600px) {
  .ct-product-actions-group {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 8px auto 32px !important;
    width: 100% !important;
  }

  .ct-product-actions-group .ct-button {
    width: 100% !important;
    max-width: 380px !important;
    min-width: 0 !important;
    min-height: 52px !important;
    font-size: 16px !important;
    padding: 0 1.25rem !important;
    white-space: nowrap !important;
    margin: 0 auto !important;
  }
}


/* ========================================================
   17. STORE NOTICE — Congé annuel (mode catalogue)
   ⚠ TEMPORAIRE — à supprimer à la réouverture
   ======================================================== */
.woocommerce-store-notice.demo_store {
  position: relative;
  background: var(--nf-noir-950) !important;
  color: var(--nf-creme-100) !important;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  padding: 0.75rem 3rem 0.75rem 1.25rem;
  border-bottom: 1px solid var(--nf-or-500);
}

.woocommerce-store-notice__dismiss-link {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--nf-sable-400) !important;
  font-size: 0.8rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s var(--nf-ease);
}

.woocommerce-store-notice__dismiss-link:hover {
  color: var(--nf-or-300) !important;
}

@media (max-width: 689px) {
  .woocommerce-store-notice.demo_store {
    font-size: 0.85rem;
    padding: 0.65rem 1rem 0.55rem;
  }

  .woocommerce-store-notice__dismiss-link {
    position: static;
    display: inline-block;
    transform: none;
    margin-left: 0.5em;
  }
}


/* ========================================================
   18. RESPONSIVE
   Hauteur tactile minimale : 44px (jamais en dessous).
   ======================================================== */

/* --- 18.1 Tablette (max-width: 768px) --- */
@media (max-width: 768px) {

  .btn-nf-authentique .stk-button,
  .btn-nf-authentique .wp-block-button__link,
  .btn-nf-authentique .ct-button,
  .btn-nf-miel .stk-button,
  .btn-nf-miel .wp-block-button__link,
  .btn-nf-miel .ct-button,
  .btn-nf-terroir .stk-button,
  .btn-nf-terroir .wp-block-button__link,
  .btn-nf-terroir .ct-button,
  .btn-nf-naturel .stk-button,
  .btn-nf-naturel .wp-block-button__link,
  .btn-nf-naturel .ct-button,
  .btn-nf-subtil .stk-button,
  .btn-nf-subtil .wp-block-button__link,
  .btn-nf-subtil .ct-button {
    padding: 0 1.4rem !important;
    font-size: 15px !important;
    min-width: 140px !important;
    min-height: 48px !important;
  }

  .btn-nf-prestige .stk-button,
  .btn-nf-prestige .wp-block-button__link,
  .btn-nf-prestige .ct-button {
    padding: 0 1.6rem !important;
    font-size: 16px !important;
    min-width: 180px !important;
    min-height: 54px !important;
  }

  .woocommerce-checkout ul#shipping_method > li,
  .woocommerce-cart ul#shipping_method > li,
  .woocommerce-cart .cart_totals ul#shipping_method > li {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.375rem;
  }

  .woocommerce-checkout ul#shipping_method > li > label,
  .woocommerce-cart ul#shipping_method > li > label,
  .woocommerce-cart .cart_totals ul#shipping_method > li > label {
    width: 100%;
    padding: 0.875rem 1rem;
  }

  .ct-product-sale-countdown { padding: 18px 16px; gap: 14px; }
  .ct-product-sale-countdown [data-date] { gap: 10px; }
  .ct-product-sale-countdown [data-date] > span b { font-size: 1.5rem; }

  .woocommerce table.remises_table th,
  .woocommerce table.remises_table td {
    padding: 8px 6px;
    font-size: 13px;
  }
  .woocommerce table.remises_table thead th { font-size: 11px; }

  a.nf-promo-en-cours { padding: 0.4em 0.85em; font-size: 0.8em; }

  .ct-product-info {
    grid-template-columns: 1fr 1fr !important;
  }
  .ct-specs {
    grid-column: 1 / -1 !important;
  }

  .postid-33187 .woocommerce-product-gallery::before {
    font-size: 11px;
    padding: 6px 12px;
    top: 10px;
    left: 10px;
  }
}

/* --- 18.2 Mobile (max-width: 480px) --- */
@media (max-width: 480px) {

  .btn-nf-authentique .stk-button,
  .btn-nf-authentique .wp-block-button__link,
  .btn-nf-authentique .ct-button,
  .btn-nf-miel .stk-button,
  .btn-nf-miel .wp-block-button__link,
  .btn-nf-miel .ct-button,
  .btn-nf-terroir .stk-button,
  .btn-nf-terroir .wp-block-button__link,
  .btn-nf-terroir .ct-button,
  .btn-nf-naturel .stk-button,
  .btn-nf-naturel .wp-block-button__link,
  .btn-nf-naturel .ct-button,
  .btn-nf-subtil .stk-button,
  .btn-nf-subtil .wp-block-button__link,
  .btn-nf-subtil .ct-button {
    padding: 0 1.2rem !important;
    font-size: 15px !important;
    min-width: 120px !important;
    min-height: 48px !important;
  }

  .btn-nf-prestige .stk-button,
  .btn-nf-prestige .wp-block-button__link,
  .btn-nf-prestige .ct-button {
    padding: 0 1.4rem !important;
    font-size: 16px !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 380px !important;
    min-height: 54px !important;
  }

  .ct-product-sale-countdown [data-date] { gap: 8px; }
  .ct-product-sale-countdown [data-date] > span { padding: 10px 6px; }
  .ct-product-sale-countdown [data-date] > span b { font-size: 1.35rem; }
  .ct-product-sale-countdown [data-date] > span small { font-size: 0.63rem; }
  .ct-product-sale-countdown [data-date] > span:nth-child(4) { display: none !important; }

  /* Tableau remises en cartes */
  .woocommerce table.remises_table,
  .woocommerce table.remises_table thead,
  .woocommerce table.remises_table tbody,
  .woocommerce table.remises_table tr,
  .woocommerce table.remises_table th,
  .woocommerce table.remises_table td {
    display: block;
    width: 100%;
  }

  .woocommerce table.remises_table {
    background: transparent;
    border: 0 !important;
  }

  .woocommerce table.remises_table thead {
    position: absolute;
    left: -9999px;
    visibility: hidden;
  }

  .woocommerce table.remises_table tbody tr {
    margin-bottom: 12px;
    border: 1px solid var(--nf-border-light);
    border-radius: var(--nf-radius-sm);
    overflow: hidden;
    background: var(--nf-creme-50);
    box-shadow: none;
  }

  .woocommerce table.remises_table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 14px;
    border: none !important;
    border-bottom: 1px solid var(--nf-border-light) !important;
    text-align: right;
  }

  .woocommerce table.remises_table td:last-child {
    border-bottom: none !important;
    background: var(--nf-creme-100);
    font-weight: 700;
    color: var(--nf-vert-700);
    font-size: 15px;
  }

  .woocommerce table.remises_table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--nf-encre-700);
    text-align: left;
    flex-shrink: 0;
    margin-right: 10px;
  }

  a.nf-promo-en-cours {
    width: 100%;
    min-height: 44px;
    padding: 0.5em 1em;
    font-size: 0.9em;
    border-radius: var(--nf-radius-full);
    margin: 0.5rem 0;
    animation: none;
  }
  a.nf-promo-en-cours:active { transform: translateY(0); }

  .ct-product-info {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .ct-specs { grid-column: auto !important; }
}

/* --- 18.3 Desktop (min-width: 769px) — survol du countdown --- */
@media (min-width: 769px) {
  .ct-product-sale-countdown:hover {
    transform: translateY(-2px);
    box-shadow: var(--nf-shadow-sm);
  }
}

/* --- 18.4 Écrans tactiles : pas d'effets de survol --- */
@media (hover: none) {
  html body ul.products li.product:hover,
  .nf-product-card:hover,
  .woosb-products[class*="woosb-products-layout-grid"] .woosb-product:hover {
    transform: none !important;
    box-shadow: none !important;
  }
}


/* ========================================================
   19. ACCESSIBILITÉ — prefers-reduced-motion
   ======================================================== */
@media (prefers-reduced-motion: reduce) {

  .btn-nf-authentique .stk-button,
  .btn-nf-authentique .wp-block-button__link,
  .btn-nf-authentique .ct-button,
  .btn-nf-miel .stk-button,
  .btn-nf-miel .wp-block-button__link,
  .btn-nf-miel .ct-button,
  .btn-nf-terroir .stk-button,
  .btn-nf-terroir .wp-block-button__link,
  .btn-nf-terroir .ct-button,
  .btn-nf-naturel .stk-button,
  .btn-nf-naturel .wp-block-button__link,
  .btn-nf-naturel .ct-button,
  .btn-nf-prestige .stk-button,
  .btn-nf-prestige .wp-block-button__link,
  .btn-nf-prestige .ct-button,
  .btn-nf-subtil .stk-button,
  .btn-nf-subtil .wp-block-button__link,
  .btn-nf-subtil .ct-button,
  html body .stk-button,
  html body .button,
  html body ul.products li.product,
  .nf-product-card {
    transition: none !important;
    animation: none !important;
  }

  .btn-nf-prestige .stk-button::after,
  .btn-nf-prestige .wp-block-button__link::after {
    display: none !important;
  }

  .shipping-strip-inner,
  .shipping-banner {
    animation: none !important;
    transform: none !important;
  }

  .postid-31836 .nf-pack-remise,
  dd.variation-Rduction > p:nth-child(1) > span:nth-child(1) {
    animation: none !important;
  }

  a.nf-promo-en-cours,
  a.nf-promo-en-cours--news,
  a.nf-promo-en-cours--news .nf-promo-news-icon {
    animation: none !important;
    transition: none !important;
  }
  a.nf-promo-en-cours::before { display: none; }

  .ct-specs,
  .ct-product-review-pros,
  .ct-product-review-cons,
  .ct-product-sale-countdown {
    transition: none !important;
  }

  .ct-product-actions-group .ct-button {
    transition: none !important;
  }
}

/* ========================================================
   20. SPÉCIFIQUE THÈME ENFANT
   ======================================================== */

/* --- 20.1 Newsletter Fluent Forms --- */
.nf-newsletter {
  max-width: 880px;
  margin: 0 auto;
  padding: 2rem 1.75rem;
  background: var(--nf-creme-50);
  /*border: 1px solid var(--nf-border-light);*/
  border-radius: var(--nf-radius-md);
  box-shadow: none;
}

.nf-newsletter h3 {
  margin: 0 0 0.5rem 0;
  color: var(--nf-encre-950);
  font-weight: 400;
}

.nf-newsletter p:first-of-type {
  margin-bottom: 1.5rem;
  line-height: 1.6;
  color: var(--nf-encre-700);
}

.nf-newsletter .fluent_form_4 input[type="email"],
.nf-newsletter .fluent_form_4 input[type="text"] {
  min-height: 52px !important;
  padding: 0 1.1rem !important;
  border: 1px solid var(--nf-border-light-strong) !important;
  border-radius: var(--nf-radius-sm) !important;
  background: var(--nf-creme-100) !important;
  color: var(--nf-encre-950) !important;
  box-shadow: none !important;
}

.nf-newsletter .fluent_form_4 input:focus-visible {
  outline: none !important;
  border-color: var(--nf-or-800) !important;
  box-shadow: 0 0 0 3px rgba(122, 84, 39, 0.18) !important;
}

.nf-newsletter .fluent_form_4 button.ff-btn.btn-nf-authentique {
  font-family: 'Nunito Sans', system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  padding: 0 1.6rem !important;
  border: 1px solid transparent !important;
  border-radius: var(--nf-radius-full) !important;
  background: var(--nf-gradient-gold) !important;
  color: var(--nf-noir-950) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 52px !important;
  line-height: 1.2 !important;
  box-shadow: var(--nf-shadow-md) !important;
  transition: transform 0.25s var(--nf-ease), box-shadow 0.25s var(--nf-ease) !important;
  position: relative !important;
}

.nf-newsletter .fluent_form_4 button.ff-btn.btn-nf-authentique:hover {
  box-shadow: var(--nf-shadow-lg) !important;
  background: var(--nf-gradient-gold) !important;
  transform: translateY(-2px) !important;
}

.nf-newsletter .fluent_form_4 button.ff-btn.btn-nf-authentique:active {
  transform: translateY(0) !important;
}

.nf-newsletter .fluent_form_4 button.ff-btn.btn-nf-authentique:focus-visible {
  outline: 2px solid var(--nf-or-800) !important;
  outline-offset: 3px !important;
}

.nf-newsletter .fluent_form_4,
.nf-newsletter .fluent_form_4 .ff_form_instance,
.nf-newsletter .fluent_form_4 .ff-form,
.nf-newsletter .fluent_form_4 .frm-fluent-form {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.nf-newsletter p.no-spam-text {
  margin-top: 0.4rem;
  margin-bottom: 0;
  color: var(--nf-encre-700) !important;
  font-size: 13px !important;
  font-style: italic !important;
}

/* --- 20.2 Produit 31068 (bundle) --- */
@media (max-width: 768px) {
  #product-31068 .woosb-products .woosb-product .woosb-name {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--nf-encre-950);
  }

  #product-31068 .woosb-products .woosb-product .woosb-price .woosb-price-ori,
  #product-31068 .woosb-price-ori {
    font-size: 1rem !important;
    font-weight: 600;
  }

  .nf-newsletter {
    padding: 1.5rem 1.25rem;
  }
}

/* --- 20.3 Message Dijon au checkout (injecté par functions.php) --- */
.nf-dijon-notice {
  margin: 0 0 1rem;
  padding: 0.9rem 1.1rem;
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  border-left: 2px solid var(--nf-or-500);
  border-radius: var(--nf-radius-sm);
  color: var(--nf-encre-950);
  line-height: 1.6;
}

.nf-dijon-notice strong {
  color: var(--nf-encre-950);
  font-weight: 700;
}

/* --- 20.4 Accessibilité complémentaire --- */
@media (prefers-reduced-motion: reduce) {
  .pp-tracking-section * {
    transition: none !important;
    animation: none !important;
  }
}

/* ==========================================================================
   21. CORRECTIF DIMENSIONS DES BOUTONS — boutique + mega menu (v4.0.1)
   ========================================================================== */

/* --- 21.1 Cartes produits : prix + bouton sur une ligne quand ça tient,
   sinon le bouton passe dessous en pleine largeur. Jamais de texte sur 2 lignes. --- */
html body ul.products li.product .ct-woo-card-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.6rem 0.75rem !important;
  padding: 0.85rem 1rem 1rem !important;
  border-top: 1px solid var(--nf-border-light) !important;
}

html body ul.products li.product .ct-woo-card-actions .price {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0 !important;
}

/* Filet vertical Blocksy entre prix et bouton : inutile quand le bouton passe dessous */
html body ul.products li.product .ct-woo-card-actions .price::after {
  display: none !important;
}

html body ul.products li.product .ct-woo-card-actions .button,
html body ul.products li.product .ct-woo-card-actions .added_to_cart {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 0 1.1rem !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
}

/* Lien « Voir le panier » après ajout : style contour, compact */
html body ul.products li.product .ct-woo-card-actions .added_to_cart {
  background: transparent !important;
  border: 1px solid var(--nf-border-light-strong) !important;
  color: var(--nf-encre-950) !important;
  box-shadow: none !important;
  border-radius: var(--nf-radius-full) !important;
  font-weight: 700 !important;
}

/* --- 21.2 Mega menu boutique : boutons compacts, jamais plus larges que la colonne --- */
html body .nf-mega-boutique [class*="btn-nf-"] .stk-button,
html body .nf-mega-boutique [class*="btn-nf-"] .wp-block-button__link,
html body .nf-mega-boutique .stk-block-button:not([class*="btn-nf-"]) .stk-button {
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 40px !important;
  padding: 0 1.15rem !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  box-shadow: var(--nf-shadow-sm) !important;
}

html body .nf-mega-boutique [class*="btn-nf-"] .stk-button:hover,
html body .nf-mega-boutique [class*="btn-nf-"] .wp-block-button__link:hover {
  box-shadow: var(--nf-shadow-md) !important;
}

html body .nf-mega-boutique .stk-button-group {
  gap: 0.5rem !important;
}

/* ==========================================================================
   22. CORRECTIF RENDU DE TOUS LES BOUTONS + ESPACEMENT BOUTIQUE (v4.0.2)
   ========================================================================== */

/* --- 22.1 Extrémités des pilules en dégradé
   Le fond était peint sous la bordure transparente de 1px : le dégradé s'y répétait
   et laissait des éclats de couleur à gauche et à droite. :is() porte la spécificité
   d'un id, ce qui passe devant toutes les règles de boutons, survol compris. --- */
html body :is(
  #place_order,
  .button,
  .stk-button,
  .wp-block-button__link,
  .wp-element-button,
  .ct-button,
  .single_add_to_cart_button,
  .checkout-button,
  .ff-btn-submit,
  .nf-product-cta
) {
  background-origin: border-box !important;
  background-repeat: no-repeat !important;
}

/* --- 22.2 Ombre floue native de Blocksy (copie du bouton décalée sous lui)
   Elle s'ajoutait à l'ombre or de la charte et créait un halo irrégulier. --- */
html body :is(#place_order, .button, .ct-button, .wp-element-button)::before {
  display: none !important;
}

/* --- 22.3 Grille boutique : espacement resserré --- */
html body ul.products {
  --grid-columns-gap: 24px;
  column-gap: 24px !important;
  row-gap: 28px !important;
}

@media (max-width: 689.98px) {
  html body ul.products {
    --grid-columns-gap: 14px;
    column-gap: 14px !important;
    row-gap: 18px !important;
  }
}

/* --- 22.4 Zone prix + bouton plus compacte --- */
html body ul.products li.product .ct-woo-card-actions {
  gap: 0.5rem 0.75rem !important;
  padding: 0.75rem 0.9rem 0.9rem !important;
}


/* ========================================================
   20. PAGE BOUTIQUE — INTRO (.nf-shop)
   Markup : bloc HTML de la page Boutique (une seule ligne HTML).
   WooCommerce filtre ce contenu : attributs SVG (fill, stroke…) et
   balises <circle>/<rect> retirés → icônes en <path> uniquement,
   tout le style des icônes est porté ici.
   ======================================================== */
.nf-shop {
  --nfs-title: 'EFCO Brookshire', ct_font_e_f_c_o__brook_shire, Georgia, serif;
  --nfs-body: 'Nunito Sans', system-ui, -apple-system, sans-serif;
  font-family: var(--nfs-body);
  color: var(--nf-encre-950, #1C150E);
  margin: 0 0 clamp(1.75rem, 4vw, 2.75rem);
  text-align: left;
}

:where(.nf-shop) *,
:where(.nf-shop) *::before,
:where(.nf-shop) *::after { box-sizing: border-box; }
:where(.nf-shop) :where(p, h2, h3, ul, li) { margin: 0; padding: 0; }
:where(.nf-shop) ul { list-style: none; }

/* Listes : neutralise le padding-left 2.5em du thème (spécificité plus forte que :where) */
.nf-shop ul.nf-shop__grid,
.nf-shop ul.nf-shop__trust {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
.nf-shop ul.nf-shop__grid > li,
.nf-shop ul.nf-shop__trust > li {
  margin: 0;
  padding-left: 0;
}
.nf-shop ul.nf-shop__grid > li::before,
.nf-shop ul.nf-shop__trust > li::before { content: none; }

/* Icônes : style porté par le CSS (attributs SVG filtrés par WP) */
.nf-shop svg {
  display: block;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* --- 20.1 Panneau noir ébène --- */
.nf-shop .nf-shop__panel {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(1.4rem, 4vw, 2.25rem);
  border-radius: var(--nf-radius-md, 18px);
  border: 1px solid var(--nf-border-dark, rgba(201, 160, 99, 0.22));
  background:
    radial-gradient(110% 90% at 100% 0%, rgba(201, 160, 99, 0.16), transparent 55%),
    linear-gradient(150deg, var(--nf-brun-800, #1E1710) 0%, var(--nf-noir-950, #0D0A07) 70%);
  box-shadow: var(--nf-shadow-sm, 0 8px 22px -14px rgba(28, 21, 14, 0.35));
  color: var(--nf-creme-100, #F5ECDF);
}

/* Trame alvéolée or, fondue vers la gauche pour garder le texte lisible */
.nf-shop .nf-shop__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66v34M28 0v34L0 50v34l28 16 28-16V50L28 34' fill='none' stroke='%23C9A063' stroke-opacity='.14' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 42px 75px;
  -webkit-mask-image: linear-gradient(105deg, transparent 35%, #000 100%);
  mask-image: linear-gradient(105deg, transparent 35%, #000 100%);
}

/* Liseré or en haut du panneau */
.nf-shop .nf-shop__panel::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 0;
  height: 1px;
  background: var(--nf-gradient-edge, linear-gradient(90deg, transparent, rgba(201, 160, 99, 0.7), transparent));
}

.nf-shop .nf-shop__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.9rem;
  margin-bottom: 1.1rem;
  border: 1px solid var(--nf-border-dark-strong, rgba(201, 160, 99, 0.45));
  border-radius: var(--nf-radius-full, 100px);
  background: var(--nf-tint-gold, rgba(201, 160, 99, 0.10));
  color: var(--nf-or-300, #E4C893);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
}
.nf-shop .nf-shop__eyebrow svg { width: 13px; height: 14px; stroke-width: 2; }

.nf-shop .nf-shop__lead {
  max-width: 62ch;
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  line-height: 1.75;
  color: var(--nf-creme-100, #F5ECDF);
}
.nf-shop .nf-shop__lead strong {
  color: var(--nf-or-300, #E4C893);
  font-weight: 700;
}

.nf-shop .nf-shop__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  margin-top: 1.4rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--nf-border-dark, rgba(201, 160, 99, 0.22));
}
.nf-shop .nf-shop__trust li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--nf-creme-200, #EADDC8);
}
.nf-shop .nf-shop__trust svg {
  width: 18px;
  height: 18px;
  color: var(--nf-or-500, #C9A063);
}

/* --- 20.2 En-tête « Explorer par univers » --- */
.nf-shop .nf-shop__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: clamp(1.6rem, 3.5vw, 2.25rem) 0 1rem;
}
.nf-shop .nf-shop__title {
  font-family: var(--nfs-title);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  line-height: 1.15;
  color: var(--nf-encre-950, #1C150E);
  white-space: nowrap;
}
.nf-shop .nf-shop__head::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--nf-or-500, #C9A063), transparent);
}

/* --- 20.3 Cartes univers ---
   auto-fit : suit la largeur réelle de la colonne (sidebar incluse)
   → 1 col mobile · 2 cols colonne étroite · 3 cols colonne large */
.nf-shop .nf-shop__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 0.85rem;
}

.nf-shop a.nf-shop__cat {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  height: 100%;
  padding: 1rem;
  border: 1px solid var(--nf-border-light, rgba(28, 21, 14, 0.14));
  border-radius: var(--nf-radius-sm, 10px);
  background: var(--nf-creme-50, #FBF6EE);
  color: var(--nf-encre-950, #1C150E);
  text-decoration: none;
  transition: transform 0.35s var(--nf-ease, ease), box-shadow 0.35s var(--nf-ease, ease), border-color 0.35s var(--nf-ease, ease);
}

/* Liseré signature — défini une seule fois */
.nf-shop a.nf-shop__cat::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: var(--nf-gradient-edge, linear-gradient(90deg, transparent, rgba(201, 160, 99, 0.7), transparent));
  transform: scaleX(0.3);
  opacity: 0.6;
  transition: transform 0.45s var(--nf-ease, ease), opacity 0.45s var(--nf-ease, ease);
}

.nf-shop .nf-shop__icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--nf-noir-950, #0D0A07);
  border: 1px solid var(--nf-or-700, #9A6B35);
  color: var(--nf-or-300, #E4C893);
  transition: background 0.35s var(--nf-ease, ease), color 0.35s var(--nf-ease, ease), border-color 0.35s var(--nf-ease, ease);
}
.nf-shop .nf-shop__icon svg { width: 24px; height: 24px; }

.nf-shop .nf-shop__txt { min-width: 0; }

.nf-shop .nf-shop__name {
  display: block;
  font-family: var(--nfs-title);
  font-weight: 400;
  font-size: 1.22rem;
  line-height: 1.15;
  color: var(--nf-encre-950, #1C150E);
  margin-bottom: 0.2rem;
}
.nf-shop .nf-shop__desc {
  display: block;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--nf-encre-700, #5B4A37);
}

.nf-shop .nf-shop__arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--nf-border-dark-strong, rgba(201, 160, 99, 0.45));
  color: var(--nf-or-700, #9A6B35);
  transition: background 0.35s var(--nf-ease, ease), color 0.35s var(--nf-ease, ease), border-color 0.35s var(--nf-ease, ease), transform 0.35s var(--nf-ease, ease);
}
.nf-shop .nf-shop__arrow svg { width: 14px; height: 14px; stroke-width: 2.2; }

/* États */
.nf-shop a.nf-shop__cat:hover,
.nf-shop a.nf-shop__cat:focus-visible {
  transform: translateY(-4px);
  border-color: var(--nf-border-dark-strong, rgba(201, 160, 99, 0.45));
  box-shadow: var(--nf-shadow-md, 0 6px 20px -8px rgba(201, 160, 99, 0.55));
}
.nf-shop a.nf-shop__cat:hover::after,
.nf-shop a.nf-shop__cat:focus-visible::after {
  transform: scaleX(1);
  opacity: 1;
}
.nf-shop a.nf-shop__cat:hover .nf-shop__icon,
.nf-shop a.nf-shop__cat:focus-visible .nf-shop__icon {
  background: var(--nf-gradient-gold, linear-gradient(135deg, #E4C893 0%, #C9A063 45%, #A87A42 100%));
  border-color: var(--nf-or-600, #A87A42);
  color: var(--nf-noir-950, #0D0A07);
}
.nf-shop a.nf-shop__cat:hover .nf-shop__arrow,
.nf-shop a.nf-shop__cat:focus-visible .nf-shop__arrow {
  background: var(--nf-noir-950, #0D0A07);
  border-color: var(--nf-noir-950, #0D0A07);
  color: var(--nf-or-300, #E4C893);
  transform: translateX(3px);
}
.nf-shop a.nf-shop__cat:focus-visible {
  outline: 2px solid var(--nf-or-600, #A87A42);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .nf-shop *,
  .nf-shop *::before,
  .nf-shop *::after { transition: none !important; }
  .nf-shop a.nf-shop__cat:hover,
  .nf-shop a.nf-shop__cat:focus-visible,
  .nf-shop a.nf-shop__cat:hover .nf-shop__arrow { transform: none; }
}

/* ========================================================
   22. BLOC « POUR ALLER PLUS LOIN » (fiche produit)
   Rendu par nf_product_discover_block() — functions.php §19.
   Relie chaque fiche à son dossier, son guide et son avis détaillé.
   ======================================================== */
.nf-discover {
  margin: 32px 0 8px;
  padding: 22px 22px 18px;
  background: var(--nf-creme-50);
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-md);
}
.nf-discover__title {
  margin: 0 0 14px;
  font-size: 1.35rem;
  color: var(--nf-encre-950);
}
.nf-discover__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.nf-discover__link {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--nf-border-light);
  border-radius: var(--nf-radius-sm);
  background: #fff;
  color: var(--nf-encre-950);
  text-decoration: none;
  transition: border-color 0.2s var(--nf-ease), transform 0.2s var(--nf-ease);
}
.nf-discover__link:hover,
.nf-discover__link:focus-visible {
  border-color: var(--nf-or-500);
  transform: translateY(-1px);
}
.nf-discover__link:focus-visible {
  outline: 2px solid var(--nf-or-800);
  outline-offset: 2px;
}
.nf-discover__type {
  flex: 0 0 auto;
  padding: 3px 10px;
  border-radius: var(--nf-radius-full);
  background: var(--nf-tint-gold);
  color: var(--nf-or-800);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.nf-discover__label {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
}
.nf-discover__arrow {
  flex: 0 0 auto;
  color: var(--nf-or-800);
}
@media (min-width: 768px) {
  .nf-discover__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .nf-discover__link { transition: none; }
  .nf-discover__link:hover { transform: none; }
}


/* ========================================================
   23. GRILLE BOUTIQUE MOBILE — cartes plus larges (ajout 28/09/2026)
   Mesuré en ligne à 430px : marges de page 26px, espace 14px entre les cartes,
   20px de marge intérieure dans chaque carte : il restait 140px pour le titre
   (22px, jusqu'à 5 lignes). Cible : marges 16px, espace 12px, marge intérieure
   12px, soit 185px de texte par carte, titre à 17px sur 4 lignes maximum.
   ======================================================== */
@media (max-width: 689.98px) {

  /* 23.1 Marges de page réduites sur les archives produits uniquement
     (le header et le footer gardent le réglage Blocksy) */
  body.woocommerce-archive #main {
    --theme-container-edge-spacing: calc(100vw - 32px);
    --theme-container-width-base: calc(100vw - 32px);
    --theme-container-width: min(100%, calc(100vw - 32px));
  }

  /* 23.2 Espacement entre les cartes */
  html body ul.products {
    --grid-columns-gap: 12px;
    --grid-rows-gap: 16px;
    column-gap: 12px !important;
    row-gap: 16px !important;
  }

  /* 23.3 Marge intérieure des cartes : 20px -> 12px
     (image et zone d'achat restent bord à bord) */
  html body ul.products[data-products="type-2"] li.product {
    padding-inline: 12px;
    padding-bottom: 12px;
  }

  html body ul.products[data-products="type-2"] li.product figure,
  html body ul.products[data-products="type-2"] li.product .ct-woo-card-actions {
    width: calc(100% + 24px);
    margin-inline: -12px;
  }

  html body ul.products[data-products="type-2"] li.product .ct-woo-card-actions:last-child {
    margin-bottom: -12px;
  }

  html body ul.products li.product figure {
    --product-element-spacing: 12px;
  }

  /* 23.4 Titre : 17px, 4 lignes maximum (les noms actuels tiennent dès 375px) */
  html body ul.products li.product .woocommerce-loop-product__title {
    --theme-font-size: 17px;
    --theme-line-height: 1.2;
    font-size: 17px;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
  }

  /* 23.5 Zone prix + bouton plus compacte (bouton toujours >= 44px de haut) */
  html body ul.products li.product .ct-woo-card-actions {
    gap: 0.5rem !important;
    padding: 0.7rem 0.75rem 0.75rem !important;
  }

  /* Blocksy impose 55px de haut au prix : inutile quand il est seul sur sa ligne */
  html body ul.products li.product .ct-woo-card-actions .price {
    font-size: 1.125rem;
    min-height: 0;
  }

  html body ul.products li.product .ct-woo-card-actions .button,
  html body ul.products li.product .ct-woo-card-actions .added_to_cart {
    padding: 0 0.75rem !important;
    font-size: 13.5px !important;
  }

  /* 23.6 Icônes sur l'image : seul le cœur reste sur mobile.
     Comparer et Vue rapide couvraient la photo et ouvrent des vues
     peu utiles sur un téléphone. Supprimer ce bloc pour les réafficher. */
  html body ul.products .ct-woo-card-extra .ct-compare-button-archive,
  html body ul.products .ct-woo-card-extra .ct-open-quick-view {
    display: none;
  }

  html body ul.products .ct-woo-card-extra[data-type="type-1"] {
    top: 10px;
    inset-inline-end: 10px;
  }
}

/* 23.7 Très petits écrans (320px) : le libellé « Ajouter au panier » reste entier */
@media (max-width: 359.98px) {
  html body ul.products li.product .ct-woo-card-actions .button,
  html body ul.products li.product .ct-woo-card-actions .added_to_cart {
    padding: 0 0.5rem !important;
    font-size: 12.5px !important;
  }
}
