/* ===================================================================
   Génestine - Composants page (utilisés dans les widgets HTML Elementor)
   Dépend des tokens définis dans inc/elementor-tokens.php
   =================================================================== */

/* ===================================================================
   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);
}

/* ── 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 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);
    font-size: 10px; letter-spacing: .28em; 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 {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.05) 0 20px, transparent 20px 40px);
  pointer-events: none;
}
.gen-wallpaper {
  background: #ffffff;
  position: relative;
}
.gen-wallpaper::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url('../images/wallpaper-damas.png');
  background-repeat: repeat;
  background-size: 600px auto;
  opacity: 0.18;
  pointer-events: none;
}

/* ── 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;
}
.gen-hero__corner {
  position: absolute; color: var(--gold, #c9a84c);
}
.gen-hero__corner--tl { top: 0; left: 0; }
.gen-hero__corner--tr { top: 0; right: 0; transform: rotate(90deg); }
.gen-hero__corner--bl { bottom: 0; left: 0; transform: rotate(270deg); }
.gen-hero__corner--br { bottom: 0; right: 0; transform: rotate(180deg); }
.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:16px; 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: 16px; 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: 18px 64px;
  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:16px; letter-spacing: .35em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); text-align: center; margin-bottom: 6px;
}
.gen-ribbon__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 60px; 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: -28px;
  border-top: 28px solid transparent;
  border-bottom: 28px solid transparent;
  border-right: 28px solid var(--gold-deep, #a88934);
}
.gen-ribbon__flag--right {
  right: -28px;
  border-top: 28px solid transparent;
  border-bottom: 28px solid transparent;
  border-left: 28px solid var(--gold-deep, #a88934);
}

/* ── Marquee ────────────────────────────────────────────────────── */
.gen-marquee {
  background: var(--forest, #1c3a0f);
  color: var(--gold-light, #e0c070);
  padding: 14px 0; overflow: hidden;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:16px; letter-spacing: .35em; 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: 12px; 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: 12px; 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-display, 'OldAlfie', Georgia, serif);
  font-size: 12px; 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:16px; 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-display, 'OldAlfie', Georgia, serif);
  font-size:16px; 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-display, 'OldAlfie', Georgia, serif);
  font-size: 26px; margin: 0 0 4px; color: var(--ink, #1a1a1a);
}
.gen-card__meta {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; 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: 9px; letter-spacing: .4em; color: var(--gold-deep, #a88934);
}
.gen-elixir-bottle__name {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 26px; color: var(--ink, #1a1a1a);
}
.gen-elixir-bottle__vintage {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  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-display, 'OldAlfie', Georgia, serif);
  font-size: 48px; color: var(--gold-light, #e0c070); line-height: 1;
}
.gen-step__title {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:18px; 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: 16px; 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;
  background: #fff; padding: 16px 20px;
  border: 1px solid var(--gold-deep, #a88934);
  box-shadow: 0 0 0 4px #fff inset, 0 0 0 5px var(--gold-deep, #a88934) inset;
}
.gen-visit-card__tag {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; color: var(--gold-deep, #a88934); letter-spacing: .3em;
}
.gen-visit-card__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 42px; color: var(--ink, #1a1a1a); margin: 2px 0;
}
.gen-visit-card__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; 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: 17px; 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: 10px; 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:16px; 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(--ink, #1a1a1a); 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:16px; 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-display, 'OldAlfie', Georgia, serif);
  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: 17px; 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; }
.gen-archive-hero__corner  { position: absolute; color: var(--gold-deep, #a88934); }
.gen-archive-hero__corner--tl { top: 0; left: 0; }
.gen-archive-hero__corner--tr { top: 0; right: 0; }
.gen-archive-hero__corner--bl { bottom: 0; left: 0; }
.gen-archive-hero__corner--br { bottom: 0; right: 0; }
.gen-archive-hero__kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:16px; 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: 12px; 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: 10px; 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: 17px; 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-display, 'OldAlfie', Georgia, serif);
  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: 12px; letter-spacing: .3em; color: var(--gold-deep, #a88934);
}
.gen-taxo-card__desc {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 18px; 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);
  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 ──────── */
.gen-produit-breadcrumb {
  max-width: 1240px; margin: 0 auto;
  padding: 24px 48px 0;
  font-family: var(--mono, monospace);
  font-size:16px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-deep, #a88934);
}
.gen-produit-breadcrumb a {
  color: var(--gold-deep, #a88934); text-decoration: none;
  transition: color .15s;
}
.gen-produit-breadcrumb a:hover { color: var(--gold-light, #e0c070); }
.gen-produit-breadcrumb__sep  { margin: 0 12px; opacity: .45; }
.gen-produit-breadcrumb__current { color: var(--ink, #1a1a1a); opacity: .75; }
@media (max-width: 640px) {
  .gen-produit-breadcrumb { padding: 16px 24px 0; font-size: 10px; }
  .gen-produit-breadcrumb__sep { margin: 0 8px; }
}

/* Kicker et titre sur fond clair */
.gen-produit-kicker {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size:16px; 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: 19px; 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: 10px; 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: 10px; 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: 9px; 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: 14px; 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-display, 'OldAlfie', Georgia, serif);
  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:18px; letter-spacing: .2em; vertical-align: bottom; margin-left: 2px;
}
.gen-produit-spec__lbl {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; 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-display, 'OldAlfie', Georgia, serif);
  font-size: 15px; 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" */
.gen-produit-service { position: relative; }
.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:16px; 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-display, 'OldAlfie', Georgia, serif);
  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: 12px; 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: 17px; 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: 18px;
  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:16px; 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: 10px; letter-spacing: .38em; text-transform: uppercase;
  color: var(--ink-2, #3a3a3a); opacity: .55; margin-top: 10px;
}
.gen-cocktail-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.gen-cocktail-card {
  background: rgba(255,255,255,.82); border: 1px solid rgba(168,137,52,.2); overflow: hidden;
}
.gen-cocktail-card__img {
  aspect-ratio: 4/3; background-size: cover; background-position: center;
  background-color: rgba(28,58,15,.12);
}
.gen-cocktail-card__img--placeholder {
  background-image: repeating-linear-gradient(
    45deg, rgba(168,137,52,.08) 0 8px, transparent 8px 16px
  );
}
.gen-cocktail-card__body { padding: 20px 22px 24px; }
.gen-cocktail-card__name {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 24px; color: var(--ink, #1a1a1a); font-weight: 400; margin: 0 0 12px; line-height: 1.2;
}
.gen-cocktail-card__link {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); text-decoration: none;
}
.gen-cocktail-card__link:hover { text-decoration: underline; }

/* Cocktail featured (meta) */
.gen-cocktail-featured {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 60px;
  max-width: 880px;
  margin: 0 auto;
  align-items: start;
}
.gen-cocktail-featured__ingr h3 {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin: 0 0 18px;
}
.gen-cocktail-featured__ingr ul { list-style: none; padding: 0; margin: 0; }
.gen-cocktail-featured__ingr li {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 17px; color: var(--ink, #1a1a1a);
  padding: 9px 0 9px 16px; border-bottom: 1px solid rgba(168,137,52,.18);
  position: relative;
}
.gen-cocktail-featured__ingr li::before {
  content: '·'; position: absolute; left: 0;
  color: var(--gold-deep, #a88934); font-size: 20px; line-height: 1;
}
.gen-cocktail-featured__recette p {
  font-family: var(--serif-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 17px; line-height: 1.85; color: var(--ink-2, #3a3a3a); margin: 0 0 18px;
}
.gen-cocktail-featured__recette p:first-child {
  font-family: var(--serif-italic, 'MinionPro BoldIt', Georgia, serif);
  font-size: 18px; font-style: italic; color: var(--ink, #1a1a1a);
  margin-bottom: 24px;
}
.gen-cocktail-grid--mt { margin-top: 60px; }

/* 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: 17px; 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:16px; 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; }
  .gen-cocktail-grid { grid-template-columns: repeat(2,1fr); }
}
@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-cocktail-grid { grid-template-columns: 1fr; }
  .gen-produit-related__inner { padding: 48px 32px; }
  .gen-produit-related__title { font-size: 40px; }
  .gen-cocktail-featured { grid-template-columns: 1fr; gap: 36px; }
  .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,1fr); }
  .gen-steps          { grid-template-columns: repeat(2,1fr); }
  .gen-ornate__title  { font-size: 60px; }
  .gen-ribbon__title  { font-size: 42px; }
  .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-display, 'OldAlfie', Georgia, serif);
  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__title {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 11px; 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: 17px; 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: 10px; 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: 10px; 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: 19px;
  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-display); font-size: 9px; 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: 9px; 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: 9px; 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: 10px; 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: 19px; line-height: 1.8; color: var(--ink-2, #3a3a3a);
  text-align: center;
}
@media (max-width: 640px) {
  .gen-pcat-intro { font-size: 17px; 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: 10px; 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-display, 'OldAlfie', Georgia, serif);
  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: 11px; 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-display, 'OldAlfie', Georgia, serif);
  font-size: 32px; color: var(--gold-light, #e0c070);
}
.gen-pcat-editorial__fb-sub-label {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; 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:16px;
  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 {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  font-size: 64px; font-weight: 400; 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: 10px; 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: 15px;
  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-display, 'OldAlfie', Georgia, serif);
  font-size: 20px; 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: 14px; 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: 14px; line-height: 1;
}
.gen-reassurance__title {
  display: block;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 9px; 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:16px;
  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:16px; 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: 17px;
  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: 12px; 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: 9px; letter-spacing: 0;
  margin-left: 6px; vertical-align: middle;
}
.gen-cat-filter-bar__sort {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; 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 {
  aspect-ratio: 3/4; overflow: hidden;
  background: var(--forest, #1c3a0f);
  display: flex; align-items: center; justify-content: center;
}
.gen-cat-card__photo {
  width: 100%; height: 100%; object-fit: cover;
  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-display, 'OldAlfie', Georgia, serif);
  font-size: 9px; 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 */
.gen-cat-card__body {
  padding: 20px 20px 24px;
  display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.gen-cat-card__sub {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 9px; 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: 22px; font-weight: 400; line-height: 1.1;
  color: var(--ink, #1a1a1a); margin: 4px 0 0;
}
.gen-cat-card__price {
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 16px; letter-spacing: .05em;
  color: var(--forest-deep, #0f2508); margin-top: 6px;
}
.gen-cat-card__cta {
  display: inline-block;
  font-family: var(--sans-caps, 'Cormorant SC', serif);
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep, #a88934);
  margin-top: auto; padding-top: 12px;
  border-top: 1px solid rgba(168,137,52,.25);
  transition: letter-spacing .2s;
}
.gen-cat-card:hover .gen-cat-card__cta { letter-spacing: .4em; }

/* ── 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-display, 'OldAlfie', Georgia, serif);
  font-size:18px; 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: 10px; letter-spacing: .4em; text-transform: uppercase;
  color: var(--gold-deep, #a88934); margin-bottom: 10px;
}
.gen-cat-elixir__title {
  font-family: var(--serif-display, 'OldAlfie', Georgia, serif);
  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: 16px; 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;
}
.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: 10px; }
  .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
   ================================================================ */

body.woocommerce-checkout {
  background: var(--paper, #f5f2eb) url('../images/wallpaper-damas.png') repeat;
  background-size: 600px auto;
}
/* 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:16px;
  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-display, 'OldAlfie', Georgia, serif);
  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: 10px;
  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:16px;
  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-display);
  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: 14px;
  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; }
.gen-ck-fields .form-row-first { grid-column: 1; }
.gen-ck-fields .form-row-last  { grid-column: 2; }
.gen-ck-fields .form-row-wide  { grid-column: span 2; }
.gen-ck-fields .form-row label {
  font-family: var(--sans-caps);
  font-size: 10px;
  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: 16px;
  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:16px;
  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: 10px;
  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:18px;
  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-display);
  font-size: 20px;
  color: var(--ink);
  line-height: 1.1;
}
.gen-ck-shipping-card__detail {
  font-family: var(--serif-italic);
  font-style: italic;
  font-size: 14px;
  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; }
.gen-ck-shipping-card__free {
  font-family: var(--serif-display);
  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: 14px;
  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: 16px;
  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); }
.gen-ck-payment #payment .payment_box {
  padding: 16px;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(28,58,15,.2);
  margin-top: 10px;
  font-family: var(--serif-body);
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.7;
}
.gen-ck-payment #payment .place-order { display: none !important; } /* bouton dans sidebar */
.gen-ck-payment #payment .woocommerce-privacy-policy-text { display: none !important; }

/* 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: 10px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.gen-ck-sum-head__title {
  font-family: var(--serif-display);
  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:16px;
  font-weight: 600;
}
.gen-ck-sum-item__name { font-family: var(--serif-display); font-size: 17px; color: var(--ink); line-height: 1.1; }
.gen-ck-sum-item__cat { font-family: monospace; font-size: 9px; letter-spacing: .15em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-ck-sum-item__price { font-family: var(--serif-display); 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: 12px;
  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: 12px; letter-spacing: .2em; color: var(--ink); }
.gen-ck-sum-coupon-remove { font-family: var(--sans-caps); font-size: 9px; 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: 14px;
  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-display); font-size: 40px; color: var(--ink); line-height: 1; }
.gen-ck-sum-tva { font-family: var(--serif-italic); font-style: italic; font-size: 12px; 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:12px;
  box-sizing: border-box;
}

/* Badges SSL */
.gen-ck-ssl-badges {
  display: flex;
  justify-content: center;
  gap: 14px;
  font-family: monospace;
  font-size: 9px;
  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: 12px; 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: 10px; letter-spacing: .25em; text-transform: uppercase; color: var(--ink-2); margin-top: 40px; }

/* 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:16px; 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: 20px; 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: 10px; letter-spacing: .35em; text-transform: uppercase; color: var(--gold-deep); }
.gen-ty-items-head__title { font-family: var(--serif-display); 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: 12px; font-weight: 600; }
.gen-ty-item__name { font-family: var(--serif-display); font-size: 22px; color: var(--ink); line-height: 1.1; }
.gen-ty-item__cat { font-family: monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2); margin-top: 2px; }
.gen-ty-item__price { font-family: var(--serif-display); 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-display); 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: 10px; letter-spacing: .35em; text-transform: uppercase; color: var(--gold-light, #e0c070); }
.gen-ty-delivery__date { font-family: var(--serif-display); 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: 15px; 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: 14px; color: var(--cream); line-height: 1.7; }
.gen-ty-delivery__tracking { margin-top: 14px; font-family: monospace; font-size: 10px; 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: 10px; 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: 12px;
  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: 9px; 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: 14px; 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-display); 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: 16px; }
  /* 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:16px;
  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: 9px;
  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: 16px;
  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: 9px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-deep); margin-bottom: 3px;
}
.gen-cart-item__name {
  font-family: var(--serif-display);
  font-size: 20px; 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-display);
  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-display);
  font-size: 18px;
  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: 12px; 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: 10px; 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:16px; 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: 10px; 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-display);
  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: 9px; 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: 9px; 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: 18px;
}

/* ── Fil d'ariane ── */
.gen-breadcrumb {
  max-width: 1280px; margin: 0 auto; padding: 20px 48px 0;
  font-family: var(--mono); font-size: 16px;
  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: 520px;
  display: flex; align-items: center; justify-content: center;
}
.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: 10px; 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;
  font-family: var(--mono); font-size: 10px; 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: 48px; left: 0; right: 0; text-align: center;
  font-family: var(--serif-italic); font-style: italic; font-size: 18px;
  color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.5); letter-spacing: .04em;
}
.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:16px;
  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: 600px 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:16px; letter-spacing: .4em; text-transform: uppercase; }
.gen-cross-link__head-title { font-family: var(--serif-display); 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: 10px; color: var(--gold-light); letter-spacing: .4em; text-transform: uppercase; }
.gen-cross-link__card-title { font-family: var(--serif-display); font-size: 32px; margin-top: 8px; line-height: 1; }
.gen-cross-link__card-desc { font-family: var(--serif-body); font-size: 14px; opacity: .75; margin-top: 8px; line-height: 1.5; }
.gen-cross-link__card-cta { font-family: var(--sans-caps); font-size: 10px; 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:16px; 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: 16px; 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: 10px; 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-display); 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: 14px; color: var(--ink-2); }
.gen-herbarium-card__dl { margin: 0; font-family: var(--serif-body); font-size:18px; 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: 9px; 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: 9px; 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: 14px; 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: 10px; 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: 9px; 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: 9px; 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: 10px; 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-display); font-size: 28px; color: var(--gold-deep); line-height: 1; flex-shrink: 0; }
.gen-gazette-index-title { font-family: var(--serif-display); font-size: 18px; color: var(--ink); line-height: 1.05; }
.gen-gazette-index-page { font-family: var(--mono); font-size: 9px; 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: 10px; 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: 14px; 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: 10px; 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: 14px; line-height: 1.35; }
.gen-article-toc__link:hover { color: var(--forest); }
.gen-article-toc__num { font-family: var(--serif-display); font-size: 18px; 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: 16px; 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: 18px; 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-display); font-size: 80px; color: var(--gold-deep); line-height: 1;
  background: var(--paper); padding: 0 12px;
}
.gen-article-pullquote__text { font-family: var(--serif-display); font-size: 36px; color: var(--ink); line-height: 1.2; font-style: italic; }
.gen-article-pullquote__attr { font-family: var(--sans-caps); font-size: 10px; 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: 14px;
  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-display); font-size: 22px; color: var(--ink); line-height: 1; }
.gen-wtb-item__dist { font-family: var(--mono); font-size: 10px; color: var(--gold-deep); letter-spacing: .2em; }
.gen-wtb-item__addr { font-family: var(--serif-body); font-size:18px; color: var(--ink-2); }
.gen-wtb-item__type { font-family: var(--sans-caps); font-size: 9px; 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-display); font-size: 17px;
  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-display); font-size: 56px; color: var(--cream); line-height: 1; }
.gen-spec-unit { font-family: var(--sans-caps); font-size: 9px; color: var(--gold-light); letter-spacing: .3em; text-transform: uppercase; margin-top: 4px; }
.gen-spec-label { font-family: var(--serif-body); font-size: 14px; 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: 380px; }
  .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 {
  position: absolute; width: 20px; height: 20px;
}
.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: 10px; 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: 14px;
  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: 14px; 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-display); font-size: 18px; color: var(--ink); margin-bottom: 2px; }
.gen-wtb-item__type { font-size: 9px; letter-spacing: .2em; color: var(--gold-deep); margin-bottom: 4px; }
.gen-wtb-item__addr { font-size:18px; color: var(--ink-2); margin-bottom: 2px; }
.gen-wtb-item__hours { font-size: 12px; color: var(--ink-2); font-family: var(--mono); }
.gen-wtb-item__gamme { font-size:16px; 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: 600px auto;
  opacity: 0.08;
  mix-blend-mode: screen;
  pointer-events: none;
}

/* Wallpaper page body */
.wallpaper {
  background-color: var(--paper);
  background-image: url('../images/wallpaper-damas.png');
  background-repeat: repeat;
  background-size: 600px auto;
}

/* 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: 16px; 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: 'OldAlfie', Georgia, serif;
  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: 10px; color: var(--gold-deep); letter-spacing: .4em; text-transform: uppercase;
}
.gen-chapter-card-v2__title {
  font-family: 'OldAlfie', Georgia, serif;
  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: 15px; 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:16px; 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: 'OldAlfie', Georgia, serif;
  font-size: 52px; color: var(--cream); line-height: 1.15; margin: 24px 0;
}
.gen-manifeste-slab__attr {
  font-family: var(--sans-caps); font-size:16px; letter-spacing: .4em; color: var(--gold-light);
}

/* ── Gazette - masthead journal ── */
.gen-gazette-masthead-v2 { padding: 60px 48px 30px; }
.gen-gazette-masthead-v2__wrap {
  max-width: 1200px; margin: 0 auto;
  padding-bottom: 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: 10px; 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: 12px; 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: 'OldAlfie', Georgia, serif; font-size: 28px; color: var(--gold-deep); line-height: 1; flex-shrink: 0;
}
.gen-gazette-index-text-title {
  font-family: 'OldAlfie', Georgia, serif; font-size: 17px; color: var(--ink); line-height: 1.05;
}
.gen-gazette-index-page {
  font-family: var(--mono); font-size: 9px; 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: 20px; color: var(--gold-deep); margin: 0 0 14px; line-height: 1.4;
}
.gen-gazette-une__body {
  font-family: var(--serif-body); font-size: 17px; 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: 10px; 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: 'OldAlfie', Georgia, serif;
  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: 15px; 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: 10px; 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: 'OldAlfie', Georgia, serif;
  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: 18px; 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; }
  .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: 16px; 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: 'OldAlfie', Georgia, serif;
  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: 18px; 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: 18px; 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: 10px; 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: 14px; 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: 10px; 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: 10px; 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: 12px; 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: 16px; 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: 15px; 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: 18px;
  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: 16px;
  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: 18px;
  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: 12px;
  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: 15px;
  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: 18px;
  color: var(--ink);
  padding: 4px 0;
}
.gen-wtb2-clear {
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink-2);
  padding: 0;
}
.gen-wtb2-count {
  font-size: 10px;
  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: 9px;
  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: 10px;
  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: 20px;
  color: var(--forest);
  line-height: 1.1;
  margin-bottom: 2px;
}
.gen-wtb2-row-addr {
  font-family: var(--serif-body);
  font-size: 13px;
  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: 13px;
  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: 15px;
  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; }
}

/* ── 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 [style*="grid-template-columns:repeat(2,1fr)"],
  .gen-page-terroir [style*="grid-template-columns:repeat(3,1fr)"] {
    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[style*="padding:80px 48px"] { padding-left: 16px !important; padding-right: 16px !important; }
  .gen-page-savoir-faire [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .gen-page-savoir-faire [style*="grid-template-columns:repeat(4,1fr)"] {
    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 [style*="grid-template-columns:360px 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .gen-page-contact aside { position: static !important; }
  .gen-page-contact [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gen-page-contact [style*="grid-template-columns:repeat(3,1fr)"] {
    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 [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gen-page-revendeur [style*="grid-template-columns:repeat(3,1fr)"] {
    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 [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Prix + horaires : empiler verticalement */
  .gen-page-reserver [style*="display:flex;align-items:baseline;justify-content:space-between"] {
    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;
  }
}
