/*
Theme Name: Eatalia Premium v6
Theme URI: https://eatalia-perriers.fr
Author: Eatalia Dev
Description: Refonte graphique 2026 — palette "Trattoria Moderne" chaude et lumineuse (ivoire, terracotta, olive, ocre), typographie éditoriale cinétique, glass morphism, scroll-driven animations, container queries, 100% modulable via le Customizer. Quatre palettes prédéfinies (cream, terra, olive, midnight) basculables en un clic. v6.1 : templates WooCommerce mis à jour pour WC 9.4+, CSS WooCommerce dédié, page panier/checkout refondues, rayons modulables.
Version: 6.27.4
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: eatalia
Tags: food-and-drink, e-commerce, custom-colors, custom-logo, custom-menu, wide-blocks, full-site-editing
WC requires at least: 8.0
WC tested up to: 10.7
*/

/* ══════════════════════════════════════════════════════════════════
   DESIGN SYSTEM — TRATTORIA MODERNE 2026
   Architecture à 3 niveaux : Primitives → Sémantiques → Composants.
   100% overridable par le Customizer (eap_inject_dynamic_css()).
   ══════════════════════════════════════════════════════════════════ */
:root {
  /* ── 1 · PRIMITIVES — palette chaude italienne ── */
  --clr-cream-50:   #FBF8F2;
  --clr-cream-100:  #F6F0E4;
  --clr-cream-200:  #ECE3D0;
  --clr-cream-300:  #DDD0B6;
  --clr-cream-500:  #C9B695;

  --clr-terra-50:   #FDF2EC;
  --clr-terra-100:  #F7D9C8;
  --clr-terra-400:  #D87755;
  --clr-terra-500:  #C4572E;  /* Terracotta signature */
  --clr-terra-600:  #A64721;
  --clr-terra-700:  #7E321A;

  --clr-olive-100:  #E4E3D1;
  --clr-olive-400:  #8A9068;
  --clr-olive-500:  #6B7248;
  --clr-olive-600:  #535836;

  --clr-ochre-400:  #E3B04B;
  --clr-ochre-500:  #CE9426;  /* Accent or-safran */
  --clr-ochre-600:  #A87615;

  --clr-ink-400:    #5A4A3A;
  --clr-ink-500:    #3D3024;  /* Texte principal — pas noir */
  --clr-ink-700:    #26201A;
  --clr-ink-900:    #1A1510;

  --clr-white:      #FFFFFF;
  --clr-off-white:  #F9F6F0;

  /* ── 2 · SÉMANTIQUES — palette "cream" par défaut (chaude/lumineuse) ── */
  --col-primary:       var(--clr-terra-500);
  --col-primary-dark:  var(--clr-terra-600);
  --col-primary-soft:  var(--clr-terra-100);
  --col-primary-glow:  rgba(196, 87, 46, 0.22);

  --col-accent:        var(--clr-ochre-500);
  --col-accent-soft:   #FDF1D4;

  --col-bg:            var(--clr-cream-50);         /* fond page */
  --col-bg-alt:        var(--clr-cream-100);        /* section alternée */
  --col-surface:       var(--clr-white);            /* cards */
  --col-surface-2:     var(--clr-cream-100);        /* surface surélevée */

  --col-ink:           var(--clr-ink-500);          /* texte principal */
  --col-ink-soft:      var(--clr-ink-400);          /* texte secondaire */
  --col-muted:         #8A7865;                     /* texte muted */
  --col-border:        rgba(61, 48, 36, 0.10);      /* bordures fines */
  --col-border-strong: rgba(61, 48, 36, 0.22);

  /* Compat v5 — certains templates utilisent ces noms */
  --col-dark:          var(--clr-ink-500);
  --col-dark-soft:     var(--clr-ink-700);
  --col-surface2:      var(--clr-cream-200);
  --col-off-white:     var(--clr-off-white);

  /* ── 3 · TYPOGRAPHIE FLUIDE — clamp() partout ── */
  --font-display: 'Fraunces', 'Cormorant Garamond', Georgia, serif;
  --font-heading: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;

  --step--2: clamp(0.72rem, 0.70rem + 0.10vw, 0.78rem);
  --step--1: clamp(0.83rem, 0.80rem + 0.15vw, 0.92rem);
  --step-0:  clamp(0.95rem, 0.92rem + 0.20vw, 1.06rem);
  --step-1:  clamp(1.10rem, 1.04rem + 0.30vw, 1.28rem);
  --step-2:  clamp(1.30rem, 1.20rem + 0.50vw, 1.60rem);
  --step-3:  clamp(1.60rem, 1.40rem + 1.00vw, 2.20rem);
  --step-4:  clamp(2.00rem, 1.70rem + 1.50vw, 3.00rem);
  --step-5:  clamp(2.60rem, 2.10rem + 2.50vw, 4.20rem);
  --step-6:  clamp(3.20rem, 2.50rem + 3.50vw, 5.80rem);
  --step-7:  clamp(4.00rem, 3.00rem + 5.00vw, 7.50rem);

  /* ── 4 · ESPACES FLUIDES ── */
  --sp-3xs: clamp(0.25rem, 0.23rem + 0.10vw, 0.31rem);
  --sp-2xs: clamp(0.50rem, 0.47rem + 0.15vw, 0.62rem);
  --sp-xs:  clamp(0.75rem, 0.70rem + 0.25vw, 0.94rem);
  --sp-s:   clamp(1.00rem, 0.95rem + 0.25vw, 1.25rem);
  --sp-m:   clamp(1.50rem, 1.42rem + 0.40vw, 1.87rem);
  --sp-l:   clamp(2.00rem, 1.90rem + 0.50vw, 2.50rem);
  --sp-xl:  clamp(3.00rem, 2.85rem + 0.75vw, 3.75rem);
  --sp-2xl: clamp(4.00rem, 3.80rem + 1.00vw, 5.00rem);
  --sp-3xl: clamp(6.00rem, 5.70rem + 1.50vw, 7.50rem);

  /* Alias v5 */
  --sp-sm: var(--sp-s); --sp-md: var(--sp-m); --sp-lg: var(--sp-xl); --sp-2xl: var(--sp-3xl);

  /* ── 5 · LAYOUT & FORMES ── */
  --container-max: 1320px;
  --container-narrow: 860px;
  --container-wide: 1600px;
  --container-pad: clamp(1.25rem, 5vw, 3rem);

  --radius-sm:  8px;
  --radius:     16px;
  --radius-lg:  28px;
  --radius-xl:  48px;
  --radius-pill: 999px;

  /* ── 6 · OMBRES CHAUDES (pas de noir brut) ── */
  --shadow-xs: 0 1px 2px rgba(61, 48, 36, 0.05);
  --shadow-sm: 0 2px 6px rgba(61, 48, 36, 0.06), 0 1px 2px rgba(61, 48, 36, 0.04);
  --shadow:    0 8px 20px rgba(61, 48, 36, 0.08), 0 2px 6px rgba(61, 48, 36, 0.05);
  --shadow-lg: 0 18px 42px rgba(61, 48, 36, 0.12), 0 6px 14px rgba(61, 48, 36, 0.07);
  --shadow-xl: 0 32px 64px rgba(61, 48, 36, 0.18), 0 12px 24px rgba(61, 48, 36, 0.10);
  --shadow-glow: 0 0 0 6px var(--col-primary-glow);

  /* ── 7 · TRANSITIONS ── */
  --ease:        cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-smooth: cubic-bezier(0.65, 0, 0.35, 1);
  --dur: 0.35s;
  --dur-slow: 0.6s;

  /* ── 8 · SECTIONS / GRID ── */
  --section-pad-y: clamp(4rem, 8vw, 8rem);
  --grid-cols-desktop: 4;
  --grid-cols-tablet: 2;
  --grid-gap: 1.5rem;
}

/* ══════════════════════════════════════════════════════════════════
   PALETTES PRÉDÉFINIES — activables via <body data-palette="...">
   ══════════════════════════════════════════════════════════════════ */

/* TERRA — terracotta dominant, plus saturé */
[data-palette="terra"] {
  --col-bg:        #F8EDE3;
  --col-bg-alt:    #F1DFCC;
  --col-surface:   #FFFAF2;
  --col-surface-2: #EED7BE;
  --col-ink:       var(--clr-ink-700);
  --col-primary:   var(--clr-terra-600);
  --col-accent:    var(--clr-ochre-400);
}

/* OLIVE — vert olive méditerranéen, très sophistiqué */
[data-palette="olive"] {
  --col-bg:        #F4F2E6;
  --col-bg-alt:    #E8E5D2;
  --col-surface:   #FBFAF1;
  --col-surface-2: #DCD9C2;
  --col-ink:       #2F3520;
  --col-primary:   var(--clr-olive-500);
  --col-primary-dark: var(--clr-olive-600);
  --col-primary-soft: var(--clr-olive-100);
  --col-primary-glow: rgba(107, 114, 72, 0.22);
  --col-accent:    var(--clr-terra-500);
}

/* MIDNIGHT — sombre chaud (pour qui veut revenir au sombre mais sans noir) */
[data-palette="midnight"] {
  --col-bg:        #1E1A14;
  --col-bg-alt:    #2A2319;
  --col-surface:   #322A20;
  --col-surface-2: #3E3426;
  --col-ink:       #F6F0E4;
  --col-ink-soft:  #D0C4AD;
  --col-muted:     #9D8E76;
  --col-border:    rgba(246, 240, 228, 0.10);
  --col-border-strong: rgba(246, 240, 228, 0.20);
  --col-primary:   var(--clr-terra-400);
  --col-accent:    var(--clr-ochre-400);
  --shadow:    0 8px 20px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 18px 42px rgba(0, 0, 0, 0.55);
  --shadow-xl: 0 32px 64px rgba(0, 0, 0, 0.7);
}

/* Dark mode natif pour les users qui le préfèrent (uniquement si pas de palette forcée) */
@media (prefers-color-scheme: dark) {
  [data-palette="auto"] {
    --col-bg:        #1E1A14;
    --col-bg-alt:    #2A2319;
    --col-surface:   #322A20;
    --col-surface-2: #3E3426;
    --col-ink:       #F6F0E4;
    --col-ink-soft:  #D0C4AD;
    --col-muted:     #9D8E76;
    --col-border:    rgba(246, 240, 228, 0.10);
    --col-border-strong: rgba(246, 240, 228, 0.20);
  }
}

/* ══════════════════════════════════════════════════════════════════
   RESET & BASE
   ══════════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.65;
  color: var(--col-ink);
  background: var(--col-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  min-height: 100svh;
}

/* Décor organique subtil sur le fond — blobs colorés très diffus */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(60rem 40rem at 100% -10%, var(--col-primary-glow), transparent 60%),
    radial-gradient(50rem 40rem at -10% 110%, color-mix(in oklab, var(--col-accent) 18%, transparent), transparent 60%);
  pointer-events: none;
  opacity: 0.6;
}

img, video, svg { max-width: 100%; height: auto; display: block; }
img { font-style: italic; background-color: color-mix(in oklab, var(--col-surface-2) 60%, transparent); }
a { color: inherit; text-decoration: none; transition: color var(--dur) var(--ease); }
a:hover { color: var(--col-primary); }
button { cursor: pointer; border: none; background: none; font-family: inherit; color: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; }
ul, ol { list-style: none; }

/* Sélection chaude */
::selection { background: var(--col-primary); color: var(--clr-white); }
::-moz-selection { background: var(--col-primary); color: var(--clr-white); }

/* Scrollbar fine et douce */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: color-mix(in oklab, var(--col-primary) 55%, transparent);
  border-radius: var(--radius-pill);
  border: 2px solid var(--col-bg);
}
::-webkit-scrollbar-thumb:hover { background: var(--col-primary); }

/* Focus visible — doré + décalé (WCAG 2.2) */
:focus-visible {
  outline: 3px solid var(--col-accent);
  outline-offset: 3px;
  border-radius: 4px;
}
:focus:not(:focus-visible) { outline: none; }

/* Reduce motion — WCAG */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Skip link accessible */
.skip-link,
.screen-reader-text {
  position: absolute !important;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.skip-link:focus {
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  padding: 0.75rem 1.25rem;
  background: var(--col-primary);
  color: var(--clr-white);
  border-radius: var(--radius);
  z-index: 10000;
}

/* ══════════════════════════════════════════════════════════════════
   TYPOGRAPHIE
   ══════════════════════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--col-ink);
  text-wrap: balance;
}
h1 { font-size: var(--step-5); }
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-3); }
h4 { font-size: var(--step-2); }
h5 { font-size: var(--step-1); }
h6 { font-size: var(--step-0); }

p {
  color: var(--col-ink-soft);
  max-width: 65ch;
  text-wrap: pretty;
}

.display-serif,
.ea-serif {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  letter-spacing: -0.01em;
}

strong, b { font-weight: 700; color: var(--col-ink); }
em { font-style: italic; }

/* ══════════════════════════════════════════════════════════════════
   CONTAINERS
   ══════════════════════════════════════════════════════════════════ */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}
.container--narrow { max-width: var(--container-narrow); }
.container--wide   { max-width: var(--container-wide); }

/* ══════════════════════════════════════════════════════════════════
/* ══════════════════════════════════════════════════════════════════
   SECTIONS — v6.18.1 : NETTOYAGE complet
   Toutes les classes .ea-section--* (dark/primary/alt/surface/cream/pad-*)
   et .ea-section-header* étaient utilisées par l'ancien système
   eap_section_attrs() qui a été supprimé au chantier TOTAL.
   Chaque bloc est maintenant autonome (.ea-XXX-section) avec ses propres vars.
   → TOUT le code CSS de .ea-section* est supprimé (~50 lignes).
   ══════════════════════════════════════════════════════════════════ */

.ea-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.35rem 0.9rem;
  border-radius: var(--radius-pill);
  background: var(--col-primary-soft);
  color: var(--col-primary);
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.ea-eyebrow::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--col-primary);
  animation: pulse 2.5s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

.ea-title {
  font-size: var(--step-4);
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: var(--col-ink);
  text-wrap: balance;
}
.ea-title em,
.ea-title .ea-serif {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--col-primary);
  /* Variable font axes si Fraunces chargé */
  font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144;
}
.ea-subtitle {
  margin-top: 1rem;
  font-size: var(--step-0);
  color: var(--col-ink-soft);
  max-width: 62ch;
}

/* v6.18.1 — Sélecteurs .ea-section--dark/primary supprimés ici (code mort post-chantier TOTAL) */

/* ══════════════════════════════════════════════════════════════════
   BUTTONS — rond, chaud, tactile
   ══════════════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.85rem 1.9rem;
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  border-radius: var(--radius-pill);
  border: 1.5px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease),
    background-color var(--dur) var(--ease),
    border-color var(--dur) var(--ease),
    color var(--dur) var(--ease);
  text-decoration: none;
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.22), transparent 50%);
  opacity: 0;
  transition: opacity var(--dur) var(--ease);
  z-index: -1;
  border-radius: inherit;
}
.btn:hover::before { opacity: 1; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.btn--primary {
  background: var(--col-primary);
  color: var(--clr-white);
  box-shadow: 0 6px 18px var(--col-primary-glow);
}
.btn--primary:hover {
  background: var(--col-primary-dark);
  color: var(--clr-white);
  box-shadow: 0 12px 32px var(--col-primary-glow), 0 0 0 6px var(--col-primary-glow);
}

.btn--outline {
  background: transparent;
  color: var(--col-ink);
  border-color: var(--col-border-strong);
}
.btn--outline:hover {
  border-color: var(--col-primary);
  color: var(--col-primary);
  background: var(--col-primary-soft);
}
/* v6.18.1 — Sélecteurs .ea-section--dark/primary .btn--outline supprimés (code mort) */

.btn--ghost {
  background: transparent;
  color: var(--col-primary);
  padding-inline: 0;
  border: none;
  border-radius: 0;
  border-bottom: 1.5px solid currentColor;
  box-shadow: none;
}
.btn--ghost::before { display: none; }
.btn--ghost:hover { gap: 0.95rem; transform: none; }

.btn--accent {
  background: var(--col-accent);
  color: var(--clr-ink-700);
  box-shadow: 0 6px 18px rgba(206, 148, 38, 0.3);
}
.btn--accent:hover { background: var(--clr-ochre-600); color: var(--clr-white); }

.btn--dark {
  background: var(--clr-ink-700);
  color: var(--clr-cream-100);
}
.btn--dark:hover { background: var(--clr-ink-900); color: var(--clr-white); }

.btn--light {
  background: var(--clr-white);
  color: var(--col-ink);
  box-shadow: var(--shadow-sm);
}
.btn--light:hover { background: var(--clr-cream-50); color: var(--col-primary); }

.btn--lg { padding: 1.1rem 2.6rem; font-size: 1.02rem; }
.btn--sm { padding: 0.55rem 1.3rem; font-size: 0.82rem; }
.btn--icon { padding: 0.75rem; border-radius: 50%; aspect-ratio: 1; width: 44px; height: 44px; }
.btn--block { width: 100%; }

/* ══════════════════════════════════════════════════════════════════
   BADGES
   ══════════════════════════════════════════════════════════════════ */
.ea-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.32rem 0.85rem;
  border-radius: var(--radius-pill);
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
}
.ea-badge--red,
.ea-badge--primary { background: var(--col-primary); color: var(--clr-white); }
.ea-badge--dark    { background: var(--clr-ink-700); color: var(--clr-cream-100); }
.ea-badge--gold,
.ea-badge--accent  { background: var(--col-accent); color: var(--clr-ink-700); }
.ea-badge--soft    { background: var(--col-primary-soft); color: var(--col-primary); }
.ea-badge--outline { background: transparent; color: var(--col-ink); border: 1px solid var(--col-border-strong); }

/* ══════════════════════════════════════════════════════════════════
   HEADER — verre liquide, sticky élégant
   ══════════════════════════════════════════════════════════════════ */
.site-header,
.site-header--sticky {
  position: sticky;
  top: 0;
  z-index: 1000;
  padding-block: 1rem;
  background: color-mix(in oklab, var(--col-bg) 78%, transparent);
  backdrop-filter: saturate(1.6) blur(24px);
  -webkit-backdrop-filter: saturate(1.6) blur(24px);
  border-bottom: 1px solid transparent;
  transition:
    background-color var(--dur) var(--ease),
    padding var(--dur) var(--ease),
    border-color var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}
.site-header.scrolled {
  background: color-mix(in oklab, var(--col-bg) 92%, transparent);
  padding-block: 0.65rem;
  border-bottom-color: var(--col-border);
  box-shadow: var(--shadow-sm);
}

.eap-header-inner,
.header-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}

.eap-header-logo,
.header-logo {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-style: italic;
  color: var(--col-ink);
  letter-spacing: -0.01em;
  flex-shrink: 0;
}
.eap-header-logo img,
.header-logo img,
.site-header .custom-logo {
  height: 44px;
  width: auto;
  object-fit: contain;
}
.eap-header-logo em,
.eap-logo-text em,
.header-logo em { color: var(--col-primary); font-style: italic; }
.eap-logo-text { color: var(--col-ink); }

.eap-header-nav,
.header-nav { display: flex; justify-content: center; }
.eap-header-nav ul,
.eap-nav-list,
.header-nav ul {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.eap-header-nav a,
.eap-nav-list a,
.header-nav a {
  display: block;
  padding: 0.55rem 1.1rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--col-ink-soft);
  border-radius: var(--radius-pill);
  transition: all var(--dur) var(--ease);
  position: relative;
}
.eap-header-nav a:hover,
.eap-header-nav a.current-menu-item,
.eap-nav-list a:hover,
.eap-nav-list a.current-menu-item,
.header-nav a:hover,
.header-nav a.current-menu-item {
  color: var(--col-primary);
  background: var(--col-primary-soft);
}

.eap-header-actions,
.header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.eap-header-icon-btn,
.header-cart-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: color-mix(in oklab, var(--col-surface-2) 70%, transparent);
  border: 1px solid transparent;
  color: var(--col-ink);
  transition: all var(--dur) var(--ease);
}
.eap-header-icon-btn:hover,
.header-cart-btn:hover {
  background: var(--col-surface);
  border-color: var(--col-border);
  color: var(--col-primary);
  transform: translateY(-1px);
}

.eap-header-cart-badge,
.header-cart-count {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  background: var(--col-primary);
  color: var(--clr-white);
  font-family: var(--font-heading);
  font-size: 0.68rem;
  font-weight: 700;
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--col-bg);
}

.eap-header-cta { margin-left: 0.3rem; }

.eap-burger,
.header-burger {
  display: none;
  flex-direction: column;
  gap: 4px;
  width: 42px;
  height: 42px;
  padding: 12px 10px;
  border-radius: 50%;
  background: var(--col-surface-2);
  align-items: center;
  justify-content: center;
}
.eap-burger span,
.header-burger span {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--col-ink);
  border-radius: 2px;
  transition: all var(--dur) var(--ease);
}
.eap-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.eap-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.eap-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ── Topbar ── */
.eap-topbar {
  background: var(--clr-ink-700);
  color: var(--clr-cream-100);
  padding-block: 0.5rem;
  font-size: 0.78rem;
}
.eap-topbar__left,
.eap-topbar__right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  color: rgba(246, 240, 228, 0.75);
}
.eap-topbar__item { display: inline-flex; align-items: center; gap: 0.3rem; }
.eap-topbar__left a, .eap-topbar__right a {
  color: rgba(246, 240, 228, 0.8);
  transition: color var(--dur) var(--ease);
}
.eap-topbar__left a:hover, .eap-topbar__right a:hover { color: var(--col-accent); }
.eap-topbar__badge {
  background: var(--col-primary);
  color: var(--clr-white);
  padding: 0.2rem 0.7rem;
  border-radius: var(--radius-pill);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.eap-topbar__social {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--col-accent);
}

/* ── Mode bar (livraison / emporter) ── */
.eap-mode-bar {
  background: var(--col-surface);
  border-bottom: 1px solid var(--col-border);
  padding: 0.7rem 0;
  position: sticky;
  top: 0;
  z-index: 998;
}
.eap-mode-bar__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.eap-mode-toggle {
  display: inline-flex;
  background: var(--col-bg-alt);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-pill);
  padding: 0.25rem;
  gap: 0.2rem;
}
.eap-mode-btn {
  padding: 0.5rem 1.2rem;
  border-radius: var(--radius-pill);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--col-ink-soft);
  transition: all var(--dur) var(--ease);
  white-space: nowrap;
}
.eap-mode-btn.active {
  background: var(--col-primary);
  color: var(--clr-white);
  box-shadow: 0 2px 10px var(--col-primary-glow);
}
.eap-mode-btn:not(.active):hover { color: var(--col-ink); }
.eap-mode-address {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--col-ink-soft);
  padding: 0.5rem 1rem;
  border-radius: var(--radius-pill);
  border: 1px solid var(--col-border);
  background: var(--col-bg);
  transition: all var(--dur) var(--ease);
}
.eap-mode-address:hover { border-color: var(--col-primary); color: var(--col-primary); }
.eap-mode-address__edit { color: var(--col-primary); font-weight: 700; font-size: 0.76rem; }
.eap-mode-time {
  margin-left: auto;
  font-size: 0.85rem;
  color: var(--col-ink-soft);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.eap-mode-time strong { color: var(--col-primary); font-weight: 700; }

/* ══════════════════════════════════════════════════════════════════
   HERO — cinéma éditorial
   ══════════════════════════════════════════════════════════════════ */
.ea-hero {
  position: relative;
  min-height: clamp(540px, 85svh, 900px);
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--clr-ink-700);
  color: var(--clr-white);
  isolation: isolate;
}
.ea-hero__bg { position: absolute; inset: 0; z-index: 0; }
.ea-hero__bg img,
.ea-hero__bg video {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  will-change: transform;
}
.ea-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    105deg,
    rgba(38, 32, 26, 0.88) 0%,
    rgba(38, 32, 26, 0.55) 45%,
    rgba(38, 32, 26, 0.22) 100%
  );
}
.ea-hero__overlay--radial {
  background: radial-gradient(ellipse 80% 80% at 30% 50%, rgba(38, 32, 26, 0.92), rgba(38, 32, 26, 0.25) 70%);
}
.ea-hero__overlay--warm {
  background:
    linear-gradient(120deg, rgba(126, 50, 26, 0.35) 0%, transparent 60%),
    linear-gradient(105deg, rgba(38, 32, 26, 0.78) 0%, rgba(38, 32, 26, 0.2) 100%);
}

/* Ornement organique décoratif */
.ea-hero::after {
  content: '';
  position: absolute;
  z-index: 2;
  right: -4rem;
  bottom: -4rem;
  width: min(40vw, 380px);
  aspect-ratio: 1;
  background: var(--col-primary);
  border-radius: 63% 37% 41% 59% / 43% 62% 38% 57%;
  opacity: 0.28;
  filter: blur(20px);
  animation: blob 18s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes blob {
  0%   { border-radius: 63% 37% 41% 59% / 43% 62% 38% 57%; transform: translate(0, 0) scale(1); }
  50%  { border-radius: 43% 57% 62% 38% / 57% 37% 63% 43%; transform: translate(-40px, 20px) scale(1.1); }
  100% { border-radius: 55% 45% 35% 65% / 35% 50% 50% 65%; transform: translate(30px, -20px) scale(0.95); }
}

.ea-hero__content {
  position: relative;
  z-index: 3;
  padding-block: 8rem 5rem;
  max-width: 780px;
}
.ea-hero__eyebrow { margin-bottom: 1.5rem; }
.ea-hero__title {
  font-family: var(--font-heading);
  font-size: var(--step-7);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 0.95;
  color: var(--clr-white);
  margin-bottom: 1.5rem;
  text-wrap: balance;
}
.ea-hero__title .serif,
.ea-hero__title em {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--col-accent);
  font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144;
}
.ea-hero__subtitle {
  font-family: var(--font-body);
  font-size: var(--step-1);
  color: rgba(255, 255, 255, 0.82);
  max-width: 56ch;
  margin-bottom: 2.5rem;
  line-height: 1.65;
}
.ea-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  align-items: center;
}

.ea-hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  animation: scrollBounce 2s ease-in-out infinite;
}
.ea-hero__scroll::after {
  content: '';
  width: 1px;
  height: 42px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), transparent);
}
@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(8px); }
}

/* Hero variants */
.ea-hero--split .container {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: var(--sp-xl);
}
.ea-hero--split .ea-hero__content { max-width: 100%; padding-block: 10rem 6rem; }
.ea-hero--split .ea-hero__visual { position: relative; z-index: 3; }
.ea-hero--split .ea-hero__visual img {
  width: 100%;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl), 0 0 0 1px rgba(255, 255, 255, 0.08);
  aspect-ratio: 4/5;
  object-fit: cover;
}
.ea-hero--centered .ea-hero__content { margin-inline: auto; text-align: center; max-width: 920px; }
.ea-hero--centered .ea-hero__actions { justify-content: center; }
.ea-hero--centered .ea-hero__subtitle { margin-inline: auto; }

/* Hero sur fond clair */
.ea-hero--light {
  background: var(--col-bg);
  color: var(--col-ink);
}
.ea-hero--light .ea-hero__title { color: var(--col-ink); }
.ea-hero--light .ea-hero__subtitle { color: var(--col-ink-soft); }
.ea-hero--light .ea-hero__overlay { display: none; }
.ea-hero--light .ea-hero__title em,
.ea-hero--light .ea-hero__title .serif { color: var(--col-primary); }

/* ══════════════════════════════════════════════════════════════════
   HERO SLIDER (v6.16+)
   Slides empilés en absolute, transitions fade / kenburns / slide.
   Accessibilité : aria-hidden gère la visibilité logique,
   .is-active gère la visibilité visuelle. Toujours synchroniser les deux.
   ══════════════════════════════════════════════════════════════════ */

/* Helper accessibilité — caché visuellement, lu par les lecteurs d'écran */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Section en mode slider : devient la viewport */
.ea-hero--slider {
  position: relative;
  overflow: hidden;
  display: block; /* override flex pour permettre l'empilage */
}

/* Chaque slide occupe TOUTE la section, empilé en absolute */
.ea-hero--slider .ea-hero__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  z-index: 1;
}
/* Slide actif au-dessus */
.ea-hero--slider .ea-hero__slide.is-active {
  z-index: 2;
}
/* Le 1er slide reste relative pour donner sa hauteur à la section */
.ea-hero--slider .ea-hero__slide:first-child {
  position: relative;
}

/* Le bg du slide doit couvrir le slide entier */
.ea-hero--slider .ea-hero__slide .ea-hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}
.ea-hero--slider .ea-hero__slide .ea-hero__bg img,
.ea-hero--slider .ea-hero__slide .ea-hero__bg video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ─── Transition FADE ─── */
.ea-hero--trans-fade .ea-hero__slide {
  opacity: 0;
  transition: opacity 800ms ease-in-out;
}
.ea-hero--trans-fade .ea-hero__slide.is-active {
  opacity: 1;
}

/* ─── Transition KEN BURNS (fade + zoom doux) ─── */
.ea-hero--trans-kenburns .ea-hero__slide {
  opacity: 0;
  transition: opacity 1000ms ease-in-out;
}
.ea-hero--trans-kenburns .ea-hero__slide.is-active {
  opacity: 1;
}
.ea-hero--trans-kenburns .ea-hero__slide .ea-hero__bg img,
.ea-hero--trans-kenburns .ea-hero__slide .ea-hero__bg video {
  transform: scale(1);
  transition: transform 8s ease-out;
  will-change: transform;
}
.ea-hero--trans-kenburns .ea-hero__slide.is-active .ea-hero__bg img,
.ea-hero--trans-kenburns .ea-hero__slide.is-active .ea-hero__bg video {
  transform: scale(1.08);
}

/* ─── Transition SLIDE (glissement horizontal) ─── */
.ea-hero--trans-slide .ea-hero__slide {
  transform: translateX(100%);
  transition: transform 700ms cubic-bezier(0.65, 0, 0.35, 1);
  opacity: 1;
}
.ea-hero--trans-slide .ea-hero__slide.is-active {
  transform: translateX(0);
}
.ea-hero--trans-slide .ea-hero__slide.is-leaving {
  transform: translateX(-100%);
}

/* ─── Animation d'entrée du contenu (titre, CTA…) ─── */
.ea-hero--slider .ea-hero__slide .ea-hero__content > * {
  opacity: 0;
  transform: translateY(20px);
}
.ea-hero--slider .ea-hero__slide.is-active .ea-hero__content > * {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 700ms ease-out, transform 700ms ease-out;
}
.ea-hero--slider .ea-hero__slide.is-active .ea-hero__content > *:nth-child(1) { transition-delay: 200ms; }
.ea-hero--slider .ea-hero__slide.is-active .ea-hero__content > *:nth-child(2) { transition-delay: 350ms; }
.ea-hero--slider .ea-hero__slide.is-active .ea-hero__content > *:nth-child(3) { transition-delay: 500ms; }
.ea-hero--slider .ea-hero__slide.is-active .ea-hero__content > *:nth-child(4) { transition-delay: 650ms; }

/* ─── Flèches de navigation ─── */
.ea-hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 56px; height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: background 250ms ease, transform 250ms ease, border-color 250ms ease;
  padding: 0;
}
.ea-hero__arrow:hover,
.ea-hero__arrow:focus-visible {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.35);
  transform: translateY(-50%) scale(1.06);
}
.ea-hero__arrow:focus-visible {
  outline: 3px solid var(--col-accent, #CE9426);
  outline-offset: 3px;
}
.ea-hero__arrow:active {
  transform: translateY(-50%) scale(0.96);
}
.ea-hero__arrow--prev { left: clamp(0.75rem, 2vw, 2rem); }
.ea-hero__arrow--next { right: clamp(0.75rem, 2vw, 2rem); }
.ea-hero__arrow svg { display: block; }

/* ─── Dots (puces) ─── */
.ea-hero__dots {
  position: absolute;
  bottom: clamp(1.25rem, 3vw, 2.5rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 12px;
  padding: 8px 14px;
  background: rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 999px;
}
.ea-hero__dot {
  width: 10px; height: 10px;
  background: rgba(255, 255, 255, 0.45);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  transition: background 250ms ease, width 350ms ease;
}
.ea-hero__dot:hover {
  background: rgba(255, 255, 255, 0.75);
}
.ea-hero__dot.is-active {
  background: #fff;
  width: 28px;
  border-radius: 5px;
}
.ea-hero__dot:focus-visible {
  outline: 2px solid var(--col-accent, #CE9426);
  outline-offset: 3px;
}

/* ─── Mobile : flèches plus petites, dots un peu plus haut ─── */
@media (max-width: 640px) {
  .ea-hero__arrow {
    width: 44px; height: 44px;
  }
  .ea-hero__arrow svg {
    width: 20px; height: 20px;
  }
  .ea-hero__dots {
    bottom: clamp(1rem, 5vw, 1.75rem);
  }
}

/* ─── Respect des préférences "réduire les animations" ─── */
@media (prefers-reduced-motion: reduce) {
  .ea-hero--slider .ea-hero__slide,
  .ea-hero--slider .ea-hero__slide .ea-hero__bg img,
  .ea-hero--slider .ea-hero__slide .ea-hero__bg video,
  .ea-hero--slider .ea-hero__slide .ea-hero__content > * {
    transition: opacity 200ms linear !important;
    transform: none !important;
    animation: none !important;
  }
  .ea-hero--trans-kenburns .ea-hero__slide.is-active .ea-hero__bg img,
  .ea-hero--trans-kenburns .ea-hero__slide.is-active .ea-hero__bg video {
    transform: none !important;
  }
}

/* ══════════════════════════════════════════════════════════════════
   MARQUEE — ticker typographique cinétique
   ══════════════════════════════════════════════════════════════════ */
.ea-marquee {
  overflow: hidden;
  background: var(--col-primary);
  color: var(--clr-white);
  padding-block: 1.2rem;
  border-block: 1px solid transparent;
}
.ea-marquee--dark { background: var(--clr-ink-700); color: var(--clr-cream-100); }
.ea-marquee--light { background: var(--col-bg-alt); color: var(--col-ink); border-color: var(--col-border); }
.ea-marquee--accent { background: var(--col-accent); color: var(--clr-ink-700); }
.ea-marquee__track {
  display: flex;
  gap: 3rem;
  width: max-content;
  animation: marqueeScroll 32s linear infinite;
  will-change: transform;
}
.ea-marquee:hover .ea-marquee__track { animation-play-state: paused; }
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.ea-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-weight: 500;
  letter-spacing: -0.01em;
  white-space: nowrap;
  font-variation-settings: "SOFT" 100, "WONK" 1;
}
.ea-marquee__item em { font-style: normal; color: inherit; opacity: 0.6; }
.ea-marquee__sep {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.5;
}

/* ══════════════════════════════════════════════════════════════════
   STATS BAND
   ══════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════
   STATS BAND (v6.16.4 — design carte premium)
   - Cartes avec ligne d'accent en haut
   - Couleurs entièrement pilotées par les CSS vars injectées sur .ea-stats-section :
     --stats-bg, --stats-card-bg, --stats-accent, --stats-text, --stats-value-size
   ══════════════════════════════════════════════════════════════════ */
.ea-stats-section {
  /* Fond de section piloté par var --stats-bg (default sûr en fallback) */
  background-color: var(--stats-bg, var(--col-bg, #FBF8F2));
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
}

.ea-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(1rem, 2vw, 1.75rem);
}

.ea-stat {
  position: relative;
  background: var(--stats-card-bg, #FFFFFF);
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem);
  border-radius: 18px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  /* Ombre douce + bordure subtile pour le relief premium */
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(0, 0, 0, 0.06);
  border: 1px solid color-mix(in srgb, var(--stats-text, #3D3024) 8%, transparent);
  overflow: hidden;
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms ease;
}

/* Ligne d'accent en haut de chaque carte (touche premium) */
.ea-stat::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 40px;
  height: 4px;
  background: var(--stats-accent, #C4572E);
  transform: translateX(-50%);
  border-radius: 0 0 4px 4px;
  transition: width 350ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.ea-stat:hover {
  transform: translateY(-4px);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.06),
    0 16px 40px rgba(0, 0, 0, 0.10);
}
.ea-stat:hover::before {
  width: 80px;
}

.ea-stat__icon {
  font-size: 2.25rem;
  line-height: 1;
  display: block;
  margin-bottom: 0.25rem;
  /* L'emoji ne doit pas être teint par color */
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.08));
}

.ea-stat__value {
  display: block;
  font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
  /* Taille pilotée par la var, fluide sur mobile */
  font-size: clamp(
    max(28px, calc(var(--stats-value-size, 56px) * 0.6)),
    calc(var(--stats-value-size, 56px) * 0.85 + 0.5vw),
    var(--stats-value-size, 56px)
  );
  font-weight: 600;
  font-style: italic;
  line-height: 1;
  color: var(--stats-accent, #C4572E);
  letter-spacing: -0.02em;
  font-variation-settings: "SOFT" 100, "WONK" 1;
  /* Empêcher le saut visuel pendant l'animation du counter */
  font-variant-numeric: tabular-nums;
}

.ea-stat__label {
  font-family: var(--font-heading, 'Inter', sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--stats-text, #3D3024) 75%, transparent);
  line-height: 1.3;
  margin-top: 0.25rem;
}

/* Responsive */
@media (max-width: 768px) {
  .ea-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.875rem;
  }
}
@media (max-width: 420px) {
  .ea-stats {
    grid-template-columns: 1fr;
  }
  .ea-stat {
    padding: 1.5rem 1.25rem;
  }
}

/* ══════════════════════════════════════════════════════════════════
   STORIES — expansion au survol, sensuel
   ══════════════════════════════════════════════════════════════════ */
.ea-stories {
  display: flex;
  gap: 4px;
  height: clamp(320px, 50vw, 520px);
  overflow: hidden;
  border-radius: var(--radius-lg);
}
.ea-story {
  flex: 1;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: flex var(--dur-slow) var(--ease);
}
.ea-story img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease);
}
.ea-stories:hover .ea-story:not(:hover) { flex: 0.55; }
.ea-stories:hover .ea-story:hover { flex: 2.8; }
.ea-story__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26, 21, 16, 0.85) 0%, rgba(26, 21, 16, 0.1) 50%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  color: var(--clr-white);
  opacity: 1;
}
.ea-story__label {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--col-accent);
  margin-bottom: 0.35rem;
  opacity: 0;
  transform: translateY(10px);
  transition: all var(--dur) var(--ease) 0.1s;
}
.ea-story__title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--clr-white);
  opacity: 0;
  transform: translateY(10px);
  transition: all var(--dur) var(--ease) 0.2s;
  text-wrap: balance;
}
.ea-story:hover img { transform: scale(1.08); }
.ea-story:hover .ea-story__label,
.ea-story:hover .ea-story__title {
  opacity: 1;
  transform: translateY(0);
}

/* ══════════════════════════════════════════════════════════════════
   SPLIT — image + texte
   ══════════════════════════════════════════════════════════════════ */
.ea-split { display: grid; gap: var(--sp-xl); align-items: center; }
.ea-split--50-50 { grid-template-columns: 1fr 1fr; }
.ea-split--60-40 { grid-template-columns: 3fr 2fr; }
.ea-split--40-60 { grid-template-columns: 2fr 3fr; }
.ea-split--33-66 { grid-template-columns: 1fr 2fr; }
.ea-split--66-33 { grid-template-columns: 2fr 1fr; }
.ea-split--reverse > *:first-child { order: 2; }
.ea-split--reverse > *:last-child  { order: 1; }
.ea-split--align-top    { align-items: flex-start; }
.ea-split--align-center { align-items: center; }
.ea-split--align-bottom { align-items: flex-end; }
/* v6.16.5 — si l'image est cachée, le texte occupe toute la largeur */
.ea-split--text-only { grid-template-columns: 1fr !important; }

.ea-split__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-lg);
}
.ea-split__media::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
  pointer-events: none;
}
.ea-split__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease);
}
.ea-split__media:hover img { transform: scale(1.05); }
.ea-split__media-placeholder {
  width: 100%; height: 100%;
  background: rgba(255,255,255,.04);
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem;
}

/* v6.16.5 — Formes d'image (presets) */
.ea-split__media--square  { border-radius: 0; aspect-ratio: 4/3; }
.ea-split__media--soft    { border-radius: 12px; aspect-ratio: 4/3; }
.ea-split__media--rounded { border-radius: 24px; aspect-ratio: 4/3; }
.ea-split__media--circle  { border-radius: 50%; aspect-ratio: 1/1; }
/* --custom : aspect-ratio + border-radius définis inline depuis le PHP */

/* Anciennes classes utilitaires (gardées pour compat eap_split_b éventuel) */
.ea-split__media--tall   { aspect-ratio: 3/4; }
.ea-split__media--wide   { aspect-ratio: 16/9; }

/* Badge flottant sur l'image */
.ea-split__media-badge {
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  padding: 0.75rem 1.1rem;
  background: var(--clr-white);
  color: var(--col-ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.ea-split__media-badge strong { color: var(--col-primary); }

.ea-split__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.25rem;
}
.ea-split__body .ea-list {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin-top: 0.5rem;
}
.ea-split__body .ea-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  font-size: 0.95rem;
  color: var(--col-ink-soft);
  line-height: 1.55;
}
.ea-split__body .ea-list li::before {
  content: '';
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--col-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}

/* ══════════════════════════════════════════════════════════════════
   v6.16.5 — SPLIT A : SECTION AUTONOME
   Pilotée 100% par CSS vars injectées en style="" sur .ea-split-a-section.
   - Pas de eap_section_attrs → plus de "marche" entre Stats et ce bloc.
   - Couleurs, polices, tailles ajustables sans toucher au CSS.
   ══════════════════════════════════════════════════════════════════ */
.ea-split-a-section {
  /* Fond du bloc piloté par var (default fallback dark) */
  background-color: var(--sa-bg, #26201A);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
  position: relative;
  overflow: clip;
  container-type: inline-size;
}

/* Sur-titre (eyebrow) */
.ea-split-a-section .ea-split__eyebrow {
  display: inline-block;
  font-family: var(--sa-font-b, var(--font-heading, 'Inter', sans-serif));
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sa-eyebrow-color, #CE9426);
  margin-bottom: 0.25rem;
}

/* Titre */
.ea-split-a-section .ea-split__title {
  font-family: var(--sa-font-h, var(--font-display, 'Cormorant Garamond', serif));
  /* Taille fluide bornée par le réglage utilisateur (max = valeur Customizer) */
  font-size: clamp(
    max(22px, calc(var(--sa-title-size, 44px) * 0.65)),
    calc(var(--sa-title-size, 44px) * 0.85 + 0.5vw),
    var(--sa-title-size, 44px)
  );
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--sa-title-color, #FFFFFF);
  margin: 0;
}
/* Mot italique (généré par eap_hl → <em>) */
.ea-split-a-section .ea-split__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--sa-hl-color, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

/* Texte */
.ea-split-a-section .ea-split__text {
  font-family: var(--sa-font-b, var(--font-body, 'Inter', sans-serif));
  font-size: clamp(
    max(13px, calc(var(--sa-text-size, 16px) * 0.85)),
    calc(var(--sa-text-size, 16px) * 0.95 + 0.2vw),
    var(--sa-text-size, 16px)
  );
  line-height: 1.65;
  color: var(--sa-text-color, #E8DDC8);
  margin: 0;
}

/* Liste — surcharge spécifique au bloc Split A (couleur ✓ personnalisable) */
.ea-split-a-section .ea-split__list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.ea-split-a-section .ea-split__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  font-family: var(--sa-font-b, var(--font-body, 'Inter', sans-serif));
  font-size: clamp(
    max(12px, calc(var(--sa-list-size, 15px) * 0.85)),
    calc(var(--sa-list-size, 15px) * 0.95 + 0.15vw),
    var(--sa-list-size, 15px)
  );
  line-height: 1.55;
  color: var(--sa-list-color, #E8DDC8);
}
.ea-split-a-section .ea-split__list li::before {
  content: '';
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background-color: var(--sa-check-color, #CE9426);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}

/* Actions */
.ea-split-a-section .ea-split__actions {
  margin-top: 0.5rem;
}

/* Responsive : passage en colonne unique */
@media (max-width: 768px) {
  .ea-split-a-section .ea-split {
    grid-template-columns: 1fr !important;
    gap: 2rem;
  }
  .ea-split-a-section .ea-split--reverse > *:first-child { order: 1; }
  .ea-split-a-section .ea-split--reverse > *:last-child  { order: 2; }
}

/* ══════════════════════════════════════════════════════════════════
   v6.17.2 — SPLIT B : SECTION AUTONOME (clone fonctionnel de Split A)
   Pilotée 100% par CSS vars injectées en style="" sur .ea-split-b-section.
   Préfixe vars : --sb-* (au lieu de --sa-*).
   ══════════════════════════════════════════════════════════════════ */
.ea-split-b-section {
  background-color: var(--sb-bg, #FBF8F2);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
  position: relative;
  overflow: clip;
  container-type: inline-size;
}

/* Image — formes (square/soft/rounded/circle/custom) */
.ea-split-b-section .ea-split__media {
  overflow: hidden;
  aspect-ratio: var(--sb-img-aspect, 4/3);
  border-radius: var(--sb-img-radius, 12px);
}
.ea-split-b-section .ea-split__media-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem;
  background: rgba(0,0,0,0.04);
}

/* Sur-titre */
.ea-split-b-section .ea-split__eyebrow {
  display: inline-block;
  font-family: var(--sb-font-b, var(--font-heading, 'Inter', sans-serif));
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sb-eyebrow, #C4572E);
  margin-bottom: 0.25rem;
}

/* Titre */
.ea-split-b-section .ea-split__title {
  font-family: var(--sb-font-h, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(
    max(22px, calc(var(--sb-title-size, 44px) * 0.65)),
    calc(var(--sb-title-size, 44px) * 0.85 + 0.5vw),
    var(--sb-title-size, 44px)
  );
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--sb-title, #3D3024);
  margin: 0;
}
.ea-split-b-section .ea-split__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--sb-hl, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

/* Texte */
.ea-split-b-section .ea-split__text {
  font-family: var(--sb-font-b, var(--font-body, 'Inter', sans-serif));
  font-size: clamp(
    max(13px, calc(var(--sb-text-size, 16px) * 0.85)),
    calc(var(--sb-text-size, 16px) * 0.95 + 0.2vw),
    var(--sb-text-size, 16px)
  );
  line-height: 1.65;
  color: var(--sb-text, #6B5D4F);
  margin: 0;
}

/* Liste */
.ea-split-b-section .ea-split__list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.ea-split-b-section .ea-split__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  font-family: var(--sb-font-b, var(--font-body, 'Inter', sans-serif));
  font-size: clamp(
    max(12px, calc(var(--sb-list-size, 15px) * 0.85)),
    calc(var(--sb-list-size, 15px) * 0.95 + 0.15vw),
    var(--sb-list-size, 15px)
  );
  line-height: 1.55;
  color: var(--sb-list, #3D3024);
}
.ea-split-b-section .ea-split__list li::before {
  content: '';
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background-color: var(--sb-check, #C4572E);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}

/* Actions */
.ea-split-b-section .ea-split__actions {
  margin-top: 0.5rem;
}

/* Responsive */
@media (max-width: 768px) {
  .ea-split-b-section .ea-split {
    grid-template-columns: 1fr !important;
    gap: 2rem;
  }
  .ea-split-b-section .ea-split--reverse > *:first-child { order: 1; }
  .ea-split-b-section .ea-split--reverse > *:last-child  { order: 2; }
}

/* ══════════════════════════════════════════════════════════════════
   v6.17.2 — PRODUCTS SECTION : SECTION AUTONOME
   Pilotée 100% par CSS vars injectées en style="" sur .ea-products-section.
   Vars : --p-card-bg, --p-eyebrow, --p-title, --p-hl
          --p-card-name, --p-card-desc, --p-card-price, --p-card-cat
          --p-filter-active, --p-font-h, --p-font-c
          --p-title-size, --p-card-name-size
          --p-card-radius, --p-img-ratio
   Variantes alignement header : .ea-products-align--{split|center|left}
   ══════════════════════════════════════════════════════════════════ */
.ea-products-section {
  background-color: var(--p-bg, #26201A);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
  position: relative;
  overflow: clip;
  container-type: inline-size;
  container-name: section;
}

/* Header (titre + sous-titre + CTA optionnel) */
.ea-products__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: clamp(2rem, 5vw, 3rem);
}
.ea-products-align--center .ea-products__header {
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.ea-products-align--center .ea-products__header-cta { margin-top: 0.5rem; }
.ea-products-align--left .ea-products__header {
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.ea-products-align--left .ea-products__header-cta { margin-top: 0.5rem; }

.ea-products__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--p-eyebrow, #CE9426);
  margin-bottom: 0.5rem;
}
.ea-products__title {
  font-family: var(--p-font-h, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(
    max(22px, calc(var(--p-title-size, 40px) * 0.65)),
    calc(var(--p-title-size, 40px) * 0.85 + 0.5vw),
    var(--p-title-size, 40px)
  );
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--p-title, #FFFFFF);
  margin: 0;
}
.ea-products__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--p-hl, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

/* Filtre actif via CSS var */
.ea-products-section .ea-filter-chip.active {
  background-color: var(--p-filter-active, #C4572E);
  color: #fff;
  border-color: var(--p-filter-active, #C4572E);
}

/* Grille (logique conservée) */
.ea-product-grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-cols-desktop, 4), 1fr);
  gap: var(--grid-gap, 1.5rem);
}
.ea-product-grid--3cols { --grid-cols-desktop: 3; }
.ea-product-grid--2cols { --grid-cols-desktop: 2; }
.ea-product-grid--list  { grid-template-columns: 1fr; --grid-gap: 1rem; }

@container section (max-width: 900px) {
  .ea-product-grid { grid-template-columns: repeat(2, 1fr); }
}
@container section (max-width: 520px) {
  .ea-product-grid { grid-template-columns: 1fr; }
}

/* Carte produit */
.ea-products-section .ea-product-card {
  background: var(--p-card-bg, #FFFFFF);
  border-radius: var(--p-card-radius, 16px);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--p-card-name, #3D3024) 8%, transparent);
  font-family: var(--p-font-c, inherit);
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms ease,
              border-color 350ms ease;
  display: flex;
  flex-direction: column;
  position: relative;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  isolation: isolate;
}
.ea-products-section .ea-product-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.10);
  border-color: color-mix(in srgb, var(--p-card-price, #C4572E) 25%, transparent);
}

.ea-product-card__media {
  position: relative;
  aspect-ratio: var(--p-img-ratio, 4/3);
  overflow: hidden;
  background: color-mix(in srgb, var(--p-card-name, #3D3024) 6%, transparent);
}
.ea-product-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ea-product-card:hover .ea-product-card__media img { transform: scale(1.07); }
.ea-product-card__media-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 3rem;
  opacity: 0.5;
}

.ea-product-card__badges {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  z-index: 2;
}

.ea-product-card__quick-add {
  position: absolute;
  bottom: 0.85rem;
  right: 0.85rem;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--p-card-price, #C4572E);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 300;
  transform: scale(0) rotate(-90deg);
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 2;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--p-card-price, #C4572E) 40%, transparent);
  border: 2px solid #fff;
  cursor: pointer;
}
.ea-product-card:hover .ea-product-card__quick-add {
  transform: scale(1) rotate(0);
}

.ea-product-card__body {
  padding: 1.25rem 1.35rem 1.35rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.ea-product-card__cat {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--p-card-cat, #A89B82);
}
.ea-product-card__name {
  font-family: var(--p-font-c, inherit);
  font-size: clamp(13px, var(--p-card-name-size, 17px), 28px);
  font-weight: 700;
  color: var(--p-card-name, #3D3024);
  line-height: 1.3;
}
.ea-product-card__desc {
  font-size: 0.85rem;
  color: var(--p-card-desc, #6B5D4F);
  line-height: 1.55;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ea-product-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.6rem;
  padding-top: 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--p-card-name, #3D3024) 8%, transparent);
}
.ea-product-card__price {
  font-family: var(--p-font-c, inherit);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--p-card-price, #C4572E);
  letter-spacing: -0.01em;
}
.ea-product-card__price ins { text-decoration: none; color: var(--p-card-price, #C4572E); }
.ea-product-card__price del {
  font-size: 0.78em;
  color: var(--p-card-desc, #6B5D4F);
  margin-right: 0.35rem;
  font-weight: 500;
  opacity: 0.7;
}

/* CTA en bas */
.ea-products__bottom-cta {
  text-align: center;
  margin-top: clamp(2rem, 5vw, 3rem);
}

/* List layout */
.ea-product-grid--list .ea-product-card { flex-direction: row; border-radius: var(--p-card-radius, 16px); align-items: stretch; }
.ea-product-grid--list .ea-product-card__media { width: 150px; flex-shrink: 0; aspect-ratio: auto; }
.ea-product-grid--list .ea-product-card:hover { transform: translateX(6px); }
.ea-product-grid--list .ea-product-card__quick-add {
  position: static;
  transform: scale(1) rotate(0);
  width: 38px; height: 38px;
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-left: 0.5rem;
}

/* ══════════════════════════════════════════════════════════════════
   FILTER CHIPS / CATEGORY SCROLL
   ══════════════════════════════════════════════════════════════════ */
.ea-filter-bar {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}
.ea-filter-chip {
  padding: 0.55rem 1.2rem;
  border-radius: var(--radius-pill);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  color: var(--col-ink-soft);
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
}
.ea-filter-chip:hover {
  background: var(--col-primary-soft);
  color: var(--col-primary);
  border-color: var(--col-primary-soft);
}
.ea-filter-chip.active {
  background: var(--col-primary);
  border-color: var(--col-primary);
  color: var(--clr-white);
  box-shadow: 0 4px 12px var(--col-primary-glow);
}

.ea-cat-sticky {
  position: sticky;
  top: 70px;
  background: color-mix(in oklab, var(--col-bg) 85%, transparent);
  backdrop-filter: blur(20px);
  z-index: 50;
  padding-block: 0.85rem;
  border-bottom: 1px solid var(--col-border);
  margin-bottom: 2rem;
}
.ea-cat-scroll {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 0.25rem;
  -webkit-overflow-scrolling: touch;
}
.ea-cat-scroll::-webkit-scrollbar { display: none; }
.ea-cat-chip {
  flex-shrink: 0;
  padding: 0.55rem 1.2rem;
  border-radius: var(--radius-pill);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  color: var(--col-ink-soft);
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
  white-space: nowrap;
  text-decoration: none;
}
.ea-cat-chip:hover,
.ea-cat-chip.active {
  background: var(--col-primary);
  border-color: var(--col-primary);
  color: var(--clr-white);
}
.ea-cat-section { padding: 2.5rem 0; }
.ea-cat-section__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.ea-cat-section__title {
  font-size: var(--step-3);
  font-weight: 700;
  color: var(--col-ink);
}
.ea-cat-section__count { font-size: 0.8rem; color: var(--col-muted); }
.ea-cat-section__desc {
  font-size: 0.92rem;
  color: var(--col-ink-soft);
  margin-bottom: 1.25rem;
  margin-top: -0.5rem;
}

/* ══════════════════════════════════════════════════════════════════
   FEATURES CARDS (v6.17.1 — section autonome via CSS vars --fe-*)
   Vars injectées en style="" sur .ea-features-section :
     --fe-card-bg, --fe-eyebrow, --fe-title, --fe-hl
     --fe-card-title, --fe-card-desc, --fe-accent
     --fe-font-h, --fe-font-b
     --fe-title-size, --fe-card-title-size, --fe-desc-size
     --fe-card-radius
   Variantes : .ea-features-style--{numbered|card|minimal}
   ══════════════════════════════════════════════════════════════════ */
.ea-features-section {
  background-color: var(--fe-bg, #FBF8F2);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
}
.ea-features__header {
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.ea-features__header--center { text-align: center; }
.ea-features__header--left   { text-align: left; }
.ea-features__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fe-eyebrow, #C4572E);
  margin-bottom: 0.5rem;
}
.ea-features__title {
  font-family: var(--fe-font-h, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(
    max(22px, calc(var(--fe-title-size, 40px) * 0.65)),
    calc(var(--fe-title-size, 40px) * 0.85 + 0.5vw),
    var(--fe-title-size, 40px)
  );
  font-weight: 600;
  line-height: 1.1;
  color: var(--fe-title, #3D3024);
  letter-spacing: -0.02em;
  margin: 0;
}
.ea-features__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--fe-hl, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

.ea-features { display: grid; gap: 1.5rem; }
.ea-features--2 { grid-template-columns: repeat(2, 1fr); }
.ea-features--3 { grid-template-columns: repeat(3, 1fr); }
.ea-features--4 { grid-template-columns: repeat(4, 1fr); }

.ea-feature-card {
  position: relative;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: var(--fe-card-radius, 16px);
  background: var(--fe-card-bg, #FFFFFF);
  font-family: var(--fe-font-b, inherit);
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms ease;
  isolation: isolate;
}
.ea-feature-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  margin-bottom: 1rem;
  transition: transform 300ms ease;
}
.ea-feature-card__title {
  font-family: var(--fe-font-h, inherit);
  font-size: clamp(16px, var(--fe-card-title-size, 20px), 32px);
  font-weight: 700;
  color: var(--fe-card-title, #3D3024);
  margin: 0 0 0.5rem 0;
  letter-spacing: -0.01em;
}
.ea-feature-card__desc {
  font-family: var(--fe-font-b, inherit);
  font-size: clamp(13px, var(--fe-desc-size, 15px), 22px);
  color: var(--fe-card-desc, #6B5D4F);
  line-height: 1.65;
  margin: 0;
}

/* ─── Variante : NUMBERED (numéros en arrière-plan) ─── */
.ea-features-style--numbered .ea-feature-card {
  overflow: hidden;
  padding-top: clamp(2rem, 4vw, 3rem);
}
.ea-features-style--numbered .ea-feature-card__num {
  position: absolute;
  top: 0.3rem;
  right: 1rem;
  font-family: var(--fe-font-h, var(--font-display, serif));
  font-size: 5rem;
  font-style: italic;
  font-weight: 500;
  color: var(--fe-accent, #C4572E);
  opacity: 0.12;
  line-height: 1;
  user-select: none;
  font-variation-settings: "SOFT" 100, "WONK" 1;
  transition: opacity 300ms ease;
  pointer-events: none;
}
.ea-features-style--numbered .ea-feature-card:hover .ea-feature-card__num {
  opacity: 0.25;
}
.ea-features-style--numbered .ea-feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.08);
}

/* ─── Variante : CARD (cartes classiques avec ombre + hover) ─── */
.ea-features-style--card .ea-feature-card {
  border: 1px solid color-mix(in srgb, var(--fe-card-title, #3D3024) 8%, transparent);
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}
.ea-features-style--card .ea-feature-card__icon {
  width: 58px;
  height: 58px;
  border-radius: calc(var(--fe-card-radius, 16px) * 0.6);
  background: color-mix(in srgb, var(--fe-accent, #C4572E) 12%, transparent);
  color: var(--fe-accent, #C4572E);
  font-size: 1.6rem;
  margin-bottom: 1.25rem;
}
.ea-features-style--card .ea-feature-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--fe-accent, #C4572E) 25%, transparent);
  box-shadow: 0 18px 40px rgba(0,0,0,0.09);
}
.ea-features-style--card .ea-feature-card:hover .ea-feature-card__icon {
  transform: rotate(-8deg) scale(1.05);
}

/* ─── Variante : MINIMAL (juste emoji + texte, pas de cadre) ─── */
.ea-features-style--minimal .ea-feature-card {
  background: transparent;
  padding: 1rem 0;
}
.ea-features-style--minimal .ea-feature-card__icon {
  font-size: 2.5rem;
  margin-bottom: 0.75rem;
}

/* Responsive */
@media (max-width: 768px) {
  .ea-features--3,
  .ea-features--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .ea-features--2,
  .ea-features--3,
  .ea-features--4 { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════════
   CTA BAND (v6.17.1 — section autonome via CSS vars --c-*)
   Vars : --c-bg, --c-eyebrow, --c-title, --c-hl, --c-desc
          --c-font-h, --c-font-b
          --c-title-size, --c-desc-size, --c-radius
   Variantes : .ea-cta-band--{solid|image}
               .ea-cta-band--align-{center|left|right}
   ══════════════════════════════════════════════════════════════════ */
.ea-cta-section {
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
}
.ea-cta-band {
  position: relative;
  overflow: hidden;
  border-radius: var(--c-radius, 24px);
  padding: clamp(2.5rem, 7vw, 5rem) clamp(1.5rem, 5vw, 4rem);
  isolation: isolate;
}
.ea-cta-band--solid {
  background-color: var(--c-bg, #C4572E);
}
.ea-cta-band--image {
  background-color: #1a1510; /* fallback si image n'a pas chargé */
}
.ea-cta-band__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
  border-radius: inherit;
}
.ea-cta-band__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ea-cta-band__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
}
.ea-cta-band__content {
  position: relative;
  max-width: 780px;
  font-family: var(--c-font-b, inherit);
}
.ea-cta-band--align-center .ea-cta-band__content { margin-inline: auto; text-align: center; }
.ea-cta-band--align-left   .ea-cta-band__content { margin-right: auto; text-align: left; }
.ea-cta-band--align-right  .ea-cta-band__content { margin-left: auto;  text-align: right; }

.ea-cta-band__eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-eyebrow, #FFE8AD);
  margin-bottom: 0.75rem;
}
.ea-cta-band__title {
  font-family: var(--c-font-h, var(--font-heading, 'Space Grotesk', sans-serif));
  font-size: clamp(
    max(24px, calc(var(--c-title-size, 48px) * 0.6)),
    calc(var(--c-title-size, 48px) * 0.85 + 0.6vw),
    var(--c-title-size, 48px)
  );
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--c-title, #FFFFFF);
  text-wrap: balance;
  margin: 0 0 1rem 0;
}
.ea-cta-band__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--c-hl, #FFE8AD);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}
.ea-cta-band__desc {
  font-family: var(--c-font-b, inherit);
  font-size: clamp(14px, var(--c-desc-size, 17px), 28px);
  line-height: 1.55;
  color: var(--c-desc, #F6F0E4);
  text-wrap: pretty;
  margin: 0 0 2rem 0;
}
.ea-cta-band__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.ea-cta-band--align-center .ea-cta-band__actions { justify-content: center; }
.ea-cta-band--align-left   .ea-cta-band__actions { justify-content: flex-start; }
.ea-cta-band--align-right  .ea-cta-band__actions { justify-content: flex-end; }

/* ══════════════════════════════════════════════════════════════════
   v6.18.0 — REVIEWS SECTION : SECTION AUTONOME
   Pilotée 100% par CSS vars injectées en style="" sur .ea-reviews-section.
   Vars : --r-card-bg, --r-eyebrow, --r-title, --r-hl
          --r-text, --r-name, --r-meta, --r-stars, --r-arrow
          --r-font-h, --r-font-q
          --r-title-size, --r-quote-size, --r-card-radius
   ══════════════════════════════════════════════════════════════════ */
.ea-reviews-section {
  background-color: var(--r-bg, #FBF8F2);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
  position: relative;
  overflow: clip;
}

/* Header */
.ea-reviews__header {
  text-align: center;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.ea-reviews__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--r-eyebrow, #C4572E);
  margin-bottom: 0.5rem;
}
.ea-reviews__title {
  font-family: var(--r-font-h, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(
    max(22px, calc(var(--r-title-size, 40px) * 0.65)),
    calc(var(--r-title-size, 40px) * 0.85 + 0.5vw),
    var(--r-title-size, 40px)
  );
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--r-title, #3D3024);
  margin: 0;
}
.ea-reviews__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--r-hl, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

/* Carrousel container */
.ea-reviews-carousel {
  position: relative;
}
.ea-reviews-track {
  display: grid;
  gap: 1.5rem;
}

/* Carte avis */
.ea-reviews-section .ea-review-card {
  background: var(--r-card-bg, #FFFFFF);
  border: 1px solid color-mix(in srgb, var(--r-name, #3D3024) 8%, transparent);
  border-radius: var(--r-card-radius, 16px);
  padding: 1.75rem 1.85rem;
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms ease;
  position: relative;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  isolation: isolate;
}
.ea-reviews-section .ea-review-card::before {
  content: '"';
  position: absolute;
  top: -0.8rem;
  right: 1.2rem;
  font-family: var(--r-font-h, 'Cormorant Garamond', serif);
  font-size: 5rem;
  color: color-mix(in srgb, var(--r-stars, #CE9426) 25%, transparent);
  font-style: italic;
  line-height: 1;
  font-weight: 500;
  user-select: none;
  pointer-events: none;
  z-index: -1;
}
.ea-reviews-section .ea-review-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.10);
}

/* Étoiles */
.ea-review-card__stars {
  display: flex;
  gap: 0.15rem;
}
.ea-review-card__star {
  font-size: 1.05rem;
  color: color-mix(in srgb, var(--r-stars, #CE9426) 25%, transparent);
}
.ea-review-card__star.is-filled {
  color: var(--r-stars, #CE9426);
}

/* Texte de l'avis */
.ea-review-card__text {
  font-family: var(--r-font-q, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(13px, var(--r-quote-size, 16px), 24px);
  color: var(--r-text, #3D3024);
  line-height: 1.65;
  font-style: italic;
  font-weight: 500;
  flex: 1;
  margin: 0;
}

/* Auteur */
.ea-review-card__author {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--r-name, #3D3024) 8%, transparent);
}
.ea-review-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  background: color-mix(in srgb, var(--r-stars, #CE9426) 18%, transparent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ea-review-card__avatar-initial {
  font-family: var(--r-font-h, inherit);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--r-stars, #CE9426);
}
.ea-review-card__author-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.ea-review-card__name {
  font-family: var(--r-font-h, inherit);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--r-name, #3D3024);
}
.ea-review-card__source {
  font-weight: 400;
  font-size: 0.75rem;
  color: var(--r-meta, #A89B82);
  margin-left: 0.35rem;
}
.ea-review-card__date {
  font-size: 0.78rem;
  color: var(--r-meta, #A89B82);
}

/* Navigation carrousel */
.ea-reviews-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 2rem;
}
.ea-reviews-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid var(--r-arrow, #C4572E);
  background: transparent;
  color: var(--r-arrow, #C4572E);
  font-size: 1.2rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 250ms ease, color 250ms ease, transform 250ms ease;
}
.ea-reviews-arrow:hover {
  background: var(--r-arrow, #C4572E);
  color: #fff;
  transform: scale(1.05);
}
.ea-reviews-dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.ea-reviews-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: color-mix(in srgb, var(--r-arrow, #C4572E) 25%, transparent);
  cursor: pointer;
  padding: 0;
  transition: background-color 250ms ease, transform 250ms ease;
}
.ea-reviews-dot:hover { transform: scale(1.2); }
.ea-reviews-dot.active {
  background: var(--r-arrow, #C4572E);
  transform: scale(1.3);
}

/* Source externe (shortcode/iframe) */
.ea-reviews-shortcode { width: 100%; }
.ea-reviews-iframe {
  border-radius: var(--r-card-radius, 16px);
  overflow: hidden;
}
.ea-reviews-iframe iframe {
  width: 100%;
  min-height: 420px;
  border: none;
  display: block;
}

/* Responsive */
@media (max-width: 768px) {
  .ea-reviews-track {
    grid-template-columns: 1fr !important;
  }
}

/* ══════════════════════════════════════════════════════════════════
   GALLERY (v6.17.0 — section autonome via CSS vars --g-*)
   Vars injectées en style="" sur .ea-gallery-section :
     --g-eyebrow, --g-title, --g-hl   (couleurs)
     --g-font-t                        (police titre)
     --g-title-size                    (taille titre)
     --g-gap, --g-radius, --g-ratio    (layout)
   Effets hover : .ea-gallery-hover--{none|zoom|darken|lift|zoom-lift}
   ══════════════════════════════════════════════════════════════════ */
.ea-gallery-section {
  background-color: var(--g-bg, #FBF8F2);
  /* v6.19.0 — padding interne configurable via Customizer (injecté inline) */
}
.ea-gallery__header {
  text-align: center;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.ea-gallery__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--g-eyebrow, #C4572E);
  margin-bottom: 0.5rem;
}
.ea-gallery__title {
  font-family: var(--g-font-t, var(--font-display, 'Cormorant Garamond', serif));
  font-size: clamp(
    max(22px, calc(var(--g-title-size, 40px) * 0.65)),
    calc(var(--g-title-size, 40px) * 0.85 + 0.5vw),
    var(--g-title-size, 40px)
  );
  font-weight: 600;
  line-height: 1.1;
  color: var(--g-title, #3D3024);
  letter-spacing: -0.02em;
  margin: 0;
}
.ea-gallery__title em {
  font-style: italic;
  font-weight: 500;
  color: var(--g-hl, #C4572E);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}

.ea-gallery {
  display: grid;
  gap: var(--g-gap, 16px);
}
.ea-gallery--2cols { grid-template-columns: repeat(2, 1fr); }
.ea-gallery--3cols { grid-template-columns: repeat(3, 1fr); }
.ea-gallery--4cols { grid-template-columns: repeat(4, 1fr); }
.ea-gallery--mosaic {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, clamp(200px, 25vw, 300px));
}
.ea-gallery--mosaic .ea-gallery__item:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.ea-gallery__item {
  overflow: hidden;
  border-radius: var(--g-radius, 12px);
  position: relative;
  transition: transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms ease;
  /* Aspect ratio appliqué pour 2/3/4 cols (mosaic = grid-template-rows) */
  aspect-ratio: var(--g-ratio, 1/1);
}
.ea-gallery--mosaic .ea-gallery__item { aspect-ratio: auto; }

.ea-gallery__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1),
              filter 350ms ease;
  display: block;
}
.ea-gallery__item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26, 21, 16, 0.5), transparent 60%);
  opacity: 0;
  transition: opacity 350ms ease;
  pointer-events: none;
}

/* ─── Effets hover (variantes) ─── */
.ea-gallery-hover--zoom .ea-gallery__item:hover img,
.ea-gallery-hover--zoom-lift .ea-gallery__item:hover img {
  transform: scale(1.08);
}
.ea-gallery-hover--darken .ea-gallery__item:hover img {
  filter: brightness(0.75);
}
.ea-gallery-hover--darken .ea-gallery__item:hover::after {
  opacity: 1;
}
.ea-gallery-hover--lift .ea-gallery__item:hover,
.ea-gallery-hover--zoom-lift .ea-gallery__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.15);
}

/* Responsive */
@media (max-width: 768px) {
  .ea-gallery--4cols { grid-template-columns: repeat(2, 1fr); }
  .ea-gallery--mosaic {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, clamp(180px, 35vw, 240px));
  }
  .ea-gallery--mosaic .ea-gallery__item:first-child {
    grid-column: span 2;
    grid-row: span 1;
  }
}
@media (max-width: 480px) {
  .ea-gallery--3cols,
  .ea-gallery--4cols { grid-template-columns: 1fr; }
}

/* Promo horizontal scroll */
.ea-hscroll {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  padding-bottom: 1rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.ea-hscroll::-webkit-scrollbar { display: none; }
.ea-hscroll > * {
  flex: 0 0 clamp(260px, 35vw, 340px);
  scroll-snap-align: start;
}

/* ══════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════
   FOOTER (v6.18.3 — refonte v6.17.0 enrichie)
   Toutes les couleurs/polices/tailles + padding-top/bottom + logo-height
   sont pilotés par les vars injectées en style="" sur .site-footer
   depuis footer.php :
     --f-title, --f-text, --f-link-hover, --f-accent
     --f-bottom-bg, --f-bottom-color
     --f-font-t (titres), --f-font-b (corps)
     --f-title-size, --f-text-size, --f-copyright-size
     --f-logo-height (v6.18.3)
     --f-health-bg, --f-health-color, --f-health-size (v6.18.3)
   Modificateurs :
     .site-footer--mobile-accordion → mode accordéon mobile (v6.18.4)
     .site-footer--cols-1/2/3 → ajuste la grille selon nb colonnes secondaires
   ══════════════════════════════════════════════════════════════════ */
.site-footer {
  /* background-color + padding-top + padding-bottom injectés en inline */
  color: var(--f-text, #E8DDC8);
  font-family: var(--f-font-b, inherit);
  margin-top: auto;
  position: relative;
  isolation: isolate;
}
/* v6.18.4 — Filet décoratif (.site-footer--topline) supprimé totalement (était inutile, code mort) */

/* Grille footer — par défaut 4 colonnes, s'adapte selon les colonnes actives */
.footer-grid {
  display: grid;
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: 3rem;
}
.site-footer--cols-2 .footer-grid { grid-template-columns: 2fr repeat(2, 1fr); }
.site-footer--cols-1 .footer-grid { grid-template-columns: 2fr 1fr; }
/* (cols-0 = juste la brand, plein largeur) */
.site-footer--cols-0 .footer-grid { grid-template-columns: 1fr; }

/* ── Logo footer (v6.18.3 — taille configurable, fond transparent) ── */
.footer-brand__logo {
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
}
.footer-brand__logo-link {
  display: inline-block;
  line-height: 0; /* élimine le gap fantôme inline-block */
  background: transparent !important; /* anti-fond-blanc WP */
  text-decoration: none;
}
.footer-brand__logo-img {
  height: var(--f-logo-height, 60px);
  width: auto;
  max-width: 100%;
  background: transparent !important; /* image au cas où WP ajouterait un fond */
  object-fit: contain;
  display: block;
}
.footer-brand__logo-text {
  font-family: var(--f-font-t, inherit);
  font-size: 1.8rem;
  font-style: italic;
  color: #fff;
}
.footer-brand__tagline {
  font-family: var(--f-font-b, inherit);
  font-size: clamp(13px, calc(var(--f-text-size, 15px) * 0.95), var(--f-text-size, 15px));
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 80%, transparent);
  margin-bottom: 1.5rem;
  max-width: 30ch;
  line-height: 1.7;
}
.footer-brand__socials { display: flex; gap: 0.6rem; }
.footer-social-link {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--f-text, #E8DDC8);
  font-size: 0.9rem;
  transition: all var(--dur, 250ms) var(--ease, ease);
}
.site-footer .footer-social-link:hover {
  background: var(--f-accent, #C4572E);
  border-color: var(--f-accent, #C4572E);
  color: var(--f-link-hover, #fff);
  transform: translateY(-2px);
}
.footer-social-link svg {
  width: 18px; height: 18px;
  display: block;
  flex-shrink: 0;
}

/* Colonnes secondaires (titre + liens) — v6.18.4 : titre = button (accordéon mobile) */
.footer-col__title {
  /* Reset bouton */
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  width: 100%;
  text-align: left;
  cursor: default; /* desktop : pas cliquable */
  /* Style original */
  font-family: var(--f-font-t, inherit);
  font-size: clamp(11px, var(--f-title-size, 13px), 24px);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--f-title, #CE9426);
  margin-bottom: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.footer-col__chevron {
  display: none; /* caché desktop, affiché mobile en accordéon */
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  position: relative;
  transition: transform 250ms ease;
}
.footer-col__chevron::before,
.footer-col__chevron::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 8px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
}
.footer-col__chevron::before {
  left: 0;
  transform: translateY(-50%) rotate(45deg);
}
.footer-col__chevron::after {
  right: 0;
  transform: translateY(-50%) rotate(-45deg);
}
.footer-col__title[aria-expanded="true"] .footer-col__chevron {
  transform: rotate(180deg);
}
.footer-col__content {
  /* Desktop : toujours visible, pas d'animation */
}
.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.footer-col a {
  font-family: var(--f-font-b, inherit);
  font-size: clamp(13px, calc(var(--f-text-size, 15px) * 0.95), var(--f-text-size, 15px));
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 75%, transparent);
  transition: color var(--dur, 250ms) var(--ease, ease);
  text-decoration: none;
}
.footer-col a:hover { color: var(--f-link-hover, #fff); }
.footer-col li {
  font-family: var(--f-font-b, inherit);
  font-size: clamp(13px, calc(var(--f-text-size, 15px) * 0.95), var(--f-text-size, 15px));
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 75%, transparent);
}

/* Footer bottom (bandeau copyright) */
.footer-bottom {
  background-color: var(--f-bottom-bg, transparent);
  border-top: 1px solid color-mix(in srgb, var(--f-text, #E8DDC8) 10%, transparent);
  padding-block: 1.5rem;
  margin-top: 2.5rem;
  font-family: var(--f-font-b, inherit);
  font-size: clamp(11px, var(--f-copyright-size, 13px), 18px);
  color: var(--f-bottom-color, #A89B82);
}
.footer-bottom > .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-bottom__copyright { color: var(--f-bottom-color, #A89B82); }
.footer-bottom__legal {
  display: flex;
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-bottom__legal a {
  color: color-mix(in srgb, var(--f-bottom-color, #A89B82) 90%, transparent);
  text-decoration: none;
  transition: color var(--dur, 250ms) var(--ease, ease);
}
.footer-bottom__legal a:hover { color: var(--f-link-hover, #fff); }

/* v6.18.7 — Bandeau santé : VRAI fix de la position du texte
   Bug v6.18.6 : flex:1 1 auto faisait prendre toute la largeur au <p>,
   donc justify-content: center du parent n'avait aucun effet.
   Fix : flex:0 1 auto → le <p> a la largeur de son contenu, donc justify-content
   peut vraiment le déplacer dans le bandeau (gauche/centre/droite). */

/* v6.19.8 — Le footer applique son padding-bottom APRÈS le bandeau santé,
   ce qui crée une bande de la couleur du footer (souvent blanche) en bas de la page.
   Solution : quand le bandeau santé est présent comme dernier enfant, on annule
   le padding-bottom du footer. Le bandeau santé colle alors au bas du document.
   Approche moderne avec :has() (Chrome 105+, Safari 15.4+, Firefox 121+) */
.site-footer:has(> .footer-health:last-child) {
    padding-bottom: 0 !important;
}
/* Fallback pour navigateurs sans :has() : margin négatif sur le bandeau santé
   pour annuler visuellement le padding-bottom du footer. */
@supports not selector(:has(*)) {
    .footer-health:last-child {
        margin-bottom: calc(0px - var(--f-health-offset, 64px));
        padding-bottom: calc(1rem + var(--f-health-offset, 64px));
    }
}
.footer-health {
  background-color: var(--f-health-bg, #1a1510);
  padding: 1rem clamp(1rem, 4vw, 2rem);
  display: flex;
  align-items: center;
  width: 100%;
}
.footer-health__text {
  margin: 0;
  flex: 0 1 auto;          /* ← clé du fix : 0 = ne s'étire pas, prend la largeur du contenu */
  max-width: 1200px;
  font-family: var(--f-font-b, inherit);
  font-size: clamp(10px, var(--f-health-size, 12px), 16px);
  color: var(--f-health-color, #E8DDC8);
  line-height: 1.5;
  text-align: inherit;     /* hérite de l'alignement du parent (utile sur 2+ lignes) */
}
/* Position du <p> dans le bandeau via justify-content
   + text-align pour le rendu interne du paragraphe (multilignes) */
.footer-health--align-left   { justify-content: flex-start; text-align: left; }
.footer-health--align-center { justify-content: center;     text-align: center; }
.footer-health--align-right  { justify-content: flex-end;   text-align: right; }

.footer-health__text a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--dur, 250ms) var(--ease, ease);
}
.footer-health__text a:hover {
  color: var(--f-link-hover, #fff);
}

/* v6.18.4 — Bloc Newsletter (sous les colonnes, avant le copyright) */
.footer-newsletter {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid color-mix(in srgb, var(--f-text, #E8DDC8) 12%, transparent);
}
.footer-newsletter__inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}
.footer-newsletter__title {
  font-family: var(--f-font-t, inherit);
  font-size: clamp(18px, calc(var(--f-title-size, 13px) * 1.5), 28px);
  font-weight: 700;
  color: var(--f-link-hover, #fff);
  margin: 0 0 0.5rem;
  letter-spacing: -0.01em;
  text-transform: none;
}
.footer-newsletter__text {
  font-family: var(--f-font-b, inherit);
  font-size: clamp(13px, var(--f-text-size, 15px), 18px);
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 80%, transparent);
  margin: 0 0 1.25rem;
  line-height: 1.6;
}
.footer-newsletter__form {
  display: flex;
  gap: 0.5rem;
  max-width: 480px;
  margin: 0 auto;
  flex-wrap: wrap;
}
.footer-newsletter__input {
  flex: 1 1 220px;
  min-width: 0;
  padding: 0.85rem 1.15rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--f-text, #E8DDC8) 25%, transparent);
  background: rgba(255, 255, 255, 0.04);
  color: var(--f-text, #E8DDC8);
  font-family: inherit;
  font-size: 15px;
  transition: border-color 250ms ease, background-color 250ms ease;
}
.footer-newsletter__input::placeholder {
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 50%, transparent);
}
.footer-newsletter__input:focus {
  outline: none;
  border-color: var(--f-news-btn-bg, #C4572E);
  background: rgba(255, 255, 255, 0.08);
}
.footer-newsletter__btn {
  appearance: none;
  border: none;
  padding: 0.85rem 1.5rem;
  border-radius: 999px;
  background: var(--f-news-btn-bg, #C4572E);
  color: var(--f-news-btn-color, #fff);
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 250ms ease, filter 250ms ease, box-shadow 250ms ease;
}
.footer-newsletter__btn:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--f-news-btn-bg, #C4572E) 35%, transparent);
}
.footer-newsletter__legal {
  margin: 1rem 0 0;
  font-size: 11px;
  color: color-mix(in srgb, var(--f-text, #E8DDC8) 55%, transparent);
  line-height: 1.5;
}

/* Responsive footer (v6.18.4 — accordéon mobile + adaptations) */
@media (max-width: 900px) {
  .footer-grid,
  .site-footer--cols-1 .footer-grid,
  .site-footer--cols-2 .footer-grid,
  .site-footer--cols-3 .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}
@media (max-width: 600px) {
  .footer-grid,
  .site-footer--cols-1 .footer-grid,
  .site-footer--cols-2 .footer-grid,
  .site-footer--cols-3 .footer-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .footer-bottom > .container {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  .footer-bottom__legal {
    justify-content: center;
    flex-wrap: wrap;
  }

  /* v6.18.5 — Alignement footer mobile global (gauche / centre / droite)
     Affecte la brand (logo + tagline + sociaux), les colonnes et le copyright */
  .site-footer--mobile-align-left  .footer-brand,
  .site-footer--mobile-align-left  .footer-col,
  .site-footer--mobile-align-left  .footer-newsletter__inner { text-align: left; }
  .site-footer--mobile-align-left  .footer-brand__socials,
  .site-footer--mobile-align-left  .footer-newsletter__form { justify-content: flex-start; }
  .site-footer--mobile-align-left  .footer-brand__tagline { margin-left: 0; margin-right: auto; }

  .site-footer--mobile-align-center .footer-brand,
  .site-footer--mobile-align-center .footer-col,
  .site-footer--mobile-align-center .footer-newsletter__inner { text-align: center; }
  .site-footer--mobile-align-center .footer-brand__socials,
  .site-footer--mobile-align-center .footer-newsletter__form { justify-content: center; }
  .site-footer--mobile-align-center .footer-brand__tagline { margin-left: auto; margin-right: auto; }
  .site-footer--mobile-align-center .footer-brand__logo { justify-content: center; }

  .site-footer--mobile-align-right .footer-brand,
  .site-footer--mobile-align-right .footer-col,
  .site-footer--mobile-align-right .footer-newsletter__inner { text-align: right; }
  .site-footer--mobile-align-right .footer-brand__socials,
  .site-footer--mobile-align-right .footer-newsletter__form { justify-content: flex-end; }
  .site-footer--mobile-align-right .footer-brand__tagline { margin-left: auto; margin-right: 0; }
  .site-footer--mobile-align-right .footer-brand__logo { justify-content: flex-end; }

  /* En mode accordéon, on garde toujours le titre aligné à gauche pour la lisibilité du chevron */
  .site-footer--mobile-accordion .footer-col__title {
    justify-content: space-between;
    text-align: left;
  }

  /* v6.18.4 — Mode accordéon : titres cliquables, contenus collapsibles */
  .site-footer--mobile-accordion .footer-col {
    border-bottom: 1px solid color-mix(in srgb, var(--f-text, #E8DDC8) 10%, transparent);
    padding-bottom: 0.85rem;
  }
  .site-footer--mobile-accordion .footer-col:last-child {
    border-bottom: none;
  }
  .site-footer--mobile-accordion .footer-col__title {
    cursor: pointer;
    margin-bottom: 0;
    padding-block: 0.85rem;
    user-select: none;
  }
  .site-footer--mobile-accordion .footer-col__chevron {
    display: inline-block;
  }
  .site-footer--mobile-accordion .footer-col__content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 350ms ease;
    overflow: hidden;
  }
  .site-footer--mobile-accordion .footer-col__title[aria-expanded="true"] + .footer-col__content {
    grid-template-rows: 1fr;
  }
  .site-footer--mobile-accordion .footer-col__content > * {
    min-height: 0;
    padding-bottom: 1rem;
  }
  .site-footer--mobile-accordion .footer-col__content > ul,
  .site-footer--mobile-accordion .footer-col__content > .menu {
    margin-top: 0.25rem;
  }

  /* v6.18.5 — Newsletter mobile refondu (plus moche)
     - Padding interne plus généreux
     - Input + bouton empilés
     - Bouton bien dimensionné, pas écrasé */
  .footer-newsletter {
    margin-top: 1.5rem;
    padding-top: 1.75rem;
    padding-inline: 0.5rem;
  }
  .footer-newsletter__inner {
    max-width: 100%;
  }
  .footer-newsletter__title {
    font-size: 1.15rem;
    margin-bottom: 0.4rem;
  }
  .footer-newsletter__text {
    font-size: 14px;
    margin-bottom: 1rem;
    line-height: 1.5;
  }
  .footer-newsletter__form {
    flex-direction: column;
    gap: 0.6rem;
    max-width: 100%;
  }
  .footer-newsletter__input {
    width: 100%;
    flex: 1 1 auto;
    padding: 0.95rem 1.2rem;
    font-size: 16px; /* 16px = pas de zoom auto sur iOS */
    text-align: center;
  }
  .footer-newsletter__btn {
    width: 100%;
    padding: 0.95rem 1.5rem;
    font-size: 16px;
  }
  .footer-newsletter__legal {
    margin-top: 0.85rem;
    font-size: 11px;
    padding-inline: 0.25rem;
  }
}

/* ══════════════════════════════════════════════════════════════════
   v6.19.4 — CENTRAGE MOBILE GLOBAL (≤ 600px)
   Force le centrage des eyebrows, titres, textes et actions sur tous
   les blocs front-page. Améliore l'esthétique sur petit écran sans
   toucher aux mises en page desktop.
   ══════════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  /* Tous les eyebrows (petit titre orange au-dessus du gros titre) */
  .ea-stats__eyebrow,
  .ea-split__eyebrow,
  .ea-products__eyebrow,
  .ea-features__eyebrow,
  .ea-gallery__eyebrow,
  .ea-cta-band__eyebrow,
  .ea-reviews__eyebrow,
  .ea-instagram__eyebrow {
    text-align: center;
    width: 100%;
    display: block;
  }

  /* Tous les gros titres H2 des blocs */
  .ea-stats__title,
  .ea-split__title,
  .ea-products__title,
  .ea-features__title,
  .ea-gallery__title,
  .ea-cta-band__title,
  .ea-reviews__title,
  .ea-instagram__title {
    text-align: center;
  }

  /* Tous les textes / sous-titres */
  .ea-split__text,
  .ea-products__subtitle,
  .ea-features__subtitle,
  .ea-cta-band__desc,
  .ea-reviews__subtitle,
  .ea-instagram__subtitle {
    text-align: center;
  }

  /* Tous les headers de section (split-align) */
  .ea-products__header,
  .ea-features__header,
  .ea-gallery__header,
  .ea-reviews__header,
  .ea-instagram__header {
    text-align: center;
  }

  /* Boutons : centrer les wrappers d'actions */
  .ea-split__actions,
  .ea-products__header-cta,
  .ea-instagram__cta-wrap,
  .ea-cta-band__actions {
    justify-content: center;
    text-align: center;
  }

  /* Pour les blocs Split (image + texte côte à côte sur desktop)
     → empiler image au-dessus du texte sur mobile, et centrer le contenu texte */
  .ea-split-a-section .ea-split__body,
  .ea-split-b-section .ea-split__body {
    text-align: center;
  }

  /* Listes à puces dans Split : garder à gauche pour la lisibilité MAIS centrer le bloc */
  .ea-split__list {
    display: inline-block;
    text-align: left;
    margin-inline: auto;
  }

  /* Header CTA Band */
  .ea-cta-band__content {
    text-align: center;
    margin-inline: auto;
  }

  /* Stats : grid déjà OK sur mobile, juste s'assurer du centrage du header */
  .ea-stats-section .ea-stats__header {
    text-align: center;
  }
}

/* ══════════════════════════════════════════════════════════════════
   WOOCOMMERCE OVERRIDES
   ══════════════════════════════════════════════════════════════════ */
.woocommerce-page .woocommerce { color: inherit; }
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(var(--grid-cols-desktop, 4), 1fr);
  gap: var(--grid-gap);
  margin: 0;
  padding: 0;
}
.woocommerce ul.products li.product {
  float: none;
  width: 100%;
  margin: 0;
}
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
  background: var(--col-surface);
  color: var(--col-ink);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-sm);
  padding: 0.65rem 1rem;
  font-family: inherit;
}
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--col-primary);
  color: var(--clr-white);
  border: none;
  border-radius: var(--radius-pill);
  padding: 0.85rem 1.9rem;
  font-family: var(--font-heading);
  font-weight: 600;
  transition: all var(--dur) var(--ease);
  box-shadow: 0 4px 12px var(--col-primary-glow);
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
  background: var(--col-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px var(--col-primary-glow);
}
.woocommerce .quantity input {
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-sm);
  color: var(--col-ink);
  padding: 0.6rem;
}

/* ══════════════════════════════════════════════════════════════════
   CART DRAWER (eap-drawer, ex-cart-drawer)
   ══════════════════════════════════════════════════════════════════ */
.eap-drawer,
.ea-cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(440px, 100vw);
  height: 100svh;
  background: var(--col-surface);
  border-left: 1px solid var(--col-border);
  /* v6.19.3 — z-index doit dépasser le header sticky (9999) sinon la croix de
     fermeture et le titre du panier sont cachés derrière le header sur mobile */
  z-index: 10001;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--dur) var(--ease);
  box-shadow: var(--shadow-xl);
}
.eap-drawer.open,
.eap-drawer[aria-hidden="false"],
.ea-cart-drawer.open { transform: translateX(0); }

.eap-drawer-overlay,
.ea-cart-drawer__overlay,
.ea-overlay {
  position: fixed;
  inset: 0;
  /* v6.19.3 — overlay aussi remonté au-dessus du header sticky */
  z-index: 10000;
  background: rgba(26, 21, 16, 0.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease);
}
.eap-drawer-overlay.visible,
.ea-cart-drawer__overlay.visible,
.ea-overlay.visible { opacity: 1; pointer-events: all; }

.eap-drawer__header,
.ea-cart-drawer__header {
  padding: 1.3rem 1.5rem;
  border-bottom: 1px solid var(--col-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.eap-drawer__title,
.ea-cart-drawer__title {
  font-family: var(--font-heading);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--col-ink);
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.eap-drawer__count {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--col-muted);
  margin-left: 0.3rem;
}
.eap-drawer__close,
.ea-cart-drawer__close {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--col-bg-alt);
  border: 1px solid var(--col-border);
  color: var(--col-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all var(--dur) var(--ease);
}
.eap-drawer__close:hover,
.ea-cart-drawer__close:hover {
  background: var(--col-primary);
  color: var(--clr-white);
  border-color: var(--col-primary);
}
.eap-drawer__body,
.ea-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 1.5rem;
}
.eap-drawer__footer,
.ea-cart-drawer__footer {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--col-border);
  background: var(--col-bg);
  flex-shrink: 0;
}

/* Delivery bar (progress) */
.ea-delivery-bar { margin-bottom: 1.25rem; }
.ea-delivery-bar__text {
  font-size: 0.82rem;
  color: var(--col-ink-soft);
  margin-bottom: 0.45rem;
}
.ea-delivery-bar__text strong { color: var(--col-primary); font-weight: 700; }
.ea-delivery-bar__text.done { color: var(--clr-olive-500); }
.ea-delivery-bar__track {
  height: 6px;
  background: var(--col-bg-alt);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.ea-delivery-bar__fill {
  height: 100%;
  border-radius: var(--radius-pill);
  background: linear-gradient(90deg, var(--col-primary), var(--col-accent));
  transition: width var(--dur-slow) var(--ease);
}

.ea-drawer-promo {
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
  background: var(--col-primary-soft);
  color: var(--col-primary);
}

/* Mini cart items */
.ea-mini-cart-item,
.woocommerce-mini-cart__item {
  display: flex;
  gap: 0.9rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--col-border);
  align-items: flex-start;
}
.ea-mini-cart-item:last-child { border-bottom: none; }
.ea-mini-cart-item__thumb {
  width: 66px; height: 66px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  flex-shrink: 0;
  background: var(--col-bg-alt);
}
.ea-mini-cart-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ea-mini-cart-item__info { flex: 1; min-width: 0; }
.ea-mini-cart-item__name {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--col-ink);
  line-height: 1.3;
  margin-bottom: 0.2rem;
}
.ea-mini-cart-item__vars { font-size: 0.76rem; color: var(--col-muted); margin-bottom: 0.5rem; }
.ea-mini-cart-item__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ea-mini-cart-item__price {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--col-ink);
}
.ea-qty-ctrl {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--col-bg-alt);
  border-radius: var(--radius-pill);
  padding: 0.2rem;
  border: 1px solid var(--col-border);
}
.ea-qty-btn {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: transparent;
  color: var(--col-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  transition: all var(--dur) var(--ease);
}
.ea-qty-btn:hover { background: var(--col-primary); color: var(--clr-white); }
.ea-qty-val {
  width: 22px;
  text-align: center;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--col-ink);
}
.ea-mini-cart-item__remove {
  color: var(--col-muted);
  font-size: 0.75rem;
  padding: 0.25rem;
  transition: color var(--dur) var(--ease);
  margin-left: 0.25rem;
}
.ea-mini-cart-item__remove:hover { color: var(--col-primary); }

/* Cart empty */
.ea-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
  text-align: center;
  gap: 1rem;
}
.ea-cart-empty__icon { font-size: 3.5rem; opacity: 0.35; }
.ea-cart-empty__text { color: var(--col-muted); font-size: 0.92rem; }

.ea-cart-drawer__total,
.eap-drawer__total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.85rem 0;
  margin-bottom: 1rem;
  border-top: 1px solid var(--col-border);
}
.ea-cart-drawer__total-label { font-weight: 600; font-size: 0.92rem; color: var(--col-ink-soft); }
.ea-cart-drawer__total-amount {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.2rem;
  color: var(--col-primary);
}

/* ══════════════════════════════════════════════════════════════════
   SEARCH OVERLAY
   ══════════════════════════════════════════════════════════════════ */
.eap-search,
.ea-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: color-mix(in oklab, var(--col-bg) 85%, transparent);
  backdrop-filter: saturate(1.6) blur(24px);
  -webkit-backdrop-filter: saturate(1.6) blur(24px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 15vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease);
}
.eap-search[aria-hidden="false"],
.eap-search.open,
.ea-search-overlay.open {
  opacity: 1;
  pointer-events: all;
}
.eap-search__inner,
.ea-search-overlay__inner {
  width: 100%;
  max-width: 680px;
  padding-inline: var(--container-pad);
}
.eap-search__label,
.ea-search-overlay__label {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--col-muted);
  margin-bottom: 1rem;
  display: block;
}
.eap-search__form,
.ea-search-overlay form { position: relative; }
.eap-search__input,
.ea-search-overlay input[type="search"] {
  width: 100%;
  background: var(--col-surface);
  border: 1.5px solid var(--col-border-strong);
  border-radius: var(--radius-lg);
  padding: 1.25rem 4.5rem 1.25rem 1.5rem;
  font-size: 1.18rem;
  font-family: var(--font-body);
  color: var(--col-ink);
  box-shadow: var(--shadow);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.eap-search__input::placeholder,
.ea-search-overlay input[type="search"]::placeholder { color: var(--col-muted); }
.eap-search__input:focus,
.ea-search-overlay input[type="search"]:focus {
  outline: none;
  border-color: var(--col-primary);
  box-shadow: var(--shadow), 0 0 0 4px var(--col-primary-glow);
}
.eap-search__submit,
.ea-search-overlay button[type="submit"] {
  position: absolute;
  right: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  background: var(--col-primary);
  color: var(--clr-white);
  width: 44px; height: 44px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--dur) var(--ease);
}
.eap-search__submit:hover,
.ea-search-overlay button[type="submit"]:hover { background: var(--col-primary-dark); }
.eap-search__close,
.ea-search-close {
  position: absolute;
  top: 1.5rem; right: 1.5rem;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  color: var(--col-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
}

/* ══════════════════════════════════════════════════════════════════
   MOBILE NAV
   ══════════════════════════════════════════════════════════════════ */
.eap-mobile-nav,
.mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1500;
  background: var(--col-bg);
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease);
}
.eap-mobile-nav.open,
.eap-mobile-nav[aria-hidden="false"],
.mobile-nav.open {
  opacity: 1;
  pointer-events: all;
  display: flex;
}
.eap-mobile-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--col-border);
}
.eap-mobile-nav__close {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--col-surface-2);
  color: var(--col-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.eap-mobile-nav__links {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem;
  gap: 0.25rem;
}
.eap-mobile-nav__links ul { display: flex; flex-direction: column; gap: 0.4rem; }
.eap-mobile-nav__links a,
.mobile-nav a {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 500;
  color: var(--col-ink);
  padding: 0.4rem 0;
  display: block;
  transition: color var(--dur) var(--ease), transform var(--dur) var(--ease);
  transform-origin: left center;
}
.eap-mobile-nav__links a:hover,
.mobile-nav a:hover {
  color: var(--col-primary);
  transform: translateX(10px);
}

/* ══════════════════════════════════════════════════════════════════
   PAGE HEADER (titre / fil d'ariane)
   ══════════════════════════════════════════════════════════════════ */
.ea-page-header {
  padding: 4.5rem 0 3.5rem;
  background: var(--col-bg-alt);
  border-bottom: 1px solid var(--col-border);
  position: relative;
  overflow: hidden;
}
.ea-page-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(600px at 85% 50%, var(--col-primary-glow), transparent 65%),
    radial-gradient(500px at 10% 110%, color-mix(in oklab, var(--col-accent) 15%, transparent), transparent 65%);
  pointer-events: none;
}
.ea-page-header__inner { position: relative; z-index: 1; }
.ea-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  color: var(--col-muted);
  margin-bottom: 0.85rem;
  flex-wrap: wrap;
}
.ea-breadcrumb a { color: var(--col-ink-soft); }
.ea-breadcrumb a:hover { color: var(--col-primary); }
.ea-breadcrumb__sep { color: var(--col-border-strong); }
.ea-page-header__title {
  font-size: var(--step-4);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--col-ink);
  line-height: 1.1;
}
.ea-page-header__title em {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--col-primary);
  font-weight: 500;
}
.ea-page-header__desc {
  margin-top: 0.85rem;
  color: var(--col-ink-soft);
  font-size: var(--step-0);
  max-width: 60ch;
}

/* ══════════════════════════════════════════════════════════════════
   CHECKOUT STEPS / TRUST BAR
   ══════════════════════════════════════════════════════════════════ */
.ea-checkout-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: 2rem;
  flex-wrap: wrap;
}
.ea-checkout-step {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1.4rem;
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 600;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  color: var(--col-muted);
  white-space: nowrap;
}
.ea-checkout-step.active {
  background: var(--col-primary);
  border-color: var(--col-primary);
  color: var(--clr-white);
  box-shadow: 0 4px 12px var(--col-primary-glow);
}
.ea-checkout-step.done {
  background: color-mix(in oklab, var(--clr-olive-500) 18%, var(--col-surface));
  border-color: var(--clr-olive-400);
  color: var(--clr-olive-600);
}
.ea-checkout-step__num {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
}
.ea-checkout-step.done .ea-checkout-step__num,
.ea-checkout-step:not(.active):not(.done) .ea-checkout-step__num {
  background: var(--col-bg-alt);
  color: var(--col-ink);
}
.ea-checkout-line {
  width: 40px;
  height: 2px;
  background: var(--col-border-strong);
  margin: 0 0.25rem;
  flex-shrink: 0;
}

/* v6.21.0 — Retiré : .ea-trust-bar et .ea-trust-item
   Les trust badges étaient affichés dans page-commande.php avant la migration
   vers le plugin "🍕 Eatalia Restaurant". Le plugin gère maintenant
   l'affichage des informations de service (livraison, click & collect, etc.)
   via ses propres composants. */

/* ══════════════════════════════════════════════════════════════════
   INFO BAR / INFO CARDS (page produit)
   ══════════════════════════════════════════════════════════════════ */
.ea-info-bar {
  margin-bottom: 2rem;
  padding: 1rem 1.5rem;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.9rem;
  font-weight: 500;
}
.ea-info-bar--warning {
  background: var(--col-accent-soft);
  border: 1px solid color-mix(in oklab, var(--col-accent) 35%, transparent);
  color: var(--clr-ochre-600);
}
.ea-info-bar--success {
  background: color-mix(in oklab, var(--clr-olive-500) 12%, var(--col-surface));
  border: 1px solid var(--clr-olive-400);
  color: var(--clr-olive-600);
}
.ea-info-bar strong { font-weight: 700; }

.ea-info-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.65rem;
  margin-top: 1.75rem;
}
.ea-info-card {
  text-align: center;
  padding: 1rem 0.5rem;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--radius);
  transition: all var(--dur) var(--ease);
}
.ea-info-card:hover {
  background: var(--col-primary-soft);
  border-color: var(--col-primary-soft);
  transform: translateY(-2px);
}
.ea-info-card__icon { font-size: 1.4rem; margin-bottom: 0.35rem; display: block; }
.ea-info-card__label {
  font-family: var(--font-heading);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--col-ink-soft);
  line-height: 1.3;
}

/* ══════════════════════════════════════════════════════════════════
   SINGLE PRODUCT
   ══════════════════════════════════════════════════════════════════ */
.ea-product-page { padding: 3rem 0 5rem; }
.ea-product-layout { display: grid; grid-template-columns: 40% 60%; gap: var(--sp-xl); }
.ea-product-gallery .woocommerce-product-gallery { border-radius: var(--radius-lg); overflow: hidden; }
.ea-product-gallery .woocommerce-product-gallery__image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.ea-product-summary .product_title {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3.2vw, 2.4rem);
  font-weight: 700;
  color: var(--col-ink);
  margin-bottom: 0.5rem;
  letter-spacing: -0.025em;
}
.ea-product-summary .price {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--col-primary);
  margin-bottom: 1.5rem;
  display: block;
}
.ea-product-summary .price del {
  font-size: 0.78em;
  color: var(--col-muted);
  font-weight: 500;
  margin-right: 0.4rem;
}
.ea-product-summary .price ins { text-decoration: none; }
.ea-product-summary .single_add_to_cart_button {
  background: var(--col-primary) !important;
  color: var(--clr-white) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  padding: 1rem 2.5rem !important;
  font-family: var(--font-heading) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  box-shadow: 0 6px 18px var(--col-primary-glow) !important;
  transition: all var(--dur) var(--ease) !important;
}
.ea-product-summary .single_add_to_cart_button:hover {
  background: var(--col-primary-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px var(--col-primary-glow) !important;
}

/* ══════════════════════════════════════════════════════════════════
   PAGE CONTENT / ARTICLE
   ══════════════════════════════════════════════════════════════════ */
.page-content,
.entry-content {
  max-width: 760px;
  margin-inline: auto;
  padding-block: 5rem;
  padding-inline: var(--container-pad);
  color: var(--col-ink);
}
.page-content h2,
.entry-content h2 {
  font-size: var(--step-3);
  margin-block: 2rem 1rem;
  color: var(--col-ink);
}
.page-content h3,
.entry-content h3 {
  font-size: var(--step-2);
  margin-block: 1.5rem 0.75rem;
  color: var(--col-ink);
}
.page-content p,
.entry-content p {
  margin-bottom: 1.25rem;
  color: var(--col-ink-soft);
  line-height: 1.75;
}
.page-content a,
.entry-content a {
  color: var(--col-primary);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
.page-content blockquote,
.entry-content blockquote {
  margin: 2rem 0;
  padding: 1.5rem 2rem;
  border-left: 4px solid var(--col-primary);
  background: var(--col-bg-alt);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--col-ink);
}

/* Empty / 404 */
.ea-empty-state {
  text-align: center;
  padding: 6rem 2rem;
}
.ea-empty-state__icon { font-size: 4.5rem; margin-bottom: 1.5rem; opacity: 0.5; }
.ea-empty-state__title {
  font-size: var(--step-3);
  margin-bottom: 0.75rem;
  color: var(--col-ink);
}
.ea-empty-state__desc {
  color: var(--col-ink-soft);
  margin-bottom: 2rem;
  max-width: 48ch;
  margin-inline: auto;
}

/* ══════════════════════════════════════════════════════════════════
   UPSELL / MISC
   ══════════════════════════════════════════════════════════════════ */
.ea-upsell-section {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid var(--col-border);
}
.ea-upsell-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

/* ══════════════════════════════════════════════════════════════════
   ADMIN BAR OFFSET
   ══════════════════════════════════════════════════════════════════ */
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

/* ══════════════════════════════════════════════════════════════════
   ANIMATIONS / REVEAL (fallback JS + scroll-driven natif)
   ══════════════════════════════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal--left  { transform: translateX(-30px); }
.reveal--right { transform: translateX(30px); }
.reveal--scale { transform: scale(0.95); }
.reveal--left.revealed,
.reveal--right.revealed,
.reveal--scale.revealed { transform: none; }

.stagger-children > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
.stagger-children.revealed > * { opacity: 1; transform: none; }
.stagger-children.revealed > *:nth-child(1) { transition-delay: 0s; }
.stagger-children.revealed > *:nth-child(2) { transition-delay: 0.08s; }
.stagger-children.revealed > *:nth-child(3) { transition-delay: 0.16s; }
.stagger-children.revealed > *:nth-child(4) { transition-delay: 0.24s; }
.stagger-children.revealed > *:nth-child(5) { transition-delay: 0.32s; }
.stagger-children.revealed > *:nth-child(6) { transition-delay: 0.4s; }
.stagger-children.revealed > *:nth-child(7) { transition-delay: 0.48s; }
.stagger-children.revealed > *:nth-child(8) { transition-delay: 0.56s; }

/* Scroll-driven animations natives (Chromium 115+, Safari TP) — sans JS */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .ea-product-card,
    .ea-feature-card,
    .ea-review-card,
    .ea-split,
    .ea-stat {
      animation: reveal-fade 1s var(--ease) both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }
    @keyframes reveal-fade {
      from { opacity: 0; transform: translateY(40px); }
      to   { opacity: 1; transform: translateY(0); }
    }
  }
}

/* View Transitions API (pour les navigations internes si activées) */
@view-transition { navigation: auto; }
::view-transition-old(root) {
  animation: 0.28s cubic-bezier(0.4, 0, 1, 1) both fade-out;
}
::view-transition-new(root) {
  animation: 0.32s cubic-bezier(0, 0, 0.2, 1) 0.05s both fade-in;
}
@keyframes fade-out { to { opacity: 0; } }
@keyframes fade-in  { from { opacity: 0; } }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .ea-split--50-50,
  .ea-split--60-40,
  .ea-split--40-60,
  .ea-split--33-66,
  .ea-split--66-33 { grid-template-columns: 1fr; gap: var(--sp-l); }
  .ea-split--reverse > *:first-child,
  .ea-split--reverse > *:last-child { order: 0; }
  .ea-hero--split .container { grid-template-columns: 1fr; }
  .ea-hero--split .ea-hero__visual { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .ea-features--4 { grid-template-columns: repeat(2, 1fr); }
  .ea-product-layout { grid-template-columns: 1fr; }
  .ea-upsell-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  :root { --section-pad-y: clamp(3rem, 6vw, 5rem); }
  .eap-header-nav,
  .header-nav { display: none; }
  .eap-burger,
  .header-burger { display: inline-flex; }
  .eap-header-cta.btn--lg { display: none; }
  .ea-product-grid {
    grid-template-columns: repeat(var(--grid-cols-tablet, 2), 1fr);
    --grid-gap: 1rem;
  }
  .ea-product-grid--list { grid-template-columns: 1fr; }
  .ea-features--3,
  .ea-features--2 { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  /* v6.16.4 — responsive .ea-stats déplacé dans la section STATS BAND */
  .ea-stories { height: 220px; flex-wrap: wrap; }
  .ea-gallery--mosaic { grid-template-rows: repeat(2, 180px); }
  .ea-cat-sticky { top: 0; }
}

@media (max-width: 560px) {
  :root { --radius-xl: 24px; --radius-lg: 20px; }
  .ea-product-grid:not(.ea-product-grid--list) { grid-template-columns: 1fr; }
  /* v6.19.2 — Boutons CTA mobile : empilés mais centrés, pas full-width */
  .ea-cta-band__actions { flex-direction: column; align-items: center; gap: 0.75rem; }
  .ea-cta-band__actions .btn { justify-content: center; max-width: 320px; width: 100%; }
  .footer-bottom { justify-content: center; text-align: center; }
  .ea-info-cards { grid-template-columns: repeat(3, 1fr); gap: 0.4rem; }
  .ea-hero__content { padding-block: 6rem 3rem; }
  /* v6.19.2 — Boutons Hero mobile : pas full-width pour rendu pro */
  .ea-hero__actions { flex-direction: column; align-items: center; gap: 0.75rem; }
  .ea-hero__actions .btn { width: 100%; max-width: 320px; }
}

/* ══════════════════════════════════════════════════════════════════
   UTILITIES
   ══════════════════════════════════════════════════════════════════ */
.u-center  { text-align: center; }
.u-right   { text-align: right; }
.u-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.u-mt-0    { margin-top: 0 !important; }
.u-mb-0    { margin-bottom: 0 !important; }
.u-flex    { display: flex; }
.u-gap-s   { gap: var(--sp-s); }
.u-gap-m   { gap: var(--sp-m); }

/* Print */
@media print {
  body { background: white; color: black; }
  .site-header, .site-footer, .eap-drawer, .eap-search, .eap-mobile-nav { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════════
   v6.26.0 — UNIFICATION DES PAGES SECONDAIRES (404, search, blog,
              archive, single, faq, à propos, contact, offres)
   ══════════════════════════════════════════════════════════════════
   Toutes ces pages partagent maintenant les mêmes briques visuelles :
   .ea-page-header (en-tête uniforme)
   .container--narrow (largeur lecture confortable)
   .eap-page__content (contenu prose)
   .eap-blog-card (card article uniforme)
   .eap-product-card (card produit uniforme)
   ══════════════════════════════════════════════════════════════════ */

/* — Container narrow pour pages texte (max 820px lecture confortable) — */
.container--narrow {
  max-width: 880px;
  margin-inline: auto;
  padding-inline: var(--container-pad, 1.5rem);
}

/* — Page header : intro paragraph — */
.ea-page-header__intro {
  margin: 0.75rem 0 0;
  font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
  line-height: 1.6;
  color: var(--col-ink-soft);
  max-width: 60ch;
}

/* ── 404 ───────────────────────────────────────────────────────── */
.eap-404-page {
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eap-404 {
  text-align: center;
}
.eap-404__icon {
  font-size: clamp(4rem, 10vw, 7rem);
  line-height: 1;
  margin-bottom: 1.5rem;
}
.eap-404__title {
  font-family: var(--font-display, var(--font-heading));
  font-style: italic;
  font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
  font-weight: 500;
  color: var(--col-ink);
  margin: 0 0 1rem;
  text-wrap: balance;
}
.eap-404__title em {
  color: var(--col-primary);
}
.eap-404__text {
  max-width: 50ch;
  margin: 0 auto 2rem;
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.1rem);
  color: var(--col-ink-soft);
  line-height: 1.6;
}
.eap-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  justify-content: center;
}
@media (max-width: 480px) {
  .eap-404__actions .btn { width: 100%; max-width: 320px; }
}

/* ── SEARCH ─────────────────────────────────────────────────────── */
.eap-search-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-search__empty {
  text-align: center;
  padding: clamp(2.5rem, 5vw, 4rem) 1rem;
}
.eap-search__empty-icon {
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: 1;
  margin-bottom: 1rem;
}
.eap-search__empty-title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.8rem);
  font-weight: 700;
  color: var(--col-ink);
  margin: 0 0 0.75rem;
}
.eap-search__empty-text {
  max-width: 50ch;
  margin: 0 auto 1.75rem;
  color: var(--col-ink-soft);
  font-size: 1rem;
}

/* ── BLOG (index, archive) ──────────────────────────────────────── */
.eap-blog-page,
.eap-archive-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-blog-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: 1fr;
}
@media (min-width: 600px) {
  .eap-blog-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1000px) {
  .eap-blog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.eap-blog-card {
  display: flex;
  flex-direction: column;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--eap-radius-card, 18px);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(61, 48, 36, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.eap-blog-card:hover,
.eap-blog-card:focus-within {
  transform: translateY(-2px);
  border-color: var(--col-border-strong);
  box-shadow: 0 8px 24px -10px rgba(61, 48, 36, 0.16);
}
.eap-blog-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--col-bg-alt);
}
.eap-blog-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.eap-blog-card:hover .eap-blog-card__media img {
  transform: scale(1.05);
}
.eap-blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.25rem 1.35rem 1.35rem;
}
.eap-blog-card__title {
  font-family: var(--font-heading);
  font-size: clamp(1.05rem, 1rem + 0.25vw, 1.2rem);
  font-weight: 700;
  color: var(--col-ink);
  margin: 0 0 0.6rem;
  letter-spacing: -0.01em;
  line-height: 1.3;
  text-wrap: balance;
}
.eap-blog-card__title a {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(to right, var(--col-primary), var(--col-primary));
  background-size: 0% 1.5px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size 0.3s ease;
}
.eap-blog-card__title a:hover,
.eap-blog-card__title a:focus-visible {
  background-size: 100% 1.5px;
}
.eap-blog-card__excerpt {
  flex: 1;
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  color: var(--col-ink-soft);
  line-height: 1.55;
}
.eap-blog-card__meta {
  font-size: 0.82rem;
  color: var(--col-muted);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.eap-blog__empty {
  text-align: center;
  padding: clamp(2.5rem, 5vw, 4rem) 1rem;
}
.eap-blog__empty-icon {
  font-size: clamp(3rem, 6vw, 4.5rem);
  margin-bottom: 1rem;
}
.eap-blog__empty-text {
  max-width: 50ch;
  margin: 0 auto;
  color: var(--col-ink-soft);
  font-size: 1rem;
}

/* ── PAGINATION (uniforme partout) ──────────────────────────────── */
.eap-pagination {
  margin-top: clamp(2rem, 4vw, 3rem);
  display: flex;
  justify-content: center;
}
.eap-pagination .nav-links,
.eap-pagination .pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  justify-content: center;
}
.eap-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.85rem;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: 999px;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--col-ink-soft);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.eap-pagination .page-numbers:hover {
  background: var(--col-bg-alt);
  color: var(--col-ink);
  border-color: var(--col-border-strong);
}
.eap-pagination .page-numbers.current {
  background: var(--col-primary);
  border-color: var(--col-primary);
  color: #fff;
}
.eap-pagination .page-numbers.dots {
  border: none;
  background: transparent;
}

/* ── SINGLE (article de blog) ──────────────────────────────────── */
.eap-single-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-single__meta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  color: var(--col-muted);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.eap-single__sep {
  color: var(--col-border-strong);
}
.eap-single__categories a {
  color: var(--col-primary-dark);
  text-decoration: none;
  margin-right: 0.25rem;
}
.eap-single__categories a:hover {
  text-decoration: underline;
}
.eap-single {
  display: block;
}
.eap-single__media {
  margin: 0 0 2rem;
  border-radius: var(--eap-radius-card, 24px);
  overflow: hidden;
  background: var(--col-bg-alt);
}
.eap-single__media img {
  width: 100%;
  height: auto;
  display: block;
}
.eap-single__content {
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.1rem);
  line-height: 1.75;
  color: var(--col-ink);
}
.eap-single__content > * + * {
  margin-top: 1.25em;
}
.eap-single__content h2 {
  margin-top: 2.5em;
  font-family: var(--font-heading);
  font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.6rem);
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.eap-single__content h3 {
  margin-top: 2em;
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1rem + 0.4vw, 1.35rem);
  letter-spacing: -0.01em;
}
.eap-single__content blockquote {
  margin: 2em 0;
  padding: 1.25rem 1.5rem;
  background: var(--col-bg-alt);
  border-left: 4px solid var(--col-primary);
  border-radius: 12px;
  font-style: italic;
  color: var(--col-ink);
}
.eap-single__content a {
  color: var(--col-primary-dark);
  text-decoration-color: var(--col-primary-soft);
  text-underline-offset: 0.18em;
}
.eap-single__content a:hover {
  text-decoration-color: currentColor;
}
.eap-single__footer {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: 2rem;
  border-top: 1px solid var(--col-border);
}
.eap-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 0;
}
.eap-post-nav .nav-links {
  display: contents;
}
.eap-post-nav a {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 1.25rem;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: 14px;
  text-decoration: none;
  color: var(--col-ink);
  font-size: 0.95rem;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.eap-post-nav a:hover {
  background: var(--col-bg-alt);
  border-color: var(--col-border-strong);
}
.eap-post-nav .nav-next {
  text-align: right;
  justify-content: flex-end;
}
.eap-nav__arrow {
  font-size: 1.1rem;
  color: var(--col-primary);
  flex-shrink: 0;
}

/* ── PAGE GÉNÉRIQUE (page.php, articles WP) ─────────────────────── */
.eap-page,
.eap-faq-page,
.eap-about-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-page__article {
  margin: 0;
}
.eap-page__content {
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.05rem);
  line-height: 1.7;
  color: var(--col-ink);
}
.eap-page__content > * + * {
  margin-top: 1.1em;
}
.eap-page__content h2 {
  margin-top: 2.5em;
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.55rem);
  font-weight: 700;
  color: var(--col-ink);
  letter-spacing: -0.01em;
}
.eap-page__content h3 {
  margin-top: 2em;
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1rem + 0.3vw, 1.3rem);
  font-weight: 700;
  color: var(--col-ink);
}
.eap-page__content ul,
.eap-page__content ol {
  margin: 0 0 1.1em 1.5em;
}
.eap-page__content li + li {
  margin-top: 0.4em;
}
.eap-page__content a {
  color: var(--col-primary-dark);
  text-decoration-color: var(--col-primary-soft);
  text-underline-offset: 0.18em;
}
.eap-page__content a:hover {
  text-decoration-color: currentColor;
}

/* ── CTA Card uniforme (FAQ, autres pages) ─────────────────────── */
.eap-cta-card {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(1.75rem, 4vw, 2.5rem);
  text-align: center;
  background: linear-gradient(135deg, var(--col-primary-soft) 0%, var(--col-bg-alt) 100%);
  border-radius: var(--eap-radius-card, 22px);
  border: 1px solid var(--col-border);
}
.eap-cta-card__title {
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem);
  font-weight: 700;
  color: var(--col-ink);
  margin: 0 0 0.5rem;
  letter-spacing: -0.01em;
}
.eap-cta-card__text {
  max-width: 48ch;
  margin: 0 auto 1.5rem;
  font-size: 0.95rem;
  color: var(--col-ink-soft);
  line-height: 1.55;
}

/* ── PAGE À PROPOS (valeurs) ───────────────────────────────────── */
.eap-about__media {
  margin: 0 0 2.5rem;
  border-radius: var(--eap-radius-card, 24px);
  overflow: hidden;
  background: var(--col-bg-alt);
}
.eap-about__media img {
  width: 100%;
  height: auto;
  display: block;
}
.eap-values {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}
.eap-values__title {
  text-align: center;
  font-family: var(--font-display, var(--font-heading));
  font-style: italic;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  font-weight: 500;
  color: var(--col-ink);
  margin: 0 0 2rem;
  text-wrap: balance;
}
.eap-values__title em {
  color: var(--col-primary);
}
.eap-values__grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: 1fr;
}
@media (min-width: 700px) {
  .eap-values__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.eap-value-card {
  text-align: center;
  padding: clamp(1.5rem, 3vw, 2rem);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--eap-radius-card, 18px);
  box-shadow: 0 1px 3px rgba(61, 48, 36, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.eap-value-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -10px rgba(61, 48, 36, 0.14);
}
.eap-value-card__icon {
  font-size: clamp(2.25rem, 4vw, 2.75rem);
  margin-bottom: 1rem;
  line-height: 1;
}
.eap-value-card__title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--col-ink);
  margin: 0 0 0.5rem;
  letter-spacing: -0.01em;
}
.eap-value-card__text {
  font-size: 0.92rem;
  color: var(--col-ink-soft);
  line-height: 1.55;
  margin: 0;
}

/* ── PAGE CONTACT ──────────────────────────────────────────────── */
.eap-contact-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-contact__layout {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  grid-template-columns: 1fr;
  align-items: start;
}
@media (min-width: 900px) {
  .eap-contact__layout {
    grid-template-columns: 360px 1fr;
  }
}
.eap-contact__cards {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}
.eap-contact-card {
  padding: 1.25rem 1.4rem;
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: 16px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.eap-contact-card:hover {
  border-color: var(--col-border-strong);
  box-shadow: 0 4px 16px -8px rgba(61, 48, 36, 0.12);
}
.eap-contact-card__icon {
  font-size: 1.4rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.eap-contact-card__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--col-muted);
  margin: 0 0 0.25rem;
}
.eap-contact-card__value {
  display: block;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--col-ink);
  margin: 0;
  text-decoration: none;
  word-break: break-word;
}
a.eap-contact-card__value {
  color: var(--col-primary-dark);
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
a.eap-contact-card__value:hover,
a.eap-contact-card__value:focus-visible {
  border-bottom-color: currentColor;
}
.eap-contact__maps-btn {
  width: 100%;
  justify-content: center;
}
.eap-contact__form-card {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--eap-radius-card, 22px);
  box-shadow: 0 1px 3px rgba(61, 48, 36, 0.04);
}
.eap-contact__form-title {
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.45rem);
  font-weight: 700;
  color: var(--col-ink);
  margin: 0 0 1.5rem;
  letter-spacing: -0.01em;
}

/* ── PAGE OFFRES (sections) ────────────────────────────────────── */
.eap-offers-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-offers__intro {
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.eap-offers__section {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.eap-offers__section:last-child {
  margin-bottom: 0;
}
.eap-offers__section-title {
  font-family: var(--font-display, var(--font-heading));
  font-style: italic;
  font-size: clamp(1.4rem, 1.15rem + 1vw, 1.85rem);
  font-weight: 500;
  color: var(--col-ink);
  margin: 0 0 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-wrap: balance;
}

/* ── PAGES LÉGALES (CGV, mentions, cookies, conf., a11y) ───────── */
.eap-legal-page {
  padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.eap-legal-page__header {
  margin-bottom: clamp(2rem, 4vw, 3rem);
  padding-bottom: clamp(1.5rem, 3vw, 2rem);
  border-bottom: 1px solid var(--col-border);
}
.eap-legal-page__updated {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: var(--col-muted);
  font-weight: 600;
  letter-spacing: 0.03em;
}
.eap-legal-content {
  font-size: clamp(0.95rem, 0.92rem + 0.15vw, 1.02rem);
  line-height: 1.7;
  color: var(--col-ink);
}
.eap-legal-content > * + * {
  margin-top: 1em;
}
.eap-legal-content h2 {
  margin-top: 2.5em;
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 1.05rem + 0.4vw, 1.45rem);
  font-weight: 700;
  color: var(--col-ink);
  letter-spacing: -0.01em;
}
.eap-legal-content h3 {
  margin-top: 1.75em;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--col-ink);
}
.eap-legal-content a {
  color: var(--col-primary-dark);
  text-decoration-color: var(--col-primary-soft);
  text-underline-offset: 0.15em;
}
.eap-legal-content a:hover {
  text-decoration-color: currentColor;
}
.eap-legal-content ul,
.eap-legal-content ol {
  margin: 0 0 1em 1.5em;
}
.eap-legal-content li + li {
  margin-top: 0.4em;
}

/* ══════════════════════════════════════════════════════════════════
   v6.26.0 — VARIABLES LEGACY (compat ascendante)
   Anciennes variables v5 utilisées encore dans certains contenus
   d'éditeur ou shortcodes utilisateurs. On les définit comme alias
   des nouvelles pour qu'aucune cassure n'apparaisse même sur du
   contenu importé d'une ancienne version.
   ══════════════════════════════════════════════════════════════════ */
:root {
  /* Aliases vers les vraies variables 2026 */
  --gray-50:   var(--col-bg-alt);
  --gray-100:  var(--col-bg-alt);
  --gray-200:  var(--col-border);
  --gray-300:  var(--col-border-strong);
  --gray-400:  var(--col-muted);
  --gray-500:  var(--col-ink-soft);
  --gray-600:  var(--col-ink);
  --gray-700:  var(--col-ink);
  --gray-900:  var(--col-ink);

  --red:       var(--col-primary);
  --white:     var(--col-surface);
  --bg-hero:   var(--col-bg-alt);

  --radius-md: var(--radius);
}
