﻿/* ===================================================================
   Génestine - Composants page (utilisés dans les widgets HTML Elementor)
   Dépend des tokens définis dans style.css (:root)
   =================================================================== */

.gen-ico-diamond { vertical-align: -0.15em; }

/* ===================================================================
   Override Hello Elementor reset.css - #c36 → var(--forest)
   reset.css est le parent et s'applique à tous les <a> et <button> nus.
   Ces règles chargent après (enqueue order) et prennent le dessus.
   =================================================================== */
a { color: inherit; }
a:active,
a:hover { color: var(--forest, #1c3a0f); }
[type="button"],
[type="reset"],
[type="submit"],
button {
  border-color: var(--forest, #1c3a0f);
  color: var(--forest, #1c3a0f);
}
[type="button"]:focus,
[type="button"]:hover,
[type="reset"]:focus,
[type="reset"]:hover,
[type="submit"]:focus,
[type="submit"]:hover,
button:focus,
button:hover {
  background-color: var(--forest, #1c3a0f);
  color: var(--cream, #fbfaf5);
}

/* ===================================================================
   Classes utilitaires & boutons « genestine- » (ex-inline tokens)
   Déplacées depuis inc/elementor-tokens.php. Tokens : voir style.css.
   =================================================================== */
/* Fond papier peint — image unique (pas de motif répété), même technique et
   même image que le site en ligne actuel (liqueurs-genestine.fr), avec un
   voile blanc léger pour l'adoucir. Une seule image "cover" + fixed ne peut
   pas créer de raccord entre sections (pas de répétition à désaligner),
   contrairement à l'ancien motif damassé tuilé. */
.genestine-wallpaper,
.wallpaper,
.gen-wallpaper-page,
body.woocommerce-checkout {
  background-color: var(--paper);
  background-image: linear-gradient(rgba(255,255,255,.2), rgba(255,255,255,.2)), url('../images/wallpaper-fond.webp');
  background-size: cover, cover;
  background-position: center center, center center;
  background-repeat: no-repeat, no-repeat;
  background-attachment: fixed, fixed;
}
.genestine-display { font-family: var(--serif-body) !important; font-weight: 400; line-height: .98; }
.genestine-caps    { font-family: var(--sans-caps); letter-spacing: .22em; text-transform: uppercase; }
.genestine-italic  { font-family: var(--serif-italic); font-style: italic; font-weight: 700; }

.genestine-stamp-btn {
  display: inline-block;
  padding: 13px 32px;
  border: 1px solid var(--forest);
  box-shadow: 0 0 0 3px var(--forest) inset, 0 0 0 4px rgba(255,255,255,.15) inset;
  font-family: var(--sans-caps);
  font-size: 16px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--paper);
  text-decoration: none;
  background: var(--forest);
  transition: background .22s, color .22s, box-shadow .22s;
}
.genestine-stamp-btn:hover {
  background: transparent;
  color: var(--forest);
  box-shadow: 0 0 0 3px var(--paper) inset, 0 0 0 4px var(--forest) inset;
}
.genestine-stamp-btn--ghost {
  background: transparent;
  color: var(--forest);
  border-color: var(--forest);
  box-shadow: 0 0 0 3px var(--paper) inset, 0 0 0 4px var(--forest) inset;
}
.genestine-stamp-btn--ghost:hover {
  background: var(--forest);
  color: var(--paper);
  box-shadow: 0 0 0 3px var(--forest) inset, 0 0 0 4px rgba(255,255,255,.15) inset;
}
.genestine-stamp-btn--light {
  background: transparent;
  border-color: #ffffff;
  box-shadow: 0 0 0 3px transparent inset, 0 0 0 4px #ffffff inset;
  color: #ffffff;
}
.genestine-stamp-btn--light:hover {
  background: #ffffff;
  color: var(--forest);
  box-shadow: none;
}

/* ── Bouton estampille global (stamp-btn) ──────────────────────── */
.stamp-btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans-caps, 'Cormorant SC', sans-serif);
  font-size: 12px; letter-spacing: .32em; text-transform: uppercase;
  padding: 14px 26px;
  background: var(--forest, #1c3a0f); color: #fff;
  border: 1px solid var(--forest, #1c3a0f);
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--forest, #1c3a0f) inset;
  cursor: pointer; text-decoration: none; transition: all .2s ease;
}
.stamp-btn:hover, .stamp-btn:focus {
  background: var(--forest-deep, #0f2508); border-color: var(--forest-deep, #0f2508);
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--forest-deep, #0f2508) inset;
  color: #fff;
}
.stamp-btn--ghost {
  background: transparent; color: var(--forest, #1c3a0f);
  border-color: var(--forest, #1c3a0f);
  box-shadow: 0 0 0 1px var(--forest, #1c3a0f) inset, 0 0 0 3px transparent inset;
}
.stamp-btn--ghost:hover, .stamp-btn--ghost:focus {
  background: var(--forest, #1c3a0f); color: #fff;
}
.stamp-btn--gold {
  background: var(--gold, #c9a84c); color: var(--forest, #1c3a0f);
  border-color: var(--gold, #c9a84c);
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--gold, #c9a84c) inset;
}
.stamp-btn--gold:hover {
  background: var(--gold-deep, #a87830); border-color: var(--gold-deep, #a87830);
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--gold-deep, #a87830) inset;
}
/* Ghost sur fond sombre : texte et bordure crème */
.gravure--dark .stamp-btn--ghost,
.gen-dark-slab .stamp-btn--ghost,
.gen-forest-slab .stamp-btn--ghost,
.gen-cross-link .stamp-btn--ghost {
  color: var(--cream, #fbfaf5);
  border-color: rgba(251,250,245,.6);
  box-shadow: 0 0 0 1px rgba(251,250,245,.6) inset, 0 0 0 3px transparent inset;
}
.gravure--dark .stamp-btn--ghost:hover,
.gravure--dark .stamp-btn--ghost:focus,
.gen-dark-slab .stamp-btn--ghost:hover,
.gen-dark-slab .stamp-btn--ghost:focus,
.gen-forest-slab .stamp-btn--ghost:hover,
.gen-forest-slab .stamp-btn--ghost:focus,
.gen-cross-link .stamp-btn--ghost:hover,
.gen-cross-link .stamp-btn--ghost:focus {
  background: var(--cream, #fbfaf5);
  border-color: var(--cream, #fbfaf5);
  color: var(--forest, #1c3a0f);
}

/* ── Barre "Boutique en ligne" tout en haut (mobile uniquement) ──── */
.gen-mobile-shop-bar { display: none; }
@media (max-width: 900px) {
  .gen-mobile-shop-bar {
    display: block;
    text-align: center;
    padding: 9px 10px;
    font-family: var(--sans-caps, 'Cormorant SC', sans-serif);
    font-size: 13px; letter-spacing: .12em; font-weight: 700; text-transform: uppercase;
    text-decoration: none;
    background: var(--gold-deep, #a88934); color: #fff;
  }
  .gen-mobile-shop-bar:hover, .gen-mobile-shop-bar:active { background: var(--forest, #1c3a0f); color: #fff; }
}

/* ── Barre sticky mobile (2 CTAs bas d'écran) ──────────────────── */
.gen-mobile-sticky-bar {
  display: none;
}
@media (max-width: 768px) {
  .gen-mobile-sticky-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 9999;
    box-shadow: 0 -2px 16px rgba(0,0,0,.18);
  }
  .gen-mobile-sticky-bar__btn {
    display: flex; align-items: center; justify-content: center;
    padding: 16px 10px;
    font-family: var(--sans-caps, 'Cormorant SC', sans-serif);
    /* Retour client : 10px + tracking .28em illisible sur mobile → agrandi,
       tracking resserré, poids renforcé (faux-gras si la graisse n'existe pas
       dans la police chargée). */
    font-size: 13px; letter-spacing: .1em; font-weight: 700; text-transform: uppercase;
    text-decoration: none; text-align: center;
    background: var(--forest, #1c3a0f); color: #fff;
    border-top: 2px solid rgba(201,168,76,.5);
    transition: background .2s;
    line-height: 1.3;
  }
  .gen-mobile-sticky-bar__btn + .gen-mobile-sticky-bar__btn {
    border-left: 1px solid rgba(201,168,76,.35);
  }
  .gen-mobile-sticky-bar__btn--gold {
    background: var(--gold-deep, #a87830); color: #fff;
    border-top-color: rgba(201,168,76,.8);
  }
  .gen-mobile-sticky-bar__btn:hover,
  .gen-mobile-sticky-bar__btn:active { filter: brightness(1.12); }
  /* Décale le footer du site pour ne pas masquer de contenu */
  body { padding-bottom: 56px; }
}

/* ── Sections fond ──────────────────────────────────────────────── */
.gen-dark-slab {
  background: var(--forest-deep, #0f2508);
  color: var(--cream, #fbfaf5);
  position: relative;
  overflow: hidden;
}
.gen-dark-slab::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, rgba(46,58,34,.8) 0%, transparent 70%);
  pointer-events: none;
}
.gen-forest-slab {
  background: var(--forest, #1c3a0f);
  color: var(--cream, #fbfaf5);
  position: relative;
  overflow: hidden;
}
.gen-forest-slab::before {
  /* Bandes retirées (retour client #6a) — l'ornement rayé sur fond vert est supprimé partout. */
  content: none;
}
/* Le fond papier peint n'est plus posé par section (retiré : chaque section
   répétait le motif indépendamment depuis son propre bord → raccord visible
   à chaque jonction). Il est désormais posé une seule fois au niveau de la
   page (body.gen-wallpaper-page, cf. plus bas) — .gen-wallpaper garde son
   rôle de mise en page (padding mobile, couleurs de texte sur fond clair)
   mais reste transparente pour laisser voir le fond continu de la page. */
.gen-wallpaper {
  background: transparent;
  position: relative;
}

/* ── Hero ───────────────────────────────────────────────────────── */
.gen-hero {
  position: relative;
  min-height: 720px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background-size: cover;
  background-position: center 55%;
}
.gen-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 100%);
}
.gen-hero__corners {
  position: absolute; inset: 32px; pointer-events: none;
}
/* Même ornement de coin que "Notre Savoir-Faire · La Gamme" (.gen-ornate--frame),
   à la place du picto en volutes d'origine — cohérence des angles sur tout le site. */
.gen-hero__corner {
  position: absolute; width: 52px; height: 52px;
  background: url('../images/ornement-angle.svg') no-repeat center / contain;
}
.gen-hero__corner .gen-corner-svg { display: none; }
.gen-hero__corner--tl { top: 0; left: 0; }
.gen-hero__corner--tr { top: 0; right: 0; transform: scaleX(-1); }
.gen-hero__corner--bl { bottom: 0; left: 0; transform: scaleY(-1); }
.gen-hero__corner--br { bottom: 0; right: 0; transform: scale(-1, -1); }
.gen-hero__content {
  position: relative; z-index: 2; text-align: center;
}
.gen-hero__sub {
  position: absolute; bottom: 70px; left: 0; right: 0;
  text-align: center; z-index: 2;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .4em; text-transform: uppercase;
  color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.6);
}
.gen-hero__dots {
  position: absolute; bottom: 30px; right: 40px; z-index: 2;
  display: flex; gap: 10px;
}
.gen-hero__dot {
  width: 8px; height: 8px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.6);
  background: rgba(255,255,255,.4);
}
.gen-hero__dot--active { background: var(--gold, #c9a84c); }
.gen-hero__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(0,0,0,.35); color: #fff;
  border: 1px solid rgba(255,255,255,.35);
  font-size:19px; cursor: pointer;
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
}
.gen-hero__arrow--prev { left: 40px; }
.gen-hero__arrow--next { right: 40px; }

/* ── Ruban titre (ribbon title) ─────────────────────────────────── */
.gen-ribbon {
  display: inline-block; position: relative;
}
.gen-ribbon__inner {
  background: #ffffff;
  padding: 14px 44px;
  position: relative;
  box-shadow:
    0 0 0 1px var(--gold-deep, #a88934) inset,
    0 0 0 6px #ffffff inset,
    0 0 0 7px var(--gold-deep, #a88934) inset,
    0 20px 50px rgba(0,0,0,.4);
  transform: rotate(-.3deg);
}
.gen-ribbon__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); text-align: center; margin-bottom: 4px;
}
.gen-ribbon__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 44px; color: var(--ink, #1a1a1a);
  text-align: center; line-height: 1; margin: 0;
}
.gen-ribbon__flag {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 0; height: 0;
}
.gen-ribbon__flag--left {
  left: -20px;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-right: 20px solid var(--gold-deep, #a88934);
}
.gen-ribbon__flag--right {
  right: -20px;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 20px solid var(--gold-deep, #a88934);
}

/* ── Marquee ────────────────────────────────────────────────────── */
.gen-marquee {
  background: var(--forest, #1c3a0f);
  color: var(--gold-light, #e0c070);
  padding: 12px 0; overflow: hidden;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: .28em; text-transform: uppercase;
}
.gen-marquee__track {
  display: flex; white-space: nowrap;
  animation: gen-marquee-scroll 28s linear infinite;
}
.gen-marquee__inner { display: flex; gap: 0; }
@keyframes gen-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Titre de section ornée ─────────────────────────────────────── */
.gen-ornate {
  position: relative; padding: 32px 20px; text-align: center;
}
.gen-ornate__corner {
  position: absolute; color: var(--gold-deep, #a88934);
}
.gen-ornate__corner--tl { top: 0; left: 0; }
.gen-ornate__corner--tr { top: 0; right: 0; }
.gen-ornate__corner--bl { bottom: 0; left: 0; }
.gen-ornate__corner--br { bottom: 0; right: 0; }
.gen-ornate__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .4em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 14px;
}
.gen-ornate__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 86px; font-weight: 400; margin: 0; color: var(--ink, #1a1a1a);
  line-height: 1;
}
.gen-ornate__rule {
  display: flex; align-items: center; justify-content: center;
  gap: 14px; margin: 20px auto 0; max-width: 520px;
  color: var(--gold-deep, #a88934);
}
.gen-ornate__rule-line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, currentColor, transparent);
}
.gen-ornate__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink, #1a1a1a); opacity: .75; margin-top: 16px;
}

/* ── En-tête sous-gamme (Apéritifs / Digestifs / Gins) ─────────── */
.gen-family-header {
  display: flex; align-items: baseline; gap: 24px; margin-bottom: 24px;
}
.gen-family-header__num {
  font-family: var(--serif-body);
  font-size:15px; color: var(--gold-deep, #a88934); letter-spacing: .35em;
}
.gen-family-header__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 50px; margin: 0; color: var(--ink, #1a1a1a);
}
.gen-family-header__line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, var(--gold-deep, #a88934), transparent);
}
.gen-family-header__link {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; color: var(--ink, #1a1a1a); letter-spacing: .3em;
  text-decoration: none; border-bottom: 1px solid var(--ink, #1a1a1a); padding-bottom: 3px;
}

/* ── Carte produit ──────────────────────────────────────────────── */
.gen-card {
  background: #ffffff; padding: 24px;
  border: 1px solid rgba(28,58,15,.3);
  box-shadow: 0 0 0 1px #ffffff inset, 0 14px 30px rgba(15,37,8,.12);
  text-align: center; position: relative;
}
.gen-card__corner {
  position: absolute; color: var(--gold-deep, #a88934);
}
.gen-card__corner--tl { top: 6px; left: 6px; }
.gen-card__corner--tr { top: 6px; right: 6px; }
.gen-card__corner--bl { bottom: 6px; left: 6px; }
.gen-card__corner--br { bottom: 6px; right: 6px; }
.gen-card__photo-wrap {
  display: flex; align-items: center; justify-content: center;
  height: 220px; padding: 12px 16px 8px; background: var(--paper);
}
.gen-card__photo {
  max-height: 200px; width: auto; max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.14));
}

.gen-card__bottle {
  width: 140px; height: 240px; margin: 8px auto 20px;
  border-radius: 8px 8px 14px 14px; position: relative;
  box-shadow: inset -18px 0 30px rgba(0,0,0,.25), inset 18px 0 30px rgba(255,240,200,.06);
}
.gen-card__bottle--amber  { background: linear-gradient(180deg, rgba(201,168,76,.3), rgba(28,58,15,.55)); }
.gen-card__bottle--warm   { background: linear-gradient(180deg, rgba(28,58,15,.25), rgba(28,58,15,.5)); }
.gen-card__bottle--clear  { background: linear-gradient(180deg, rgba(200,180,140,.25), rgba(120,140,90,.4)); }
.gen-card__bottle--forest { background: linear-gradient(180deg, rgba(28,58,15,.2), rgba(46,58,34,.65)); }
.gen-card__neck {
  position: absolute; top: -28px; left: 50%; transform: translateX(-50%);
  width: 18%; height: 28px; border-radius: 2px 2px 0 0;
  background: inherit;
}
.gen-card__capsule {
  position: absolute; top: -36px; left: 50%; transform: translateX(-50%);
  width: 22%; height: 14px; background: var(--ink, #1a1a1a);
}
.gen-card__label {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 42%;
  background: #ffffff; border: 1px solid var(--gold-deep, #a88934);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 6px;
}
.gen-card__brand {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 7px; color: var(--gold-deep, #a88934); letter-spacing: .25em;
}
.gen-card__label-name {
  font-family: var(--serif-body);
  font-size:19px; color: var(--ink, #1a1a1a); text-align: center; line-height: 1.1;
  margin: 3px 0;
}
.gen-card__label-year {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 6px; color: var(--ink, #1a1a1a); letter-spacing: .2em; opacity: .7;
}
.gen-card__name {
  font-family: var(--serif-body);
  font-size: 26px; margin: 0 0 4px; color: var(--ink, #1a1a1a);
}
.gen-card__meta {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; color: var(--gold-deep, #a88934); letter-spacing: .3em;
}
.gen-card-grid--3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.gen-card-grid--4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }

/* ── Gravure ────────────────────────────────────────────────────── */
.gen-gravure {
  border: 1px solid var(--gold-deep, #a88934);
  box-shadow: 0 0 0 6px #ffffff inset, 0 0 0 7px var(--gold-deep, #a88934) inset,
              0 20px 40px rgba(28,58,15,.10);
  position: relative; overflow: hidden;
}
.gen-gravure__img {
  display: block; width: 100%; height: auto;
}
.gen-gravure__inner { position: absolute; inset: 10px; border: 1px solid rgba(168,137,52,.4); pointer-events: none; }

/* ── Filet OrnRule ──────────────────────────────────────────────── */
.gen-orn-rule {
  display: flex; align-items: center; gap: 14px;
  color: var(--gold-deep, #a88934); margin: 24px 0;
}
.gen-orn-rule__line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, currentColor, transparent);
}

/* ── Élixir - bouteille CSS ─────────────────────────────────────── */
.gen-elixir-bottle {
  width: 320px; height: 520px; margin: 0 auto;
  background: linear-gradient(180deg, rgba(201,168,76,.4), rgba(15,37,8,.8));
  border-radius: 10px 10px 20px 20px;
  position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,.6), inset -30px 0 50px rgba(0,0,0,.4);
}
.gen-elixir-bottle__neck {
  position: absolute; top: -40px; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, rgba(201,168,76,.4), rgba(15,37,8,.8));
}
.gen-elixir-bottle__capsule {
  position: absolute; top: -56px; left: 50%; transform: translateX(-50%);
  width: 70px; height: 22px;
  background: #0f2508; border: 1px solid var(--gold-light, #e0c070);
}
.gen-elixir-bottle__label {
  position: absolute; top: 28%; left: 12%; right: 12%; height: 45%;
  background: #fff; border: 2px solid var(--gold-deep, #a88934);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 10px;
}
.gen-elixir-bottle__brand {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: .4em; color: var(--gold-deep, #a88934);
}
.gen-elixir-bottle__name {
  font-family: var(--serif-body);
  font-size: 26px; color: var(--ink, #1a1a1a);
}
.gen-elixir-bottle__vintage {
  font-family: var(--serif-body);
  font-size: 38px; color: var(--gold-deep, #a88934); font-weight: 600;
}
.gen-elixir-bottle__spec {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 7px; letter-spacing: .3em; color: var(--ink, #1a1a1a); margin-top: 4px;
}
.gen-elixir-bottle__origin {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 7px; letter-spacing: .3em; color: var(--gold-deep, #a88934);
}

/* ── Étapes Gin (4 steps) ───────────────────────────────────────── */
.gen-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.gen-step { text-align: center; }
.gen-step__num {
  font-family: var(--serif-body);
  font-size: 48px; color: var(--gold-light, #e0c070); line-height: 1;
}
.gen-step__title {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:21px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--cream, #fbfaf5); margin-top: 10px;
}
.gen-step__sub {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:19px; opacity: .7; margin-top: 4px; color: var(--cream, #fbfaf5);
}
.gen-steps--light .gen-step__title { color: var(--ink, #1a1a1a); }
.gen-steps--light .gen-step__sub   { color: var(--ink-2, #4a4a4a); }

/* ── Carte visite ───────────────────────────────────────────────── */
.gen-visit-card { position: relative; }
.gen-visit-card__img {
  width: 100%; height: 320px;
  background: repeating-linear-gradient(45deg, rgba(46,58,34,.5) 0 14px, rgba(28,58,15,.4) 14px 28px);
  background-size: cover;
  background-position: center;
  position: relative;
}
.gen-visit-card__ribbon {
  position: absolute; bottom: 18px; left: 18px; right: 18px;
  /* Légère transparence pour laisser voir la photo derrière (retour client #7a) */
  background: rgba(255,255,255,.60);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  padding: 16px 20px;
  border: 1px solid var(--gold-deep, #a88934);
  box-shadow: 0 0 0 4px rgba(255,255,255,.60) inset, 0 0 0 5px var(--gold-deep, #a88934) inset;
}
.gen-visit-card__tag {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; color: var(--gold-deep, #a88934); letter-spacing: .3em;
}
.gen-visit-card__title {
  font-family: var(--serif-body);
  font-size: 42px; color: var(--ink, #1a1a1a); margin: 2px 0;
}
.gen-visit-card__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; color: var(--ink, #1a1a1a); opacity: .6; letter-spacing: .2em;
}
.gen-visit-card__footer {
  padding: 20px 20px 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.gen-visit-card__desc {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; margin: 0; color: var(--ink-2, #4a4a4a);
  line-height: 1.5;
}
.gen-visit-card__address {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .25em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin: 0; opacity: .9;
}
.gen-visit-card__link {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; color: var(--ink, #1a1a1a); letter-spacing: .3em;
  text-decoration: none; border-bottom: 1px solid var(--gold-deep, #a88934);
  padding-bottom: 3px; width: fit-content;
}

/* ── Commerce blocks ────────────────────────────────────────────── */
.gen-commerce-block {
  padding: 40px; position: relative;
}
.gen-commerce-block--light {
  background: #fff; border: 1px solid rgba(28,58,15,.3);
}
.gen-commerce-block--dark {
  background: var(--forest-deep, #0f2508); color: var(--cream, #fbfaf5);
}
.gen-commerce-block__frame {
  position: absolute; inset: 8px; pointer-events: none;
}
.gen-commerce-block--light .gen-commerce-block__frame { border: 1px solid var(--gold-deep, #a88934); }
.gen-commerce-block--dark  .gen-commerce-block__frame { border: 1px solid rgba(201,168,76,.5); }
.gen-commerce-block__tag {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .35em; text-transform: uppercase;
}
.gen-commerce-block--light .gen-commerce-block__tag { color: var(--gold-deep, #a88934); }
.gen-commerce-block--dark  .gen-commerce-block__tag { color: var(--gold-light, #e0c070); }
.gen-commerce-block__title {
  font-family: var(--serif-body);
  font-size: 50px; margin: 10px 0; line-height: 1.05;
}
.gen-commerce-block__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; line-height: 1.6; max-width: 400px;
}
.gen-commerce-block--dark .gen-commerce-block__text { opacity: .85; }
.gen-commerce-block__actions { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; }

/* ── SVG Corner ornament ────────────────────────────────────────── */
.gen-corner-svg { color: var(--gold-deep, #a88934); display: block; }

/* ── Archive gamme ──────────────────────────────────────────────── */
.gen-archive-hero { position: relative; padding: 100px 80px 80px; text-align: center; }
.gen-archive-hero__inner {
  max-width: 720px; margin: 0 auto;
  position: relative; z-index: 1;
}
.gen-archive-hero__corners { position: absolute; inset: 24px; pointer-events: none; }
/* Même ornement de coin que le reste du site (.gen-hero__corner /
   .gen-ornate--frame .gen-ornate__corner) — à la place de l'ancien picto
   corner_arch() en trait simple, pour cohérence des angles partout. */
.gen-archive-hero__corner {
  position: absolute; width: 52px; height: 52px;
  background: url('../images/ornement-angle.svg') no-repeat center / contain;
}
.gen-archive-hero__corner .gen-corner-arch { display: none; }
.gen-archive-hero__corner--tl { top: 0; left: 0; }
.gen-archive-hero__corner--tr { top: 0; right: 0; transform: scaleX(-1); }
.gen-archive-hero__corner--bl { bottom: 0; left: 0; transform: scaleY(-1); }
.gen-archive-hero__corner--br { bottom: 0; right: 0; transform: scale(-1, -1); }
.gen-archive-hero__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .45em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 18px;
}
.gen-archive-hero__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 100px; color: var(--ink, #1a1a1a);
  margin: 0 0 4px; font-weight: 400; line-height: .93;
}
.gen-archive-hero__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--ink-2, #4a4a4a); opacity: .55; margin: 0 0 52px;
}

/* Filtres catégorie */
.gen-archive-filter {
  display: flex; justify-content: center; gap: 14px; flex-wrap: wrap;
}
.gen-archive-filter__btn {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--forest, #1c3a0f); text-decoration: none;
  padding: 11px 26px;
  border: 1px solid var(--forest, #1c3a0f);
  box-shadow: 0 0 0 3px #fff inset, 0 0 0 4px var(--forest, #1c3a0f) inset;
  transition: background .2s, color .2s;
}
.gen-archive-filter__btn:hover { background: var(--forest, #1c3a0f); color: #fff; }
.gen-archive-filter__btn--light {
  border-color: rgba(201,168,76,.6); color: var(--gold-light, #e0c070);
  box-shadow: 0 0 0 3px transparent inset, 0 0 0 4px rgba(201,168,76,.5) inset;
}
.gen-archive-filter__btn--light:hover {
  background: rgba(201,168,76,.15); color: var(--gold-light, #e0c070);
}

/* Sections internes */
.gen-archive-section { position: relative; }
.gen-archive-section__inner {
  max-width: 1280px; margin: 0 auto;
  padding: 60px 80px 80px; position: relative; z-index: 1;
}
.gen-archive-sep { position: relative; }

/* CTA bas archive */
.gen-archive-cta { position: relative; }
.gen-archive-cta__inner {
  display: grid; grid-template-columns: 1fr 1px 1fr;
  align-items: center; gap: 60px;
  padding: 80px; max-width: 1000px; margin: 0 auto;
  position: relative; z-index: 1;
}
.gen-archive-cta__divider { background: rgba(201,168,76,.3); height: 160px; }
.gen-archive-cta__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-light, #e0c070); margin-bottom: 14px;
}
.gen-archive-cta__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 52px; color: var(--cream, #fbfaf5);
  margin: 0 0 18px; font-weight: 400; line-height: .93;
}
.gen-archive-cta__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; color: rgba(251,250,245,.65); line-height: 1.5; margin: 0 0 32px;
}

/* Grille taxo (2 col : bouteille + texte) */
.gen-taxo-grid { display: flex; flex-direction: column; gap: 48px; }
.gen-taxo-card {
  display: grid; grid-template-columns: 200px 1fr; gap: 60px;
  align-items: start;
  padding: 40px; background: rgba(255,255,255,.75);
  border: 1px solid rgba(28,58,15,.15);
  box-shadow: 0 8px 32px rgba(28,58,15,.06);
}
.gen-taxo-card__bottle-link { display: block; }
.gen-taxo-card__bottle {
  width: 160px; height: 280px; border-radius: 8px 8px 14px 14px;
  position: relative; margin: 0 auto;
  box-shadow: inset -16px 0 28px rgba(0,0,0,.25), 0 20px 40px rgba(0,0,0,.12);
}
.gen-taxo-card__bottle--amber  { background: linear-gradient(180deg, rgba(201,168,76,.4), rgba(28,58,15,.6)); }
.gen-taxo-card__bottle--warm   { background: linear-gradient(180deg, rgba(28,58,15,.28), rgba(28,58,15,.55)); }
.gen-taxo-card__bottle--clear  { background: linear-gradient(180deg, rgba(200,180,140,.28), rgba(120,140,90,.44)); }
.gen-taxo-card__bottle--forest { background: linear-gradient(180deg, rgba(28,58,15,.22), rgba(46,58,34,.7)); }
.gen-taxo-card__neck {
  position: absolute; top: -28px; left: 50%; transform: translateX(-50%);
  width: 22%; height: 28px; background: inherit; border-radius: 2px 2px 0 0;
}
.gen-taxo-card__capsule {
  position: absolute; top: -40px; left: 50%; transform: translateX(-50%);
  width: 28%; height: 14px;
  background: #0f2508; border: 1px solid var(--gold-light, #e0c070);
}
.gen-taxo-card__label {
  position: absolute; top: 28%; left: 10%; right: 10%; height: 42%;
  background: #fff; border: 1px solid var(--gold-deep, #a88934);
  box-shadow: 0 0 0 4px #fff inset, 0 0 0 5px var(--gold-deep, #a88934) inset;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; padding: 8px;
}
.gen-taxo-card__name {
  font-family: var(--serif-body);
  font-size: 40px; color: var(--ink, #1a1a1a); margin: 0 0 12px; font-weight: 400;
}
.gen-taxo-card__name a { color: inherit; text-decoration: none; }
.gen-taxo-card__name a:hover { color: var(--forest, #1c3a0f); }
.gen-taxo-card__specs {
  display: flex; gap: 20px; margin-bottom: 16px;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .3em; color: var(--gold-deep, #a88934);
}
.gen-taxo-card__desc {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:21px; line-height: 1.6; color: var(--ink-2, #4a4a4a);
  margin: 0 0 28px; max-width: 580px;
}
.gen-taxo-card__actions { display: flex; gap: 14px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .gen-archive-hero { padding: 60px 32px; }
  .gen-archive-hero__title { font-size: 64px; }
  .gen-archive-section__inner { padding: 48px 32px; }
  .gen-archive-cta__inner { grid-template-columns: 1fr; gap: 40px; padding: 48px 32px; }
  .gen-archive-cta__divider { display: none; }
  .gen-taxo-card { grid-template-columns: 1fr; gap: 32px; }
  .gen-taxo-card__bottle { width: 120px; height: 210px; }
}

/* ── Drop cap ───────────────────────────────────────────────────── */
.gen-dropcap::first-letter {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 4.5em; line-height: .65;
  float: left; margin: .06em .12em 0 0; color: var(--ink, #1a1a1a);
}

/* ── Fiche produit ──────────────────────────────────────────────── */

/* Hero : section wallpaper 2 colonnes */
.gen-produit-hero-section { position: relative; }
.gen-produit-hero-inner {
  display: grid; grid-template-columns: 380px 1fr;
  gap: 80px; padding: 80px;
  max-width: 1280px; margin: 0 auto;
  align-items: start;
  position: relative; z-index: 1;
}

/* Colonne bouteille */
.gen-produit-bottle-col {
  display: flex; flex-direction: column; align-items: center;
  gap: 20px; position: sticky; top: 120px; align-self: start;
}

/* Cadre décoratif autour de la bouteille */
.gen-produit-frame {
  position: relative; padding: 32px 28px;
  border: 1px solid rgba(168,137,52,.3);
  background: #fff;
  width: 100%;
  display: flex; align-items: center; justify-content: center;
}
.gen-produit-frame__corner {
  position: absolute; color: var(--gold-deep, #a88934);
  width: 22px; height: 22px;
}
.gen-produit-frame__corner--tl { top: -1px;  left: -1px; }
.gen-produit-frame__corner--tr { top: -1px;  right: -1px; }
.gen-produit-frame__corner--bl { bottom: -1px; left: -1px; }
.gen-produit-frame__corner--br { bottom: -1px; right: -1px; }

/* Swatches décoratifs */
.gen-produit-swatches { display: flex; gap: 10px; justify-content: center; }
.gen-produit-swatch {
  width: 16px; height: 16px; border-radius: 50%;
  border: 1px solid rgba(168,137,52,.35);
}
.gen-produit-swatches--amber .gen-produit-swatch:nth-child(1) { background: #c9a84c; }
.gen-produit-swatches--amber .gen-produit-swatch:nth-child(2) { background: #e0c070; }
.gen-produit-swatches--amber .gen-produit-swatch:nth-child(3) { background: #a88934; }
.gen-produit-swatches--amber .gen-produit-swatch:nth-child(4) { background: rgba(168,137,52,.2); }
.gen-produit-swatches--forest .gen-produit-swatch:nth-child(1) { background: #1c3a0f; }
.gen-produit-swatches--forest .gen-produit-swatch:nth-child(2) { background: #2e5a1a; }
.gen-produit-swatches--forest .gen-produit-swatch:nth-child(3) { background: #4a7832; }
.gen-produit-swatches--forest .gen-produit-swatch:nth-child(4) { background: rgba(28,58,15,.2); }
.gen-produit-swatches--clear .gen-produit-swatch:nth-child(1) { background: rgba(210,215,200,.7); }
.gen-produit-swatches--clear .gen-produit-swatch:nth-child(2) { background: rgba(170,190,150,.55); }
.gen-produit-swatches--clear .gen-produit-swatch:nth-child(3) { background: rgba(120,145,90,.45); }
.gen-produit-swatches--clear .gen-produit-swatch:nth-child(4) { background: rgba(168,137,52,.2); }
.gen-produit-swatches--warm .gen-produit-swatch:nth-child(1) { background: #c9a84c; }
.gen-produit-swatches--warm .gen-produit-swatch:nth-child(2) { background: #a88934; }
.gen-produit-swatches--warm .gen-produit-swatch:nth-child(3) { background: #1c3a0f; }
.gen-produit-swatches--warm .gen-produit-swatch:nth-child(4) { background: rgba(168,137,52,.2); }

/* Colonne contenu */
.gen-produit-content { padding-top: 4px; }

/* ── Breadcrumb - au-dessus du hero, pleine largeur ──────── */
/* Normalisé sur .gen-breadcrumb (même markup que le reste du site, cf.
   single-product.php) — plus de règles dédiées ici, seul l'espacement du
   haut est repris (le nav n'est plus dans sa propre section, mais en 1er
   enfant du hero de la fiche produit). */
.gen-produit-hero-section > .gen-breadcrumb { padding-top: 24px; }
@media (max-width: 640px) {
  .gen-produit-hero-section > .gen-breadcrumb { padding-top: 16px; }
}

/* Kicker et titre sur fond clair */
.gen-produit-kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 12px;
}
.gen-produit-title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 72px; color: var(--ink, #1a1a1a);
  line-height: .93; margin: 0 0 24px; font-weight: 400;
}

/* Dropcap description aromatique */
.gen-produit-dropcap {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:22px; line-height: 1.72; color: var(--ink-2, #3a3a3a); margin: 0 0 28px;
}

/* Tags botaniques */
.gen-produit-tags-wrap { margin-bottom: 24px; }
.gen-produit-tags-label {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 10px;
}
.gen-produit-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.gen-produit-tag {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--forest, #1c3a0f);
  padding: 5px 13px;
  border: 1px solid rgba(28,58,15,.28);
  background: rgba(28,58,15,.05);
}

/* Encarts Nez / Bouche / Finale */
.gen-produit-nez-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  border: 1px solid rgba(168,137,52,.28); margin-bottom: 28px;
}
.gen-produit-nez-box {
  padding: 16px 14px; text-align: center;
  background: rgba(255,255,255,.7);
}
.gen-produit-nez-box + .gen-produit-nez-box { border-left: 1px solid rgba(168,137,52,.28); }
.gen-produit-nez-box__label {
  display: block; font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 7px;
}
.gen-produit-nez-box__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:18px; line-height: 1.5; color: var(--ink-2, #3a3a3a); margin: 0;
}

/* Specs techniques sur fond clair */
.gen-produit-specs-row { display: flex; gap: 36px; align-items: flex-end; margin-bottom: 28px; }
.gen-produit-spec { display: flex; flex-direction: column; gap: 4px; }
.gen-produit-spec__val {
  font-family: var(--serif-body);
  font-size: 38px; color: var(--gold-deep, #a88934); line-height: 1;
}
.gen-produit-spec__val small {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:21px; letter-spacing: .2em; vertical-align: bottom; margin-left: 2px;
}
.gen-produit-spec__lbl {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--ink-2, #3a3a3a); opacity: .5;
}
.gen-produit-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Bouteille CSS (grande) */
.gen-produit-photo {
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.gen-produit-photo__img {
  max-width: 100%; max-height: 480px;
  width: auto; height: auto;
  object-fit: contain;
  filter: drop-shadow(0 24px 48px rgba(0,0,0,.18));
}

.gen-produit-bottle {
  width: 240px; height: 420px;
  border-radius: 10px 10px 18px 18px; position: relative;
  box-shadow: inset -24px 0 48px rgba(0,0,0,.28),
              inset 24px 0 48px rgba(255,240,200,.05),
              0 36px 72px rgba(0,0,0,.18);
}
.gen-produit-bottle--amber  { background: linear-gradient(180deg, rgba(201,168,76,.42), rgba(28,58,15,.62)); }
.gen-produit-bottle--warm   { background: linear-gradient(180deg, rgba(28,58,15,.28), rgba(28,58,15,.56)); }
.gen-produit-bottle--clear  { background: linear-gradient(180deg, rgba(200,180,140,.3), rgba(120,140,90,.46)); }
.gen-produit-bottle--forest { background: linear-gradient(180deg, rgba(28,58,15,.22), rgba(46,58,34,.72)); }
.gen-produit-bottle__neck {
  position: absolute; top: -36px; left: 50%; transform: translateX(-50%);
  width: 22%; height: 36px; background: inherit; border-radius: 2px 2px 0 0;
}
.gen-produit-bottle__capsule {
  position: absolute; top: -52px; left: 50%; transform: translateX(-50%);
  width: 28%; height: 18px;
  background: #0f2508; border: 1px solid var(--gold-light, #e0c070);
}
.gen-produit-bottle__label {
  position: absolute; top: 28%; left: 10%; right: 10%; height: 42%;
  background: #fff;
  border: 1px solid var(--gold-deep, #a88934);
  box-shadow: 0 0 0 5px #fff inset, 0 0 0 6px var(--gold-deep, #a88934) inset;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 14px; gap: 5px;
}
.gen-produit-bottle__brand {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 8px; letter-spacing: .35em; color: var(--gold-deep, #a88934);
}
.gen-produit-bottle__rule { width: 32px; height: 1px; background: var(--gold-deep, #a88934); }
.gen-produit-bottle__name {
  font-family: var(--serif-body);
  font-size:18px; color: var(--ink, #1a1a1a); text-align: center; line-height: 1.15;
}
.gen-produit-bottle__year {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 8px; letter-spacing: .3em; color: var(--ink, #1a1a1a); opacity: .55;
}

/* Section "L'art de la servir" */
/* Retour client 2026-09 : section "Rituel de dégustation" en attente de décision
   (enlever définitivement ou garder) → masquée pour l'instant (display:none),
   réversible en retirant cette ligne. */
.gen-produit-service { position: relative; display: none; }
.gen-produit-service__inner {
  padding: 80px; max-width: 1280px; margin: 0 auto;
  position: relative; z-index: 1;
}
.gen-produit-service__header { text-align: center; margin-bottom: 60px; }
.gen-produit-service__kicker {
  display: block; font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--gold-light, #e0c070); margin-bottom: 12px;
}
.gen-produit-service__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 64px; color: var(--cream, #fbfaf5); font-weight: 400; margin: 0;
  font-style: italic;
}
.gen-produit-etapes { display: grid; grid-template-columns: repeat(4,1fr); gap: 40px; }
.gen-produit-etape { border-top: 1px solid rgba(201,168,76,.3); padding-top: 28px; }
.gen-produit-etape__num {
  font-family: var(--serif-body);
  font-size: 36px; color: var(--gold-light, #e0c070); line-height: 1; margin-bottom: 8px;
}
.gen-produit-etape__name {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--cream, #fbfaf5); margin-bottom: 14px;
}
.gen-produit-etape__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; line-height: 1.65; color: rgba(251,250,245,.65); margin: 0;
}

.gen-produit-service__conseil {
  border-left: 2px solid var(--gold-deep, #a88934);
  padding: 12px 24px;
  margin: 0 auto 52px;
  max-width: 680px;
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-size:21px;
  font-style: italic;
  color: var(--gold-light, #e0c070);
  text-align: left;
}

/* Section "Cocktails signature" */
.gen-produit-cocktails { position: relative; }
.gen-produit-cocktails__inner {
  padding: 80px; max-width: 1280px; margin: 0 auto;
  position: relative; z-index: 1;
}
.gen-produit-cocktails__header { text-align: center; margin-bottom: 56px; }
.gen-produit-cocktails__kicker {
  display: block; font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 10px;
}
.gen-produit-cocktails__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 56px; color: var(--ink, #1a1a1a); font-weight: 400; margin: 0 0 4px;
}
.gen-produit-cocktails__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .38em; text-transform: uppercase;
  color: var(--ink-2, #3a3a3a); opacity: .55; margin-top: 10px;
}
/* Cocktail signature — 3 colonnes : ingrédients / description / photo
   (retour client : suppression des autres suggestions de recette en grille,
   remplacées par le visuel du cocktail lui-même). */
.gen-produit-cocktail-recipe {
  display: grid;
  grid-template-columns: 220px 1fr 260px;
  gap: 48px;
  max-width: 1040px;
  margin: 0 auto;
  align-items: start;
}
.gen-produit-cocktail-recipe__ingr h3 {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin: 0 0 18px;
}
.gen-produit-cocktail-recipe__ingr ul { list-style: none; padding: 0; margin: 0; }
.gen-produit-cocktail-recipe__ingr li {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; color: var(--ink, #1a1a1a);
  padding: 9px 0 9px 16px; border-bottom: 1px solid rgba(168,137,52,.18);
  position: relative;
}
.gen-produit-cocktail-recipe__ingr li::before {
  content: '·'; position: absolute; left: 0;
  color: var(--gold-deep, #a88934); font-size:24px; line-height: 1;
}
.gen-produit-cocktail-recipe__desc p {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; line-height: 1.85; color: var(--ink-2, #3a3a3a); margin: 0 0 18px;
}
.gen-produit-cocktail-recipe__desc p:first-child {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-size:21px; font-style: italic; color: var(--ink, #1a1a1a);
  margin-bottom: 24px;
}
.gen-produit-cocktail-recipe__photo img {
  width: 100%; height: 260px; object-fit: cover;
  border: 1px solid rgba(168,137,52,.3);
}
@media (max-width: 900px) {
  .gen-produit-cocktail-recipe { grid-template-columns: 1fr; gap: 36px; max-width: 480px; }
  .gen-produit-cocktail-recipe__photo img { height: 220px; }
}

/* Bloc éditorial (bloc3) */
.gen-produit-bloc3 { position: relative; }
.gen-produit-bloc3__inner {
  padding: 80px 40px;
  max-width: 740px; margin: 0 auto;
  text-align: center;
  position: relative; z-index: 1;
}
.gen-produit-bloc3__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 48px; font-weight: 400; color: var(--gold-light, #e0c070);
  margin: 20px 0 28px; line-height: 1.1;
}
.gen-produit-bloc3__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; line-height: 1.9; color: var(--cream, #fbfaf5); opacity: .85; margin: 0;
}

/* Produits similaires */
.gen-produit-related { position: relative; }
.gen-produit-related__inner {
  padding: 80px; max-width: 1280px; margin: 0 auto;
  position: relative; z-index: 1;
}
.gen-produit-related__heading { text-align: center; margin-bottom: 52px; }
.gen-produit-related__kicker {
  display: block; font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 12px;
}
.gen-produit-related__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 56px; color: var(--ink, #1a1a1a); margin: 0; font-weight: 400;
}
.gen-card-grid--1 { display: grid; grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
.gen-card-grid--2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }

@media (max-width: 1024px) {
  .gen-produit-hero-inner { grid-template-columns: 280px 1fr; gap: 48px; padding: 60px; }
  .gen-produit-bottle { width: 200px; height: 360px; }
  .gen-produit-etapes { grid-template-columns: repeat(2,1fr); gap: 32px; }
}
@media (max-width: 768px) {
  .gen-produit-hero-inner { grid-template-columns: 1fr; gap: 40px; padding: 48px 32px; }
  .gen-produit-bottle-col { position: static; }
  .gen-produit-bottle { width: 180px; height: 300px; }
  .gen-produit-title { font-size: 52px; }
  .gen-produit-nez-grid { grid-template-columns: 1fr; }
  .gen-produit-nez-box + .gen-produit-nez-box { border-left: none; border-top: 1px solid rgba(168,137,52,.28); }
  .gen-produit-service__inner { padding: 48px 32px; }
  .gen-produit-service__title { font-size: 48px; }
  .gen-produit-etapes { grid-template-columns: repeat(2,1fr); gap: 24px; }
  .gen-produit-cocktails__inner { padding: 48px 32px; }
  .gen-produit-cocktails__title { font-size: 42px; }
  .gen-produit-related__inner { padding: 48px 32px; }
  .gen-produit-related__title { font-size: 40px; }
  .gen-produit-bloc3__inner { padding: 48px 24px; }
  .gen-produit-bloc3__title { font-size: 36px; }
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .gen-card-grid--3,
  .gen-card-grid--4  { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gen-steps          { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gen-ornate__title  { font-size: 60px; }
  .gen-ribbon__title  { font-size: 32px; }
  .gen-elixir-bottle  { width: 220px; height: 360px; }
}
@media (max-width: 600px) {
  .gen-card-grid--3,
  .gen-card-grid--4  { grid-template-columns: 1fr; }
}

/* ── Timeline alternée (Page Notre Histoire) ─────────────────────── */
.gen-timeline {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding-bottom: 20px;
}
/* Ligne centrale verticale */
.gen-timeline::before {
  content: '';
  position: absolute;
  top: 20px; bottom: 20px;
  left: 50%; transform: translateX(-50%);
  width: 1px;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(201,168,76,.5) 6%,
    rgba(201,168,76,.5) 94%,
    transparent 100%);
}
/* Chaque item : 3 colonnes symétriques */
.gen-timeline__item {
  display: grid;
  grid-template-columns: 1fr 52px 1fr;
  align-items: start;
  margin-bottom: 64px;
  position: relative;
}
/* ── Impairs (1, 3, 5…) : date à gauche, contenu à droite ── */
.gen-timeline__date {
  grid-column: 1; grid-row: 1;
  font-family: var(--serif-body);
  font-size: 52px; line-height: 1;
  color: var(--gold-light, #e0c070);
  text-align: right;
  padding: 6px 36px 0 0;
}
.gen-timeline__dot {
  grid-column: 2; grid-row: 1;
  display: flex; justify-content: center;
  padding-top: 12px; position: relative; z-index: 1;
}
.gen-timeline__dot::before {
  content: '';
  width: 14px; height: 14px;
  border: 2px solid var(--gold-light, #e0c070);
  border-radius: 50%;
  background: #0a1e05;
  display: block;
}
.gen-timeline__content {
  grid-column: 3; grid-row: 1;
  padding: 6px 0 0 36px;
}
/* ── Pairs (2, 4…) : contenu à gauche, date à droite ── */
.gen-timeline__item:nth-child(even) .gen-timeline__date {
  grid-column: 3;
  text-align: left;
  padding: 6px 0 0 36px;
}
.gen-timeline__item:nth-child(even) .gen-timeline__content {
  grid-column: 1;
  text-align: right;
  padding: 6px 36px 0 0;
}
.gen-timeline__img {
  display: block; width: 100%; max-width: 320px; height: auto;
  margin: 0 0 14px; border: 1px solid rgba(201,168,76,.4);
}
.gen-timeline__item:nth-child(even) .gen-timeline__img { margin-left: auto; }
.gen-timeline__title {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-light, #e0c070);
  margin: 0 0 10px;
}
.gen-timeline__text {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:20px; line-height: 1.75;
  color: rgba(251,250,245,.72);
}
/* Mobile : repasse en linéaire */
@media (max-width: 640px) {
  .gen-timeline::before { left: 20px; transform: none; }
  .gen-timeline__item {
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    margin-bottom: 40px;
  }
  .gen-timeline__date,
  .gen-timeline__item:nth-child(even) .gen-timeline__date {
    grid-column: 2; grid-row: 1;
    font-size: 28px; text-align: left;
    padding: 4px 0 4px 16px;
  }
  .gen-timeline__dot {
    grid-column: 1; grid-row: 1 / 3;
    justify-content: center; padding-top: 10px;
  }
  .gen-timeline__content,
  .gen-timeline__item:nth-child(even) .gen-timeline__content {
    grid-column: 2; grid-row: 2;
    text-align: left; padding: 0 0 0 16px;
  }
}

/* ===================================================================
   Pages catégories produits (Apéritifs / Digestifs / Gins)
   =================================================================== */

/* ── Hero ── */
.gen-pcat-hero {
  padding: 120px 48px 96px;
  text-align: center;
  min-height: 460px;
  display: flex; align-items: center; justify-content: center;
}
.gen-pcat-hero__inner { max-width: 800px; margin: 0 auto; position: relative; z-index: 1; }

.gen-pcat-breadcrumb {
  font-family: var(--sans-caps); font-size:14px; letter-spacing: .28em;
  text-transform: uppercase; color: var(--gold-light, #e0c070);
  margin-bottom: 28px; display: flex; gap: 10px; justify-content: center;
}
.gen-pcat-breadcrumb a { color: inherit; text-decoration: none; }
.gen-pcat-breadcrumb a:hover { color: #fff; }

.gen-pcat-hero__kicker {
  font-family: var(--sans-caps); font-size:14px; letter-spacing: .42em;
  text-transform: uppercase; color: var(--gold-light, #e0c070); margin-bottom: 20px;
}
.gen-pcat-hero__title {
  font-family: var(--serif-display); font-size: 80px; font-weight: 400;
  color: #fff; margin: 0 0 20px; line-height: .95;
}
.gen-pcat-hero .gen-orn-rule { color: rgba(201,168,76,.75); max-width: 320px; margin: 0 auto 20px; }
.gen-pcat-hero__sub {
  font-family: var(--serif-body); font-size:22px;
  color: #fff; line-height: 1.6;
}

/* ── Body / grille ── */
.gen-pcat-body { padding: 80px 48px 100px; }
.gen-pcat-body__inner { max-width: 1200px; margin: 0 auto; }

.gen-pcat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

/* ── Carte produit ── */
.gen-pcat-card {
  position: relative;
  border: 1px solid rgba(168,137,52,.35);
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.gen-pcat-card:hover {
  border-color: var(--gold-deep);
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
}

.gen-pcat-card__corner {
  position: absolute; width: 18px; height: 18px;
  color: var(--gold-deep); z-index: 1;
}
.gen-pcat-card__corner--tl { top: -1px;  left: -1px;  }
.gen-pcat-card__corner--tr { top: -1px;  right: -1px; }
.gen-pcat-card__corner--bl { bottom: -1px; left: -1px; }
.gen-pcat-card__corner--br { bottom: -1px; right: -1px; }

.gen-pcat-card__link {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit; height: 100%;
}

/* Visual - photo ou bouteille CSS */
.gen-pcat-card__visual {
  display: flex; align-items: center; justify-content: center;
  min-height: 280px; padding: 32px 24px 16px;
  background: var(--paper);
}
.gen-pcat-card__photo {
  max-height: 240px; width: auto; max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,.14));
}

/* Fallback bouteille CSS */
.gen-pcat-card__bottle {
  width: 120px; height: 220px;
  border-radius: 6px 6px 12px 12px;
  position: relative;
  box-shadow: inset -12px 0 24px rgba(0,0,0,.28), 0 16px 40px rgba(0,0,0,.14);
}
.gen-pcat-card__bottle--amber  { background: linear-gradient(180deg, rgba(201,168,76,.5), rgba(28,58,15,.7)); }
.gen-pcat-card__bottle--forest { background: linear-gradient(180deg, rgba(28,58,15,.4), rgba(28,58,15,.72)); }
.gen-pcat-card__bottle--clear  { background: linear-gradient(180deg, rgba(200,180,140,.36), rgba(120,140,90,.5)); }
.gen-pcat-card__bottle--warm   { background: linear-gradient(180deg, rgba(28,58,15,.3), rgba(28,58,15,.6)); }

.gen-pcat-card__bneck {
  position: absolute; top: -28px; left: 50%; transform: translateX(-50%);
  width: 28px; height: 32px;
  background: inherit; border-radius: 4px 4px 0 0;
}
.gen-pcat-card__bcapsule {
  position: absolute; top: -34px; left: 50%; transform: translateX(-50%);
  width: 32px; height: 10px; border-radius: 3px 3px 0 0;
  background: var(--gold-deep);
}
.gen-pcat-card__blabel {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  text-align: center; padding: 10px 8px;
  border: 1px solid rgba(201,168,76,.6); width: 80px;
}
.gen-pcat-card__bbrand {
  font-family: var(--sans-caps); font-size: 6px; letter-spacing: .2em;
  color: var(--gold-light); display: block; margin-bottom: 4px;
}
.gen-pcat-card__bname {
  font-family: var(--serif-body); font-size:13px; color: var(--cream);
  display: block; line-height: 1.2; margin-bottom: 4px;
}
.gen-pcat-card__byear {
  font-family: var(--sans-caps); font-size: 6px; letter-spacing: .2em;
  color: rgba(201,168,76,.7); display: block;
}

/* Infos */
.gen-pcat-card__info {
  padding: 20px 24px 28px;
  display: flex; flex-direction: column; gap: 8px;
  flex: 1;
}
.gen-pcat-card__name {
  font-family: var(--serif-display); font-size: 26px; font-weight: 400;
  color: var(--ink); margin: 0; line-height: 1.1;
}
.gen-pcat-card__meta {
  font-family: var(--sans-caps); font-size:13px; letter-spacing: .28em;
  text-transform: uppercase; color: var(--gold-deep);
}
.gen-pcat-card__cta {
  margin-top: auto; padding-top: 16px;
  font-family: var(--sans-caps); font-size:13px; letter-spacing: .28em;
  text-transform: uppercase; color: var(--ink);
  display: inline-block;
  border-bottom: 1px solid rgba(168,137,52,.4);
  width: fit-content;
  transition: color .2s, border-color .2s;
}
.gen-pcat-card__link:hover .gen-pcat-card__cta {
  color: var(--gold-deep); border-color: var(--gold-deep);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .gen-pcat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gen-pcat-hero { padding: 80px 24px 64px; min-height: 360px; }
  .gen-pcat-hero__title { font-size: 52px; }
  .gen-pcat-body { padding: 60px 24px 80px; }
  .gen-pcat-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ── Nav autres familles ── */
.gen-pcat-nav { padding: 60px 48px; text-align: center; }
.gen-pcat-nav__inner { max-width: 900px; margin: 0 auto; }
.gen-pcat-nav__label {
  font-family: var(--sans-caps); font-size:14px; letter-spacing: .42em;
  text-transform: uppercase; color: var(--gold-light); margin-bottom: 24px;
}
.gen-pcat-nav__links { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }
@media (max-width: 640px) {
  .gen-pcat-nav { padding: 48px 24px; }
  .gen-pcat-nav__links { flex-direction: column; align-items: center; }
}

/* ── Chapeau éditorial catégorie (avant grille) ──────────────────── */
.gen-pcat-intro {
  max-width: 680px; margin: 0 auto 56px;
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:22px; line-height: 1.8; color: var(--ink-2, #3a3a3a);
  text-align: center;
}
@media (max-width: 640px) {
  .gen-pcat-intro { font-size:20px; margin-bottom: 40px; }
}

/* ── Bloc éditorial SEO catégorie — style Acte III (après grille) ── */
.gen-pcat-editorial__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1280px; margin: 0 auto; padding: 80px;
}
.gen-pcat-editorial__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(201,168,76,.8); margin-bottom: 20px;
}
.gen-pcat-editorial__h2 {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 56px; font-weight: 400; color: var(--cream, #fbfaf5);
  margin: 0 0 28px; line-height: 1.05;
}
.gen-pcat-editorial__h2--sub {
  font-size: 34px; color: var(--gold-light, #e0c070);
  margin: 36px 0 16px;
}
.gen-pcat-editorial__orn {
  color: rgba(201,168,76,.5); max-width: 280px; margin: 0 0 32px;
}
.gen-pcat-editorial__p {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 18px; line-height: 1.8; color: rgba(251,250,245,.82);
  margin: 0 0 18px;
}
.gen-pcat-editorial__p:last-child { margin-bottom: 0; }
.gen-pcat-editorial__sep {
  border: none; border-top: 1px solid rgba(201,168,76,.2);
  margin: 32px 0; max-width: 260px;
}

/* Colonne visuelle */
.gen-pcat-editorial__visual {
  border: 1px solid rgba(201,168,76,.35);
  overflow: hidden; align-self: stretch; min-height: 480px;
  display: flex; align-items: stretch;
}
.gen-pcat-editorial__img {
  width: 100%; height: 100%; min-height: 480px;
  object-fit: cover; display: block;
}
/* Fallback décoratif (pas d'image) */
.gen-pcat-editorial__fallback {
  width: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 56px 44px;
}
.gen-pcat-editorial__fb-num {
  font-family: var(--serif-body);
  font-size: 120px; line-height: 1; color: var(--gold-light, #e0c070);
}
.gen-pcat-editorial__fb-label {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(251,250,245,.55); margin-bottom: 32px;
}
.gen-pcat-editorial__fb-grid {
  border-top: 1px solid rgba(201,168,76,.3); padding-top: 24px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; width: 100%;
}
.gen-pcat-editorial__fb-sub-num {
  font-family: var(--serif-body);
  font-size: 32px; color: var(--gold-light, #e0c070);
}
.gen-pcat-editorial__fb-sub-label {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(251,250,245,.5); margin-top: 4px;
}

@media (max-width: 1024px) {
  .gen-pcat-editorial__inner { padding: 60px 48px; gap: 48px; }
  .gen-pcat-editorial__h2 { font-size: 44px; }
  .gen-pcat-editorial__h2--sub { font-size: 28px; }
}
@media (max-width: 768px) {
  .gen-pcat-editorial__inner {
    grid-template-columns: 1fr; padding: 48px 24px; gap: 0;
  }
  .gen-pcat-editorial__visual {
    order: -1; min-height: 260px; border-bottom: none;
  }
  .gen-pcat-editorial__text { padding-top: 40px; }
  .gen-pcat-editorial__h2 { font-size: 36px; }
  .gen-pcat-editorial__h2--sub { font-size: 26px; }
  .gen-pcat-editorial__p { font-size: 16px; }
}

/* ===================================================================
   WooCommerce - Fiche produit (single-product.php override)
   =================================================================== */

/* ── Zone Panier ────────────────────────────────────────────────── */
.gen-produit-panier { margin: 28px 0 16px; }

/* Formulaire WC standard - on masque la quantité pour l'instant (Phase 3) */
.gen-produit-panier .quantity { display: none; }

/* Bouton Ajouter au Panier → style stamp-btn */
.gen-produit-panier .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 40px;
  background: transparent;
  border: 1px solid var(--ink, #1a1a1a);
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 12px;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--ink, #1a1a1a);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
  text-decoration: none;
}
.gen-produit-panier .single_add_to_cart_button:hover {
  background: var(--ink, #1a1a1a);
  color: var(--cream, #fbfaf5);
}
.gen-produit-panier .single_add_to_cart_button.loading {
  opacity: .6;
  pointer-events: none;
}
.gen-produit-panier .single_add_to_cart_button.added {
  border-color: var(--gold-deep, #a88934);
  color: var(--gold-deep, #a88934);
}

/* Lien "Voir le Panier" qui apparaît après ajout */
.gen-produit-panier .added_to_cart {
  display: inline-block;
  margin-left: 16px;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold-deep, #a88934);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

/* ── Actions secondaires (sous le bouton Panier) ─────────────── */
.gen-produit-actions--secondary {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

/* ===================================================================
   Phase 3 - ATC : prix · stepper · livraison · réassurance
   =================================================================== */

/* ── Prix principal ──────────────────────────────────────────── */
.gen-produit-price-wrap { margin: 28px 0 6px; }
.gen-produit-price-main {
  /* Retour client : OldAlfie (gothique) illisible pour un prix -> revenu à
     Cormorant Garamond, en gras pour garder de la présence. */
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 64px; font-weight: 600; line-height: 1;
  color: var(--ink, #1a1a1a);
}
.gen-produit-price-sub {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic; font-size: 14px; color: var(--ink-2, #3a3a3a);
  margin-top: 6px;
}

/* ── Stock ───────────────────────────────────────────────────── */
.gen-produit-stock {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--forest, #1c3a0f);
  margin: 12px 0 24px;
}
.gen-produit-stock__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--forest, #1c3a0f); flex-shrink: 0;
}
.gen-produit-stock--out { color: var(--ink-2, #3a3a3a); }
.gen-produit-stock--out .gen-produit-stock__dot { background: var(--ink-2, #3a3a3a); }

/* ── Formulaire ATC ──────────────────────────────────────────── */
.gen-produit-atc-form { margin: 0; }
.gen-atc-row { display: flex; gap: 14px; align-items: stretch; }

/* ── Stepper ─────────────────────────────────────────────────── */
.gen-qty-stepper {
  display: flex; align-items: center; flex-shrink: 0;
  border: 1px solid rgba(28,58,15,.4);
  background: #fff;
}
.gen-qty-minus,
.gen-qty-plus {
  width: 36px; height: 44px;
  border: 0; background: transparent; cursor: pointer;
  font-family: var(--mono, monospace); font-size:18px;
  color: var(--ink, #1a1a1a); line-height: 1; padding: 0;
  transition: background .15s;
}
.gen-qty-minus:hover,
.gen-qty-plus:hover  { background: rgba(28,58,15,.07); }
.gen-qty-minus:disabled { opacity: .35; cursor: default; }
.gen-qty-input {
  width: 34px !important; height: 44px !important;
  border: 0 !important; box-shadow: none !important;
  min-width: 0 !important; padding: 0 !important;
  text-align: center; background: transparent;
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size:24px; font-weight: 600; color: var(--ink, #1a1a1a);
  -moz-appearance: textfield;
}
.gen-qty-input:focus { outline: none !important; box-shadow: none !important; border: 0 !important; }
.gen-qty-input::-webkit-outer-spin-button,
.gen-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* ── Bouton Ajouter au Panier ────────────────────────────────── */
.gen-atc-btn {
  flex: 1; display: inline-flex; align-items: center;
  justify-content: center;
  height: 44px; padding: 0 24px;
  font-size:16px !important; white-space: nowrap; line-height: 1;
  background: var(--forest, #1c3a0f) !important;
  color: var(--paper, #f5f2eb) !important;
  border-color: var(--forest, #1c3a0f) !important;
}
.gen-atc-btn:hover {
  background: var(--forest-deep, #0f2508) !important;
  color: var(--paper, #f5f2eb) !important;
}

/* ── Reset couleurs WooCommerce par défaut ───────────────────── */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button,
.woocommerce-page .cart .button {
  background: var(--forest, #1c3a0f) !important;
  color: var(--paper, #f5f2eb) !important;
  border-radius: 0 !important;
  font-family: var(--sans-caps, 'Cormorant SC', serif) !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--forest-deep, #0f2508) !important;
  color: var(--paper, #f5f2eb) !important;
}
/* Neutralise la variable CSS rose/violet WooCommerce */
:root { --woocommerce: var(--forest, #1c3a0f); --wc-primary: var(--forest, #1c3a0f); }

/* ── Date de livraison ───────────────────────────────────────── */
.gen-produit-delivery {
  margin-top: 14px;
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic; font-size:18px; color: var(--ink-2, #3a3a3a);
}
.gen-produit-delivery strong {
  color: var(--forest, #1c3a0f);
  font-style: normal; font-weight: 600;
}

/* ── Réassurance (3 colonnes) ────────────────────────────────── */
.gen-reassurance {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 8px; padding: 16px 0; margin-top: 24px;
  border-top: 1px solid rgba(28,58,15,.18);
  border-bottom: 1px solid rgba(28,58,15,.18);
}
.gen-reassurance__item { text-align: center; padding: 6px 4px; }
.gen-reassurance__icon {
  display: block;
  color: var(--gold-deep, #a88934); font-size:18px; line-height: 1;
}
.gen-reassurance__title {
  display: block;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: .25em; text-transform: uppercase;
  color: var(--ink, #1a1a1a); margin-top: 4px;
}
.gen-reassurance__sub {
  display: block;
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic; font-size:19px;
  color: var(--ink-2, #3a3a3a); margin-top: 2px;
}

/* ── Mobile ──────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .gen-produit-price-main { font-size: 48px; }
  .gen-atc-row { flex-direction: column; }
  .gen-atc-btn { height: 44px; flex: none; width: 100%; }
  .gen-qty-stepper { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   CATALOGUE - /produits/  (archive-product.php)
   ═══════════════════════════════════════════════════════════════ */

/* ── Header ──────────────────────────────────────────────────── */
.gen-cat-header {
  padding: 80px 48px 64px;
  text-align: center;
}
.gen-cat-header__inner { max-width: 600px; margin: 0 auto; }
.gen-cat-header__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:19px; letter-spacing: .45em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 14px;
}
.gen-cat-header__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: clamp(52px, 7vw, 80px); font-weight: 400; line-height: 1;
  color: var(--paper, #f5f2eb); margin: 0 0 4px;
}
.gen-cat-header__sub {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic; font-size:20px;
  color: rgba(245,242,235,.7); margin-top: 10px;
}

/* ── Barre de filtre ─────────────────────────────────────────── */
.gen-cat-filter-bar {
  background: var(--paper, #f5f2eb);
  border-bottom: 1px solid rgba(168,137,52,.25);
  position: sticky; top: 0; z-index: 90;
}
.gen-cat-filter-bar__inner {
  max-width: 1240px; margin: 0 auto;
  padding: 0 48px;
  display: flex; align-items: center; justify-content: space-between;
}
.gen-cat-filters { display: flex; gap: 2px; }
.gen-cat-filter {
  background: none; border: none; cursor: pointer;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:15px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink-2, #3a3a3a);
  padding: 18px 20px 16px;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
}
.gen-cat-filter:hover { color: var(--gold-deep, #a88934); }
.gen-cat-filter.is-active {
  color: var(--gold-deep, #a88934);
  border-bottom-color: var(--gold-deep, #a88934);
}
.gen-cat-filter__count {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--gold-deep, #a88934); color: var(--paper, #f5f2eb);
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: 0;
  margin-left: 6px; vertical-align: middle;
}
.gen-cat-filter-bar__sort {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink-2, #3a3a3a); opacity: .6;
}

/* ── Section grille ──────────────────────────────────────────── */
.gen-cat-grid-section { padding: 64px 0 80px; }
.gen-cat-grid-wrap { max-width: 1240px; margin: 0 auto; padding: 0 48px; }
.gen-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}

/* ── Carte produit ───────────────────────────────────────────── */
.gen-cat-card {
  position: relative;
  background: var(--paper, #f5f2eb);
  transition: box-shadow .25s;
}
.gen-cat-card:hover {
  box-shadow: 0 16px 48px rgba(0,0,0,.18);
}
.gen-cat-card__corner {
  position: absolute; z-index: 2; color: var(--gold-deep, #a88934);
  pointer-events: none;
}
.gen-cat-card__corner--tl { top: 10px; left: 10px; }
.gen-cat-card__corner--tr { top: 10px; right: 10px; }
.gen-cat-card__corner--bl { bottom: 10px; left: 10px; }
.gen-cat-card__corner--br { bottom: 10px; right: 10px; }

.gen-cat-card__link {
  display: flex; flex-direction: column; height: 100%;
  text-decoration: none; color: inherit;
}
.gen-cat-card__visual {
  min-height: 280px; padding: 32px 24px 16px; overflow: hidden;
  background: var(--paper);
  display: flex; align-items: center; justify-content: center;
}
.gen-cat-card__photo {
  display: flex; align-items: center; justify-content: center;
  transition: transform .4s ease;
}
.gen-cat-card:hover .gen-cat-card__photo { transform: scale(1.04); }

/* Bouteille CSS (fallback sans image) */
.gen-cat-card__bottle {
  position: relative; width: 60px; height: 140px; margin: 0 auto;
}
.gen-cat-card__bottle--amber .gen-cat-card__bcapsule { background: var(--gold-deep, #a88934); }
.gen-cat-card__bottle--forest .gen-cat-card__bcapsule { background: var(--forest, #1c3a0f); }
.gen-cat-card__bottle--clear  .gen-cat-card__bcapsule { background: #c0c0c0; }
.gen-cat-card__bneck {
  width: 20px; height: 30px; margin: 0 auto;
  background: rgba(255,255,255,.12);
  border-radius: 2px 2px 0 0;
}
.gen-cat-card__bcapsule {
  width: 22px; height: 8px; margin: 0 auto;
  background: var(--gold-deep, #a88934); border-radius: 2px;
}
.gen-cat-card__blabel {
  width: 60px; flex: 1;
  background: rgba(255,255,255,.06);
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 2px;
  padding: 8px 4px;
}
.gen-cat-card__bbrand {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 6px; letter-spacing: .3em; color: var(--gold-deep, #a88934);
}
.gen-cat-card__bname {
  font-family: var(--serif-body);
  font-size:13px; color: #fff; text-align: center; line-height: 1.2;
}
.gen-cat-card__byear {
  font-family: var(--mono, monospace);
  font-size: 6px; color: rgba(255,255,255,.5);
}

/* Corps de la carte — retour client 2026-09-15 : tout centré, titre 25px,
   prix "à partir de" 20px, plus de CTA "Découvrir la fiche". */
.gen-cat-card__body {
  padding: 20px 20px 24px;
  display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1;
  text-align: center;
}
.gen-cat-card__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:13px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep, #a88934);
}
.gen-cat-card__name {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 25px; font-weight: 400; line-height: 1.1;
  color: var(--ink, #1a1a1a); margin: 4px 0 0;
}
.gen-cat-card__price {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-weight: 600;
  font-size: 20px; letter-spacing: .02em;
  color: var(--forest-deep, #0f2508); margin-top: 6px;
}
.gen-cat-card__price-prefix {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-weight: 400; font-size: 12px; letter-spacing: .15em;
  text-transform: uppercase; opacity: .7; margin-right: 4px;
}

/* ── Section Élixir 1845 ─────────────────────────────────────── */
.gen-cat-elixir {
  padding: 72px 48px;
}
.gen-cat-elixir__inner { max-width: 1240px; margin: 0 auto; }
.gen-cat-elixir__card {
  position: relative;
  max-width: 900px; margin: 0 auto;
  background: rgba(15,37,8,.85);
  padding: 52px 64px;
  display: flex; align-items: center; gap: 60px;
  border: 1px solid rgba(201,168,76,.3);
}
.gen-cat-elixir__bottle {
  flex-shrink: 0; width: 56px;
  display: flex; flex-direction: column; align-items: center;
}
.gen-cat-elixir__bneck {
  width: 18px; height: 28px;
  background: rgba(201,168,76,.2); border-radius: 2px 2px 0 0;
}
.gen-cat-elixir__bcap {
  width: 20px; height: 7px;
  background: var(--gold-deep, #a88934); border-radius: 2px;
}
.gen-cat-elixir__blabel {
  width: 56px; height: 80px;
  background: rgba(201,168,76,.1); border: 1px solid rgba(201,168,76,.3);
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 3px;
}
.gen-cat-elixir__bscript {
  font-family: var(--serif-body);
  font-size:21px; color: var(--gold-light, #d4b35a); font-style: italic;
}
.gen-cat-elixir__byear {
  font-family: var(--mono, monospace);
  font-size: 8px; color: rgba(201,168,76,.6); letter-spacing: .15em;
}
.gen-cat-elixir__text { flex: 1; }
.gen-cat-elixir__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:14px; letter-spacing: .4em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 10px;
}
.gen-cat-elixir__title {
  font-family: var(--serif-body);
  font-size: 42px; font-weight: 400; line-height: 1;
  color: var(--paper, #f5f2eb); margin: 0 0 16px;
}
.gen-cat-elixir__desc {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic; font-size:19px; line-height: 1.65;
  color: rgba(245,242,235,.75); max-width: 520px;
}

.genestine-header .gh-cta-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.genestine-header .gh-cta-group .genestine-stamp-btn {
  font-size: 11px !important;
  letter-spacing: .32em !important;
  padding: 14px 30px !important;
  box-shadow: 0 0 0 1px #f5f2eb inset, 0 0 0 4px #1c3a0f inset !important;
  transition: background .22s, color .22s;
}
.genestine-header .gh-cta-group .genestine-stamp-btn:hover {
  background: transparent !important;
  color: #1c3a0f !important;
  box-shadow: 0 0 0 1px #1c3a0f inset, 0 0 0 4px #f5f2eb inset !important;
}

/* ── Header principal — padding compact + neutralise le padding interne Elementor ── */
.genestine-header.elementor-section {
  padding: 10px 48px !important;
}
/* Centre verticalement burger/menu et bouton CTA sur l'axe du logo, quelle
   que soit sa hauteur rendue (les 3 colonnes ont "content_position: middle"
   côté Elementor, mais ça ne suffit pas toujours à aligner le rang lui-même). */
.genestine-header .elementor-container,
.genestine-header .elementor-row { align-items: center; }
/* Largeur du logo : normalement fixée par le CSS Elementor propre au widget
   (400px), mais ce fichier n'est pas toujours chargé sur les pages qui ne
   sont pas elles-mêmes construites avec Elementor (ex. page Panier
   woocommerce/cart, gabarit classique) → logo affiché à sa taille native
   ("énorme"). On la réaffirme ici, dans une feuille toujours chargée. */
.genestine-header .elementor-column:nth-child(2) img { width: 400px; max-width: 100%; }
.genestine-header .elementor-widget-wrap {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ── Topbar - centrage vertical ─────────────────────────────── */
.genestine-topbar.elementor-section {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

/* ── Section Élixir - image plein fond + gradient gauche ────── */
.gen-elixir-slab {
  position: relative;
}
.gen-elixir-slab::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to left,
    rgba(15,37,8,.95) 0%,
    rgba(15,37,8,.80) 40%,
    rgba(15,37,8,.25) 65%,
    rgba(15,37,8,.00) 100%
  );
  z-index: 1;
  pointer-events: none;
}
.gen-elixir-slab > .elementor-container {
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .gen-elixir-slab::before {
    background: linear-gradient(
      to bottom,
      rgba(15,37,8,.90) 0%,
      rgba(15,37,8,.55) 50%,
      rgba(15,37,8,.90) 100%
    );
  }
}

/* Variante ghost clair pour fond sombre */
.genestine-stamp-btn--ghost-light {
  display: inline-block; margin-top: 24px;
  padding: 13px 28px;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:16px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--gold-light, #d4b35a);
  border: 1px solid var(--gold-deep, #a88934);
  background: none; cursor: pointer; text-decoration: none;
  transition: background .2s, color .2s;
}
.genestine-stamp-btn--ghost-light:hover {
  background: var(--gold-deep, #a88934);
  color: var(--paper, #f5f2eb);
}

/* ── Responsive catalogue ────────────────────────────────────── */
@media (max-width: 1100px) {
  .gen-cat-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
  .gen-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .gen-cat-grid-wrap { padding: 0 24px; }
  .gen-cat-filter-bar__inner { padding: 0 16px; }
  .gen-cat-filter-bar__sort { display: none; }
  .gen-cat-filter { padding: 14px 12px 12px; font-size:14px; }
  .gen-cat-elixir__card { flex-direction: column; gap: 32px; padding: 36px 28px; }
  .gen-cat-header { padding: 56px 24px 48px; }
}
@media (max-width: 480px) {
  .gen-cat-grid { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; }
}

/* ================================================================
   Phase 5 - Checkout + Confirmation
   ================================================================ */

/* Masquer le titre WordPress par défaut et le bandeau coupon WC */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-header { display: none !important; }
/* Formulaire coupon proxy (copié par JS) - toujours masqué */
.gen-ck-coupon-proxy { display: none !important; visibility: hidden !important; }

/* Chrome minimal */
.gen-ck-chrome { background: transparent; }

.gen-ck-header {
  border-bottom: 1px solid rgba(28,58,15,.18);
  background: rgba(255,255,255,.96);
}
.gen-ck-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 20px 48px;
  max-width: 1400px;
  margin: 0 auto;
}
.gen-ck-header__back {
  font-family: var(--sans-caps, 'Concept Medium', sans-serif);
  font-size:19px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--ink, #1a1a1a);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.gen-ck-header__back:hover { color: var(--forest, #1c3a0f); }
.gen-ck-header__wordmark {
  font-family: var(--serif-body);
  font-size: 28px;
  color: var(--ink);
  text-decoration: none;
  display: block;
  text-align: center;
}
.gen-ck-header__ssl {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: monospace;
  font-size:14px;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gold-deep, #a88934);
}

/* Bandeau titre */
.gen-ck-title {
  text-align: center;
  padding: 48px 48px 0;
}
.gen-ck-title__kicker {
  font-family: var(--sans-caps);
  font-size:19px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-ck-title__h1 {
  font-family: var(--serif-display);
  font-size: 84px;
  font-weight: 400;
  color: var(--ink);
  margin: 6px 0 0;
  line-height: 1;
}
.gen-ck-title__orn {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 360px;
  margin: 16px auto 0;
  color: var(--gold-deep);
}
.gen-ck-title__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

/* Corps - grille 2 col */
form.gen-ck-body {
  max-width: 1260px;
  margin: 56px auto 100px;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: start;
}

/* Sections formulaire */
.gen-ck-section { margin-bottom: 44px; }
.gen-ck-section__head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 6px;
}
.gen-ck-section__num {
  font-family: var(--serif-body);
  font-size: 56px;
  color: var(--gold-deep);
  line-height: 1;
  flex-shrink: 0;
}
.gen-ck-section__title {
  font-family: var(--serif-display);
  font-size: 36px;
  font-weight: 400;
  color: var(--ink);
  margin: 0;
  line-height: 1;
}
.gen-ck-section__sub {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-style: italic;
  font-size:18px;
  color: var(--ink-2, #3a3a3a);
  margin: 2px 0 0;
}
.gen-ck-section__divider {
  height: 1px;
  background: linear-gradient(90deg, var(--gold-deep), transparent);
  margin-bottom: 22px;
}

/* Champs WooCommerce - checkout */
.gen-ck-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 14px;
}
.gen-ck-fields--1col { grid-template-columns: 1fr; }
.gen-ck-fields .form-row { grid-column: span 2; margin: 0 0 14px; padding: 0; }
/* Prénom / Nom : côte à côte, chacun remplit sa colonne (override du width:47% WooCommerce) */
.gen-ck-fields .form-row-first { grid-column: 1; width: 100% !important; }
.gen-ck-fields .form-row-last  { grid-column: 2; width: 100% !important; }
.gen-ck-fields .form-row-wide  { grid-column: span 2; }
.gen-ck-fields .form-row label {
  font-family: var(--sans-caps);
  font-size:14px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 6px;
  display: block;
}
.gen-ck-fields .form-row .woocommerce-input-wrapper { display: block; }
.gen-ck-fields .form-row input[type=text],
.gen-ck-fields .form-row input[type=email],
.gen-ck-fields .form-row input[type=tel],
.gen-ck-fields .form-row input[type=password],
.gen-ck-fields .form-row select {
  width: 100%;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid rgba(28,58,15,.4) !important;
  border-radius: 0 !important;
  outline: none;
  font-family: var(--serif-body, Georgia, serif);
  font-size:19px;
  color: var(--ink);
  box-shadow: none !important;
  -webkit-appearance: none;
}
.gen-ck-fields .form-row input:focus,
.gen-ck-fields .form-row select:focus { border-color: var(--forest) !important; }

/* Create account */
.gen-ck-create-account {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  background: rgba(168,137,52,.1);
  border: 1px solid rgba(168,137,52,.5);
  margin-top: 14px;
  cursor: pointer;
}
.gen-ck-create-account input[type=checkbox] { display: none; }
.gen-ck-create-account__box {
  width: 18px;
  height: 18px;
  border: 1px solid rgba(28,58,15,.5);
  background: #fff;
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size:19px;
  color: transparent;
  transition: background .15s, color .15s;
}
.gen-ck-create-account input:checked + .gen-ck-create-account__box {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}
.gen-ck-create-account__text strong {
  font-family: var(--sans-caps);
  font-size:14px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--ink);
  display: block;
  margin-bottom: 2px;
}
.gen-ck-create-account__text em {
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:21px;
  color: var(--ink-2);
}

/* Carte Colissimo */
.gen-ck-shipping-card {
  margin-top: 26px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--forest);
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--forest) inset;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: center;
}
.gen-ck-shipping-card__radio {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--forest);
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--forest) inset;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gen-ck-shipping-card__dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--forest);
}
.gen-ck-shipping-card__name {
  font-family: var(--serif-body);
  font-size:24px;
  color: var(--ink);
  line-height: 1.1;
}
.gen-ck-shipping-card__detail {
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:18px;
  color: var(--ink-2);
  margin: 4px 0 0;
}
.gen-ck-shipping-card__detail strong { color: var(--forest); font-style: normal; }
.gen-ck-shipping-card__price { text-align: right; }
/* Prix payant : typo standard (serif-body), aligné sur le récap WooCommerce */
.gen-ck-shipping-card__price > span:not(.gen-ck-shipping-card__free) {
  font-family: var(--serif-body);
  font-size: 18px;
  color: var(--forest);
  display: block;
}
.gen-ck-shipping-card__free {
  font-family: var(--serif-body);
  font-size: 22px;
  color: var(--forest);
  display: block;
}
.gen-ck-shipping-card__price small {
  font-family: monospace;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-2);
}

/* Adresse facturation différente */
.gen-ck-ship-diff {
  margin-top: 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--serif-body);
  font-size:18px;
  color: var(--ink-2);
  cursor: pointer;
}
.gen-ck-ship-diff input { accent-color: var(--forest); }

/* Champs shipping (masqués par défaut, WC JS les affiche) */
.woocommerce-shipping-fields { display: none; }

/* Zone paiement (#order_review) */
.gen-ck-payment .shop_table.woocommerce-checkout-review-order-table { display: none !important; }
.gen-ck-payment .woocommerce-shipping-totals { display: none !important; }
.gen-ck-payment #payment {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
.gen-ck-payment #payment .payment_methods { list-style: none; padding: 0; margin: 0; }
.gen-ck-payment #payment .payment_methods > li {
  padding: 14px 0;
  border-bottom: 1px solid rgba(28,58,15,.12);
}
.gen-ck-payment #payment .payment_methods > li label {
  font-family: var(--serif-body);
  font-size:19px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
}
.gen-ck-payment #payment .payment_methods > li input[type=radio] { accent-color: var(--forest); }
/* div.payment_box : on bat la spécificité de WooCommerce (.woocommerce-checkout
   #payment div.payment_box { background:#dcd7e2 }) pour supprimer le fond lavande */
.gen-ck-payment #payment div.payment_box {
  padding: 0;
  background: transparent;
  border: 0;
  margin-top: 10px;
  font-family: var(--serif-body);
  font-size:18px;
  color: var(--ink-2);
  line-height: 1.7;
}
.gen-ck-payment #payment div.payment_box::before { display: none; } /* flèche lavande WC */
.gen-ck-payment #payment .place-order { display: none !important; } /* bouton dans sidebar */
.gen-ck-payment #payment .woocommerce-privacy-policy-text { display: none !important; }

/* ── Axepta BNP Paribas (passerelle paiement) ── */
/* Markup généré : .payment_box.payment_method_axepta_bnpp_gateway
   > <p> note de redirection + #axepta-payment-options-container
     > .axepta-payment-options-container > .axepta-payment-options
       (h3.axepta-payment-title + .axepta-payment-card > label.axepta-payment-option
        > input.axepta-radio-input + img.axepta-method-logo[style inline]) */

/* Note de redirection (wpautop) */
.gen-ck-payment .axepta-payment-method > p,
.gen-ck-payment .payment_box.payment_method_axepta_bnpp_gateway > p {
  font-family: var(--serif-body);
  font-style: italic;
  font-size:18px;
  line-height: 1.6;
  color: var(--ink-2, #3a3a3a);
  margin: 0 0 14px;
}

/* Bloc de sélection — sans fond coloré (tuiles directement sur le crème) */
.gen-ck-payment .axepta-payment-options-container {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}

/* Groupes carte / wallet : on retire le cadre #eee du plugin */
.gen-ck-payment .axepta-payment-options {
  background: transparent;
  border: 0;
  padding: 0;
  gap: 8px;
  margin: 0 0 8px;
}
.gen-ck-payment .axepta-payment-options:last-child { margin-bottom: 0; }

/* Titre « Paiement par carte » */
.gen-ck-payment .axepta-payment-title {
  font-family: var(--sans-caps, 'Concept', sans-serif);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size:15px;
  font-weight: 600;
  color: var(--forest, #1c3a0f);
  margin: 0 0 12px;
}

/* Tuiles logo — fond blanc, cadre discret, largeur partagée (5 sur une ligne) */
.gen-ck-payment .axepta-payment-card {
  flex: 1 1 0;
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(28,58,15,.14);
  border-radius: 8px;
  padding: 12px 8px;
  min-height: 52px;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gen-ck-payment .axepta-payment-card:hover { border-color: var(--gold-deep, #a88934); }
.gen-ck-payment .axepta-payment-card.selected {
  border: 1.5px solid var(--forest, #1c3a0f);
  box-shadow: 0 0 0 1px var(--forest, #1c3a0f);
  background: #fff;
}

/* Radio caché : la tuile sélectionnée fait foi (cf. capture) */
.gen-ck-payment .axepta-payment-card .axepta-radio-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
}
.gen-ck-payment .axepta-payment-option {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 0;
  width: 100%;
}

/* Logos : taille harmonisée (override des styles inline par marque du plugin) */
.gen-ck-payment .axepta-method-logo {
  max-height: 28px !important;
  max-width: 56px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  display: block;
}

/* Logo BNP en pied de bloc */
.gen-ck-payment .axepta-payment-description {
  margin-top: 14px;
  font-family: var(--serif-body);
  font-style: italic;
  font-size:16px;
  color: var(--ink-2, #3a3a3a);
}
.gen-ck-payment .axepta-payment-description img {
  max-height: 22px !important;
  max-width: 60px !important;
}

/* Case « enregistrer ma carte » */
.gen-ck-payment .axepta-save-card-checkbox {
  font-family: var(--serif-body);
  font-size:18px;
  color: var(--ink, #1a1a1a);
  margin-top: 14px;
}
.gen-ck-payment .axepta-save-card-checkbox input { accent-color: var(--forest, #1c3a0f); }

/* Formulaire coupon caché */
.gen-ck-hidden-form { display: none !important; }

/* ── Sidebar résumé ── */
.gen-ck-summary { position: sticky; top: 24px; }
.gen-ck-summary-card {
  background: #fff;
  border: 1px solid var(--gold-deep);
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px rgba(201,168,76,.25) inset,
              0 30px 60px rgba(0,0,0,.1);
  padding: 28px;
  position: relative;
}
.gen-ck-sum-corner {
  position: absolute;
  width: 14px; height: 14px;
  border-color: var(--gold-deep);
  border-style: solid;
  display: block;
}
.gen-ck-sum-corner--tl { top: 10px; left: 10px; border-width: 1px 0 0 1px; }
.gen-ck-sum-corner--tr { top: 10px; right: 10px; border-width: 1px 1px 0 0; }

.gen-ck-sum-head { text-align: center; padding-top: 8px; margin-bottom: 18px; }
.gen-ck-sum-head__kicker {
  font-family: var(--sans-caps);
  font-size:14px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-ck-sum-head__title {
  font-family: var(--serif-body);
  font-size: 36px;
  font-weight: 400;
  color: var(--ink);
  margin: 4px 0 0;
  line-height: 1;
}
.gen-ck-sum-head__orn {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 200px;
  margin: 12px auto 0;
  color: var(--gold-deep);
}
.gen-ck-sum-head__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

/* Articles */
.gen-ck-sum-item {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(28,58,15,.12);
  align-items: center;
}
.gen-ck-sum-item__thumb {
  position: relative;
  width: 56px; height: 56px;
}
.gen-ck-sum-item__thumb img { width: 100%; height: 100%; object-fit: contain; }
.gen-ck-sum-item__thumb-placeholder { width: 56px; height: 56px; background: rgba(28,58,15,.08); }
.gen-ck-sum-item__qty-badge {
  position: absolute;
  top: -6px; right: -6px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--gold-light, #e0c070);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: monospace;
  font-size:19px;
  font-weight: 600;
}
.gen-ck-sum-item__name { font-family: var(--serif-body); font-size:20px; color: var(--ink); line-height: 1.1; }
.gen-ck-sum-item__cat { font-family: monospace; font-size:13px; letter-spacing: .15em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-ck-sum-item__price { font-family: var(--serif-body); font-size: 17px; color: var(--ink); white-space: nowrap; }

/* Code promo */
.gen-ck-sum-coupon { margin: 12px 0; }
.gen-ck-sum-coupon-form { display: flex; gap: 8px; }
.gen-ck-coupon-input {
  flex: 1;
  padding: 10px 12px;
  font-family: monospace;
  font-size:15px;
  letter-spacing: .15em;
  text-transform: uppercase;
  background: #fff;
  border: 1px solid rgba(28,58,15,.3) !important;
  color: var(--ink);
  outline: none;
}
.gen-ck-coupon-input:focus { border-color: var(--gold-deep) !important; }
.gen-ck-coupon-btn {
  background: var(--gold-deep);
  color: #fff;
  border: 0;
  padding: 0 14px;
  font-family: var(--sans-caps);
  font-size: 10px;
  letter-spacing: .25em;
  text-transform: uppercase;
  cursor: pointer;
}
.gen-ck-sum-coupon-applied {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  background: rgba(168,137,52,.1);
  border: 1px solid var(--gold-deep);
}
.gen-ck-sum-coupon-code { font-family: monospace; font-size:15px; letter-spacing: .2em; color: var(--ink); }
.gen-ck-sum-coupon-remove { font-family: var(--sans-caps); font-size:13px; letter-spacing: .25em; text-transform: uppercase; color: var(--ink-2); text-decoration: none; }
.gen-ck-sum-coupon-remove:hover { color: var(--forest); }

/* Totaux */
.gen-ck-sum-totals { margin-top: 14px; }
.gen-ck-sum-row {
  display: flex;
  justify-content: space-between;
  font-family: var(--serif-body, Georgia, serif);
  font-size:18px;
  color: var(--ink-2);
  padding: 3px 0;
}
.gen-ck-sum-row--promo { font-style: italic; }
.gen-ck-free { font-family: var(--serif-italic); font-style: italic; color: var(--forest); }
.gen-ck-sum-divider { height: 1px; background: var(--gold-deep); margin: 14px 0; }
.gen-ck-sum-total { display: flex; justify-content: space-between; align-items: baseline; }
.gen-ck-sum-total__label { font-family: var(--sans-caps); font-size: 12px; letter-spacing: .35em; text-transform: uppercase; color: var(--ink); }
.gen-ck-sum-total__amount { font-family: var(--serif-body); font-size: 40px; color: var(--ink); line-height: 1; }
.gen-ck-sum-tva { font-family: var(--serif-italic); font-style: italic; font-size:15px; color: var(--ink-2); text-align: right; margin: 2px 0 0; }

/* Bouton sidebar */
.gen-ck-submit {
  display: flex;
  width: 100%;
  justify-content: center;
  margin-top: 18px;
  padding: 18px 0;
  font-size:15px;
  box-sizing: border-box;
}

/* Badges SSL */
.gen-ck-ssl-badges {
  display: flex;
  justify-content: center;
  gap: 14px;
  font-family: monospace;
  font-size:13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-2);
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(28,58,15,.15);
}
.gen-ck-ssl-sep { width: 1px; height: 10px; background: rgba(28,58,15,.3); display: inline-block; }

/* Mention légale */
.gen-ck-legal { font-family: var(--serif-italic); font-style: italic; font-size:15px; color: var(--ink-2); text-align: center; margin: 16px 0 0; line-height: 1.55; }
.gen-ck-legal a { color: var(--forest); }

/* Footer slim */
.gen-ck-footer { border-top: 1px solid rgba(28,58,15,.18); padding: 24px 48px; text-align: center; font-family: monospace; font-size:14px; letter-spacing: .25em; text-transform: uppercase; color: var(--ink-2); margin-top: 40px; }
.gen-ck-footer__warn { margin: 0; }
.gen-ck-footer__links { margin-top: 12px; display: flex; justify-content: center; flex-wrap: wrap; gap: 22px; }
.gen-ck-footer__links a { color: var(--ink-2); text-decoration: none; }
.gen-ck-footer__links a:hover { color: var(--forest); }

/* Notices */
.gen-ck-notices { padding: 0 48px; margin-top: 20px; }

/* ================================================================
   Page confirmation (thankyou.php)
   ================================================================ */
.gen-ty-wrapper { max-width: 1200px; margin: 0 auto; padding: 0 48px 80px; }

.gen-ty-hero { padding: 56px 0 20px; text-align: center; }
.gen-ty-hero__num { font-family: var(--sans-caps); font-size:19px; letter-spacing: .4em; text-transform: uppercase; color: var(--gold-deep); }
.gen-ty-hero__title { font-family: var(--serif-display); font-size: 84px; font-weight: 400; color: var(--ink); margin: 10px 0 0; line-height: 1; }
.gen-ty-hero__sub { font-family: var(--serif-italic); font-style: italic; font-size:24px; color: var(--ink-2); max-width: 600px; margin: 24px auto 0; line-height: 1.6; }
.gen-ty-hero__orn { display: flex; align-items: center; gap: 16px; max-width: 420px; margin: 24px auto 0; color: var(--gold-deep); }
.gen-ty-hero__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

.gen-ty-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; margin-top: 28px; }

/* Carte articles */
.gen-ty-items-card { padding: 28px; background: #fff; }
.gen-ty-items-head { text-align: center; margin-bottom: 18px; }
.gen-ty-items-head__kicker { font-family: var(--sans-caps); font-size:14px; letter-spacing: .35em; text-transform: uppercase; color: var(--gold-deep); }
.gen-ty-items-head__title { font-family: var(--serif-body); font-size: 32px; font-weight: 400; color: var(--ink); margin: 4px 0 0; line-height: 1; }
.gen-ty-items-head__orn { display: flex; align-items: center; gap: 12px; max-width: 200px; margin: 12px auto 18px; color: var(--gold-deep); }
.gen-ty-items-head__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

.gen-ty-item { display: grid; grid-template-columns: 70px 1fr auto; gap: 16px; padding: 14px 0; border-top: 1px solid rgba(28,58,15,.12); align-items: center; }
.gen-ty-item__thumb { position: relative; width: 64px; height: 64px; }
.gen-ty-item__thumb img { width: 100%; height: 100%; object-fit: contain; }
.gen-ty-item__thumb-placeholder { width: 64px; height: 64px; background: rgba(28,58,15,.08); }
.gen-ty-item__qty-badge { position: absolute; top: -6px; right: -6px; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--gold-light); display: flex; align-items: center; justify-content: center; font-family: monospace; font-size:15px; font-weight: 600; }
.gen-ty-item__name { font-family: var(--serif-body); font-size: 22px; color: var(--ink); line-height: 1.1; }
.gen-ty-item__cat { font-family: monospace; font-size:14px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-ty-item__price { font-family: var(--serif-body); font-size: 22px; color: var(--ink); }

/* Totaux confirmation */
.gen-ty-totals { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--gold-deep); }
.gen-ty-totals__row { display: flex; justify-content: space-between; font-family: var(--serif-body); font-size: 14px; color: var(--ink-2); padding: 3px 0; }
.gen-ty-totals__row--promo { font-style: italic; }
.gen-ty-free { font-style: italic; color: var(--forest); }
.gen-ty-totals__divider { height: 1px; background: rgba(28,58,15,.18); margin: 10px 0; }
.gen-ty-totals__final { display: flex; justify-content: space-between; align-items: baseline; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(28,58,15,.18); }
.gen-ty-totals__label { font-family: var(--sans-caps); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--ink); }
.gen-ty-totals__amount { font-family: var(--serif-body); font-size: 36px; color: var(--ink); line-height: 1; }
.gen-ty-totals__method { font-family: var(--serif-italic); font-style: italic; font-size: 12px; color: var(--ink-2); text-align: right; margin: 4px 0 0; }

.gen-ty-items-actions { display: flex; gap: 12px; margin-top: 18px; flex-wrap: wrap; }

/* Colonne droite */
.gen-ty-side { display: flex; flex-direction: column; gap: 18px; }

/* Livraison */
.gen-ty-delivery { overflow: hidden; }
.gen-ty-delivery__inner { padding: 24px; position: relative; z-index: 1; }
.gen-ty-delivery__kicker { font-family: var(--sans-caps); font-size:14px; letter-spacing: .35em; text-transform: uppercase; color: var(--gold-light, #e0c070); }
.gen-ty-delivery__date { font-family: var(--serif-body); font-size: 36px; color: var(--cream, #fbfaf5); margin-top: 4px; line-height: 1; }
.gen-ty-delivery__slot { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--gold-light); margin-top: 6px; }
.gen-ty-delivery__sep { height: 1px; background: rgba(201,168,76,.4); margin: 16px 0; }
.gen-ty-delivery__address { font-family: var(--serif-body); font-size:18px; color: var(--cream); line-height: 1.7; }
.gen-ty-delivery__tracking { margin-top: 14px; font-family: monospace; font-size:14px; letter-spacing: .25em; text-transform: uppercase; color: var(--gold-light); }

/* Timeline */
.gen-ty-timeline { padding: 22px; background: #fff; border: 1px solid rgba(28,58,15,.2); }
.gen-ty-timeline__title { font-family: var(--sans-caps); font-size:14px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep); text-align: center; margin-bottom: 14px; }
.gen-ty-timeline__track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; position: relative; }
.gen-ty-timeline__bar {
  position: absolute;
  top: 17px; left: 7%; right: 7%;
  height: 2px;
  background: rgba(28,58,15,.15);
  z-index: 0;
}
.gen-ty-timeline__bar::before {
  content: '';
  position: absolute;
  inset: 0 calc(100% - var(--ck-progress, 0%)) 0 0;
  background: var(--forest);
  transition: width .4s;
}
.gen-ty-timeline__step { position: relative; text-align: center; z-index: 1; }
.gen-ty-timeline__circle {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(28,58,15,.3);
  margin: 0 auto;
  display: flex; align-items: center; justify-content: center;
  font-family: monospace; font-size:15px;
  color: var(--ink-2);
}
.gen-ty-timeline__step--done .gen-ty-timeline__circle {
  background: var(--forest); border-color: var(--forest); color: #fff;
}
.gen-ty-timeline__step--current .gen-ty-timeline__circle {
  background: var(--gold-deep); border-color: var(--gold-deep); color: #fff;
  box-shadow: 0 0 0 4px rgba(201,168,76,.2);
}
.gen-ty-timeline__label { font-family: var(--sans-caps); font-size:13px; letter-spacing: .25em; text-transform: uppercase; color: var(--ink-2); margin-top: 8px; }
.gen-ty-timeline__step--done .gen-ty-timeline__label,
.gen-ty-timeline__step--current .gen-ty-timeline__label { color: var(--ink); }

.gen-ty-email-note { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--ink-2); text-align: center; line-height: 1.55; padding: 14px 20px; background: rgba(255,255,255,.6); border: 1px solid rgba(28,58,15,.15); }
.gen-ty-email-note strong { color: var(--ink); font-style: normal; }

.gen-ty-account { padding: 22px; background: rgba(168,137,52,.1); border: 1px dashed var(--gold-deep); text-align: center; }
.gen-ty-account__title { font-family: var(--serif-body); font-size: 22px; color: var(--ink); margin-bottom: 10px; line-height: 1.1; }

/* ── Responsive checkout ── */
@media (max-width: 960px) {
  form.gen-ck-body { grid-template-columns: 1fr; gap: 40px; padding: 0 24px; margin: 32px auto 60px; }
  .gen-ck-summary { position: static; }
  .gen-ck-title__h1 { font-size: 56px; }
  .gen-ck-header__inner { padding: 16px 24px; }
  .gen-ck-section__num { font-size: 40px; }
  .gen-ck-section__title { font-size: 28px; }
}
@media (max-width: 960px) {
  .gen-ty-body { grid-template-columns: 1fr; }
  .gen-ty-wrapper { padding: 0 24px 60px; }
  .gen-ty-hero__title { font-size: 56px; }
}
@media (max-width: 640px) {
  .gen-ck-header__inner { grid-template-columns: auto 1fr auto; gap: 8px; }
  .gen-ck-fields { grid-template-columns: 1fr; }
  .gen-ck-fields .form-row-first,
  .gen-ck-fields .form-row-last { grid-column: 1; }
  .gen-ck-shipping-card { grid-template-columns: auto 1fr; }
  .gen-ck-shipping-card__price { grid-column: span 2; text-align: left; }
}
@media (max-width: 768px) {
  /* Réduire padding global + titre */
  form.gen-ck-body { padding: 0 16px !important; overflow-x: clip; }
  .gen-ck-title { padding-left: 16px !important; padding-right: 16px !important; }
  /* Empêcher les colonnes grid de déborder */
  .gen-ck-form, .gen-ck-summary { min-width: 0; }
  /* Selects WooCommerce trop larges */
  body.woocommerce-checkout select { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
  /* Zone paiement : contenir les widgets gateway (Stripe, etc.) */
  .gen-ck-payment { overflow-x: hidden; }
  .gen-ck-payment #payment .payment_box { overflow-x: auto; }
  /* Shipping card : titre qui peut déborder */
  .gen-ck-shipping-card__name { font-size:19px; }
  /* Coupon form */
  .gen-ck-sum-coupon-form { flex-wrap: wrap; }
  .gen-ck-coupon-input { min-width: 0; }
  /* Bouton "Confirmer la commande" : réduire letter-spacing pour éviter le débordement */
  .gen-ck-submit.stamp-btn { letter-spacing: .12em !important; font-size: 14px !important; }
}

/* ================================================================
   Phase 6 - Page Panier (/cart/)
   ================================================================ */

/* Corps page */
.gen-cart-page { min-height: 60vh; }

/* Bandeau titre */
.gen-cart-title {
  text-align: center;
  padding: 56px 48px 0;
}
.gen-cart-title__kicker {
  font-family: var(--sans-caps);
  font-size:19px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-cart-title__h1 {
  font-family: var(--serif-display);
  font-size: 84px;
  font-weight: 400;
  color: var(--ink);
  margin: 6px 0 0;
  line-height: 1;
}
.gen-cart-title__orn {
  display: flex; align-items: center; gap: 16px;
  max-width: 360px; margin: 16px auto 0; color: var(--gold-deep);
}
.gen-cart-title__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

/* Grille 2 col */
.gen-cart-body {
  max-width: 1260px;
  margin: 40px auto 80px;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 48px;
  align-items: start;
}

/* Jauge Colissimo */
.gen-cart-gauge {
  padding: 14px 18px;
  background: rgba(28,58,15,.06);
  border: 1px solid rgba(28,58,15,.18);
  margin-bottom: 24px;
}
.gen-cart-gauge__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.gen-cart-gauge__label {
  font-family: var(--sans-caps);
  font-size: 10px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-cart-gauge__amount { font-family: monospace; font-size: 10px; color: var(--ink-2); letter-spacing: .15em; }
.gen-cart-gauge__track {
  height: 4px;
  background: rgba(28,58,15,.18);
  position: relative;
}
.gen-cart-gauge__fill {
  position: absolute; inset: 0;
  background: var(--gold-deep);
  transition: width .4s;
}
.gen-cart-gauge__msg {
  margin: 8px 0 0;
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:18px;
  color: var(--ink-2);
  text-align: center;
}
.gen-cart-gauge__msg strong { color: var(--forest); font-style: normal; }
.gen-cart-gauge__msg--ok { color: var(--forest); }

/* Table articles */
.gen-cart-table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(255,255,255,.9);
}
.gen-cart-table thead tr {
  border-bottom: 1px solid var(--gold-deep);
}
.gen-cart-table thead th {
  font-family: var(--sans-caps);
  font-size:13px;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--gold-deep);
  padding: 10px 12px;
  font-weight: 400;
  text-align: left;
}
.gen-cart-table thead th.product-remove,
.gen-cart-table thead th.product-thumbnail { width: 1%; white-space: nowrap; }
.gen-cart-table thead th.product-quantity { text-align: center; }
.gen-cart-table thead th.product-subtotal,
.gen-cart-table thead th.product-price { text-align: right; }

/* Lignes */
.gen-cart-table tbody tr { border-bottom: 1px solid rgba(28,58,15,.1); }
.gen-cart-table tbody tr:last-child { border-bottom: 0; }
.gen-cart-table tbody td { padding: 16px 12px; vertical-align: middle; }

/* Bouton retirer */
.gen-cart-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border: 1px solid rgba(28,58,15,.3) !important;
  background: #fff !important;
  color: var(--ink-2) !important;
  font-size:19px;
  line-height: 1;
  text-decoration: none;
  transition: border-color .15s, color .15s;
}
.gen-cart-remove:hover { border-color: var(--forest) !important; color: var(--forest) !important; }

/* Miniature */
.gen-cart-table .product-thumbnail { width: 72px; }
.gen-cart-thumb-img {
  width: 64px; height: 64px;
  object-fit: contain;
  display: block;
}

/* Infos article */
.gen-cart-item__cat {
  font-family: var(--sans-caps);
  font-size:13px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep); margin-bottom: 3px;
}
.gen-cart-item__name {
  font-family: var(--serif-body);
  font-size:24px; color: var(--ink); line-height: 1.1;
}
.gen-cart-item__name a { color: inherit; text-decoration: none; }
.gen-cart-item__name a:hover { color: var(--forest); }

/* Prix */
.gen-cart-item__price,
.gen-cart-item__subtotal {
  font-family: var(--serif-body);
  font-size: 18px; color: var(--ink);
  text-align: right;
}
.gen-cart-table .product-price,
.gen-cart-table .product-subtotal { text-align: right; }

/* Quantité (champ WooCommerce) */
.gen-cart-table .product-quantity { text-align: center; }
.gen-cart-table .quantity .qty {
  width: 56px; height: 40px;
  text-align: center;
  font-family: var(--serif-body);
  font-size:21px;
  border: 1px solid rgba(28,58,15,.35) !important;
  background: #fff;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none;
}
.gen-cart-table .quantity .qty:focus { border-color: var(--forest) !important; }

/* Ligne actions */
.gen-cart-actions { padding: 18px 12px !important; }
.gen-cart-coupon { display: flex; gap: 8px; float: left; }
.gen-cart-coupon__input {
  padding: 10px 14px;
  font-family: monospace;
  font-size:15px; letter-spacing: .15em; text-transform: uppercase;
  border: 1px solid rgba(28,58,15,.35) !important;
  background: #fff; color: var(--ink);
  border-radius: 0 !important; outline: none;
  width: 200px;
}
.gen-cart-coupon__input:focus { border-color: var(--gold-deep) !important; }
.gen-cart-coupon__btn {
  padding: 10px 18px;
  background: var(--gold-deep); color: #fff;
  border: 0; font-family: var(--sans-caps);
  font-size: 10px; letter-spacing: .25em; text-transform: uppercase;
  cursor: pointer; border-radius: 0;
}
.gen-cart-update {
  float: right;
  padding: 10px 20px;
  background: transparent;
  border: 1px solid rgba(28,58,15,.4);
  font-family: var(--sans-caps);
  font-size:14px; letter-spacing: .25em; text-transform: uppercase;
  color: var(--ink); cursor: pointer;
  border-radius: 0;
  transition: background .15s, color .15s;
}
.gen-cart-update:hover:not([disabled]) { background: var(--forest); color: #fff; border-color: var(--forest); }
.gen-cart-update[disabled] { opacity: .4; cursor: not-allowed; }

/* Lien continuer */
.gen-cart-continue {
  display: inline-block;
  margin-top: 18px;
  font-family: var(--sans-caps);
  font-size:19px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink-2); text-decoration: none;
}
.gen-cart-continue:hover { color: var(--forest); }

/* ── Colonne droite - résumé ── */
.gen-cart-right { position: sticky; top: 24px; }
.gen-cart-summary-card {
  background: #fff;
  border: 1px solid var(--gold-deep);
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px rgba(201,168,76,.25) inset, 0 20px 40px rgba(0,0,0,.08);
  padding: 24px;
  position: relative;
}
.gen-cart-sum-head {
  text-align: center;
  padding-top: 8px;
  margin-bottom: 16px;
}
.gen-cart-sum-head__kicker {
  font-family: var(--sans-caps);
  font-size:14px; letter-spacing: .4em; text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-cart-sum-head__orn {
  display: flex; align-items: center; gap: 12px;
  max-width: 200px; margin: 12px auto 0; color: var(--gold-deep);
}
.gen-cart-sum-head__orn .gen-orn-rule__line { flex: 1; height: 1px; background: currentColor; }

/* Totaux WooCommerce (div.cart_totals) */
.gen-cart-totals .shop_table { width: 100%; border-collapse: collapse; }
.gen-cart-totals .shop_table th,
.gen-cart-totals .shop_table td { padding: 6px 0; vertical-align: top; }
.gen-cart-totals .shop_table th {
  font-family: var(--serif-body);
  font-size: 14px; color: var(--ink-2);
  font-weight: 400; width: 50%;
}
.gen-cart-totals .shop_table td {
  font-family: var(--serif-body);
  font-size: 14px; color: var(--ink);
  text-align: right;
}
.gen-cart-totals .order-total th,
.gen-cart-totals .order-total td { padding-top: 12px; border-top: 1px solid var(--gold-deep); }
.gen-cart-totals .order-total th {
  font-family: var(--sans-caps);
  font-size:16px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink);
}
.gen-cart-totals .order-total td {
  font-family: var(--serif-body);
  font-size: 36px; color: var(--ink); line-height: 1;
}
.gen-cart-totals .woocommerce-shipping-calculator { display: none; }
/* Coupon appliqué */
.gen-cart-totals .cart-discount td { font-style: italic; color: var(--forest); }

/* Bouton checkout */
.gen-cart-checkout-btn {
  display: flex;
  width: 100%;
  justify-content: center;
  margin-top: 18px;
  padding: 16px 0;
  font-size:18px;
  box-sizing: border-box;
}

/* Badges */
.gen-cart-badges {
  display: flex;
  justify-content: center;
  gap: 10px;
  font-family: monospace;
  font-size:13px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ink-2);
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(28,58,15,.15);
}

/* Responsive */
@media (max-width: 900px) {
  .gen-cart-body { grid-template-columns: 1fr; gap: 32px; padding: 0 24px; }
  .gen-cart-right { position: static; }
  .gen-cart-title__h1 { font-size: 56px; }
  .gen-cart-title { padding: 36px 24px 0; }
}
@media (max-width: 640px) {
  .gen-cart-table thead { display: none; }
  .gen-cart-table tbody td { display: block; text-align: right; padding: 6px 12px; }
  .gen-cart-table tbody td::before {
    content: attr(data-title);
    float: left;
    font-family: var(--sans-caps);
    font-size:13px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep);
  }
  .gen-cart-table .product-remove,
  .gen-cart-table .product-thumbnail { display: inline-block; width: auto; }
}
}

/* ═══════════════════════════════════════════════════════════════
   PAGES DE CONTENU - Phase 7
   Distiller · Découvrir · Gazette · Où acheter
   ═══════════════════════════════════════════════════════════════ */

/* ── Wrapper global ── */
.gen-content-page { min-height: 100vh; }

/* ── Baseline typographique - toutes les pages de contenu custom ──
   Hello Elementor impose sa font sur body ; on réimpose Cormorant Garamond
   sur tous les descendants de nos <main class="gen-page-*"> qui n'ont pas
   de font-family explicite dans leurs styles inline ou classes dédiées.    */
main[class*="gen-page-"] {
  font-family: var(--serif-body);
  font-size:21px;
}

/* ── Fil d'ariane ── */
.gen-breadcrumb {
  max-width: 1280px; margin: 0 auto; padding: 7px 48px 7px;
  font-family: var(--mono); font-size: 14px;
  letter-spacing: .2em; text-transform: uppercase; color: var(--gold-deep);
}
.gen-breadcrumb a { color: inherit; text-decoration: none; }
.gen-breadcrumb a:hover { color: var(--forest); }
.gen-breadcrumb__sep { margin: 0 12px; opacity: .5; }
.gen-breadcrumb__cur { color: var(--ink); opacity: .8; }

/* ── Hero section contenu ── */
.gen-content-hero {
  position: relative; height: 420px;
  display: flex; align-items: center; justify-content: center;
}
/* Le picto ornemental entre le titre et la description (losange + filets)
   est retiré dans la zone hero uniquement — il reste utilisé ailleurs sur
   les pages comme séparateur de section. */
.gen-content-hero .gen-orn-rule { display: none; }
.gen-content-hero--forest { background: repeating-linear-gradient(135deg, rgba(28,58,15,.32) 0 18px, rgba(28,58,15,.26) 18px 36px); }
.gen-content-hero--sepia  { background: repeating-linear-gradient(135deg, rgba(168,137,52,.32) 0 18px, rgba(120,90,40,.24) 18px 36px); }
.gen-content-hero--night  { background: repeating-linear-gradient(135deg, rgba(15,37,8,.45) 0 18px, rgba(28,58,15,.5) 18px 36px); }
.gen-content-hero--paper  { background: repeating-linear-gradient(135deg, rgba(180,160,110,.22) 0 18px, rgba(140,120,80,.18) 18px 36px); }
.gen-content-hero__border {
  position: absolute; inset: 24px;
  border: 1px solid rgba(201,168,76,.55); pointer-events: none;
}
.gen-content-hero__label {
  position: absolute; top: 36px; left: 0; right: 0; text-align: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,240,210,.55);
}
.gen-content-hero--paper .gen-content-hero__label { color: rgba(26,26,26,.55); }
.gen-content-hero__section {
  position: absolute; top: 36px; right: 60px; left: auto;
  max-width: 42%; text-align: right;
  font-family: var(--mono); font-size:14px; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,240,210,.55);
}
.gen-content-hero--paper .gen-content-hero__section { color: rgba(26,26,26,.55); }
.gen-content-hero__sub {
  position: absolute; bottom: 40px; left: 0; right: 0; text-align: center;
  /* !important partout : le widget Elementor natif (gen_text) sort son propre
     style inline par ID (plus spécifique que cette classe) pour la couleur,
     la taille ET la police — sans !important il gagnait sur les 3. */
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif) !important;
  font-style: normal !important; font-size: 24px !important;
  color: #fff !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); letter-spacing: .02em;
}
.gen-content-hero--paper .gen-content-hero__sub { color: var(--ink); text-shadow: none; }

/* ── Lede ── */
.gen-content-lede { padding: 80px 48px 40px; }
.gen-content-lede__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.gen-content-lede__text {
  font-family: var(--serif-italic); font-style: italic;
  font-size: 24px; line-height: 1.5; color: var(--forest); margin: 0;
}
.gen-content-lede__attr { margin-top: 24px; color: var(--gold-deep); }
.gen-content-lede__attr-name {
  font-family: var(--sans-caps); font-size:19px;
  letter-spacing: .4em; text-transform: uppercase; color: var(--gold-deep); margin-top: 18px;
}

/* ── Bande de navigation chapitres ── */
.gen-cross-link {
  padding: 80px 48px;
  background: var(--forest); position: relative; overflow: hidden;
}
.gen-cross-link::before {
  content: ''; position: absolute; inset: 0;
  background-image: url('/wp-content/themes/hello-child/assets/wallpaper.png');
  background-size: 351px auto; opacity: .08; mix-blend-mode: screen; pointer-events: none;
}
.gen-cross-link__inner { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }
.gen-cross-link__head { text-align: center; color: var(--gold-light); margin-bottom: 40px; }
.gen-cross-link__head-kicker { font-family: var(--sans-caps); font-size:19px; letter-spacing: .4em; text-transform: uppercase; }
.gen-cross-link__head-title { font-family: var(--serif-body); font-size: 44px; color: var(--cream); margin-top: 6px; }
.gen-cross-link__grid { display: grid; gap: 24px; }
.gen-cross-link__card {
  display: block; padding: 28px 24px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(201,168,76,.4);
  color: var(--cream); text-decoration: none;
}
.gen-cross-link__card:hover { background: rgba(255,255,255,.08); }
.gen-cross-link__card-kicker { font-family: var(--sans-caps); font-size:14px; color: var(--gold-light); letter-spacing: .4em; text-transform: uppercase; }
.gen-cross-link__card-title { font-family: var(--serif-body); font-size: 32px; margin-top: 8px; line-height: 1; }
.gen-cross-link__card-desc { font-family: var(--serif-body); font-size:18px; opacity: .75; margin-top: 8px; line-height: 1.5; }
.gen-cross-link__card-cta { font-family: var(--sans-caps); font-size:14px; color: var(--gold-light); letter-spacing: .3em; text-transform: uppercase; margin-top: 18px; border-top: 1px solid rgba(201,168,76,.3); padding-top: 14px; display: block; }

/* ── Filtre générique ── */
.gen-filter-strip {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  border-top: 1px solid rgba(28,58,15,.2);
  border-bottom: 1px solid rgba(28,58,15,.2);
  padding: 18px 0;
}
.gen-filter-strip__label { font-family: var(--sans-caps); font-size:19px; color: var(--gold-deep); letter-spacing: .3em; text-transform: uppercase; }
.gen-filter-strip__btns { display: flex; gap: 6px; flex-wrap: wrap; }
.gen-filter-btn {
  padding: 8px 16px; font-family: var(--sans-caps); font-size:16px;
  letter-spacing: .25em; text-transform: uppercase;
  background: transparent; color: var(--ink);
  border: 1px solid var(--forest); cursor: pointer; transition: background .15s, color .15s;
}
.gen-filter-btn.is-active,
.gen-filter-btn:hover { background: var(--forest); color: var(--paper); }
.gen-filter-count { font-family: var(--mono); font-size:19px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }

/* ── Herbier ── */
.gen-herbarium-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gen-herbarium-card {
  background: #fff; padding: 26px; position: relative;
  border: 1px solid rgba(28,58,15,.3);
  box-shadow: 0 0 0 1px #fff inset, 0 10px 24px rgba(15,37,8,.08);
}
.gen-herbarium-card__inner { position: absolute; inset: 6px; border: 1px solid rgba(28,58,15,.16); pointer-events: none; }
.gen-herbarium-card__illo {
  height: 260px; margin-top: 14px; position: relative;
  background: repeating-linear-gradient(45deg, rgba(168,137,52,.18) 0 12px, rgba(28,58,15,.08) 12px 24px);
  border: 1px solid rgba(168,137,52,.4);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2);
}
.gen-herbarium-card__illo span { position: absolute; width: 18px; height: 18px; }
.gen-herbarium-card__illo span:nth-child(1) { top: 6px; left: 6px; border-top: 1px solid var(--gold-deep); border-left: 1px solid var(--gold-deep); }
.gen-herbarium-card__illo span:nth-child(2) { top: 6px; right: 6px; border-top: 1px solid var(--gold-deep); border-right: 1px solid var(--gold-deep); }
.gen-herbarium-card__illo span:nth-child(3) { bottom: 6px; left: 6px; border-bottom: 1px solid var(--gold-deep); border-left: 1px solid var(--gold-deep); }
.gen-herbarium-card__illo span:nth-child(4) { bottom: 6px; right: 6px; border-bottom: 1px solid var(--gold-deep); border-right: 1px solid var(--gold-deep); }
.gen-herbarium-card__name-block { margin-top: 18px; text-align: center; }
.gen-herbarium-card__orn { margin: 12px auto; color: var(--gold-deep); max-width: 180px; }
.gen-herbarium-card__name { font-family: var(--serif-body); font-size: 34px; color: var(--forest); margin: 0 0 4px; line-height: 1; }
.gen-herbarium-card__lat { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--ink-2); }
.gen-herbarium-card__dl { margin: 0; font-family: var(--serif-body); font-size:21px; line-height: 1.5; }
.gen-herbarium-card__row { display: grid; grid-template-columns: 90px 1fr; padding: 4px 0; border-bottom: 1px dotted rgba(28,58,15,.2); }
.gen-herbarium-card__row dt { font-family: var(--sans-caps); font-size:13px; color: var(--gold-deep); letter-spacing: .25em; text-transform: uppercase; }
.gen-herbarium-card__row dd { margin: 0; color: var(--ink-2); }
.gen-herbarium-card__note { margin-top: 12px; padding: 10px 12px; background: rgba(28,58,15,.06); border-left: 2px solid var(--gold-deep); }
.gen-herbarium-card__note-label { font-family: var(--sans-caps); font-size:13px; color: var(--gold-deep); letter-spacing: .25em; text-transform: uppercase; }
.gen-herbarium-card__note-text { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--ink); margin-top: 2px; }

/* ── Accords mets-spiritueux ── */
.gen-accord-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gen-accord-card {
  background: #fff; border: 1px solid rgba(28,58,15,.3); position: relative;
  box-shadow: 0 0 0 1px #fff inset, 0 10px 24px rgba(15,37,8,.08);
}
.gen-accord-card__inner { position: absolute; inset: 6px; border: 1px solid rgba(28,58,15,.16); pointer-events: none; }
.gen-accord-card__vis { display: grid; grid-template-columns: 1fr 1fr; height: 220px; border-bottom: 1px solid rgba(28,58,15,.2); }
.gen-accord-card__spirit {
  background: linear-gradient(180deg, rgba(28,58,15,.18), rgba(28,58,15,.4));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border-right: 1px solid rgba(168,137,52,.4); padding: 0 12px; text-align: center;
}
.gen-accord-card__dish {
  background: repeating-linear-gradient(45deg, rgba(168,137,52,.22) 0 12px, rgba(180,160,110,.14) 12px 24px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 0 12px; text-align: center;
}
.gen-accord-card__amp {
  position: absolute; left: 50%; top: 210px; transform: translate(-50%, -50%);
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--gold-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif-italic); font-style: italic; font-size: 22px; color: var(--forest); z-index: 1;
}
.gen-accord-card__body { padding: 32px 24px 22px; }
.gen-accord-card__svc { margin-top: 14px; padding: 10px 12px; background: rgba(28,58,15,.06); border-left: 2px solid var(--gold-deep); }

/* ── Recettes cocktails ── */
.gen-recipe-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.gen-recipe-card { display: block; color: var(--ink); text-decoration: none; }
.gen-recipe-card:hover .gen-recipe-card__body { background: rgba(28,58,15,.03); }
.gen-recipe-card__img {
  height: 220px; position: relative;
  background: repeating-linear-gradient(45deg, rgba(28,58,15,.22) 0 12px, rgba(90,120,60,.18) 12px 24px);
  border: 1px solid rgba(28,58,15,.2);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2);
}
.gen-recipe-card__type { position: absolute; top: 8px; left: 8px; background: var(--paper); border: 1px solid var(--gold-deep); padding: 3px 8px; font-family: var(--mono); font-size:13px; color: var(--ink); letter-spacing: .2em; text-transform: uppercase; }
.gen-recipe-card__body { background: #fff; padding: 20px 18px 22px; border: 1px solid rgba(28,58,15,.2); border-top: 0; transition: background .15s; }
.gen-recipe-card__meta-row { margin-top: 14px; padding-top: 12px; border-top: 1px dotted rgba(28,58,15,.25); display: flex; justify-content: space-between; align-items: center; font-family: var(--mono); font-size:13px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-deep); }

/* ── Gazette masthead ── */
.gen-gazette-outer { max-width: 1200px; margin: 0 auto; }
.gen-gazette-border { padding-bottom: 32px; border-bottom: 3px double var(--gold-deep); }
.gen-gazette-edition {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep);
  padding-bottom: 14px; border-bottom: 1px solid rgba(28,58,15,.2);
}
.gen-gazette-title-block { text-align: center; padding: 28px 0 12px; }
.gen-gazette-title { font-family: var(--serif-display); font-size: 120px; color: var(--ink); margin: 8px 0 0; line-height: .9; }
.gen-gazette-subtitle { font-family: var(--serif-italic); font-style: italic; font-size: 26px; color: var(--gold-deep); margin: 4px 0 0; }
.gen-gazette-index-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(28,58,15,.2); }
.gen-gazette-index-item { display: flex; gap: 10px; align-items: baseline; }
.gen-gazette-index-num { font-family: var(--serif-body); font-size: 28px; color: var(--gold-deep); line-height: 1; flex-shrink: 0; }
.gen-gazette-index-title { font-family: var(--serif-body); font-size:21px; color: var(--ink); line-height: 1.05; }
.gen-gazette-index-page { font-family: var(--mono); font-size:13px; color: var(--ink-2); letter-spacing: .2em; text-transform: uppercase; margin-top: 2px; }

/* ── Grille articles gazette ── */
.gen-gazette-article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.gen-article-meta {
  display: inline-flex; gap: 14px; align-items: center;
  font-family: var(--sans-caps); font-size:14px; color: var(--gold-deep); letter-spacing: .3em; text-transform: uppercase;
}
.gen-article-meta__dot { width: 4px; height: 4px; background: var(--gold-deep); border-radius: 50%; flex-shrink: 0; }
.gen-article-meta__author { font-family: var(--serif-italic); font-style: italic; letter-spacing: .05em; text-transform: none; font-size:18px; color: var(--ink-2); }

/* ── Corps d'article ── */
.gen-article-layout { display: grid; grid-template-columns: 220px 1fr; gap: 56px; }
.gen-article-toc { position: sticky; top: 24px; }
.gen-article-toc__title { font-family: var(--sans-caps); font-size:14px; color: var(--gold-deep); letter-spacing: .35em; text-transform: uppercase; padding-bottom: 10px; border-bottom: 1px solid var(--gold-deep); margin-bottom: 0; }
.gen-article-toc__list { list-style: none; padding: 0; margin: 14px 0 0; }
.gen-article-toc__item { padding: 10px 0; border-bottom: 1px solid rgba(28,58,15,.12); }
.gen-article-toc__link { display: flex; gap: 10px; align-items: baseline; color: var(--ink); text-decoration: none; font-family: var(--serif-body); font-size:18px; line-height: 1.35; }
.gen-article-toc__link:hover { color: var(--forest); }
.gen-article-toc__num { font-family: var(--serif-body); font-size:21px; color: var(--gold-deep); flex-shrink: 0; }
.gen-article-toc__share { margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(28,58,15,.18); }
.gen-article-share-links { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.gen-article-share-link { width: 36px; height: 36px; border: 1px solid var(--ink); display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size:19px; color: var(--ink); text-decoration: none; }
.gen-article-share-link:hover { background: var(--forest); color: #fff; border-color: var(--forest); }
.gen-article-body { max-width: 720px; font-family: var(--serif-body); font-size:21px; line-height: 1.75; color: var(--ink-2); }
.gen-article-body p { margin: 0 0 1.2em; }
.gen-article-h2 { font-family: var(--serif-display); font-size: 44px; color: var(--ink); margin: 40px 0 14px; line-height: 1; }
.gen-article-h2__num { color: var(--gold-deep); margin-right: 10px; }
.gen-article-pullquote {
  margin: 40px -32px; padding: 32px 40px;
  border-top: 2px solid var(--gold-deep); border-bottom: 2px solid var(--gold-deep);
  background: rgba(201,168,76,.06); position: relative;
}
.gen-article-pullquote__mark {
  position: absolute; top: -20px; left: 32px;
  font-family: var(--serif-body); font-size: 80px; color: var(--gold-deep); line-height: 1;
  background: var(--paper); padding: 0 12px;
}
.gen-article-pullquote__text { font-family: var(--serif-body); font-size: 36px; color: var(--ink); line-height: 1.2; font-style: italic; }
.gen-article-pullquote__attr { font-family: var(--sans-caps); font-size:14px; color: var(--gold-deep); letter-spacing: .35em; text-transform: uppercase; margin-top: 14px; }

/* ── Où acheter ── */
.gen-wtb-layout { display: grid; grid-template-columns: 360px 1fr; gap: 24px; }
.gen-wtb-search { background: #fff; padding: 20px; border: 1px solid rgba(28,58,15,.35); margin-bottom: 16px; }
.gen-wtb-search input {
  flex: 1; padding: 10px 12px; font-family: var(--serif-body); font-size:18px;
  background: transparent; border: 1px solid var(--gold-deep) !important; color: var(--ink);
  border-radius: 0 !important; outline: none;
}
.gen-wtb-item {
  padding: 16px 18px; border-bottom: 1px solid rgba(28,58,15,.25);
  display: flex; flex-direction: column; gap: 4px;
}
.gen-wtb-item--active { background: rgba(28,58,15,.05); }
.gen-wtb-item__row { display: flex; justify-content: space-between; align-items: baseline; }
.gen-wtb-item__name { font-family: var(--serif-body); font-size: 22px; color: var(--ink); line-height: 1; }
.gen-wtb-item__dist { font-family: var(--mono); font-size:14px; color: var(--gold-deep); letter-spacing: .2em; }
.gen-wtb-item__addr { font-family: var(--serif-body); font-size:21px; color: var(--ink-2); }
.gen-wtb-item__type { font-family: var(--sans-caps); font-size:13px; color: var(--gold-deep); letter-spacing: .3em; text-transform: uppercase; }

/* ── Numéros médaillon (terroir, savoir-faire) ── */
.gen-medallion {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--forest); color: var(--gold-light);
  font-family: var(--serif-body); font-size:20px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.gen-medallion--lg {
  width: 56px; height: 56px; font-size: 22px;
}

/* ── Grille stats (specs chiffres) ── */
.gen-specs-grid { display: grid; }
.gen-spec-cell { padding: 28px 20px; text-align: center; }
.gen-spec-val { font-family: var(--serif-body); font-size: 56px; color: var(--cream); line-height: 1; }
.gen-spec-unit { font-family: var(--sans-caps); font-size:13px; color: var(--gold-light); letter-spacing: .3em; text-transform: uppercase; margin-top: 4px; }
.gen-spec-label { font-family: var(--serif-body); font-size:18px; color: rgba(255,240,210,.8); margin-top: 8px; }

/* ── Responsive contenu ── */
@media (max-width: 1024px) {
  .gen-herbarium-grid { grid-template-columns: repeat(2, 1fr); }
  .gen-accord-grid { grid-template-columns: repeat(2, 1fr); }
  .gen-recipe-grid { grid-template-columns: repeat(2, 1fr); }
  .gen-article-layout { grid-template-columns: 180px 1fr; gap: 36px; }
  .gen-gazette-title { font-size: 90px; }
}
@media (max-width: 900px) {
  .gen-content-hero { height: 320px; }
  /* Retour client : le sous-titre du hero (24px) déborde/chevauche le H1 sur
     mobile quand le texte est un peu long (il est en position:absolute,
     bottom:40px, donc un bloc qui s'étire vers le haut en wrappant). */
  .gen-content-hero__sub { font-size: 16px !important; bottom: 24px; line-height: 1.35; }
  .gen-content-lede { padding: 48px 24px 28px; }
  .gen-content-lede__text { font-size: 18px; }
  .gen-wtb-layout { grid-template-columns: 1fr; }
  .gen-gazette-title { font-size: 72px; }
  .gen-gazette-index-strip { grid-template-columns: repeat(2, 1fr); }
  .gen-article-layout { grid-template-columns: 1fr; }
  .gen-article-toc { display: none; }
  .gen-cross-link__grid { grid-template-columns: 1fr !important; }
  .gen-specs-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .gen-herbarium-grid { grid-template-columns: 1fr; }
  .gen-accord-grid { grid-template-columns: 1fr; }
  .gen-recipe-grid { grid-template-columns: 1fr; }
  .gen-gazette-article-grid { grid-template-columns: 1fr; }
  .gen-gazette-edition { flex-direction: column; gap: 8px; text-align: center; }
  .gen-gazette-index-strip { grid-template-columns: repeat(2, 1fr); }
  .gen-breadcrumb { padding: 16px 24px 0; }
}

/* ── OrnateHeading (bloc titre orné utilisé dans les heroes) ── */
.gen-orn-heading {
  position: relative; text-align: center; padding: 24px 48px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.gen-orn-heading__corner {
  /* Retiré (retour client 2026-09-15) : un seul ornement de coin par hero,
     celui de .gen-hero__corner — ces équerres en plus autour du H1 créaient
     un 3ème style superposé. */
  display: none;
}
/* Exception .gen-content-hero--pcat retirée (2026-09-16) : les 3 pages
   catégorie (Apéritifs 19/Digestifs 20/Gins 21) n'avaient à l'origine que ce
   markup .gen-orn-heading__corner (2 équerres serrées autour du H1, pas
   alignées sur le hero) — le vrai bloc .gen-hero__corners (4 coins, identique
   à la home/aux pages hub) a été injecté en DB (fix-category-hero-breadcrumb.php)
   pour une cohérence réelle. .gen-orn-heading__corner redevient donc masqué
   partout, comme sur les autres heros. */
.gen-orn-heading__corner--tl { top: 0; left: 0; border-top: 2px solid var(--gold-deep); border-left: 2px solid var(--gold-deep); }
.gen-orn-heading__corner--tr { top: 0; right: 0; border-top: 2px solid var(--gold-deep); border-right: 2px solid var(--gold-deep); }
.gen-orn-heading__corner--bl { bottom: 0; left: 0; border-bottom: 2px solid var(--gold-deep); border-left: 2px solid var(--gold-deep); }
.gen-orn-heading__corner--br { bottom: 0; right: 0; border-bottom: 2px solid var(--gold-deep); border-right: 2px solid var(--gold-deep); }
.gen-orn-heading__kicker {
  font-family: var(--mono); font-size:14px; letter-spacing: .35em;
  text-transform: uppercase; color: rgba(255,240,210,.55);
}
.gen-orn-heading__title {
  font-size: clamp(42px, 6vw, 80px); color: var(--cream);
  line-height: 1; margin: 0;
}
.gen-content-hero--paper .gen-orn-heading__title { color: var(--ink); }
.gen-content-hero--sepia .gen-orn-heading__title { color: var(--ink); }

/* ── Où acheter - éléments manquants ── */
.gen-wtb-search-wrap { margin-bottom: 16px; }
.gen-wtb-search {
  width: 100%; padding: 12px 16px; font-family: var(--serif-body); font-size:18px;
  border: 1px solid rgba(28,58,15,.35); background: #fff; color: var(--ink);
  border-radius: 0; outline: none; box-sizing: border-box;
}
.gen-wtb-search:focus { border-color: var(--gold-deep); }
.gen-wtb-sidebar { display: flex; flex-direction: column; }
.gen-wtb-map { border: 1px solid rgba(201,168,76,.3); overflow: hidden; min-height: 420px; }
.gen-wtb-list { display: flex; flex-direction: column; }
.gen-wtb-item {
  padding: 16px 0; border-bottom: 1px solid rgba(28,58,15,.15);
  display: flex; gap: 12px; align-items: flex-start; cursor: pointer;
}
.gen-wtb-item:hover { background: rgba(28,58,15,.03); }
.gen-wtb-item__pin { font-size:18px; color: rgba(201,168,76,.35); flex-shrink: 0; margin-top: 4px; }
.gen-wtb-item__pin--active { color: var(--gold-deep); }
.gen-wtb-item__body { flex: 1; }
.gen-wtb-item__name { font-family: var(--serif-body); font-size:21px; color: var(--ink); margin-bottom: 2px; }
.gen-wtb-item__type { font-size:13px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 4px; }
.gen-wtb-item__addr { font-size:21px; color: var(--ink-2); margin-bottom: 2px; }
.gen-wtb-item__hours { font-size:15px; color: var(--ink-2); font-family: var(--mono); }
.gen-wtb-item__gamme { font-size:19px; color: var(--forest); margin-top: 4px; font-style: italic; }
.map-pin { transition: opacity .2s; }
.map-pin--active circle:first-child { filter: drop-shadow(0 0 4px rgba(201,168,76,.5)); }

/* ── Gazette masthead responsive ── */
.gen-gazette-masthead { border-bottom: none; }

/* ── Article single gazette ── */
.gen-single-gazette { min-height: 100vh; }
.gen-gz-article-header { padding: 40px 48px 0; }

/* ── Page Gazette responsive ── */
@media (max-width: 900px) {
  .gen-gazette-masthead { padding: 0 24px; }
  .gen-gz-article-header { padding: 40px 24px 0; }
  .gen-article-layout { padding: 0 24px; }
}
@media (max-width: 640px) {
  .gen-orn-heading__title { font-size: 36px; }
  .gen-wtb-layout { grid-template-columns: 1fr; }
  .gen-wtb-map { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   UTILITAIRES TYPOGRAPHIQUES - portage maquette
   Miroir exact de maquette/styles.css (display-serif, caps, gravure…)
   ═══════════════════════════════════════════════════════════════ */

/* Classes font display utilisées dans tous les templates de contenu */
.display-script {
  font-family: 'OldAlfie', Georgia, serif !important;
  font-weight: 400;
  letter-spacing: .005em;
  line-height: .98;
}
.display-serif {
  font-family: 'OldAlfie', Georgia, serif !important;
  font-weight: 400;
  letter-spacing: .01em;
  line-height: 1;
}
.italic-script {
  font-family: var(--serif-italic);
  font-style: italic;
  font-weight: 700;
}
.caps {
  font-family: var(--sans-caps);
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 500;
}
.caps-tight { letter-spacing: .12em; text-transform: uppercase; }

/* Cadre gravure - bordure dorée dégradée */
.gravure {
  position: relative;
  padding: 14px;
  background:
    linear-gradient(var(--paper), var(--paper)) padding-box,
    linear-gradient(135deg, var(--gold-deep), var(--gold-light) 40%, var(--gold-deep) 60%, var(--gold-light)) border-box;
  border: 6px solid transparent;
  box-shadow: 0 0 0 1px rgba(28,58,15,.14) inset, 0 20px 40px rgba(0,0,0,.08);
}
.gravure::before {
  content: ""; position: absolute; inset: 6px;
  border: 1px solid var(--gold-deep); pointer-events: none;
}
.gravure--dark {
  background:
    linear-gradient(var(--forest-deep, #0f2508), var(--forest-deep, #0f2508)) padding-box,
    linear-gradient(135deg, var(--gold-deep), var(--gold-light) 40%, var(--gold-deep) 60%, var(--gold-light)) border-box;
  box-shadow: 0 0 0 1px rgba(201,168,76,.2) inset, 0 20px 40px rgba(0,0,0,.25);
}

/* Slab forêt - sections à fond vert sombre */
.forest-slab {
  background: var(--forest);
  color: #fff;
  position: relative;
}
.forest-slab::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('../images/wallpaper-damas.png');
  background-repeat: repeat;
  background-size: 351px auto;
  background-attachment: fixed;
  opacity: 0.08;
  mix-blend-mode: screen;
  pointer-events: none;
}

/* Wallpaper page body : règle unifiée avec .gen-wallpaper-page, voir plus haut. */

/* Dropcap - première lettre stylisée */
.dropcap::first-letter {
  font-family: var(--serif-display);
  float: left;
  font-size: 6.2em;
  line-height: .85;
  padding: 10px 12px 0 0;
  color: var(--forest);
}

/* Séparateur fin centré */
.hr-thin { height: 1px; background: linear-gradient(90deg, transparent, rgba(168,137,52,.6), transparent); border: 0; margin: 24px 0; }

/* ── Cartes chapitres (distiller, découvrir) ── */
.gen-chapter-card-v2 {
  display: block;
  background: var(--paper);
  border: 1px solid rgba(28,58,15,.2);
  box-shadow: 0 0 0 1px #fff inset, 0 10px 30px rgba(15,37,8,.08);
  color: var(--ink);
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: box-shadow .2s;
}
.gen-chapter-card-v2:hover {
  box-shadow: 0 0 0 1px #fff inset, 0 16px 48px rgba(15,37,8,.16);
}
.gen-chapter-card-v2__image {
  height: 280px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size:19px; letter-spacing: .25em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(28,58,15,.15);
  position: relative;
}
.gen-chapter-card-v2__num {
  position: absolute; left: 28px; top: 20px;
  font-family: var(--serif-body);
  font-size: 68px;
  line-height: 1;
  opacity: .9;
}
.gen-chapter-card-v2__body {
  padding: 28px 36px 32px;
  text-align: center;
}
.gen-chapter-card-v2__kicker {
  font-family: var(--sans-caps); font-size:14px; color: var(--gold-deep); letter-spacing: .4em; text-transform: uppercase;
}
.gen-chapter-card-v2__title {
  font-family: var(--serif-body);
  font-size: 52px; color: var(--forest); margin: 8px 0 10px; line-height: 1;
}
.gen-chapter-card-v2__rule {
  display: flex; align-items: center; gap: 12px; justify-content: center;
  color: var(--gold-deep); margin: 0 auto 16px;
}
.gen-chapter-card-v2__rule::before,
.gen-chapter-card-v2__rule::after {
  content: ''; flex: 1; max-width: 80px; height: 1px; background: currentColor; opacity: .5;
}
.gen-chapter-card-v2__desc {
  font-family: var(--serif-body); font-size:18px; line-height: 1.6; color: var(--ink-2);
  margin: 0 auto 18px; max-width: 320px;
}
.gen-chapter-card-v2__cta {
  font-family: var(--sans-caps); font-size:19px; color: var(--forest);
  letter-spacing: .35em; border-bottom: 1px solid var(--gold-deep); padding-bottom: 4px;
  display: inline-block;
}

/* ── Manifeste slab ── */
.gen-manifeste-slab {
  padding: 100px 48px;
  text-align: center;
  position: relative;
}
.gen-manifeste-slab__quote {
  font-family: var(--serif-body);
  font-size: 52px; color: var(--cream); line-height: 1.15; margin: 24px 0;
}
.gen-manifeste-slab__attr {
  font-family: var(--sans-caps); font-size:19px; letter-spacing: .4em; color: var(--gold-light);
}

/* ── Gazette - masthead journal ── */
.gen-gazette-masthead-v2 { padding: 60px 48px 30px; }
.gen-gazette-masthead-v2__wrap {
  position: relative; max-width: 1200px; margin: 0 auto;
  padding: 8px 40px 32px; border-bottom: 3px double var(--gold-deep);
}
.gen-gazette-edition-strip {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep);
  padding-bottom: 14px; border-bottom: 1px solid rgba(28,58,15,.2);
}
.gen-gazette-big-title {
  text-align: center; padding: 28px 0 12px;
}
.gen-gazette-big-title__kicker {
  font-family: var(--sans-caps); font-size:15px; color: var(--gold-deep); letter-spacing: .55em; text-transform: uppercase;
}
.gen-gazette-big-title__h1 {
  font-family: 'OldAlfie', Georgia, serif;
  font-size: clamp(72px, 12vw, 160px); color: var(--ink); margin: 8px 0 0; line-height: .9;
}
.gen-gazette-big-title__sub {
  font-family: var(--serif-italic); font-style: italic; font-size: 22px; color: var(--gold-deep); margin-top: 4px;
}
.gen-gazette-index-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(28,58,15,.2);
}
.gen-gazette-index-item {
  display: flex; gap: 10px; align-items: baseline;
}
.gen-gazette-index-num {
  font-family: var(--serif-body); font-size: 28px; color: var(--gold-deep); line-height: 1; flex-shrink: 0;
}
.gen-gazette-index-text-title {
  font-family: var(--serif-body); font-size:20px; color: var(--ink); line-height: 1.05;
}
.gen-gazette-index-page {
  font-family: var(--mono); font-size:13px; color: var(--ink-2); letter-spacing: .2em; text-transform: uppercase; margin-top: 2px;
}

/* ── Gazette - article featured (une) ── */
.gen-gazette-une { padding: 44px 48px 30px; }
.gen-gazette-une__wrap { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: center; }
.gen-gazette-une__title {
  font-family: 'OldAlfie', Georgia, serif;
  font-size: clamp(48px, 6vw, 68px); color: var(--ink); margin: 14px 0 6px; line-height: .95;
}
.gen-gazette-une__lede {
  font-family: var(--serif-italic); font-style: italic; font-size:24px; color: var(--gold-deep); margin: 0 0 14px; line-height: 1.4;
}
.gen-gazette-une__body {
  font-family: var(--serif-body); font-size:20px; line-height: 1.65; color: var(--ink-2); margin: 0 0 18px;
}

/* ── Gazette - filtre catégories ── */
.gen-gazette-filter { padding: 30px 48px 10px; }
.gen-gazette-filter__wrap {
  max-width: 1200px; margin: 0 auto;
  display: flex; justify-content: center; gap: 8px; flex-wrap: wrap;
  padding-bottom: 30px; border-bottom: 1px solid rgba(28,58,15,.18);
}
.gen-gazette-cat-btn {
  padding: 10px 22px;
  font-family: var(--sans-caps); font-size:16px; letter-spacing: .3em; text-transform: uppercase;
  background: transparent; color: var(--ink); border: 1px solid var(--ink);
  cursor: pointer; transition: background .15s;
}
.gen-gazette-cat-btn.is-active,
.gen-gazette-cat-btn:hover {
  background: var(--ink); color: var(--paper);
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--ink) inset;
}

/* ── Gazette - grille articles v2 ── */
.gen-gazette-grid { padding: 48px 48px 60px; }
.gen-gazette-grid__wrap { max-width: 1200px; margin: 0 auto; }
.gen-gazette-article-grid-v2 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.gen-gazette-article-card { display: flex; flex-direction: column; }
.gen-gazette-article-card__img-wrap { padding: 6px; }
.gen-gazette-article-card__img {
  width: 100%; height: 220px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size:14px; letter-spacing: .2em; text-transform: uppercase;
}
.gen-gazette-article-card__body { padding-top: 18px; flex: 1; display: flex; flex-direction: column; }
.gen-gazette-article-card__title {
  font-family: var(--serif-body);
  font-size: 30px; color: var(--ink); margin: 10px 0 6px; line-height: 1;
}
.gen-gazette-article-card__lede {
  font-family: var(--serif-body); font-size:18px; line-height: 1.6; color: var(--ink-2); margin: 0 0 14px; flex: 1;
}
.gen-gazette-article-card__link {
  display: inline-block; font-family: var(--sans-caps); font-size:14px; color: var(--ink);
  letter-spacing: .3em; text-decoration: none; border-bottom: 1px solid var(--gold-deep); padding-bottom: 3px;
}

/* ── Gazette - newsletter slab ── */
.gen-gazette-newsletter { padding: 80px 48px; }
.gen-gazette-newsletter__wrap { max-width: 720px; margin: 0 auto; text-align: center; }
.gen-gazette-newsletter__title {
  font-family: var(--serif-body);
  font-size: clamp(42px, 6vw, 64px); color: var(--cream); margin: 10px 0 6px; line-height: 1;
}
.gen-gazette-newsletter__sub {
  font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--gold-light);
  margin: 10px 0 28px; line-height: 1.45;
}

/* ── Single gazette - article header ── */
.gen-gz-h1 {
  font-family: 'OldAlfie', Georgia, serif;
  font-size: clamp(60px, 8vw, 96px); color: var(--ink); margin: 22px 0 12px; line-height: .95;
}
.gen-gz-lede {
  font-family: var(--serif-italic); font-style: italic; font-size: 22px;
  color: var(--gold-deep); max-width: 640px; margin: 0 auto; line-height: 1.4;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .gen-gazette-une__wrap { grid-template-columns: 1fr; }
  /* Retour client : le cadre de la photo à la une (460px fixe, pensé pour la
     colonne large desktop) est disproportionné une fois la mise en page
     empilée sur mobile — laisse une grande zone vide sous l'image. */
  .gen-gazette-une__img,
  .gen-gazette-une__ph { height: 260px !important; }
  .gen-gazette-article-grid-v2 { grid-template-columns: repeat(2, 1fr); }
  .gen-gazette-index-strip { grid-template-columns: repeat(2, 1fr); }
  .gen-gazette-edition-strip { flex-direction: column; gap: 8px; text-align: center; }
  .gen-manifeste-slab__quote { font-size: 38px; }
  .gen-chapter-card-v2__title { font-size: 40px; }
}
@media (max-width: 640px) {
  .gen-gazette-masthead-v2 { padding: 40px 24px 20px; }
  .gen-gazette-big-title__h1 { font-size: 60px; }
  .gen-gazette-une { padding: 32px 24px 20px; }
  .gen-gazette-filter { padding: 20px 24px 8px; }
  .gen-gazette-grid { padding: 32px 24px 40px; }
  .gen-gazette-article-grid-v2 { grid-template-columns: 1fr; }
  .gen-gazette-newsletter { padding: 60px 24px; }
  .gen-gz-h1 { font-size: 52px; }
  .gen-chapter-card-v2__image { height: 200px; }
  .gen-manifeste-slab { padding: 60px 24px; }
  .gen-manifeste-slab__quote { font-size: 32px; }
}

/* ================================================================
   Phase 7 - Suivi de commande (/my-account/view-order/)
   ================================================================ */

.gen-ot-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 48px 80px; }

.gen-ot-breadcrumb {
  padding: 20px 0 0;
  font-family: var(--mono); font-size:19px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-deep);
  display: flex; gap: 12px; align-items: center;
}
.gen-ot-breadcrumb a { color: inherit; text-decoration: none; }
.gen-ot-breadcrumb a:hover { text-decoration: underline; }
.gen-ot-breadcrumb__sep { opacity: .5; }
.gen-ot-breadcrumb__current { color: var(--ink); opacity: .8; }

.gen-ot-header { padding: 40px 0 20px; }
.gen-ot-header__inner { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; }
.gen-ot-header__title {
  font-family: var(--serif-body);
  font-size: 76px; color: var(--ink); margin: 6px 0 0; line-height: 1;
}
.gen-ot-header__sub {
  font-family: var(--serif-italic); font-style: italic;
  font-size:21px; color: var(--ink-2); margin-top: 10px;
}
.gen-ot-header__sub strong { color: var(--forest); font-style: normal; }
.gen-ot-header__tracking { text-align: right; }
.gen-ot-tracking-num {
  font-family: var(--mono); font-size:21px; color: var(--ink); letter-spacing: .18em;
  margin-top: 4px; background: #fff; border: 1px solid var(--gold-deep); padding: 10px 16px;
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px rgba(201,168,76,.25) inset;
}
.gen-ot-tracking-link {
  display: inline-block; margin-top: 8px;
  font-family: var(--mono); font-size:14px; color: var(--gold-deep);
  letter-spacing: .25em; text-transform: uppercase;
  border-bottom: 1px solid currentColor; text-decoration: none;
}

.gen-ot-timeline-section { padding: 20px 0 30px; }
.gen-ot-timeline-card {
  background: #fff; border: 1px solid var(--gold-deep); padding: 36px; position: relative;
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px rgba(201,168,76,.18) inset;
}
.gen-ot-corner { position: absolute; color: var(--gold-deep); line-height: 1; }
.gen-ot-corner--tl { top: 14px; left: 14px; }
.gen-ot-corner--tr { top: 14px; right: 14px; }
.gen-ot-corner--bl { bottom: 14px; left: 14px; }
.gen-ot-corner--br { bottom: 14px; right: 14px; }
.gen-ot-timeline-head { text-align: center; margin-bottom: 32px; }

.gen-ot-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; position: relative; }
.gen-ot-steps__line {
  position: absolute; top: 22px; left: 10%; right: 10%; height: 2px;
  background: repeating-linear-gradient(90deg, var(--gold-deep) 0 6px, transparent 6px 12px);
  pointer-events: none;
}
.gen-ot-step { position: relative; text-align: center; }
.gen-ot-step__circle {
  width: 44px; height: 44px; border-radius: 50%;
  background: #fff; border: 1px solid rgba(28,58,15,.4);
  margin: 0 auto; display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size:18px; font-weight: 600; color: var(--ink-2);
  position: relative; z-index: 1;
}
.gen-ot-step--done .gen-ot-step__circle {
  background: var(--forest); border-color: var(--forest); color: #fff;
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 4px var(--forest) inset;
}
.gen-ot-step--current .gen-ot-step__circle {
  background: var(--gold-deep); border-color: var(--gold-deep); color: #fff;
  box-shadow: 0 0 0 1px #fff inset, 0 0 0 4px var(--gold-deep) inset, 0 0 0 8px rgba(201,168,76,.2);
}
.gen-ot-step__label {
  font-family: var(--sans-caps); font-size:14px; letter-spacing: .25em; text-transform: uppercase;
  color: var(--ink-2); margin-top: 12px;
}
.gen-ot-step--done .gen-ot-step__label,
.gen-ot-step--current .gen-ot-step__label { color: var(--ink); font-weight: 600; }
.gen-ot-step__date { font-family: var(--mono); font-size:14px; color: var(--ink-2); letter-spacing: .15em; margin-top: 4px; }

.gen-ot-last-event {
  margin-top: 32px; padding: 18px;
  background: rgba(201,168,76,.10); border: 1px solid var(--gold-deep);
  display: flex; gap: 14px; align-items: flex-start;
}

.gen-ot-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; padding: 30px 0 80px; }

.gen-ot-items-card { padding: 28px; background: #fff; border: 1px solid rgba(28,58,15,.2); }
.gen-ot-items-divider { height: 1px; background: var(--gold-deep); margin: 14px 0; }
.gen-ot-item {
  display: grid; grid-template-columns: 70px 1fr auto;
  gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(28,58,15,.12); align-items: center;
}
.gen-ot-item__thumb { position: relative; width: 64px; height: 64px; }
.gen-ot-item__thumb img { width: 100%; height: 100%; object-fit: contain; }
.gen-ot-item__thumb-ph { width: 64px; height: 64px; background: rgba(28,58,15,.08); }
.gen-ot-item__qty {
  position: absolute; top: -6px; right: -6px;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--ink); color: var(--gold-light);
  display: flex; align-items: center; justify-content: center;
  font-family: monospace; font-size:15px; font-weight: 600;
}

.gen-ot-totals { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--gold-deep); }
.gen-ot-totals__row {
  display: flex; justify-content: space-between;
  font-family: var(--serif-body); font-size: 14px; color: var(--ink-2); padding: 3px 0;
}
.gen-ot-totals__divider { height: 1px; background: rgba(28,58,15,.18); margin: 10px 0; }
.gen-ot-totals__final {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(28,58,15,.18);
}

.gen-ot-side { display: flex; flex-direction: column; gap: 18px; }
.gen-ot-contact { padding: 24px; background: #fff; border: 1px solid rgba(28,58,15,.2); }

@media (max-width: 960px) {
  .gen-ot-header__inner { grid-template-columns: 1fr; }
  .gen-ot-header__tracking { text-align: left; }
  .gen-ot-header__title { font-size: 52px; }
  .gen-ot-body { grid-template-columns: 1fr; }
  .gen-ot-wrapper { padding: 0 24px 60px; }
}
@media (max-width: 640px) {
  .gen-ot-steps { grid-template-columns: 1fr; }
  .gen-ot-steps__line { display: none; }
  .gen-ot-header__title { font-size: 40px; }
}

/* ── Wrapper corps de page (utilisé dans les pages templates PHP) ── */
.gen-page-outer {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px 80px;
}
@media (max-width: 768px) {
  .gen-page-outer { padding: 0 20px 60px; }
}

/* ── Grille anatomie alambic ─────────────────────────────────────── */
.gen-alambic-anatomy {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 56px;
  margin-bottom: 80px;
  align-items: start;
}
@media (max-width: 768px) {
  .gen-alambic-anatomy {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   COMPOSANTS FORMULAIRES - Contact & Devenir revendeur
   ═══════════════════════════════════════════════════════════════ */

/* Boutons <button> avec classe stamp-btn */
button.stamp-btn, button.stamp-btn--ghost, button.stamp-btn--gold {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  font-family: inherit;
}

/* Cartouche adresse - double cadre doré */
.gen-cartouche { background: var(--paper); border: 1px solid var(--gold-deep); padding: 4px; }
.gen-cartouche__inner { border: 1px solid rgba(168,137,52,.35); padding: 26px 24px; }

/* Radio cards - sélecteur visuel pur CSS */
.gen-radio-grid { display: grid; gap: 10px; }
.gen-radio-card { cursor: pointer; display: block; }
.gen-radio-card__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.gen-radio-card__box {
  padding: 14px 12px 12px;
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--gold-deep);
  box-shadow: 0 0 0 1px var(--paper) inset, 0 0 0 2px transparent inset;
  text-align: center;
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.gen-radio-card__input:checked + .gen-radio-card__box {
  background: var(--forest);
  color: #fff;
  border-color: var(--forest);
  box-shadow: 0 0 0 1px var(--paper) inset, 0 0 0 3px var(--forest) inset;
}
.gen-radio-card__num { font-size:19px; letter-spacing: .3em; color: var(--gold-deep); margin-bottom: 4px; }
.gen-radio-card__input:checked + .gen-radio-card__box .gen-radio-card__num { color: var(--gold-light); }

/* Checkbox custom - pure CSS */
.gen-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  padding: 6px 0;
}
.gen-checkbox__input {
  position: absolute;
  opacity: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  pointer-events: none;
}
.gen-checkbox__box {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid var(--forest);
  background: var(--paper);
  position: relative;
  margin-top: 2px;
  transition: background .12s;
}
.gen-checkbox__input:checked + .gen-checkbox__box {
  background: var(--forest);
  box-shadow: 0 0 0 1px var(--paper) inset, 0 0 0 2px var(--forest) inset;
}
.gen-checkbox__input:checked + .gen-checkbox__box::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9 L8 13 L14 5' stroke='%23e0c070' stroke-width='2' fill='none'/%3E%3C/svg%3E") center/contain no-repeat;
}
.gen-checkbox__text { font-family: var(--serif-body); font-size:18px; color: var(--ink); line-height: 1.45; }

/* Champ texte underline */
.gen-field-rule { display: block; margin-bottom: 22px; }
.gen-field-rule__input {
  display: block;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--gold-deep);
  background: transparent;
  outline: none;
  font-family: var(--serif-body);
  font-size:21px;
  color: var(--ink);
  padding: 6px 0;
  letter-spacing: .01em;
  box-sizing: border-box;
  transition: border-color .15s;
}
.gen-field-rule__input:focus { border-bottom-color: var(--forest); }

/* Champ textarea encadré */
.gen-field-area__box { border: 1px solid var(--gold-deep); padding: 4px; background: var(--paper); }
.gen-field-area__inner { border: 1px solid rgba(168,137,52,.35); padding: 12px 14px; }
.gen-field-area__textarea {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--serif-body);
  font-size:19px;
  color: var(--ink);
  resize: vertical;
  line-height: 1.6;
  box-sizing: border-box;
}

/* FAQ shortcuts cards */
.gen-faq-card {
  background: var(--paper);
  padding: 22px 22px 18px;
  border: 1px solid rgba(168,137,52,.35);
  border-top: 3px solid var(--gold-deep);
}

/* Étapes formulaire revendeur */
.gen-rev-step {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 48px;
  margin-bottom: 36px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(168,137,52,.4);
}

/* Radio liste volume revendeur */
.gen-radio-volume { display: flex; flex-direction: column; gap: 8px; }
.gen-radio-volume label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  padding: 8px 12px;
  border: 1px solid rgba(168,137,52,.4);
  background: var(--paper);
  transition: background .12s, border-color .12s;
}
.gen-radio-volume label:has(input:checked) {
  border-color: var(--forest);
  background: rgba(28,58,15,.06);
}
.gen-radio-volume__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid var(--forest);
  position: relative;
  flex-shrink: 0;
}
.gen-radio-volume label:has(input:checked) .gen-radio-volume__dot::after {
  content: "";
  position: absolute;
  inset: 2px;
  background: var(--forest);
  border-radius: 50%;
}
.gen-radio-volume__radio { position: absolute; opacity: 0; pointer-events: none; }

/* ═══════════════════════════════════════════════════════════════
   CONTACT FORM 7 - intégration thème Génestine
   ═══════════════════════════════════════════════════════════════ */

/* Reset marge CF7 */
.wpcf7 { margin: 0; }

/* Le wrap CF7 autour des inputs doit être block pour ne pas casser les labels */
.wpcf7 .wpcf7-form-control-wrap { display: block; }

/* Message de succès / erreur */
.wpcf7 .wpcf7-response-output {
  margin: 24px 0 8px;
  padding: 22px 32px;
  border: none !important;
  border-left: 3px solid var(--forest) !important;
  background: rgba(28,58,15,.06);
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:21px;
  color: var(--forest);
  line-height: 1.4;
}
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-response-output.wpcf7-validation-errors,
.wpcf7 .wpcf7-response-output.wpcf7-spam-blocked {
  border-left-color: #b33 !important;
  background: rgba(200,60,60,.04);
  color: #933;
}

/* Tip de validation sous chaque champ */
.wpcf7-not-valid-tip {
  display: block;
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:15px;
  color: #b33;
  margin-top: 4px;
}
.gen-field-rule__input.wpcf7-not-valid { border-bottom-color: #b33; }

/* Spinner d'envoi */
.wpcf7-spinner {
  display: inline-block;
  margin-left: 10px;
  vertical-align: middle;
  width: 18px;
  height: 18px;
}

/* Bouton submit CF7 - mêmes règles que stamp-btn */
.wpcf7 [type="submit"] { appearance: none; -webkit-appearance: none; cursor: pointer; }

/* Case acceptance RGPD - adaptée au thème */
.gen-cf7-acceptance .wpcf7-acceptance > label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  padding: 6px 0;
}
.gen-cf7-acceptance .wpcf7-acceptance input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  border: 1px solid var(--forest);
  background: var(--paper);
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  cursor: pointer;
  transition: background .12s;
}
.gen-cf7-acceptance .wpcf7-acceptance input[type="checkbox"]:checked {
  background: var(--forest);
  box-shadow: 0 0 0 1px var(--paper) inset, 0 0 0 2px var(--forest) inset;
}
.gen-cf7-acceptance .wpcf7-acceptance input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9 L8 13 L14 5' stroke='%23e0c070' stroke-width='2' fill='none'/%3E%3C/svg%3E") center/contain no-repeat;
}
.gen-cf7-acceptance .wpcf7-list-item-label {
  font-family: var(--serif-body);
  font-size:18px;
  color: var(--ink);
  line-height: 1.45;
}

/* ===================================================================
   OÙ ACHETER v2 - Carte interactive + annuaire
   =================================================================== */

/* Barre de recherche */
.gen-wtb2-search-section {
  padding: 20px 48px 32px;
}
.gen-wtb2-search-wrap {
  max-width: 1280px;
  margin: 0 auto;
}
.gen-wtb2-search-field {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--paper);
  border: 1px solid var(--gold-deep);
  padding: 4px;
}
.gen-wtb2-search-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(168,137,52,.35);
  padding: 10px 16px;
  flex: 1;
}
.gen-wtb2-search-input {
  flex: 1;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--serif-body);
  font-size:21px;
  color: var(--ink);
  padding: 4px 0;
}
.gen-wtb2-clear {
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--mono);
  font-size:16px;
  color: var(--ink-2);
  padding: 0;
}
.gen-wtb2-count {
  font-size:14px;
  color: var(--gold-deep);
  letter-spacing: .3em;
  border-left: 1px solid rgba(168,137,52,.4);
  padding-left: 14px;
  white-space: nowrap;
}

/* Grid master/detail */
.gen-wtb2-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 24px;
  height: 640px;
}

/* Carte */
.gen-wtb2-map-wrap {
  padding: 10px;
  height: 100%;
  box-sizing: border-box;
}
.gen-wtb2-map-inner {
  position: relative;
  height: 100%;
  background: var(--paper);
  border: 1px solid rgba(168,137,52,.4);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#gen-leaflet-map {
  flex: 1;
  min-height: 0;
  width: 100%;
  z-index: 0;
}
/* Neutralise le bleu par défaut des tiles Leaflet sur paper */
.leaflet-container { background: var(--paper, #f5f2eb); font-family: inherit; }
/* Attribution discrète */
.leaflet-control-attribution {
  font-family: var(--mono, monospace);
  font-size:13px;
  letter-spacing: .05em;
  background: rgba(245,242,235,.85) !important;
  color: var(--ink-2) !important;
}

/* Overlays carte */
.gen-wtb2-stats-overlay {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--paper);
  border: 1px solid var(--gold-deep);
  padding: 10px 14px;
  text-align: center;
  min-width: 90px;
  z-index: 1000;
}
.gen-wtb2-legend {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: var(--paper);
  border: 1px solid var(--gold-deep);
  padding: 8px 12px;
  font-family: var(--mono);
  font-size:14px;
  letter-spacing: .15em;
  text-transform: uppercase;
  display: flex;
  gap: 16px;
  align-items: center;
}
.gen-wtb2-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.gen-wtb2-legend-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
}
.gen-wtb2-legend-dot--gold   { background: var(--gold-deep); border: 1.5px solid var(--forest); }
.gen-wtb2-legend-dot--forest { background: var(--forest); border: 1.5px solid var(--paper); }

/* Panneau liste */
.gen-wtb2-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--gold-deep);
  padding: 4px;
  box-sizing: border-box;
}
.gen-wtb2-panel-inner {
  border: 1px solid rgba(168,137,52,.35);
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.gen-wtb2-panel-header {
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(168,137,52,.4);
  flex-shrink: 0;
}
.gen-wtb2-panel-list {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

/* Ligne caviste */
.gen-wtb2-row {
  padding: 14px 24px;
  border-bottom: 1px dotted rgba(28,58,15,.18);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  transition: background .15s;
}
.gen-wtb2-row:last-child { border-bottom: none; }
.gen-wtb2-row-name {
  font-size:24px;
  color: var(--forest);
  line-height: 1.1;
  margin-bottom: 2px;
}
.gen-wtb2-row-addr {
  font-family: var(--serif-body);
  font-size:16px;
  color: var(--ink-2);
  line-height: 1.4;
}
.gen-wtb2-row-link {
  width: 32px;
  height: 32px;
  border: 1px solid var(--forest);
  color: var(--forest);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-family: var(--mono);
  font-size:16px;
  flex-shrink: 0;
}
.gen-wtb2-row-link:hover { background: var(--forest); color: var(--cream); }
.gen-wtb2-empty {
  padding: 40px 24px;
  text-align: center;
  font-family: var(--serif-italic);
  font-style: italic;
  font-size:18px;
  color: var(--ink-2);
  line-height: 1.5;
}

/* Annuaire des départements */
.gen-wtb2-annuaire {
  padding: 32px 48px 50px;
  background: var(--paper-2, #f5f1e8);
  border-top: 1px solid rgba(28,58,15,.12);
  border-bottom: 1px solid rgba(28,58,15,.12);
}
.gen-wtb2-dept-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid rgba(168,137,52,.4);
  background: var(--paper);
}
.gen-wtb2-dept-btn {
  padding: 11px 13px;
  border: 0;
  border-right: 1px solid rgba(168,137,52,.25);
  border-bottom: 1px solid rgba(168,137,52,.25);
  cursor: pointer;
  text-align: left;
  transition: background .15s;
  font-family: var(--serif-body);
  display: flex;
  align-items: baseline;
  gap: 7px;
}

/* Responsive */
@media (max-width: 900px) {
  .gen-wtb2-grid {
    grid-template-columns: 1fr;
    height: auto;
  }
  .gen-wtb2-map-wrap {
    height: 380px;
  }
  .gen-wtb2-panel {
    height: 420px;
  }
  .gen-wtb2-dept-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .gen-wtb2-search-section,
  .gen-wtb2-master,
  .gen-wtb2-annuaire { padding-left: 20px; padding-right: 20px; }
}

/* =============================================================
   Responsive mobile — correctifs
   ============================================================= */

/* 1. Barre noire topbar : réduire sur mobile, masquer le sélecteur de langue */
@media (max-width: 900px) {
  .genestine-topbar.elementor-section { padding-top: 6px !important; padding-bottom: 6px !important; }
  .genestine-topbar .elementor-column:last-child { display: none !important; }
  .genestine-topbar .elementor-column:first-child { width: 100% !important; max-width: 100% !important; }
  .genestine-topbar * { font-size: 8px !important; margin-block-end: 0 !important; }
}

/* 2. Header mobile : logo gauche, burger droite, sans label "Menu" */
@media (max-width: 900px) {
  .genestine-header .elementor-row { flex-wrap: nowrap !important; align-items: center !important; }
  /* Col 1 = burger → passer à droite */
  .genestine-header .elementor-column:nth-child(1) { order: 3 !important; flex: 0 0 auto !important; width: auto !important; max-width: none !important; }
  /* Col 2 = logo → rester à gauche, prendre l'espace restant */
  .genestine-header .elementor-column:nth-child(2) { order: 1 !important; flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
  /* Col 3 = CTA desktop → masquer */
  .genestine-header .elementor-column:nth-child(3) { display: none !important; }
  /* Logo aligné à gauche, réduit */
  .genestine-header .elementor-column:nth-child(2) .elementor-widget-image { text-align: left !important; }
  .genestine-header .elementor-column:nth-child(2) img { width: 250px !important; max-width: 250px !important; }
  /* Hauteur réduite + padding ajusté */
  .genestine-header.elementor-section { min-height: 70px !important; padding: 10px 35px 0 35px !important; }
  /* Masquer le label "Menu" sous le burger */
  .gmt-label { display: none; }
}

/* 3. Panier flottant : au-dessus de la barre sticky mobile */
@media (max-width: 768px) {
  .gen-cart-trigger { bottom: 76px !important; right: 16px !important; }
}

/* 4. La Gamme — "Voir les 3" passe sous le titre */
@media (max-width: 768px) {
  .gen-family-header { flex-wrap: wrap; }
  .gen-family-header__line { display: none; }
  .gen-family-header__link { order: 10; width: 100%; margin-top: 8px; }
}

/* 5. Sections gen-wallpaper : réduire padding gauche/droite */
@media (max-width: 768px) {
  .gen-wallpaper.elementor-section { padding-left: 16px !important; padding-right: 16px !important; }
}

/* 6. Chapitre III Élixir : padding latéral + masquer colonne vide */
@media (max-width: 768px) {
  .gen-elixir-slab > .elementor-container { padding-left: 20px !important; padding-right: 20px !important; }
  .gen-elixir-slab .elementor-column:first-child { display: none !important; }
}

/* 7. Chapitre IV Gin sur Mesure : padding latéral */
@media (max-width: 768px) {
  .gen-forest-slab > .elementor-container { padding-left: 20px !important; padding-right: 20px !important; }
}

/* 8. Blocs commerce : espacement mobile */
@media (max-width: 768px) {
  .gen-commerce-block { margin-bottom: 20px; }
  .gen-commerce-block__actions { flex-direction: column; }
  .gen-commerce-block__actions .genestine-stamp-btn { text-align: center; justify-content: center; }
}

/* 9. Icône bleue "cookieadmin" (bas gauche) : remonter sur mobile pour ne plus
   chevaucher les CTA de bas de page (ex. bloc "Devenir revendeur"). */
@media (max-width: 768px) {
  button.cookieadmin_re_consent { bottom: 88px !important; }
}

/* ── Cross-link nav (bandeau vert) : défilement horizontal ─── */
@media (max-width: 768px) {
  .gen-cross-link { padding: 32px 0 !important; }
  .gen-cross-link > div {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .gen-cross-link > div::-webkit-scrollbar { display: none; }
  .gen-cross-link div[style*="grid-template-columns"] {
    display: flex !important;
    gap: 0 !important;
    padding: 0 16px !important;
  }
  .gen-cross-link .gen-cross-link__card {
    flex: 0 0 200px !important;
    padding: 20px 16px !important;
    border-right: 1px solid rgba(201,168,76,.2) !important;
  }
}

/* ── Page terroir ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .gen-page-terroir > div { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-terroir .gen-grid-2,
  .gen-page-terroir .gen-grid-3 {
    grid-template-columns: 1fr !important;
  }
}

/* ── Page savoir-faire ────────────────────────────────────────── */
@media (max-width: 768px) {
  .gen-page-savoir-faire > div { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-savoir-faire > section.gravure { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-savoir-faire > section.gen-quote-section { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-savoir-faire .gen-zigzag-row {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .gen-page-savoir-faire .gen-grid-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Notre-histoire : Acte III Terroir (gen-forest-slab inline) ── */
@media (max-width: 768px) {
  .gen-forest-slab [style*="gap:80px;padding:80px"] {
    grid-template-columns: 1fr !important;
    padding: 20px !important;
    gap: 40px !important;
  }
  /* Stats box dans l'Acte III */
  .gen-forest-slab [style*="display:inline-block;border:1px solid rgba(201,168,76"] {
    padding: 28px 20px !important;
    max-width: 100%;
    box-sizing: border-box;
    display: block !important;
  }
  /* Acte IV Savoir-faire : wrapper parent de .gen-steps */
  div:has(> .gen-steps) { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ── Page ou-acheter : liste départements → 2 colonnes ──────── */
@media (max-width: 768px) {
  .gen-wtb2-dept-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── Page la-cave : grille → colonne unique, sidebar dépilée ── */
@media (max-width: 768px) {
  .gen-page-la-cave > div { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-la-cave [style*="grid-template-columns:1fr 360px"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .gen-page-la-cave aside { position: static !important; }
}

/* ── Page contact : grille + sidebar dépilée ─────────────────── */
@media (max-width: 768px) {
  .gen-page-contact > header,
  .gen-page-contact > section { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-contact .gen-contact-grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .gen-page-contact aside { position: static !important; }
  .gen-page-contact .gen-grid-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gen-page-contact .gen-nav-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── Page devenir-revendeur : grilles + formulaire ───────────── */
@media (max-width: 768px) {
  .gen-page-revendeur > header,
  .gen-page-revendeur > section { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-revendeur .gen-rev-stats,
  .gen-page-revendeur .gen-rev-partners-grid,
  .gen-page-revendeur .gen-rev-steps {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gen-page-revendeur .gen-grid-3 {
    grid-template-columns: 1fr !important;
  }
}

/* ── Page réserver : responsive mobile ───────────────────────── */
@media (max-width: 768px) {
  .gen-page-reserver > div { padding-left: 16px !important; padding-right: 16px !important; }

  /* Cartes visites et bons cadeaux : 2 col → 1 col */
  .gen-page-reserver .gen-grid-2 {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Prix + horaires : empiler verticalement */
  .gen-page-reserver .gen-visit-offer__foot {
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* Boutons dans les cartes : pleine largeur */
  .gen-page-reserver .stamp-btn { width: 100% !important; justify-content: center !important; box-sizing: border-box !important; }
}

/* ── CF7 Formulaires : responsive mobile ─────────────────────── */
@media (max-width: 768px) {
  /* Radio cards : 4 col → 2 col */
  .gen-radio-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Grilles 2 colonnes et étape IV → 1 colonne */
  .wpcf7-form [style*="grid-template-columns:1fr 1fr"],
  .wpcf7-form [style*="grid-template-columns:180px 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  /* Étapes revendeur I/II/III (CSS class) → 1 colonne */
  .gen-rev-step { grid-template-columns: 1fr !important; gap: 16px !important; }

  /* Wrapper interne revendeur : réduire le padding */
  .gen-page-revendeur .wpcf7-form [style*="padding:44px 48px"] {
    padding: 20px 16px !important;
  }

  /* Barre de soumission : wrap sur petits écrans */
  .wpcf7-form [style*="display:flex;align-items:center;gap:18px"] {
    flex-wrap: wrap !important;
  }
  .wpcf7-form [style*="margin-left:auto"][style*="font-style:italic"] {
    margin-left: 0 !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   REFACTOR inline → classes sémantiques (rendu identique)
   Lot 1 — page Découvrir (/decouvrir/)
   Utilisable en PHP ET dans Elementor (CSS perso) — voir style.css
   ════════════════════════════════════════════════════════════════ */

/* Conteneur de section large */
.gen-decouvrir-wrap { max-width: 1280px; margin: 0 auto; padding: 60px 48px 80px; }

/* Bouton estampille — taille agrandie (remplace style="font-size:16px") */
.stamp-btn--lg { font-size: 16px; }

/* Grille 4 cartes */
.gen-feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; margin-bottom: 80px; }

/* Carte section (lien bloc) */
.gen-feature-card { display: block; text-decoration: none; position: relative; padding: 48px 40px; border: 1px solid; }
.gen-feature-card--forest { background: var(--forest); border-color: rgba(201,168,76,.3); }
.gen-feature-card--paper  { background: var(--paper);  border-color: rgba(28,58,15,.2); }
.gen-feature-card__kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 16px; }
.gen-feature-card__title  { font-size: 36px; margin-bottom: 16px; line-height: 1.1; }
.gen-feature-card--forest .gen-feature-card__title { color: var(--cream); }
.gen-feature-card--paper  .gen-feature-card__title { color: var(--forest); }
.gen-feature-card__text   { font-size:18px; line-height: 1.65; margin-bottom: 24px; }
.gen-feature-card--forest .gen-feature-card__text { color: rgba(255,240,210,.78); }
.gen-feature-card--paper  .gen-feature-card__text { color: var(--ink-2); }

/* Article Gazette mis en avant */
.gen-featured-gz { border-top: 1px solid rgba(28,58,15,.2); padding-top: 64px; }
.gen-featured-gz__kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 24px; text-align: center; }
.gen-featured-gz__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: center; }
.gen-featured-gz__img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border: 1px solid rgba(28,58,15,.15); }
.gen-featured-gz__ph { aspect-ratio: 16/10; border: 1px solid rgba(201,168,76,.2); background: repeating-linear-gradient(135deg, rgba(28,58,15,.05) 0 12px, rgba(201,168,76,.04) 12px 24px); }
.gen-featured-gz__cat { font-size:14px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 12px; }
.gen-featured-gz__title { font-family: var(--serif-body); font-size: 28px; color: var(--forest); margin-bottom: 16px; line-height: 1.2; }
.gen-featured-gz__title a { text-decoration: none; color: inherit; }
.gen-featured-gz__exc { font-size:19px; line-height: 1.65; color: var(--ink-2); margin-bottom: 20px; }
.gen-featured-gz__date { font-family: var(--mono); font-size:19px; color: var(--ink-2); margin-bottom: 24px; }

/* Mobile — grilles en 1 colonne */
@media (max-width: 900px) {
  .gen-decouvrir-wrap { padding: 40px 20px 60px; }
  .gen-feature-grid { grid-template-columns: 1fr; gap: 20px; margin-bottom: 56px; }
  .gen-featured-gz__grid { grid-template-columns: 1fr; gap: 24px; }
}

/* Hero contenu : cadrage du background (était en inline sur chaque page) */
.gen-content-hero { background-size: cover; background-position: center; }

/* ════════════════════════════════════════════════════════════════
   REFACTOR inline → classes — Lot 2
   Pages section : Déguster, Visiter, Distiller
   ════════════════════════════════════════════════════════════════ */

/* Wrappers / grilles génériques */
.gen-section-1280 { max-width: 1280px; margin: 0 auto; padding: 0 48px 80px; }
.gen-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }

/* Lede centré (complète .gen-content-lede existant) */
.gen-content-lede { max-width: 1280px; margin: 0 auto; text-align: center; }

/* Cartes famille / lieu (sur .gen-chapter-card + gravure) */
.gen-chapter-card { display: block; padding: 48px 40px; text-decoration: none; position: relative; border: 1px solid rgba(201,168,76,.35); }
.gen-card-kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 16px; }
.gen-card-title  { font-size: 38px; color: var(--cream); margin-bottom: 16px; line-height: 1.1; }
.gen-card-text   { font-family: var(--serif-body); font-size:19px; color: rgba(255,240,210,.75); line-height: 1.65; margin-bottom: 24px; }
.gen-card-text--tight { margin-bottom: 8px; }

/* Bouton estampille — variante très grande */
.stamp-btn--xl { font-size: 18px; padding: 18px 40px; }

/* Bande liens croisés — wrap + grille + contenu */
.gen-cross-link__wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.gen-cross-link__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.gen-cross-link__card { text-decoration: none; }
.gen-cross-link__kicker { font-size:14px; letter-spacing: .2em; color: rgba(201,168,76,.7); margin-bottom: 8px; }
.gen-cross-link__name { font-family: var(--serif-body); font-size: 22px; color: var(--cream); margin-bottom: 8px; }
.gen-cross-link__desc { font-size:18px; color: rgba(255,240,210,.7); line-height: 1.55; }

/* ── Visiter : encadré horaires + CTA ── */
.gen-hours-box { margin-top: 48px; padding: 40px; background: var(--paper); border: 1px solid rgba(28,58,15,.15); }
.gen-section-kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 24px; text-align: center; }
.gen-hours-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; font-family: var(--serif-body); font-size:18px; line-height: 1.65; color: var(--ink-2); }
.gen-hours-day { font-family: var(--mono); font-size:19px; letter-spacing: .2em; color: var(--forest); display: block; margin-bottom: 8px; }
.gen-hours-note { margin-top: 24px; font-family: var(--serif-body); font-size:18px; color: var(--ink-2); text-align: center; }
.gen-center-mt40 { margin-top: 40px; text-align: center; }

/* ── Distiller : breadcrumb mono ── */
.gen-bc-mono { max-width: 1280px; margin: 0 auto; padding: 20px 48px 0; font-family: var(--mono); font-size:19px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-deep); }
.gen-bc-mono a { color: inherit; text-decoration: none; }
.gen-bc-mono__sep { margin: 0 12px; opacity: .5; }
.gen-bc-mono__cur { color: var(--ink); opacity: .8; }

/* ── Distiller : hero ruban ── */
.gen-distiller-hero { position: relative; height: 520px; display: flex; align-items: center; justify-content: center; margin-top: 24px; background-size: cover; background-position: center; }
.gen-distiller-hero__frame { position: absolute; inset: 24px; border: 1px solid rgba(201,168,76,.55); pointer-events: none; }
.gen-distiller-hero__tag { position: absolute; top: 36px; left: 0; right: 0; text-align: center; font-family: var(--mono); font-size:14px; color: rgba(255,240,210,.55); letter-spacing: .3em; text-transform: uppercase; }
.gen-distiller-hero__tag-r { position: absolute; top: 36px; right: 60px; font-family: var(--mono); font-size:14px; color: rgba(255,240,210,.55); letter-spacing: .3em; text-transform: uppercase; }
.gen-distiller-hero__quote { position: absolute; bottom: 48px; left: 0; right: 0; text-align: center; }
.gen-distiller-hero__quote span { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.5); letter-spacing: .04em; }

/* Ruban titre (distinct de .gen-ribbon__title de la home) */
.gen-ribbon-title { display: inline-block; background: var(--paper); color: var(--forest); padding: 22px 48px 18px; position: relative; box-shadow: 0 0 0 1px var(--gold) inset, 0 0 0 5px var(--paper) inset, 0 0 0 6px var(--gold) inset, 0 14px 40px rgba(0,0,0,.18); transform: rotate(-.4deg); text-align: center; }
.gen-ribbon-title__kicker { font-family: var(--mono); font-size:14px; letter-spacing: .4em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 8px; }
.gen-ribbon-title__h1 { font-size: 72px; line-height: 1; margin: 0; color: var(--forest); }

/* ── Distiller : lede + filet décoratif ── */
.gen-distiller-lede { padding: 80px 48px 40px; }
.gen-distiller-lede__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.gen-distiller-lede__text { font-family: var(--serif-italic); font-style: italic; font-size: 22px; line-height: 1.55; color: var(--forest); margin: 0; }
.gen-distiller-lede__author { font-size:19px; letter-spacing: .4em; color: var(--gold-deep); margin-top: 18px; }

.gen-deco-rule { display: flex; align-items: center; gap: 16px; justify-content: center; color: var(--gold-deep); }
.gen-deco-rule__line { flex: 1; max-width: 100px; height: 1px; background: currentColor; opacity: .5; }
.gen-deco-rule--light { color: var(--gold-light); }
.gen-deco-rule--light .gen-deco-rule__line { max-width: 120px; opacity: .4; }
.gen-distiller-lede__inner .gen-deco-rule { margin-top: 28px; }

/* ── Distiller : grille chapitres + cartes v2 (tints en classes) ── */
.gen-distiller-grid-section { padding: 20px 48px 100px; }
.gen-distiller-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.gen-chapter-card-v2__corner { position: absolute; top: 8px; color: var(--gold-deep); z-index: 2; }
.gen-chapter-card-v2__corner--tl { left: 8px; }
.gen-chapter-card-v2__corner--tr { right: 8px; }
.gen-chapter-card-v2__image { position: relative; overflow: hidden; }
.gen-chapter-card-v2__image--forest { background: repeating-linear-gradient(45deg, rgba(28,58,15,.22) 0 14px, rgba(90,120,60,.18) 14px 28px); }
.gen-chapter-card-v2__image--sepia  { background: repeating-linear-gradient(45deg, rgba(168,137,52,.25) 0 14px, rgba(120,90,40,.18) 14px 28px); }
.gen-chapter-card-v2__image--night  { background: repeating-linear-gradient(45deg, rgba(15,37,8,.4) 0 14px, rgba(28,58,15,.5) 14px 28px); }
.gen-chapter-card-v2__image--paper  { background: repeating-linear-gradient(45deg, rgba(180,160,110,.18) 0 14px, rgba(140,120,80,.14) 14px 28px); }
.gen-chapter-card-v2__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .5; mix-blend-mode: multiply; }
.gen-chapter-card-v2__num { position: relative; z-index: 1; color: var(--gold-deep); }
.gen-chapter-card-v2__image--night .gen-chapter-card-v2__num { color: var(--gold-light); }

/* ── Distiller : manifeste ── */
.gen-manifeste-slab__inner { max-width: 800px; margin: 0 auto; position: relative; z-index: 1; }

/* Mobile lot 2 */
@media (max-width: 900px) {
  .gen-section-1280 { padding: 0 20px 60px; }
  .gen-grid-2 { grid-template-columns: 1fr; gap: 20px; }
  .gen-cross-link__wrap { padding: 0 20px; }
  .gen-cross-link__grid { grid-template-columns: 1fr; gap: 16px; }
  .gen-hours-grid { grid-template-columns: 1fr; gap: 16px; }
  .gen-bc-mono { padding: 16px 20px 0; }
  .gen-distiller-hero { height: 380px; }
  .gen-distiller-hero__tag-r { display: none; }
  .gen-ribbon-title { padding: 18px 28px 14px; }
  .gen-ribbon-title__h1 { font-size: 44px; }
  .gen-distiller-lede { padding: 48px 20px 32px; }
  .gen-distiller-grid-section { padding: 16px 20px 60px; }
  .gen-distiller-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* ════════════════════════════════════════════════════════════════
   REFACTOR inline → classes — Lot 3
   Sous-pages lieu : La Cave, La Distillerie (contenu + aside infos)
   ════════════════════════════════════════════════════════════════ */

/* Corps de page : contenu principal + aside infos pratiques */
.gen-lieu-body { max-width: 1280px; margin: 0 auto; padding: 60px 48px 80px; }
.gen-lieu-layout { display: grid; grid-template-columns: 1fr 360px; gap: 64px; align-items: start; }

/* Contenu principal */
.gen-lieu-h2 { font-family: var(--serif-display); font-size: 34px; color: var(--forest); margin-bottom: 20px; line-height: 1.2; }
.gen-lieu-p { font-family: var(--serif-body); font-size:21px; line-height: 1.7; color: var(--ink-2); margin-bottom: 24px; }
.gen-lieu-p--last { margin-bottom: 40px; }

/* Liste « Ce que vous verrez » */
.gen-lieu-list { font-family: var(--serif-body); font-size:20px; line-height: 1.75; color: var(--ink-2); margin-bottom: 40px; padding-left: 0; list-style: none; }
.gen-lieu-list li { padding: 10px 0; border-bottom: 1px solid rgba(28,58,15,.12); display: flex; gap: 16px; }
.gen-lieu-list li:last-child { border-bottom: 0; }
.gen-lieu-list__bullet { color: var(--gold-deep); flex-shrink: 0; }

/* Encadré citation (cave) */
.gen-lieu-quote { padding: 32px 40px; background: rgba(201,168,76,.08); border-left: 3px solid var(--gold-deep); }
.gen-lieu-quote__text { font-family: var(--serif-italic); font-style: italic; font-size:21px; line-height: 1.65; color: var(--forest); margin: 0; }
.gen-lieu-quote__cite { font-family: var(--mono); font-size:14px; letter-spacing: .2em; color: var(--gold-deep); font-style: normal; display: block; margin-top: 12px; }

/* Encadré PMR (distillerie) */
.gen-lieu-pmr { padding: 24px 32px; background: rgba(28,58,15,.06); border: 1px solid rgba(28,58,15,.15); display: flex; gap: 16px; align-items: start; }
.gen-lieu-pmr__tag { font-family: var(--mono); font-size:19px; letter-spacing: .2em; color: var(--forest); white-space: nowrap; }
.gen-lieu-pmr__text { font-family: var(--serif-body); font-size:19px; line-height: 1.6; color: var(--ink-2); margin: 0; }

/* Aside infos pratiques (sticky) */
.gen-lieu-aside { position: sticky; top: 100px; }
.gen-lieu-infos { border: 1px solid rgba(28,58,15,.2); padding: 36px; }
.gen-lieu-infos__head { font-size:14px; letter-spacing: .3em; color: var(--gold-deep); margin-bottom: 20px; }
.gen-lieu-infos__block { margin-bottom: 24px; }
.gen-lieu-infos__label { font-family: var(--mono); font-size:14px; letter-spacing: .2em; color: var(--forest); margin-bottom: 6px; }
.gen-lieu-infos__label--mb8 { margin-bottom: 8px; }
.gen-lieu-infos__text { font-family: var(--serif-body); font-size:18px; line-height: 1.6; color: var(--ink-2); margin: 0; }
.gen-lieu-infos__text a { color: inherit; text-decoration: none; }
.gen-lieu-hours { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); border-collapse: collapse; width: 100%; }
.gen-lieu-hours td { padding: 4px 0; }
.gen-lieu-hours td:first-child { color: var(--ink); }
.gen-lieu-hours td:last-child { text-align: right; }
.gen-lieu-hours__sub { padding: 10px 0 4px !important; font-family: var(--mono); font-size:14px; letter-spacing: .15em; color: var(--forest); }
.gen-lieu-badge { margin-bottom: 20px; padding: 10px 12px; background: rgba(28,58,15,.06); font-family: var(--mono); font-size:14px; letter-spacing: .15em; color: var(--forest); }
.gen-lieu-resa-btn { display: block; text-align: center; font-size: 12px; padding: 16px 24px; margin-top: 8px; }
/* Retour client : bouton réservation remonté en tête de l'encadré infos, doit être
   plus visible (accent or plutôt que vert, un peu plus grand). */
.gen-lieu-resa-btn--top { font-size: 14px; padding: 18px 24px; margin: 0 0 24px; }
.gen-lieu-resa-note { font-family: var(--mono); font-size:14px; letter-spacing: .1em; color: var(--ink-2); opacity: .7; text-align: center; margin-top: 12px; }

/* Mobile lot 3 */
@media (max-width: 900px) {
  .gen-lieu-body { padding: 40px 20px 60px; }
  .gen-lieu-layout { grid-template-columns: 1fr; gap: 40px; }
  .gen-lieu-aside { position: static; }
  .gen-lieu-h2 { font-size: 28px; }
  .gen-lieu-p { font-size:19px; }
}

/* Retour client (La Cave 962a4908 / La Distillerie 24043c79) : le padding
   gauche/droite (48px) de la section de contenu est fixe (pas de variante
   responsive côté réglage Elementor) — combiné au padding propre de
   .gen-lieu-quote (40px), le texte et la citation se retrouvent beaucoup
   trop resserrés sur mobile. Idem pour la bande infos pratiques pleine
   largeur : son padding de section (48px) s'ajoutait à celui de son propre
   .gen-container-1280 (48px) → tableau horaires écrasé sur ~140px. */
@media (max-width: 640px) {
  .elementor-element-962a4908,
  .elementor-element-24043c79 { padding-left: 20px !important; padding-right: 20px !important; }
  .elementor-element-lcib0sec,
  .elementor-element-ldib0sec { padding-left: 0 !important; padding-right: 0 !important; }
  .gen-lieu-infos-band .gen-container-1280 { padding-left: 20px !important; padding-right: 20px !important; }
  .gen-lieu-quote { padding: 24px 20px; }
}

/* Retour client (La Cave) : le bloc infos pratiques était cramé dans la
   colonne latérale étroite (32%) — remonté en pleine largeur sous la
   citation, les 3 blocs (Adresse/Horaires/Contact) passent en ligne quand
   la largeur le permet plutôt que de rester empilés. */
.gen-lieu-infos--wide { display: flex; flex-wrap: wrap; align-items: start; gap: 8px 48px; }
.gen-lieu-infos--wide .gen-lieu-infos__head { flex: 1 0 100%; }
.gen-lieu-infos--wide .gen-lieu-infos__block { flex: 1 1 200px; }

/* Retour client (La Cave + La Distillerie) : bloc infos pratiques en bande
   pleine largeur fond vert (.gen-forest-slab), texte clair — remplace le
   placement précédent (dans la colonne de contenu ou en aside étroite). */
.gen-lieu-infos-band .gen-lieu-infos { border: none; padding: 0; }
.gen-lieu-infos-band .gen-lieu-infos__head { color: var(--gold-light); }
.gen-lieu-infos-band .gen-lieu-infos__label { color: var(--gold-light); }
.gen-lieu-infos-band .gen-lieu-infos__text,
.gen-lieu-infos-band .gen-lieu-hours { color: rgba(255,240,210,.85); }
.gen-lieu-infos-band .gen-lieu-hours td:first-child { color: var(--cream); }
.gen-lieu-infos-band .gen-lieu-hours__sub { color: var(--gold-light); }
.gen-lieu-infos-band .gen-lieu-badge { background: rgba(255,255,255,.08); color: var(--gold-light); }

/* Bouton "Réserver ma visite" isolé dans sa propre colonne, flottant pour
   suivre le scroll pendant la lecture du contenu principal (au lieu d'être
   noyé dans le bloc infos, désormais dans le flux principal ci-dessus). */
/* Le point d'ancrage sticky doit être le WIDGET Elementor lui-même
   (.elementor-element-lc01btn1), pas le div .gen-lieu-resa-float à
   l'intérieur : le containing block d'un position:sticky est son parent
   direct. Le parent du widget (.elementor-widget-wrap, étiré sur toute la
   hauteur de la ligne par le flex de la colonne) fait ~1342px — mais le
   widget lui-même ne fait que la hauteur de son propre contenu (~200px), et
   c'est CETTE boîte qui borne le sticky si on le pose sur le div interne. */
.elementor-element-lc01btn1 { position: sticky !important; top: 120px; }
@media (max-width: 1024px) { .elementor-element-lc01btn1 { position: static !important; } }

/* ===================================================================
   LOT WOO — classes ex-inline (single-produit, archive, taxonomy,
   thankyou, suivi de commande). Tokens : style.css.
   =================================================================== */

/* — Hero catégorie : taille/position ici, image (dynamique) reste inline — */
.gen-pcat-hero { background-size: cover; background-position: center; }

/* — Ornements scopés (color gold-deep = défaut de .gen-orn-rule) — */
.gen-produit-content > .gen-orn-rule         { margin: 0 0 28px; }
.gen-produit-cocktails__header .gen-orn-rule { margin: 16px auto 10px; max-width: 200px; }
.gen-produit-bloc3__inner .gen-orn-rule      { margin: 0 auto 32px; max-width: 200px; }
.gen-archive-hero__inner > .gen-orn-rule     { margin: 22px auto; max-width: 480px; }
.gen-archive-sep .gen-orn-rule               { margin: 0 auto; max-width: 360px; padding: 36px 0; }
.gen-cat-header__inner .gen-orn-rule         { margin: 18px auto; max-width: 260px; }
.gen-pcat-nav .gen-orn-rule                  { color: rgba(201,168,76,.5); margin-bottom: 36px; }

/* — Liens carte sans soulignement — */
.gen-card > a { text-decoration: none; }

/* — CTA centré bas de section produit — */
.gen-produit-related__cta { text-align: center; margin-top: 56px; }

/* — Coins ornés archive : rotation par position (ex-transform inline) — */
.gen-archive-hero__corner--tr .gen-corner-arch { transform: rotate(90deg); }
.gen-archive-hero__corner--bl .gen-corner-arch { transform: rotate(270deg); }
.gen-archive-hero__corner--br .gen-corner-arch { transform: rotate(180deg); }

/* — État vide catégorie — */
.gen-pcat-empty {
  text-align: center; font-family: var(--serif-body);
  color: var(--ink-2); padding: 60px 0;
}

/* — Cadre intérieur Élixir (archive woo) — */
.gen-cat-elixir__frame {
  position: absolute; inset: 10px;
  border: 1px solid rgba(201,168,76,.4); pointer-events: none;
}

/* — Thank-you : boutons — */
.gen-ty-track-btn {
  width: 100%; justify-content: center;
  margin-top: 18px; padding: 14px 0; font-size: 12px;
}
.gen-ty-account .stamp-btn { font-size: 16px; }

/* ===================================================================
   Suivi de commande (view-order) — labels & titres ex-inline
   =================================================================== */
/* kickers (combinés avec .caps) */
.gen-ot-kicker        { font-size:19px; color: var(--gold-deep); letter-spacing: .4em; }
.gen-ot-kicker--items { letter-spacing: .35em; }
.gen-ot-kicker--total { letter-spacing: .3em; color: inherit; }
.gen-ot-label         { font-size:14px; color: var(--gold-deep); letter-spacing: .3em; }
.gen-ot-label--light  { color: var(--gold-light); letter-spacing: .35em; }
.gen-ot-label--track  { font-size:13px; color: var(--ink-2); }
/* titres (combinés avec .display-script) */
.gen-ot-h          { color: var(--ink); }
.gen-ot-h--xl      { font-size: 36px; line-height: 1; }
.gen-ot-h--lg      { font-size: 32px; margin-top: 4px; }
.gen-ot-h--md      { font-size: 28px; margin-top: 2px; }
.gen-ot-h--sm      { font-size: 22px; }
.gen-ot-h--sm-mt   { font-size: 22px; margin-top: 2px; }
.gen-ot-h--tight   { font-size: 22px; line-height: 1.1; }
.gen-ot-h--contact { font-size: 26px; margin-top: 4px; line-height: 1.05; }
.gen-ot-h--cream   { font-size: 28px; color: var(--cream); margin-top: 4px; line-height: 1; }
.gen-ot-mark       { font-size: 36px; color: var(--gold-deep); line-height: 1; flex-shrink: 0; }
/* prose & divers */
.gen-ot-note          { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--ink-2); line-height: 1.5; margin-top: 2px; }
.gen-ot-note--contact { line-height: 1.55; margin-top: 8px; }
.gen-ot-item__meta    { font-family: var(--mono); font-size:14px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-ot-addr-inner    { padding: 24px; position: relative; z-index: 1; }
.gen-ot-addr-text     { font-family: var(--serif-body); font-size:18px; line-height: 1.7; margin-top: 12px; color: var(--cream); }
.gen-ot-contact-info  { margin-top: 14px; font-family: var(--mono); font-size:15px; letter-spacing: .15em; color: var(--ink); }
.gen-ot-btn-row       { display: flex; gap: 12px; margin-top: 18px; flex-wrap: wrap; }
.gen-ot-btn-row--sm   { gap: 8px; margin-top: 16px; }
.gen-ot-btn-row .stamp-btn { font-size: 10px; }
.gen-ot-pill          { padding: 8px 14px; border: 1px solid var(--ink); font-family: var(--sans-caps); font-size: 10px; letter-spacing: .25em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.gen-ot-totals__row--italic { font-style: italic; }
.gen-ot-slab-clip     { overflow: hidden; }

/* ===================================================================
   LOT ÉDITORIAL A — classes ex-inline.
   Composants réutilisables (gen-cta-panel, lede--wide) + page-accords.
   =================================================================== */

/* — Hero sépia : sous-titre en encre (le titre l'a déjà L3563) — */
.gen-content-hero--sepia .gen-content-hero__sub { color: var(--ink); }

/* — Lede pleine largeur centré — */
.gen-content-lede--wide { max-width: 1280px; margin: 0 auto; text-align: center; }

/* — Bande CTA centrée (réutilisable, dans .gen-cross-link forest) — */
.gen-cross-link--center { text-align: center; }
.gen-cta-panel { max-width: 680px; margin: 0 auto; }
.gen-cta-panel__kicker { font-size:19px; letter-spacing: .2em; color: rgba(255,240,210,.6); margin-bottom: 16px; }
.gen-cta-panel__title  { font-size: 40px; color: var(--cream); margin-bottom: 16px; }
.gen-cta-panel__text   { font-family: var(--serif-body); font-size:19px; color: rgba(255,240,210,.8); line-height: 1.6; margin-bottom: 32px; }
.gen-cta-panel__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* — Carte accord (visuel bouteille + contenu) — */
.gen-accord-card__photo {
  height: 210px; background: var(--paper); position: relative;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.gen-accord-card__photo img { height: 190px; width: auto; object-fit: contain; filter: drop-shadow(0 4px 16px rgba(0,0,0,.12)); }
.gen-accord-card__photo-ph { position: absolute; inset: 0; background: repeating-linear-gradient(135deg,rgba(28,58,15,.06) 0 14px,rgba(201,168,76,.05) 14px 28px); }
.gen-accord-card__photo-rule { position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: rgba(28,58,15,.15); }
.gen-accord-card__content { padding: 32px 24px 24px; }
.gen-accord-card__moment { font-size:13px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 10px; }
.gen-accord-card__name { font-family: var(--serif-body); font-size:21px; color: var(--forest); margin-bottom: 6px; line-height: 1.2; }
.gen-accord-card__pairing { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--gold-deep); margin-bottom: 12px; }
.gen-accord-card__text { font-size:21px; line-height: 1.6; color: var(--ink-2); }

/* ===================================================================
   LOT ÉDITORIAL — utilitaires réutilisables + page-gazette
   =================================================================== */
.gen-link-plain { text-decoration: none; color: inherit; }
.gen-relz { position: relative; z-index: 1; }
.gen-dot { width: 4px; height: 4px; background: var(--gold-deep); border-radius: 50%; display: inline-block; }
.gen-empty-note { font-family: var(--serif-body); font-size:19px; color: var(--ink-2); text-align: center; padding: 60px 0; }
.gen-pagination { margin-top: 56px; text-align: center; }
.gen-author-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg,var(--gold-light),var(--gold-deep)); display: flex; align-items: center; justify-content: center; font-family: var(--serif-body); color: #fff; font-size:21px; flex-shrink: 0; }
.gen-author-name { font-size:21px; color: var(--ink); line-height: 1; }
.gen-author-role { font-family: var(--mono); font-size:13px; letter-spacing: .3em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-newsletter-form { display: flex; gap: 8px; max-width: 480px; margin: 0 auto; }
.gen-newsletter-form__input { flex: 1; padding: 16px 18px; font-family: var(--serif-body); font-size:18px; background: rgba(255,255,255,.06); border: 1px solid rgba(201,168,76,.5); color: var(--cream); outline: none; border-radius: 0; }
.gen-newsletter-form .stamp-btn { flex-shrink: 0; }

/* — page-gazette — */
.gen-gazette-meta { font-size:14px; color: var(--gold-deep); letter-spacing: .3em; display: inline-flex; gap: 14px; align-items: center; }
.gen-gazette-meta--sm { gap: 10px; }
.gravure--slim { padding: 10px; }
.gen-gazette-une__img { width: 100%; height: 460px; object-fit: cover; display: block; }
.gen-gazette-une__ph { width: 100%; height: 460px; display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size:19px; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,240,210,.7); }
.gen-gazette-une__author { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.gen-gazette-article-card__img { object-fit: cover; }
.gen-gazette-newsletter__mark { color: var(--gold-light); display: flex; justify-content: center; font-size: 24px; }
.gen-gazette-newsletter__kicker { font-size:19px; color: var(--gold-light); letter-spacing: .4em; margin-top: 18px; }
.gen-gazette-newsletter__fine { font-size:13px; color: var(--gold-light); letter-spacing: .3em; margin-top: 16px; opacity: .7; }

/* ===================================================================
   LOT ÉDITORIAL — conteneurs/nav réutilisables + page-plantes
   =================================================================== */
.gen-container-1280 { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.gen-nav-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.gen-nav-kicker { font-size:14px; letter-spacing: .2em; color: rgba(201,168,76,.7); margin-bottom: 8px; }
.gen-nav-title { font-family: var(--serif-body); font-size: 22px; color: var(--cream); }
.gen-nav-desc { font-size:18px; color: rgba(255,240,210,.7); margin-top: 8px; }
.gen-footnote { margin-top: 48px; font-size:21px; font-family: var(--mono); color: var(--ink-2); max-width: 680px; line-height: 1.65; }

/* — page-plantes (herbier) — */
.gen-herbarium-card__media { height: 120px; border-bottom: 1px solid rgba(28,58,15,.15); margin-bottom: 20px; overflow: hidden; }
.gen-herbarium-card__media--ph { background: repeating-linear-gradient(135deg,rgba(28,58,15,.04) 0 12px,rgba(201,168,76,.04) 12px 24px); display: flex; align-items: center; justify-content: center; }
.gen-herbarium-card__img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gen-herbarium-card__ph-mark { font-family: var(--serif-italic); font-style: italic; font-size: 28px; color: rgba(28,58,15,.18); }
.gen-herbarium-card__family { font-size:13px; letter-spacing: .22em; color: var(--gold-deep); margin-bottom: 6px; }
.gen-herbarium-card__name { font-family: var(--serif-body); font-size:21px; color: var(--forest); margin-bottom: 4px; line-height: 1.2; }
.gen-herbarium-card__latin { font-family: var(--serif-italic); font-style: italic; font-size:15px; color: var(--ink-2); margin-bottom: 12px; }
.gen-herbarium-card__origin { font-size:19px; font-family: var(--mono); color: var(--gold-deep); margin-bottom: 10px; letter-spacing: .08em; }
.gen-herbarium-card__role { font-size:21px; line-height: 1.6; color: var(--ink-2); margin-bottom: 12px; }
.gen-herbarium-card__products { border-top: 1px solid rgba(28,58,15,.15); padding-top: 10px; font-size:19px; color: var(--forest); font-family: var(--mono); }
.gen-herbarium-card__note { margin-top: 8px; font-size:19px; color: var(--ink-2); line-height: 1.5; font-style: italic; }

/* ===================================================================
   LOT ÉDITORIAL — inner wrappers réutilisables + page-ou-acheter
   =================================================================== */
.gen-inner-1280 { max-width: 1280px; margin: 0 auto; }
.gen-inner-760 { max-width: 760px; margin: 0 auto; }

/* — page-ou-acheter (where-to-buy) — */
.gen-wtb2-master { padding: 0 48px 40px; }
.gen-wtb2-stat-num { font-size: 28px; color: var(--forest); line-height: 1; }
.gen-wtb2-stat-label { font-size: 8px; color: var(--gold-deep); letter-spacing: .3em; margin-top: 4px; }
.gen-wtb2-panel-code { font-size:14px; color: var(--gold-deep); letter-spacing: .35em; }
.gen-wtb2-panel-name { font-size: 30px; color: var(--forest); margin: 2px 0 4px; line-height: 1; }
.gen-wtb2-panel-count { font-family: var(--serif-italic); font-style: italic; font-size:16px; color: var(--ink-2); }
.gen-wtb2-annuaire-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; flex-wrap: wrap; gap: 12px; }
.gen-wtb2-annuaire-kicker { font-size:15px; color: var(--gold-deep); letter-spacing: .4em; }
.gen-wtb2-annuaire-title { font-size: 36px; color: var(--forest); margin: 4px 0 0; line-height: 1; }
.gen-wtb2-annuaire-hint { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--ink-2); }
.gen-wtb2-revendeur { padding: 60px 48px 90px; }
.gen-wtb2-cta-frame { padding: 6px; position: relative; }
.gen-wtb2-cta-inner { border: 1px solid var(--gold-light); padding: 40px 48px; position: relative; z-index: 1; text-align: center; }
.gen-wtb2-cta-kicker { font-size:15px; color: var(--gold-light); letter-spacing: .4em; }
.gen-wtb2-cta-title { font-size: 56px; color: var(--cream); margin: 8px 0; line-height: 1; }
.gen-wtb2-cta-rule { width: 240px; margin: 0 auto 16px; border-top: 1px solid rgba(201,168,76,.5); }
.gen-wtb2-cta-text { font-family: var(--serif-body); font-size:19px; color: rgba(255,255,255,.85); line-height: 1.6; margin: 0 auto 24px; max-width: 520px; }

/* ===================================================================
   LOT ÉDITORIAL B — gen-section-h2/timeline/spec réutilisables + page-alambic
   =================================================================== */
.gen-section-h2 { font-family: var(--serif-display); font-size: 32px; color: var(--forest); margin-bottom: 40px; }
.gen-section-h2--mb32 { margin-bottom: 32px; }

/* — page-alambic : légende anatomie — */
.gen-alambic-legend { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 20px; }
.gen-alambic-legend__item { display: flex; gap: 16px; align-items: flex-start; }
.gen-alambic-legend__num { font-family: var(--serif-body); font-size: 22px; color: var(--gold-deep); flex-shrink: 0; width: 28px; }
.gen-alambic-legend__name { font-family: var(--serif-body); font-size:19px; color: var(--forest); display: block; margin-bottom: 4px; }
.gen-alambic-legend__desc { font-size:18px; line-height: 1.6; color: var(--ink-2); }

/* — specs (réutilisable) — */
.gen-specs-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 80px; }
.gen-spec-card { padding: 24px 20px; text-align: center; }
.gen-spec-card__num { font-family: var(--serif-body); font-size: 36px; color: var(--cream); margin-bottom: 8px; line-height: 1; }
.gen-spec-card__label { font-size:14px; letter-spacing: .18em; color: var(--gold-deep); margin-bottom: 8px; }
.gen-spec-card__text { font-size:15px; line-height: 1.55; color: rgba(255,240,210,.7); }

/* — timeline (réutilisable) — */
.gen-timeline { position: relative; padding-left: 32px; margin-bottom: 80px; }
.gen-timeline__line { position: absolute; left: 0; top: 12px; bottom: 12px; width: 2px; background: linear-gradient(to bottom, var(--gold-deep), rgba(201,168,76,.2)); }
.gen-timeline__step { position: relative; padding: 0 0 32px 32px; }
.gen-timeline__step--last { padding-bottom: 0; }
.gen-timeline__dot { position: absolute; left: -7px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--gold-deep); border: 2px solid var(--paper); }
.gen-timeline__time { font-size:14px; letter-spacing: .18em; color: var(--gold-deep); margin-bottom: 6px; }
.gen-timeline__title { font-family: var(--serif-body); font-size:24px; color: var(--forest); margin-bottom: 10px; }
.gen-timeline__text { font-size:18px; line-height: 1.65; color: var(--ink-2); max-width: 660px; }

/* ===================================================================
   LOT ÉDITORIAL B — page-cocktails
   =================================================================== */
.gen-section-1280--pt60 { padding-top: 60px; }
.gen-nav-grid--2 { grid-template-columns: repeat(2,1fr); }

/* featured */
.gen-cocktail-sig-label { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 24px; text-align: center; }
.gen-cocktail-featured { display: grid; grid-template-columns: 300px 1fr 400px; gap: 40px; align-items: center; padding: 48px; }
.gen-cocktail-featured__photo { align-self: stretch; height: 100%; min-height: 320px; }
.gen-cocktail-featured__photo img { width: 100%; height: 100%; object-fit: cover; border: 1px solid rgba(201,168,76,.35); display: block; }
.gen-cocktail-featured__name { font-size: 52px; color: var(--cream); margin-bottom: 16px; line-height: 1; }
.gen-cocktail-featured__spirit { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--gold-deep); margin-bottom: 24px; }
.gen-cocktail-featured__note { font-size:19px; line-height: 1.7; color: rgba(255,240,210,.85); margin-bottom: 32px; }
.gen-cocktail-featured__service { border-top: 1px solid rgba(201,168,76,.3); padding-top: 24px; }
.gen-cocktail-featured__svc-label { font-family: var(--mono); font-size:19px; color: var(--gold-deep); letter-spacing: .1em; margin-bottom: 12px; }
.gen-cocktail-featured__svc-val { font-size:18px; color: rgba(255,240,210,.8); }
.gen-cocktail-featured__svc-val--mb { margin-bottom: 16px; }
.gen-cocktail-recipe { border: 1px solid rgba(201,168,76,.4); padding: 36px; background: rgba(255,255,255,.04); }
.gen-cocktail-recipe__label { font-size:14px; letter-spacing: .22em; color: var(--gold-deep); margin-bottom: 20px; }
.gen-cocktail-recipe__line { font-family: var(--serif-body); font-size:18px; color: rgba(255,240,210,.9); padding: 8px 0; border-bottom: 1px solid rgba(201,168,76,.15); }

/* La colonne fixe 440px de .gen-cocktail-featured (déclarée plus haut sans
   media query) dépasse la largeur du viewport mobile : elle bat en cascade
   l'ancien override responsive (repeat 1fr) défini avant elle dans la
   feuille. On la réaffirme ici, après, pour qu'elle gagne sur mobile. */
@media (max-width: 900px) {
  .gen-cocktail-featured { grid-template-columns: minmax(0,1fr); gap: 32px; padding: 32px 24px; }
}

/* grille recettes */
.gen-recipe-card--col { background: #fff; border: 1px solid rgba(28,58,15,.2); display: flex; flex-direction: column; }
.gen-recipe-card__visual { height: 160px; background: repeating-linear-gradient(135deg,rgba(28,58,15,.04) 0 10px,rgba(201,168,76,.04) 10px 20px); overflow: hidden; }
.gen-recipe-card__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gen-recipe-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.gen-recipe-card__spirit { font-size:13px; letter-spacing: .18em; color: var(--gold-deep); margin-bottom: 8px; }
.gen-recipe-card__name { font-family: var(--serif-body); font-size:20px; color: var(--forest); margin-bottom: 6px; line-height: 1.2; }
.gen-recipe-card__sub { font-family: var(--serif-italic); font-style: italic; font-size:15px; color: var(--gold-deep); margin-bottom: 10px; }
.gen-recipe-card__note { font-size:15px; line-height: 1.55; color: var(--ink-2); margin-bottom: 12px; flex: 1; }
.gen-recipe-card__details { margin-top: auto; border-top: 1px solid rgba(28,58,15,.1); padding-top: 10px; }
.gen-recipe-card__summary { font-family: var(--mono); font-size:14px; letter-spacing: .12em; color: var(--forest); cursor: pointer; }
.gen-recipe-card__recipe { margin-top: 10px; }
.gen-recipe-card__rline { font-size:15px; color: var(--ink-2); padding: 4px 0; border-bottom: 1px solid rgba(28,58,15,.07); }
.gen-recipe-card__glass { font-size:19px; color: var(--ink-2); margin-top: 8px; }

/* ===================================================================
   LOT ÉDITORIAL B — zigzag/certif/quote réutilisables + page-savoir-faire
   =================================================================== */
.gen-container-1280--mb80 { margin-bottom: 80px; }
.gen-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.gen-orn-rule--mb40 { margin-bottom: 40px; }
.gen-orn-rule--mt40 { margin-top: 40px; }

/* — zig-zag étapes — */
.gen-zigzag-row { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; margin-bottom: 64px; }
.gen-zigzag-row--sep { padding-bottom: 64px; border-bottom: 1px solid rgba(28,58,15,.12); }
.gen-zigzag-img { height: 300px; background: repeating-linear-gradient(45deg,rgba(28,58,15,.05) 0 10px,rgba(201,168,76,.06) 10px 20px); border: 1px solid rgba(201,168,76,.25); display: flex; align-items: center; justify-content: center; }
.gen-zigzag-img--right { order: 2; }
.gen-zigzag-img__num { font-family: var(--serif-body); font-size: 80px; color: rgba(28,58,15,.1); }
.gen-zigzag-text--right { order: 1; }
.gen-step-kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 12px; }
.gen-zigzag-text__title { font-family: var(--serif-display); font-size: 30px; color: var(--forest); margin-bottom: 16px; line-height: 1.15; }
.gen-zigzag-text__body { font-size:19px; line-height: 1.7; color: var(--ink-2); margin-bottom: 20px; }
.gen-zigzag-text__spec { border-left: 3px solid var(--gold-deep); padding-left: 16px; }
.gen-zigzag-text__spec-detail { font-family: var(--mono); font-size:19px; color: var(--gold-deep); margin-bottom: 4px; }
.gen-zigzag-text__spec-product { font-size:15px; color: var(--ink-2); }

/* — certifications — */
.gen-certif-section { padding: 64px 48px; margin-bottom: 0; }
.gen-certif-kicker { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 20px; text-align: center; }
.gen-certif-title { font-family: var(--serif-display); font-size: 32px; color: var(--cream); margin-bottom: 40px; text-align: center; }
.gen-certif-card { text-align: center; padding: 28px 20px; border: 1px solid rgba(201,168,76,.3); }
.gen-certif-card__title { font-family: var(--serif-body); font-size:24px; color: var(--cream); margin-bottom: 12px; line-height: 1.2; }
.gen-certif-card__text { font-size:21px; line-height: 1.6; color: rgba(255,240,210,.75); }

/* — citation — */
.gen-quote-section { background: var(--paper); padding: 80px 48px; border-top: 1px solid rgba(201,168,76,.3); }
.gen-quote-inner { max-width: 780px; margin: 0 auto; text-align: center; }
.gen-quote { font-family: var(--serif-italic); font-style: italic; font-size: 26px; line-height: 1.55; color: var(--forest); margin: 0 0 24px; }
.gen-quote__cite { font-family: var(--mono); font-size:19px; letter-spacing: .2em; color: var(--gold-deep); font-style: normal; }

/* ===================================================================
   LOT ÉDITORIAL B — panel-card/body-text réutilisables + page-terroir
   =================================================================== */
.gen-pt60 { padding-top: 60px; }
.gen-mb80 { margin-bottom: 80px; }
.gen-grid-2--g24 { gap: 24px; }
.gen-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.gen-section-h2--mb12 { margin-bottom: 12px; }
.gen-section-intro { font-size:19px; line-height: 1.65; color: var(--ink-2); max-width: 680px; margin-bottom: 40px; }
.gen-body-text { font-size:18px; line-height: 1.65; color: var(--ink-2); }
.gen-panel-card { padding: 32px; background: #fff; border: 1px solid rgba(28,58,15,.2); }
.gen-panel-card__kicker { font-size:14px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 12px; }
.gen-panel-card__title { font-family: var(--serif-body); font-size: 22px; color: var(--forest); margin-bottom: 12px; }

/* — page-terroir — */
.gen-terroir-intro { font-family: var(--serif-italic); font-style: italic; font-size: 22px; line-height: 1.6; color: var(--forest); max-width: 740px; margin-bottom: 56px; }
.gen-terroir-map { margin-bottom: 64px; }
.gen-terroir-map__svg { max-height: 400px; border: 1px solid rgba(201,168,76,.3); }
.gen-terroir-map__caption { font-size:19px; font-family: var(--mono); color: var(--gold-deep); letter-spacing: .1em; margin-top: 8px; text-align: center; }
.gen-element-col { border-top: 3px solid var(--forest); padding-top: 24px; }
.gen-element-col--eau { border-top-color: rgba(80,130,200,.5); }
.gen-element-col--ciel { border-top-color: rgba(201,168,76,.6); }
.gen-element-col__label { font-size:19px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 12px; }
.gen-element-col__title { font-family: var(--serif-body); font-size: 24px; color: var(--forest); margin-bottom: 16px; }

/* ===================================================================
   LOT ÉDITORIAL C — utilitaires d'espacement + réutilisables + page-contact
   =================================================================== */
/* espacement (utilitaires) */
.gen-mt2{margin-top:2px}.gen-mt4{margin-top:4px}.gen-mt12{margin-top:12px}.gen-mt16{margin-top:16px}.gen-mt28{margin-top:28px}
.gen-mb3{margin-bottom:3px}.gen-mb6{margin-bottom:6px}.gen-mb8{margin-bottom:8px}.gen-mb14{margin-bottom:14px}.gen-mb28{margin-bottom:28px}.gen-mb36{margin-bottom:36px}

/* kickers / liens / titres réutilisables */
.gen-kicker-gold { font-size:19px; color: var(--gold-deep); letter-spacing: .4em; }
.gen-kicker-gold35 { font-size:19px; color: var(--gold-deep); letter-spacing: .35em; }
.gen-gold-mark { color: var(--gold-deep); }
.gen-display-h2 { font-size: 48px; color: var(--forest); margin: 0; }
.gen-section-head { text-align: center; }
.gen-text-link { font-size:19px; color: var(--forest); letter-spacing: .35em; text-decoration: none; border-bottom: 1px solid var(--gold-deep); padding-bottom: 3px; }
.gen-text-link--block { display: inline-block; }
.gen-inner-920 { max-width: 920px; margin: 0 auto; }
.gen-inner-1100 { max-width: 1100px; margin: 0 auto; }
.gen-inner-1200 { max-width: 1200px; margin: 0 auto; }
.gen-orn-rule--c380 { max-width: 380px; margin: 0 auto 18px; }
.gen-orn-rule--c280 { max-width: 280px; margin: 12px auto 0; }
.gen-grid-4--g22 { gap: 22px; }
.gravure--p12 { padding: 12px; }

/* — page-contact — */
.gen-contact-header { padding: 60px 48px 40px; text-align: center; }
.gen-contact-header__title { font-size: clamp(64px,8vw,110px); color: var(--forest); margin: 10px 0; line-height: .95; }
.gen-contact-lead { font-family: var(--serif-italic); font-style: italic; font-size: 22px; color: var(--ink-2); line-height: 1.5; max-width: 720px; margin: 0 auto; }
.gen-contact-main { padding: 10px 48px 80px; }
.gen-contact-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 360px 1fr; gap: 64px; align-items: start; }
.gen-contact-aside { position: sticky; top: 32px; }
.gen-cartouche__corners { display: flex; justify-content: space-between; margin-bottom: 10px; color: var(--gold-deep); }
.gen-cartouche__corners--bottom { margin-bottom: 0; margin-top: 10px; }
.gen-cartouche__body { text-align: center; padding: 0 8px; }
.gen-cartouche__label { font-size:19px; letter-spacing: .3em; color: var(--ink-2); }
.gen-cartouche__name { font-family: var(--serif-body); font-size: 38px; color: var(--forest); margin-top: 2px; line-height: 1; }
.gen-cartouche__tagline { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--gold-deep); margin-top: 4px; }
.gen-cartouche__addr { font-size:19px; color: var(--ink); margin-top: 16px; line-height: 1.6; }
.gen-cartouche__region { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--ink-2); margin-top: 2px; }
.gen-contact-subhead { font-size:19px; color: var(--gold-deep); letter-spacing: .4em; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(168,137,52,.4); }
.gen-contact-row { padding: 14px 0; border-bottom: 1px dotted rgba(28,58,15,.18); }
.gen-contact-row__label { font-size:19px; color: var(--gold-deep); letter-spacing: .35em; margin-bottom: 3px; }
.gen-contact-row__val { font-family: var(--serif-body); font-size:20px; color: var(--forest); margin-bottom: 2px; }
.gen-contact-row__hint { font-family: var(--serif-italic); font-style: italic; font-size:15px; color: var(--ink-2); }
.gen-contact-visit { margin-top: 28px; background: rgba(28,58,15,.06); border-left: 3px solid var(--gold-deep); padding: 20px 22px; }
.gen-contact-visit__title { font-size:19px; color: var(--gold-deep); letter-spacing: .35em; margin-bottom: 8px; }
.gen-contact-visit__text { font-family: var(--serif-italic); font-style: italic; font-size:18px; color: var(--forest); margin: 0; line-height: 1.5; }
.gen-form-error { color: #933; font-family: var(--serif-body); }
.gen-contact-faq-section { padding: 60px 48px; background: rgba(28,58,15,.04); border-top: 1px solid rgba(28,58,15,.12); border-bottom: 1px solid rgba(28,58,15,.12); }
.gen-faq-card__q { font-size: 24px; color: var(--forest); line-height: 1.05; margin-bottom: 10px; }
.gen-faq-card__a { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); line-height: 1.55; margin: 0 0 12px; }
.gen-contact-find { padding: 70px 48px 90px; }
.gen-contact-map { height: 460px; position: relative; background: repeating-linear-gradient(45deg,rgba(28,58,15,.12) 0 14px,rgba(168,137,52,.08) 14px 28px); border: 1px solid rgba(168,137,52,.4); overflow: hidden; }
.gen-contact-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.gen-acces-card { text-align: center; padding: 16px 12px; border-top: 1px solid rgba(168,137,52,.4); border-bottom: 1px solid rgba(168,137,52,.4); }
.gen-acces-card__val { font-size: 22px; color: var(--forest); line-height: 1.1; margin-bottom: 4px; }
.gen-acces-card__hint { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--ink-2); }

/* ===================================================================
   LOT ÉDITORIAL C — utilitaires + single-gazette (+ styles corps article)
   =================================================================== */
.gen-mb10{margin-bottom:10px}.gen-mb12{margin-bottom:12px}.gen-mb16{margin-bottom:16px}.gen-mb24{margin-bottom:24px}.gen-mb32{margin-bottom:32px}
.gen-mt24{margin-top:24px}.gen-mt32{margin-top:32px}.gen-mt40{margin-top:40px}
.gen-center{text-align:center}
.gen-kicker-9b { font-size:13px; letter-spacing: .2em; color: var(--gold-deep); }
.gen-article-block { max-width: 860px; margin: 0 auto 60px; padding: 0 48px; }
.gen-article-block--center { text-align: center; }

/* en-tête + méta */
.gen-gz-article-header { text-align: center; max-width: 900px; margin: 40px auto 0; padding: 0 48px; }
.gen-gz-title { font-family: var(--serif-display); font-size: clamp(32px,5vw,72px); color: var(--ink); line-height: 1.05; margin-bottom: 24px; }
.gen-gz-meta { font-family: var(--mono); font-size:19px; color: var(--ink-2); letter-spacing: .12em; }
.gen-gz-hero { margin: 40px 0 0; max-height: 500px; overflow: hidden; }
.gen-gz-hero__img { width: 100%; height: 500px; object-fit: cover; display: block; }
.gen-article-layout { max-width: 1100px; margin: 60px auto 80px; padding: 0 48px; }

/* TOC */
.gen-toc { border-top: 3px solid var(--forest); padding-top: 20px; position: sticky; top: 24px; }
.gen-toc__label { font-size:13px; letter-spacing: .22em; color: var(--gold-deep); }
.gen-toc__link { font-size:15px; line-height: 1.5; color: var(--ink-2); text-decoration: none; display: block; padding: 4px 0 4px 12px; border-left: 2px solid rgba(201,168,76,.3); }
.gen-toc__empty { font-size:15px; color: var(--ink-2); }
.gen-toc__section { border-top: 1px solid rgba(28,58,15,.15); padding-top: 20px; }
.gen-toc__share { display: flex; flex-direction: column; gap: 8px; }
.gen-toc__link2 { font-size:15px; color: var(--forest); text-decoration: none; }
.gen-article-dropcap { font-size:21px; line-height: 1.75; color: var(--ink); }

/* pull-quote */
.gen-pullquote { border-top: 3px double var(--gold-deep); border-bottom: 3px double var(--gold-deep); padding: 40px 0; position: relative; }
.gen-pullquote__mark { position: absolute; left: 0; top: 50%; transform: translateY(-50%); font-family: var(--serif-body); font-size: 80px; color: rgba(201,168,76,.15); line-height: 1; }
.gen-pullquote__text { font-family: var(--serif-italic); font-style: italic; font-size: 26px; line-height: 1.5; color: var(--forest); margin: 0; padding: 0 40px; }

/* rituel callout */
.gen-rituel { position: relative; padding: 40px 36px; border: 1px solid rgba(201,168,76,.45); background: var(--paper); }
.gen-rituel__corner { width: 16px; height: 16px; position: absolute; }
.gen-rituel__corner--tl { top: 10px; left: 10px; border-top: 1px solid var(--gold-deep); border-left: 1px solid var(--gold-deep); }
.gen-rituel__corner--tr { top: 10px; right: 10px; border-top: 1px solid var(--gold-deep); border-right: 1px solid var(--gold-deep); }
.gen-rituel__label { font-size:13px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 12px; }
.gen-rituel__text { font-size:18px; line-height: 1.7; color: var(--ink-2); }

/* auteur bio */
.gen-author-bio { display: flex; gap: 24px; align-items: flex-start; border-top: 1px solid rgba(28,58,15,.15); padding-top: 32px; }
.gen-author-bio__img { border-radius: 50%; border: 2px solid rgba(201,168,76,.4); flex-shrink: 0; }
.gen-author-bio__name { font-family: var(--serif-body); font-size:21px; color: var(--forest); margin-bottom: 8px; }
.gen-author-bio__text { font-size:18px; line-height: 1.6; color: var(--ink-2); }

/* produit lié */
.gen-gz-product { display: flex; align-items: center; gap: 32px; padding: 32px; }
.gen-gz-product__img { object-fit: contain; flex-shrink: 0; }
.gen-gz-product__name { font-family: var(--serif-body); font-size: 24px; color: var(--cream); margin-bottom: 12px; }

/* articles liés */
.gen-gz-related { max-width: 1280px; margin: 0 auto; padding: 0 48px 80px; border-top: 1px solid rgba(28,58,15,.15); }
.gen-gz-related__head { font-size:14px; letter-spacing: .25em; color: var(--gold-deep); margin-bottom: 32px; padding-top: 40px; text-align: center; }
.gen-gz-related__img { width: 100%; aspect-ratio: 16/10; object-fit: cover; margin-bottom: 16px; border: 1px solid rgba(28,58,15,.1); }
.gen-gz-related__ph { aspect-ratio: 16/10; background: repeating-linear-gradient(135deg,rgba(28,58,15,.04) 0 10px,rgba(201,168,76,.04) 10px 20px); margin-bottom: 16px; }
.gen-gz-related__title { font-family: var(--serif-body); font-size:20px; color: var(--forest); margin-bottom: 8px; line-height: 1.2; }
.gen-gz-related__date { font-family: var(--mono); font-size:14px; color: var(--ink-2); }

/* corps d'article (ex-<style> inline du template) */
.gen-article-body h2 { font-family: var(--serif-display); font-size: 26px; color: var(--forest); margin: 48px 0 20px; scroll-margin-top: 90px; }
.gen-article-body h3 { font-family: var(--serif-body); font-size:24px; color: var(--forest); margin: 32px 0 14px; }
.gen-article-body p  { font-family: var(--serif-body); font-size:21px; line-height: 1.75; color: var(--ink); margin-bottom: 24px; }
.gen-article-body p:first-child::first-letter { font-family: var(--serif-body); font-size: 64px; line-height: 1; float: left; margin: 4px 12px 0 0; color: var(--forest); }
.gen-article-body ul, .gen-article-body ol { font-size:20px; line-height: 1.7; color: var(--ink); margin-bottom: 24px; padding-left: 24px; }
.gen-article-body blockquote { border-left: 3px solid var(--gold-deep); padding: 4px 0 4px 24px; margin: 32px 0; font-family: var(--serif-italic); font-style: italic; font-size:24px; color: var(--forest); }
.gen-article-body figure { margin: 40px 0; }
.gen-article-body figure img { width: 100%; }
.gen-article-body figcaption { font-family: var(--mono); font-size:19px; color: var(--ink-2); text-align: center; margin-top: 8px; letter-spacing: .1em; }
.gen-article-body aside.callout { background: var(--paper); border: 1px solid rgba(201,168,76,.4); padding: 24px; margin: 32px 0; font-size:18px; line-height: 1.65; }
.gen-article-body table { width: 100%; border-collapse: collapse; margin: 32px 0; font-size:18px; }
.gen-article-body table th { background: var(--forest); color: var(--cream); padding: 12px 16px; text-align: left; font-family: var(--mono); font-size:19px; letter-spacing: .1em; }
.gen-article-body table td { border-bottom: 1px solid rgba(28,58,15,.12); padding: 12px 16px; }

/* ===================================================================
   LOT ÉDITORIAL C — page-devenir-revendeur
   =================================================================== */
.gen-mt8{margin-top:8px}.gen-mt36{margin-top:36px}.gen-mb4{margin-bottom:4px}.gen-mb40{margin-bottom:40px}.gen-mb44{margin-bottom:44px}.gen-mb48{margin-bottom:48px}
.gen-kicker-light { font-size:19px; color: var(--gold-light); letter-spacing: .4em; }
.gen-orn-rule--light { color: var(--gold-light); }
.gen-strong-forest { color: var(--forest); }
.gen-text-link--40 { letter-spacing: .4em; padding-bottom: 4px; }
.gen-rev-title { font-size: clamp(56px,8vw,110px); color: var(--forest); margin: 10px 0; line-height: .95; }
.gen-rev-lead { font-family: var(--serif-italic); font-style: italic; font-size: 22px; color: var(--ink-2); line-height: 1.5; max-width: 780px; margin: 0 auto; }
.gen-rev-h2-56 { font-size: 56px; color: var(--forest); margin: 0 0 4px; }
.gen-rev-h2-cream { font-size: 56px; color: var(--cream); margin: 0; }
.gen-rev-h2-64 { font-size: 64px; color: var(--forest); margin: 8px 0 4px; }

/* bandeau chiffres */
.gen-rev-stats-section { padding: 10px 48px 40px; }
.gen-rev-stats { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--gold-deep); border-bottom: 1px solid var(--gold-deep); }
.gen-rev-stat { padding: 26px 12px; text-align: center; }
.gen-rev-stat:not(:first-child) { border-left: 1px solid rgba(168,137,52,.4); }
.gen-rev-stat__num { font-size: 48px; color: var(--forest); line-height: 1; }

/* piliers */
.gen-rev-why { padding: 20px 48px 70px; }
.gen-pilier { background: var(--paper); border: 1px solid var(--gold-deep); padding: 4px; }
.gen-pilier__inner { border: 1px solid rgba(168,137,52,.35); padding: 36px 28px 28px; height: 100%; box-sizing: border-box; }
.gen-pilier__num { font-size: 56px; color: var(--gold-deep); line-height: 1; margin-bottom: 16px; letter-spacing: .05em; }
.gen-pilier__title { font-size: 36px; color: var(--forest); margin: 0; line-height: 1; white-space: pre-line; }
.gen-pilier__rule { width: 60px; height: 1px; background: var(--gold-deep); margin: 18px 0; }
.gen-pilier__desc { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); line-height: 1.6; margin: 0 0 18px; }
.gen-pilier__list { list-style: none; padding: 0; margin: 0; }
.gen-pilier__item { display: grid; grid-template-columns: 16px 1fr; gap: 8px; padding: 5px 0; font-family: var(--serif-body); font-size:18px; color: var(--ink); }
.gen-pilier__star { color: var(--gold-deep); padding-top: 2px; }

/* comment ça marche */
.gen-rev-how { padding: 80px 48px; }
.gen-rev-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; position: relative; }
.gen-rev-steps__line { position: absolute; top: 30px; left: 12.5%; right: 12.5%; height: 1px; background: rgba(201,168,76,.35); z-index: 0; }
.gen-rev-step { text-align: center; position: relative; z-index: 1; }
.gen-rev-step__circle { width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 50%; background: var(--forest); border: 1px solid var(--gold-light); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px var(--forest) inset,0 0 0 4px var(--forest) inset,0 0 0 5px var(--gold-light) inset; }
.gen-rev-step__num { font-size:24px; color: var(--gold-light); }
.gen-rev-step__title { font-size: 26px; color: var(--cream); margin: 0 0 8px; line-height: 1.1; }
.gen-rev-step__text { font-family: var(--serif-body); font-size:18px; color: rgba(255,255,255,.75); line-height: 1.55; margin: 0 0 14px; padding: 0 8px; }

/* formulaire */
.gen-rev-form-section { padding: 80px 48px; }
.gen-rev-form-sub { font-family: var(--serif-italic); font-style: italic; font-size:21px; color: var(--ink-2); max-width: 620px; margin: 10px auto 0; }
.gen-rev-form-frame { background: var(--paper); border: 1px solid var(--gold-deep); padding: 6px; box-shadow: 0 30px 60px rgba(15,26,10,.08); }
.gen-form-error-block { padding: 40px; text-align: center; font-family: var(--serif-body); color: #933; }
.gen-rev-altcontact { margin-top: 32px; padding: 22px 28px; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(168,137,52,.4); background: rgba(28,58,15,.04); }
.gen-rev-altcontact__text { font-family: var(--serif-body); font-size:19px; color: var(--ink-2); }

/* partenaires */
.gen-rev-partners { padding: 70px 48px 100px; background: rgba(28,58,15,.04); border-top: 1px solid rgba(28,58,15,.12); }
.gen-rev-partners__sub { font-family: var(--serif-italic); font-style: italic; font-size:19px; color: var(--ink-2); margin-top: 10px; }
.gen-rev-partners-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(168,137,52,.4); border-bottom: 1px solid rgba(168,137,52,.4); }
.gen-rev-partner { padding: 26px 22px; text-align: center; }
.gen-rev-partner:not(:nth-child(4n+1)) { border-left: 1px solid rgba(168,137,52,.25); }
.gen-rev-partner:nth-child(n+5) { border-top: 1px solid rgba(168,137,52,.25); }
.gen-rev-partner__name { font-size: 22px; color: var(--forest); line-height: 1.1; margin-bottom: 4px; }

/* ===================================================================
   LOT ÉDITORIAL C — page-reserver
   =================================================================== */
.gen-mb64{margin-bottom:64px}.gen-mb72{margin-bottom:72px}
.gen-kicker-gold-30 { font-size:14px; letter-spacing: .3em; color: var(--gold-deep); }
.gen-op6 { opacity: .6; }
.gen-nav-desc2 { font-size:18px; color: rgba(255,240,210,.7); line-height: 1.55; }
.gen-mono-link { font-family: var(--mono); font-size:15px; letter-spacing: .2em; color: var(--forest); text-decoration: none; }
.gen-price-label { font-family: var(--mono); font-size: 10px; letter-spacing: .15em; color: var(--ink-2); }
.gen-price-big { font-family: var(--serif-body); font-size: 36px; color: var(--forest); line-height: 1; }
.gen-price-med { font-family: var(--serif-body); font-size: 28px; color: var(--forest); }
.gen-price-row { display: flex; align-items: baseline; gap: 8px; }

.gen-reserver-lede { font-family: var(--serif-body); font-size:21px; line-height: 1.7; color: var(--ink-2); max-width: 640px; margin: 0 auto 36px; }
.gen-reserver-cta { font-size:18px; padding: 20px 48px; display: inline-block; }
.gen-stamp-creneau { margin-top: 20px; justify-content: center; font-size:15px; }
.gen-stamp-gift { margin-top: 16px; justify-content: center; font-size:15px; }

.gen-visit-offer { border: 1px solid rgba(28,58,15,.2); padding: 40px; display: flex; flex-direction: column; }
.gen-visit-offer__title { font-family: var(--serif-display); font-size: 32px; color: var(--forest); margin-bottom: 12px; line-height: 1.2; }
.gen-visit-offer__addr { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); line-height: 1.65; margin-bottom: 16px; }
.gen-visit-offer__desc { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); line-height: 1.65; margin-bottom: 20px; flex: 1; }
.gen-visit-offer__foot { border-top: 1px solid rgba(201,168,76,.3); padding-top: 20px; display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.gen-visit-offer__hours { font-family: var(--mono); font-size:14px; letter-spacing: .1em; color: var(--ink-2); line-height: 1.8; text-align: right; }

.gen-reserver-included { background: var(--paper); border: 1px solid rgba(201,168,76,.3); padding: 40px; text-align: center; margin-bottom: 48px; }
.gen-reserver-included__text { font-family: var(--serif-body); font-size:19px; line-height: 1.7; color: var(--ink-2); max-width: 640px; margin: 0 auto; }

.gen-gift-card { border: 1px solid rgba(201,168,76,.35); padding: 32px; background: rgba(201,168,76,.04); }
.gen-gift-card__title { font-family: var(--serif-body); font-size: 22px; color: var(--forest); margin-bottom: 8px; line-height: 1.2; }
.gen-gift-card__text { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); line-height: 1.6; margin-bottom: 16px; }

.gen-reserver-group { text-align: center; padding: 40px; background: rgba(28,58,15,.04); border: 1px solid rgba(28,58,15,.1); }
.gen-reserver-group__text { font-family: var(--serif-body); font-size:19px; line-height: 1.65; color: var(--ink-2); max-width: 560px; margin: 0 auto 24px; }
.gen-reserver-group__links { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }

/* ===================================================================
   Footer Elementor (create-footer.php) — ex-inline
   =================================================================== */
.gen-ft-logo { text-align: center; padding: 20px 0 44px; }
.gen-ft-logo__a { display: inline-block; }
/* Sélecteur renforcé (0,2,0) pour battre `.elementor img{height:auto;max-width:100%}` (0,1,1)
   qui écrasait notre height. Hauteur fixe (≈30% du rendu naturel ~200px) + centrage via le conteneur.
   NB : pas de max-width:% — la base serait le <a> inline-block (largeur = celle de l'img), donc ignorée. */
.gen-ft-logo .gen-ft-logo__img { height: 60px !important; width: auto !important; max-width: 100%; filter: brightness(0) invert(1); opacity: .85; }
.gen-ft-divider { width: 56px; height: 1px; background: rgba(201,168,76,.5); margin: 24px auto 16px; }
.gen-ft-tagline { margin: 0; font-family: var(--sans-caps); font-size:13px; letter-spacing: .4em; text-transform: uppercase; color: rgba(251,250,245,.4); }
.gen-ft-col { padding: 0 16px; }
.gen-ft-col__title { font-family: var(--sans-caps); font-size:14px; letter-spacing: .4em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid rgba(201,168,76,.22); }
.gen-ft-col__list { list-style: none; margin: 0; padding: 0; }
.gen-ft-col__item { margin-bottom: 12px; }
.gen-ft-col__link { font-family: var(--serif-body); font-size:18px; color: rgba(251,250,245,.62); text-decoration: none; }
.gen-ft-bottom { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; flex-wrap: wrap; gap: 12px; }
.gen-ft-copyright { margin: 0; font-family: var(--sans-caps); font-size:11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(251,250,245,.3); white-space: nowrap; }
.gen-ft-legal { display: flex; gap: 20px; }
.gen-ft-legal__link { font-family: var(--sans-caps); font-size:11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(251,250,245,.3); text-decoration: none; white-space: nowrap; }
@media (max-width: 480px) {
  .gen-ft-copyright { font-size:10px; letter-spacing: .1em; }
  .gen-ft-legal { gap: 14px; }
  .gen-ft-legal__link { font-size:10px; letter-spacing: .08em; }
}

/* Header Elementor (create-header.php) — ex-inline */
.gh-cta-group { height: 100%; }
.gen-text-right { text-align: right; }

/* ===================================================================
   Accueil (create-home.php) — ex-inline statiques
   =================================================================== */
.gen-btn-row { display: flex; gap: 16px; flex-wrap: wrap; }
.gen-btn-row--center { justify-content: center; }
.gen-text-left { text-align: left; }
.gen-ribbon__title--hero { font-size: 34px; letter-spacing: .06em; }
.gen-home-histoire__kicker { font-family: var(--sans-caps); font-size:19px; color: var(--gold-deep); letter-spacing: .4em; margin-bottom: 10px; }
.gen-home-histoire__title { font-family: var(--serif-display); font-size: 58px; margin: 0 0 12px; color: var(--ink); line-height: 1.05; }
.gen-home-histoire__text { font-family: var(--serif-body); font-size:24px; line-height: 1.7; color: var(--ink-2); margin: 18px 0 28px; }
.gen-home-elixir__kicker { font-family: var(--sans-caps); font-size:19px; color: var(--gold-light); letter-spacing: .4em; margin-bottom: 26px; }
.gen-home-elixir__title { font-family: var(--serif-display); font-size: 72px; margin: 0; color: var(--cream); line-height: .9; }
.gen-home-elixir__meta { font-family: var(--sans-caps); font-size:19px; color: var(--gold-light); letter-spacing: .4em; margin-top: 16px; }
.gen-orn-rule--elixir { margin: 28px 0; color: rgba(201,168,76,.6); }
.gen-home-elixir__quote { font-family: var(--serif-body); font-style: italic; font-size: 22px; line-height: 1.6; color: var(--cream); opacity: .92; margin: 0 0 32px; border-left: 2px solid var(--gold-light); padding-left: 18px; }
.gen-home-elixir-bottle-wrap { text-align: center; display: flex; align-items: center; justify-content: center; }
.gen-elixir-bottle__rule { width: 30px; height: 1px; background: var(--gold-deep); margin: 6px auto; }
.gen-home-gin__text { max-width: 620px; margin: 0 auto 28px; font-family: var(--serif-body); font-size:18px; line-height: 1.6; color: var(--cream); opacity: .9; text-align: left; }
.gen-home-gin__text p { margin: 0 0 14px; }
.gen-home-gin__text p:last-child { margin: 0; }

/* ══════════════════════════════════════════════════════════════════
   RETOURS CLIENT ACCUEIL — juillet 2026
   ══════════════════════════════════════════════════════════════════ */

/* #1b — Messages déroulants en fondu dans le topbar (remplacent le légal) */
.gen-topbar-msgs {
  position: relative;
  height: 1.2em;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(251,250,245,.72);
}
.gen-topbar-msgs__item {
  position: absolute; inset: 0;
  display: flex; align-items: center;
  opacity: 0;
  animation: gen-topmsg 16s infinite;
}
.gen-topbar-msgs__item:nth-child(1) { animation-delay: 0s; }
.gen-topbar-msgs__item:nth-child(2) { animation-delay: 4s; }
.gen-topbar-msgs__item:nth-child(3) { animation-delay: 8s; }
.gen-topbar-msgs__item:nth-child(4) { animation-delay: 12s; }
@keyframes gen-topmsg {
  0%   { opacity: 0; transform: translateY(3px); }
  3%   { opacity: .72; transform: translateY(0); }
  22%  { opacity: .72; transform: translateY(0); }
  25%  { opacity: 0; transform: translateY(-3px); }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .gen-topbar-msgs__item { animation: none; }
  .gen-topbar-msgs__item:nth-child(1) { opacity: .72; }
}

/* #7b — Titre au-dessus de chaque photo de visite */
.gen-visit-heading {
  font-family: var(--serif-body);
  font-size: 26px; line-height: 1.15; color: var(--ink, #1a1a1a);
  text-align: center; margin: 0 0 16px;
}

/* #9 — 3 derniers articles de la Gazette sur l'accueil */
.gen-home-gz { text-align: center; }
.gen-home-gz__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 28px; margin: 28px 0 32px; text-align: left;
}
.gen-home-gz__card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid rgba(28,58,15,.12);
}
.gen-home-gz__imgwrap { aspect-ratio: 3 / 2; overflow: hidden; background: var(--paper, #f5f2eb); }
.gen-home-gz__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gen-home-gz__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gen-home-gz__cat {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold-deep, #a88934);
}
.gen-home-gz__title {
  font-family: var(--serif-body);
  font-size: 22px; line-height: 1.2; margin: 0; color: var(--ink, #1a1a1a);
}
.gen-home-gz__title a { color: inherit; text-decoration: none; }
.gen-home-gz__title a:hover { color: var(--forest, #1c3a0f); }
.gen-home-gz__date {
  margin-top: auto;
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 15px; color: var(--ink-2, #3a3a3a); opacity: .7;
}
@media (max-width: 900px) {
  .gen-home-gz__grid { grid-template-columns: 1fr; }
}

/* #1b — Mention légale déplacée tout en bas du footer */
.gen-ft-warn {
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(201,168,76,.14);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(251,250,245,.5); text-align: center;
}

/* #3a — Nouveaux ornements d'angle : angle isolé du SVG client, réutilisé aux 4 coins par miroir */
.gen-ornate--frame {
  position: relative;
  padding: 54px 48px;
}
.gen-ornate--frame .gen-ornate__corner {
  display: block;
  width: 52px; height: 52px;
  background: url('../images/ornement-angle.svg') no-repeat center / contain;
}
.gen-ornate--frame .gen-ornate__corner .gen-corner-svg { display: none; }
.gen-ornate--frame .gen-ornate__corner--tl { top: 4px; left: 4px; transform: none; }
.gen-ornate--frame .gen-ornate__corner--tr { top: 4px; right: 4px; transform: scaleX(-1); }
.gen-ornate--frame .gen-ornate__corner--bl { bottom: 4px; left: 4px; transform: scaleY(-1); }
.gen-ornate--frame .gen-ornate__corner--br { bottom: 4px; right: 4px; transform: scale(-1, -1); }

/* #1d — Hero : titre posé sur la photo, sans le bloc blanc (retour client) */
.gen-hero__h1 {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: clamp(34px, 5vw, 64px); line-height: 1.05;
  color: var(--cream, #fbfaf5); text-align: center; margin: 0;
  text-shadow: 0 2px 24px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.6);
}

/* #1e — Diaporama hero (crossfade des 4 slides) */
.gen-hero__slides { position: absolute; inset: 0; z-index: 0; }
.gen-hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; animation: gen-hero-slide 24s infinite;
}
.gen-hero__slide:nth-child(1) { animation-delay: 0s; }
.gen-hero__slide:nth-child(2) { animation-delay: 6s; }
.gen-hero__slide:nth-child(3) { animation-delay: 12s; }
.gen-hero__slide:nth-child(4) { animation-delay: 18s; }
@keyframes gen-hero-slide {
  0%  { opacity: 0; }
  4%  { opacity: 1; }
  25% { opacity: 1; }
  29% { opacity: 0; }
  100%{ opacity: 0; }
}
.gen-hero--slides .gen-hero__overlay { z-index: 1; }
.gen-hero--slides .gen-hero__corners { z-index: 2; }
.gen-hero--slides .gen-hero__content  { z-index: 3; }
@media (prefers-reduced-motion: reduce) {
  .gen-hero__slide { animation: none; }
  .gen-hero__slide:nth-child(1) { opacity: 1; }
}

/* Diaporama photo générique (pages Visiter : La Cave / La Distillerie) */
.gen-diapo {
  position: relative; width: 100%; max-width: 900px; margin: 8px auto 0;
  aspect-ratio: 3 / 2; overflow: hidden; border-radius: 2px;
  box-shadow: 0 10px 34px rgba(15,37,8,.22);
}
.gen-diapo__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; animation: gen-diapo-fade 18s infinite;
}
.gen-diapo__slide:nth-child(1) { animation-delay: 0s; }
.gen-diapo__slide:nth-child(2) { animation-delay: 6s; }
.gen-diapo__slide:nth-child(3) { animation-delay: 12s; }
@keyframes gen-diapo-fade {
  0%   { opacity: 0; }
  5%   { opacity: 1; }
  33%  { opacity: 1; }
  39%  { opacity: 0; }
  100% { opacity: 0; }
}
.gen-diapo--single .gen-diapo__slide { animation: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .gen-diapo__slide { animation: none; }
  .gen-diapo__slide:nth-child(1) { opacity: 1; }
}

/* Hero plein écran avec slider (pages .gen-content-hero, ex. La Cave) :
   réutilise .gen-hero__slides/.gen-hero__slide (mécanisme de la home) mais
   calé sur le fondu 3 slides/18s du diaporama générique ci-dessus — la home
   a 4 photos (24s/6s de décalage), ici 3 (18s/6s, fondu sans coupure). */
.gen-content-hero .gen-hero__slides { position: absolute; inset: 0; z-index: 0; }
.gen-content-hero .gen-hero__slide { animation-name: gen-diapo-fade; animation-duration: 18s; }
.gen-content-hero .gen-hero__overlay { position: absolute; inset: 0; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  .gen-content-hero .gen-hero__slide { animation: none; }
  .gen-content-hero .gen-hero__slide:nth-child(1) { opacity: 1; }
}

/* #2 — Vidéo teaser (YouTube responsive 16:9) */
.gen-home-video { text-align: center; }
.gen-home-video__frame {
  position: relative; width: 100%; max-width: 900px; aspect-ratio: 16 / 9;
  margin: 26px auto 0; overflow: hidden; border: 1px solid rgba(28,58,15,.16);
}
.gen-home-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* #6b — Visuel bouteille Gin sur Mesure */
.gen-home-gin__visual { text-align: center; margin: 0 auto 34px; }
.gen-home-gin__img { display: inline-block; max-width: min(560px, 88%); height: auto; }

/* #8b — Photos « côté humain » dans les blocs commerce */
.gen-commerce-block__photo {
  display: block; width: 100%; height: 190px; object-fit: cover;
  margin-bottom: 26px;
}

/* #7c — mini-carte DANS chaque carte (entre adresse et boutons), cadre .gravure */
.gen-visit-minimap { margin: 4px 0; position: relative; z-index: 0; }
.gen-visit-minimap__inner {
  position: relative;
  background: var(--paper, #f5f2eb);
  border: 1px solid rgba(168,137,52,.4);
  overflow: hidden;
}
.gen-visit-minimap__canvas { height: 200px; width: 100%; }
.gen-visit-card__actions { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
.gen-visit-card__link--map { color: var(--forest, #1c3a0f); }

/* Gin sur Mesure — grille 2 colonnes (texte + visuel), hauteurs égales */
.gen-gin-grid {
  display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 40px;
  align-items: stretch; max-width: 880px; margin: 0 auto;
}
.gen-gin-grid__text { display: flex; flex-direction: column; justify-content: flex-start; }
.gen-gin-grid__text .gen-home-gin__text { max-width: none; }
.gen-gin-grid__visual { display: flex; min-height: 240px; }
.gen-home-gin__panel {
  flex: 1; position: relative; box-sizing: border-box;
  background: var(--paper, #f5f2eb);
  border: 1px solid rgba(201,168,76,.35);
}
.gen-home-gin__panel .gen-home-gin__img {
  position: absolute; inset: 14px;
  width: calc(100% - 28px); height: calc(100% - 28px);
  object-fit: contain; object-position: center;
}
@media (max-width: 768px) {
  .gen-gin-grid { grid-template-columns: 1fr; gap: 24px; }
  .gen-gin-grid__visual { min-height: 260px; }
}

/* ===================================================================
   Pages gammes (create-gamme-pages.php) — ex-inline statiques
   =================================================================== */
.gen-link-inherit { color: inherit; text-decoration: none; }
.gen-gm-orn { color: rgba(201,168,76,.5); max-width: 320px; margin: 0 auto 20px; }
.gen-gm-visual { background: var(--paper); display: flex; align-items: center; justify-content: center; min-height: 240px; padding: 24px; }
.gen-gm-img { max-height: 200px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(0,0,0,.14)); }
.gen-gm-visual-ph { height: 240px; background: var(--paper); display: flex; align-items: center; justify-content: center; }
.gen-gm-bottle-scale { transform: scale(.85); }
.gen-gm-card { position: relative; border: 1px solid rgba(168,137,52,.35); background: #fff; }
.gen-pcat-card__corner { position: absolute; color: var(--gold-deep); }
.gen-pcat-card__corner--tl { top: -1px; left: -1px; }
.gen-pcat-card__corner--tr { top: -1px; right: -1px; }
.gen-pcat-card__corner--bl { bottom: -1px; left: -1px; }
.gen-pcat-card__corner--br { bottom: -1px; right: -1px; }
.gen-gm-card__link { display: flex; flex-direction: column; text-decoration: none; color: inherit; height: 100%; }
.gen-gm-card__body { padding: 18px 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.gen-gm-card__name { font-family: var(--serif-display); font-size: 26px; font-weight: 400; color: var(--ink); margin: 0; line-height: 1.1; }
.gen-gm-card__meta { font-family: var(--sans-caps); font-size:13px; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-deep); }
.gen-gm-card__cta { margin-top: auto; padding-top: 14px; font-family: var(--sans-caps); font-size:13px; letter-spacing: .28em; text-transform: uppercase; color: var(--ink); border-bottom: 1px solid rgba(168,137,52,.4); width: fit-content; }
.gen-gm-hero { padding: 100px 48px 80px; text-align: center; max-width: 800px; margin: 0 auto; }
.gen-gm-breadcrumb { font-family: var(--sans-caps); font-size:14px; letter-spacing: .28em; text-transform: uppercase; color: rgba(201,168,76,.6); margin-bottom: 28px; display: flex; gap: 10px; justify-content: center; }
.gen-gm-chapter { font-family: var(--sans-caps); font-size:14px; letter-spacing: .42em; text-transform: uppercase; color: rgba(201,168,76,.8); margin-bottom: 20px; }
.gen-gm-h1 { font-family: var(--serif-display); font-size: 80px; font-weight: 400; color: var(--cream); margin: 0 0 20px; line-height: .95; }
.gen-gm-sub { font-family: var(--serif-body); font-size:22px; color: rgba(251,250,245,.7); line-height: 1.6; }
.gen-gm-grid-wrap { padding: 80px 48px 100px; max-width: 1200px; margin: 0 auto; }

/* ===================================================================
   FIX visuels produits : le plugin WebP/lazyload enveloppe
   <img class="...__photo"> dans <picture class="...__photo"><img>.
   La classe (max-height/object-fit) atterrit sur le <picture> (non-replaced)
   → l'<img> interne n'est plus contraint et déborde. On contraint l'<img>.
   =================================================================== */
.gen-card__photo { display: flex; align-items: center; justify-content: center; }
.gen-card__photo img { max-height: 200px; width: auto; max-width: 100%; object-fit: contain; display: block; }

.gen-pcat-card__photo { display: flex; align-items: center; justify-content: center; max-width: 100%; }
.gen-pcat-card__photo img { max-height: 240px; width: auto; max-width: 100%; object-fit: contain; display: block; }

.gen-cat-card__photo img { max-height: 240px; width: auto; max-width: 100%; object-fit: contain; display: block; filter: drop-shadow(0 12px 24px rgba(0,0,0,.14)); }

/* ===================================================================
   Sélecteur de format produit (déclinaisons Magnum/Jéroboam · Variante B)
   =================================================================== */
.gen-produit-format { margin: 24px 0 6px; }
.gen-produit-format__label { font-size: 14px; color: var(--gold-deep); letter-spacing: .4em; margin-bottom: 10px; }
.gen-produit-format__opts { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--forest); background: #fff; box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--forest) inset; }
.gen-produit-format__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 156px; padding: 11px 12px; background: transparent; border: 0; border-right: 1px solid rgba(28,58,15,.25); cursor: pointer; color: var(--ink); transition: background .15s ease, color .15s ease; font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif); }
.gen-produit-format__btn:last-child { border-right: 0; }
.gen-produit-format__btn:hover { background: rgba(28,58,15,.05); color: var(--ink); }
.gen-produit-format__btn.is-active { background: var(--forest); color: var(--cream); }
.gen-produit-format__btn-label { font-family: inherit; font-weight: 600; font-size: 22px; line-height: 1; color: inherit; text-align: center; }
.gen-produit-format__btn-price { font-family: inherit; font-weight: 600; font-size: 18px; letter-spacing: .04em; text-transform: none; opacity: .78; color: inherit; }
@media (max-width: 640px) {
  .gen-produit-format__opts { display: flex; width: 100%; }
  .gen-produit-format__btn { flex: 1; min-width: 0; padding: 10px 8px; }
}
/* Contenant unique : même bloc que les formats multiples, mais non interactif
   (retour client — cohérence visuelle, pas de vrai choix à faire). */
.gen-produit-format--single .gen-produit-format__btn { cursor: default; }
.gen-produit-format--single .gen-produit-format__btn:hover { background: var(--forest); }

/* ===================================================================
   PONT WIDGETS ELEMENTOR NATIFS (refonte « administrable »)
   Permet d'utiliser les widgets natifs Titre / Éditeur de texte / Bouton
   sur les sections de marque sans réglage couleur par widget.
   Faible spécificité via :where() → un réglage couleur par widget
   (specificité .elementor-element-XXX, 0-2-0) reste prioritaire.
   =================================================================== */

/* Couleur héritée selon le fond de section --------------------------- */
.gen-dark-slab   :where(.elementor-widget-heading .elementor-heading-title),
.gen-forest-slab :where(.elementor-widget-heading .elementor-heading-title) { color: var(--cream, #fbfaf5); }

.gen-dark-slab   :where(.elementor-widget-text-editor),
.gen-forest-slab :where(.elementor-widget-text-editor) { color: rgba(251,250,245,.82); }

.gen-wallpaper :where(.elementor-widget-heading .elementor-heading-title) { color: var(--ink, #1a1a1a); }
.gen-wallpaper :where(.elementor-widget-text-editor) { color: var(--ink-2, #4a4a4a); }

/* Éditeur de texte : confort de lecture par défaut ------------------- */
.gen-dark-slab   :where(.elementor-widget-text-editor),
.gen-forest-slab :where(.elementor-widget-text-editor),
.gen-wallpaper   :where(.elementor-widget-text-editor) { font-family: var(--serif-body); line-height: 1.75; }

/* Lettrine sur un widget Éditeur de texte (classe .gen-dropcap) ------ */
.elementor-widget-text-editor.gen-dropcap .elementor-widget-container > p:first-of-type::first-letter {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 4.5em; line-height: .65;
  float: left; margin: .06em .12em 0 0; color: var(--ink, #1a1a1a);
}
.gen-dark-slab .elementor-widget-text-editor.gen-dropcap .elementor-widget-container > p:first-of-type::first-letter,
.gen-forest-slab .elementor-widget-text-editor.gen-dropcap .elementor-widget-container > p:first-of-type::first-letter {
  color: var(--gold-light, #e0c070);
}

/* Bouton NATIF Elementor stylé en estampille Génestine -------------- */
/* Classe .gen-ebtn (plein forest) ou .gen-ebtn--ghost / .gen-ebtn--light */
.elementor-widget-button.gen-ebtn .elementor-button,
.elementor-widget-button.gen-ebtn--ghost .elementor-button,
.elementor-widget-button.gen-ebtn--light .elementor-button {
  display: inline-block; padding: 13px 32px; border: 1px solid var(--forest); border-radius: 0;
  font-family: var(--sans-caps); font-size: 16px; letter-spacing: .3em; text-transform: uppercase;
  text-decoration: none; transition: background .22s, color .22s, box-shadow .22s;
}
.elementor-widget-button.gen-ebtn .elementor-button {
  color: var(--paper); background: var(--forest);
  box-shadow: 0 0 0 3px var(--forest) inset, 0 0 0 4px rgba(255,255,255,.15) inset;
}
.elementor-widget-button.gen-ebtn .elementor-button:hover {
  background: transparent; color: var(--forest);
  box-shadow: 0 0 0 3px var(--paper) inset, 0 0 0 4px var(--forest) inset;
}
.elementor-widget-button.gen-ebtn--ghost .elementor-button {
  background: transparent; color: var(--forest); border-color: var(--forest);
  box-shadow: 0 0 0 3px var(--paper) inset, 0 0 0 4px var(--forest) inset;
}
.elementor-widget-button.gen-ebtn--ghost .elementor-button:hover {
  background: var(--forest); color: var(--paper);
  box-shadow: 0 0 0 3px var(--forest) inset, 0 0 0 4px rgba(255,255,255,.15) inset;
}
.elementor-widget-button.gen-ebtn--light .elementor-button {
  background: transparent; border-color: #fff; color: #fff;
  box-shadow: 0 0 0 3px transparent inset, 0 0 0 4px #fff inset;
}
.elementor-widget-button.gen-ebtn--light .elementor-button:hover {
  background: #fff; color: var(--forest); box-shadow: none;
}
.elementor-widget-button[class*="gen-ebtn"] .elementor-button-text { color: inherit; }

/* Hero natif (section image+overlay) : cadre or inset décoratif -------- */
.gen-ehero { position: relative; }
.gen-ehero__border {
  position: absolute; inset: 24px; z-index: 1; pointer-events: none;
  border: 1px solid rgba(201,168,76,.55);
}
@media (max-width: 640px) { .gen-ehero__border { inset: 14px; } }

/* Hero FIDÈLE (.gen-content-hero en section Elementor) : neutraliser le
   contexte de positionnement de TOUS les wrappers Elementor (sélecteurs
   descendants + !important, robustes quelle que soit la structure : row,
   column-wrap, widget…) pour que le cadre doré et les libellés en coin
   se placent par rapport à la SECTION et non à la colonne centrée. */
.elementor-section.gen-content-hero { position: relative; }
.gen-content-hero .elementor-row,
.gen-content-hero .elementor-column,
.gen-content-hero .elementor-column-wrap,
.gen-content-hero .elementor-widget-wrap,
.gen-content-hero .elementor-widget,
.gen-content-hero .elementor-widget-html {
  position: static !important;
  /* "content_position: middle" d'Elementor centre la colonne via un
     transform, ce qui crée un nouveau bloc de référence pour tout enfant en
     position:absolute (dont .gen-content-hero__label) — d'où des libellés mal
     placés (parfois au-dessus du hero, sur le papier peint). On neutralise. */
  transform: none !important;
}
/* .elementor-container : PAS neutralisé en static — Elementor pose lui-même
   `position:relative !important` dessus pour ses sections "stretched" (règle
   plus spécifique/tardive que la nôtre, on ne peut pas la gagner proprement).
   On ancre donc plutôt le libellé/coins sur le widget-container (le wrapper
   direct de notre propre HTML, sans les décalages internes du mécanisme de
   stretch d'Elementor) : c'est un point de repère stable quelle que soit la
   page. */
.gen-content-hero .elementor-widget-container { position: relative !important; }
/* Le sous-titre doit rester en survol du hero (comme le libellé), pas en flux
   normal — sinon il pousse la hauteur réelle du bloc au-delà du hero et une
   partie du texte/coins se retrouve hors de l'image, sur le papier peint. */
.gen-content-hero__sub { position: absolute !important; }

/* Cadre doré du hero — retiré (retour client 2026-09-15) : un seul ornement de
   coin doit rester sur les heros (.gen-hero__corner), pas ce filet + les
   équerres .gen-orn-heading__corner en plus. Règle gardée à display:none
   plutôt que supprimée pour rester réversible sans toucher au contenu des
   pages (le cadre était un pseudo-élément global, pas du contenu par page). */
.gen-content-hero::after { display: none; }

/* Hauteur du hero forcée (spécificité 0-2-0 pour battre Elementor) */
.elementor-section.gen-content-hero { min-height: 420px !important; }
@media (max-width: 768px) { .elementor-section.gen-content-hero { min-height: 320px !important; } }
/* Cause racine du bug « libellé/ornements au-dessus du hero, sur le papier
   peint » (digestifs, etc.) : Elementor pose sa PROPRE règle (générée par
   post, ex. .elementor-20 .elementor-element-XXXX > .elementor-container
   {min-height:520px}) — un réglage de hauteur de colonne fait AVANT la
   standardisation à 420px ci-dessus, jamais mis à jour. La section (flex,
   align-items:center) centre alors ce container plus haut qu'elle sur les
   420px, qui déborde donc de 50px en haut ET en bas — d'où le libellé (ancré
   sur ce container, seul ancêtre position:relative) qui se retrouve au-dessus
   du hero. On réaligne le container sur la même hauteur que la section. */
.gen-content-hero .elementor-container { min-height: 420px !important; }
@media (max-width: 768px) { .gen-content-hero .elementor-container { min-height: 320px !important; } }

/* .elementor-container est le SEUL ancêtre position:relative des enfants
   absolus du hero (.gen-hero__slides/__overlay/__corners, inset:0) — Elementor
   pose position:relative dessus par défaut, mais le laisse à sa largeur
   "boxed" (~1140px kit) même quand la section est en layout Full Width. Sans
   ce correctif, un slider/diaporama injecté dans le widget ne couvre que la
   largeur de cette boîte centrée, pas la section pleine largeur (cf. La Cave,
   retour client 2026-09-16) — et les 4 coins d'ornement ne sont pas non plus
   alignés sur les vrais bords du hero sur aucune page .gen-content-hero. */
.gen-content-hero .elementor-container { max-width: 100% !important; width: 100% !important; }

/* Classes de corps SANS font-family explicite : sur une page Elementor
   l'héritage diffère du template PHP → on force la serif de marque. */
.gen-body-text,
.gen-nav-desc,
.gen-cross-link__desc,
.gen-feature-card__text,
.gen-featured-gz__exc,
.gen-accord-card__text,
.gen-cocktail-featured__note,
.gen-cocktail-featured__svc-val,
.gen-recipe-card__note,
.gen-recipe-card__rline { font-family: var(--serif-body); }

/* Page Elementor : une règle img plus spécifique écrase height:190px → la
   bouteille déborde du cadre (effet « trop zoomé »). On reforce la taille. */
.elementor .gen-accord-card__photo img {
  height: 190px !important; width: auto !important; max-width: 100%; object-fit: contain;
}

/* Lede en widget natif : la classe porte le style sur le widget, mais le <p>
   interne (ajouté par l'éditeur de texte Elementor) doit hériter de ce style.
   font:inherit !important → le p reprend la police/taille/italique de la classe. */
.gen-distiller-lede__text p,
.gen-content-lede__text p {
  font: inherit !important; color: inherit; margin: 0;
}

/* Fond papier peint global d'une page Elementor convertie (flag _gen_wallpaper_bg
   → body.gen-wallpaper-page) : règle unifiée avec .wallpaper, voir plus haut. */
/* Fiche produit : voile blanc dédié (retour client 2026-09 : opacité 40%). Un
   calque en ::before (au lieu du fond direct sur body) permet de doser le
   voile sans toucher le contenu au-dessus. */
body.single-product.gen-wallpaper-page {
  background-image: none;
}
body.single-product.gen-wallpaper-page::before {
  content: "";
  position: fixed; inset: 0; z-index: -1;
  background-image: linear-gradient(rgba(255,255,255,.4), rgba(255,255,255,.4)), url('../images/wallpaper-fond.webp');
  background-size: cover, cover;
  background-position: center center, center center;
  background-repeat: no-repeat, no-repeat;
  background-attachment: fixed, fixed;
  pointer-events: none;
}

/* Sur la page Elementor, le fil d'Ariane est une section à part : la marge haute
   de 24px du hero (prévue après le breadcrumb inline de la prod) le pousse trop bas.
   Scopé à .elementor pour ne pas toucher la prod (template PHP, pas de .elementor). */
.elementor .gen-distiller-hero { margin-top: 0; }

/* Hero catégorie (gen_hero + .gen-content-hero--pcat) : remonter le contenu au-dessus
   du filtre vert (overlay Elementor) comme le faisait .gen-pcat-hero__inner (z-index:1),
   et resserrer le sous-titre en colonne étroite (320px centré). */
.gen-content-hero--pcat > .elementor-container { position: relative !important; z-index: 1; }
.gen-content-hero--pcat .gen-content-hero__sub { max-width: 720px; margin-left: auto; margin-right: auto; }

/* Bouton estampille dans une page Elementor : une feuille Elementor (chargée
   seulement sur ces pages) écrase le box-shadow → la bordure crème intérieure
   disparaît. On la ré-affirme pour les stamp-btn « pleins » (base / --light),
   en laissant les variantes --ghost et --gold gérer leur propre liseré. */
.elementor .stamp-btn:not(.stamp-btn--ghost):not(.stamp-btn--gold) {
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--forest, #1c3a0f) inset;
}
.elementor .stamp-btn:not(.stamp-btn--ghost):not(.stamp-btn--gold):hover,
.elementor .stamp-btn:not(.stamp-btn--ghost):not(.stamp-btn--gold):focus {
  box-shadow: 0 0 0 1px var(--paper, #f5f2eb) inset, 0 0 0 3px var(--forest-deep, #0f2508) inset;
}

/* Collision de noms de classe : .gen-timeline / .gen-timeline__dot /
   .gen-timeline__title / .gen-timeline__text sont réutilisées par DEUX
   composants différents — la frise de Notre Histoire (fond sombre, texte
   clair) et la frise de la page Alambic (.gen-timeline__step, fond clair,
   texte foncé var(--forest)/var(--ink-2)). Étant plus bas dans la feuille,
   les couleurs sombres de l'Alambic gagnaient la cascade sur TOUTES les
   frises, y compris celle de Notre Histoire → texte vert/gris illisible
   sur fond vert sombre. On réaffirme ici, sous un modificateur dédié, les
   valeurs correctes pour Notre Histoire (spécificité + ordre : gagne
   toujours sur les règles .gen-timeline* plus haut dans le fichier). */
.gen-timeline--histoire.gen-timeline { padding-left: 0; margin-bottom: 0; }
.gen-timeline--histoire .gen-timeline__dot { position: relative; left: auto; top: auto; width: auto; height: auto; border-radius: 0; background: none; border: 0; }
.gen-timeline--histoire .gen-timeline__title { font-family: var(--sans-caps, 'Cormorant SC', serif); font-size:15px; letter-spacing: .32em; text-transform: uppercase; color: var(--gold-light, #e0c070); margin: 0 0 10px; }
.gen-timeline--histoire .gen-timeline__text { font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif); font-size:20px; line-height: 1.75; color: rgba(251,250,245,.72); }
