/* ════════════════════════════════════════════════════════════════════
   lefelin — Article v2 (maquette « Blog — À quel âge un chat est adulte »)
   Design éditorial centré : hero serif géant, sections numérotées,
   barre de progression, cartes produit, FAQ accordéon, bandeau produits.
   Tout est scopé sous .lf-article-v2 ; les classes du corps sont lf2-*.
   ════════════════════════════════════════════════════════════════════ */

.lf-article-v2 {
  --lf2-paper: #fdf8ef;
  --lf2-paper-2: #f6ecdd;
  --lf2-card: #fffaf2;
  --lf2-ink: #2a2117;
  --lf2-ink-2: #473c2e;
  --lf2-muted: #8a7a63;
  --lf2-line: #ebddc8;
  --lf2-line-2: #e0cfb4;
  --lf2-accent: #b07a3c;
  --lf2-accent-deep: #845b2c;
  --lf2-accent-tint: #f4eadb;
  --lf2-measure: 820px;
  --lf2-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --lf2-sans: "Manrope", system-ui, sans-serif;
  font-family: var(--lf2-sans);
  font-size: 16px;
  background: var(--lf2-paper);
  color: var(--lf2-ink-2);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
@supports (color: color-mix(in oklab, red, blue)) {
  .lf-article-v2 {
    --lf2-accent-deep: color-mix(in oklab, var(--lf2-accent), #1c1206 30%);
    --lf2-accent-tint: color-mix(in srgb, var(--lf2-accent) 11%, var(--lf2-paper));
  }
}

/* Garde-fous : aucun style embarqué ou global ne doit rétrécir la section.
   display: flow-root contient les marges des derniers blocs du corps —
   sinon elles s'échappent de la section et laissent un bandeau blanc
   (fond du body) entre l'article et le footer. */
section.lf-article-v2 {
  max-width: none;
  margin: 0;
  padding: 0;
  display: flow-root;
}

.lf-article-v2 *,
.lf-article-v2 *::before,
.lf-article-v2 *::after {
  box-sizing: border-box;
}
.lf-article-v2 img {
  display: block;
  max-width: 100%;
}
.lf-article-v2 a {
  color: inherit;
}

.lf-article-v2 .lf2-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 48px);
}

/* ---------- barre de progression de lecture ---------- */
.lf2-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 3px;
  z-index: 2000;
  background: transparent;
  pointer-events: none;
}
.lf2-progress-bar {
  height: 100%;
  width: 0;
  background: var(--lf2-accent);
  transition: width 0.12s linear;
}

/* ---------- hero (éditorial centré) ---------- */
.lf-article-v2 .lf2-hero {
  padding: clamp(24px, 3.5vw, 46px) 0 0;
  text-align: center;
}
.lf-article-v2 .lf2-hero-title {
  font-family: var(--lf2-serif);
  font-weight: 400;
  color: var(--lf2-ink);
  font-size: clamp(3.2rem, 6.4vw, 5.2rem);
  line-height: 1;
  letter-spacing: -0.035em;
  margin: 14px auto 0;
  text-wrap: balance;
  max-width: 20ch;
}
.lf-article-v2 .lf2-hero-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 16px;
  color: var(--lf2-muted);
  font-size: 0.9rem;
  font-weight: 600;
}
.lf-article-v2 .lf2-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.lf-article-v2 .lf2-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--lf2-line-2);
}
.lf-article-v2 .lf2-hero-media {
  margin: clamp(26px, 3.4vw, 40px) auto 0;
  max-width: 940px;
}
.lf-article-v2 .lf2-hero-media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1456 / 720;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--lf2-line-2);
}

/* ---------- chapô (premier paragraphe du corps) ---------- */
.lf-article-v2 .lf2-lede {
  max-width: 54ch;
  margin: clamp(28px, 3.6vw, 44px) auto clamp(28px, 4vw, 46px);
  font-size: clamp(1.12rem, 1.5vw, 1.28rem);
  line-height: 1.62;
  color: var(--lf2-ink-2);
  font-weight: 500;
  text-align: center;
}

/* ---------- sections numérotées de l'article ---------- */
.lf-article-v2 .lf2-sec {
  max-width: 940px;
  margin: 0 auto;
  padding: clamp(36px, 4.5vw, 54px) 0;
  border-top: 1px solid var(--lf2-line);
}
/* Gap symétrique autour des traits : le dernier bloc d'une section ne
   cumule pas sa marge basse avec le padding de section. */
.lf-article-v2 .lf2-sec-copy > :last-child,
.lf-article-v2 .lf2-sec > :last-child {
  margin-bottom: 0;
}
.lf-article-v2 .lf2-sec--intro {
  border-top: none;
  padding-top: 0;
}
.lf-article-v2 .lf2-sec-head {
  display: flex;
  align-items: baseline;
  gap: 18px;
  max-width: var(--lf2-measure);
  margin: 0 auto 8px;
}
.lf-article-v2 .lf2-sec-num {
  font-family: var(--lf2-serif);
  font-weight: 300;
  font-size: 2.1rem;
  line-height: 1;
  color: var(--lf2-accent);
  opacity: 0.85;
  flex: none;
}
.lf-article-v2 .lf2-sec-head h2 {
  font-family: var(--lf2-serif);
  font-weight: 400;
  color: var(--lf2-ink);
  font-size: clamp(1.75rem, 3vw, 2.45rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0;
  text-wrap: balance;
}
.lf-article-v2 .lf2-sec-copy {
  max-width: var(--lf2-measure);
  margin: 0 auto;
}
.lf-article-v2 .lf2-sec-copy h3 {
  font-family: var(--lf2-sans);
  font-weight: 700;
  color: var(--lf2-ink);
  font-size: 1.18rem;
  line-height: 1.35;
  margin: 34px 0 12px;
  display: flex;
  gap: 11px;
  align-items: baseline;
}
.lf-article-v2 .lf2-sec-copy h3::before {
  content: "";
  flex: none;
  width: 18px;
  height: 2px;
  background: var(--lf2-accent);
  border-radius: 2px;
  transform: translateY(-6px);
}
.lf-article-v2 .lf2-sec-copy p {
  font-size: 1.14rem;
  line-height: 1.82;
  margin: 0 0 20px;
  color: var(--lf2-ink-2);
  text-wrap: pretty;
}
.lf-article-v2 .lf2-sec-copy a:not(.lf2-btn) {
  color: var(--lf2-accent-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--lf2-line-2);
  transition: text-decoration-color 0.2s;
}
.lf-article-v2 .lf2-sec-copy a:not(.lf2-btn):hover {
  text-decoration-color: var(--lf2-accent);
}
/* Blocs riches du corps (listes, citations, tableaux, vidéos) */
.lf-article-v2 .lf2-sec-copy strong {
  color: var(--lf2-ink);
}
.lf-article-v2 .lf2-content ul:not([class]) {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}
.lf-article-v2 .lf2-content ul:not([class]) > li {
  position: relative;
  padding-left: 26px;
  margin: 0 0 10px;
  font-size: 1.08rem;
  line-height: 1.7;
}
.lf-article-v2 .lf2-content ul:not([class]) > li::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lf2-accent);
  box-shadow: 0 0 0 4px var(--lf2-accent-tint);
}
.lf-article-v2 .lf2-content ol:not([class]) {
  list-style: none;
  counter-reset: lf2ol;
  margin: 0 0 20px;
  padding: 0;
}
.lf-article-v2 .lf2-content ol:not([class]) > li {
  position: relative;
  counter-increment: lf2ol;
  padding-left: 42px;
  margin: 0 0 12px;
  font-size: 1.08rem;
  line-height: 1.7;
}
.lf-article-v2 .lf2-content ol:not([class]) > li::before {
  content: counter(lf2ol, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0.18em;
  font-family: var(--lf2-serif);
  font-size: 0.92rem;
  color: var(--lf2-accent);
  border: 1px solid var(--lf2-line-2);
  background: var(--lf2-card);
  border-radius: 8px;
  padding: 1px 6px;
  line-height: 1.3;
}
.lf-article-v2 .lf2-sec-copy .lf2-callout {
  margin: 26px 0;
  padding: 18px 22px;
  background: var(--lf2-card);
  border: 1px solid var(--lf2-line-2);
  border-radius: 14px;
}
.lf-article-v2 .lf2-sec-copy .lf2-callout p {
  margin: 0 0 10px;
  font-size: 1.05rem;
}
.lf-article-v2 .lf2-sec-copy .lf2-callout p:last-child {
  margin-bottom: 0;
}
.lf-article-v2 .lf2-sec-copy .lf2-callout img {
  width: 100%;
  aspect-ratio: 1456 / 720;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--lf2-line-2);
}
.lf-article-v2 .lf2-sec-copy blockquote {
  margin: 26px 0;
  padding: 18px 22px;
  background: var(--lf2-card);
  border: 1px solid var(--lf2-line-2);
  border-left: 3px solid var(--lf2-accent);
  border-radius: 0 14px 14px 0;
}
.lf-article-v2 .lf2-sec-copy blockquote p {
  margin: 0;
  font-size: 1.05rem;
}
.lf-article-v2 .lf2-sec-copy table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 26px 0;
  background: var(--lf2-card);
  border: 1px solid var(--lf2-line-2);
  border-radius: 14px;
  overflow: hidden;
  font-size: 0.98rem;
}
.lf-article-v2 .lf2-sec-copy th,
.lf-article-v2 .lf2-sec-copy td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--lf2-line);
  text-align: left;
}
.lf-article-v2 .lf2-sec-copy th {
  background: var(--lf2-paper-2);
  font-weight: 700;
  color: var(--lf2-ink);
}
.lf-article-v2 .lf2-sec-copy tr:last-child td {
  border-bottom: none;
}
.lf-article-v2 .lf2-sec-copy iframe {
  max-width: 100%;
  border-radius: 16px;
  border: 1px solid var(--lf2-line-2);
}
@media (max-width: 620px) {
  .lf-article-v2 .lf2-sec-copy table {
    display: block;
    overflow-x: auto;
  }
}

.lf-article-v2 .lf2-sec-figure {
  margin: 34px auto 0;
  max-width: 940px;
}
/* Figure au fil du texte : espacée du paragraphe suivant, et élargie à la
   largeur du pilote (940px) quand l'écran le permet. */
.lf-article-v2 .lf2-sec-copy .lf2-sec-figure {
  margin: 34px 0 30px;
}
@media (min-width: 1100px) {
  .lf-article-v2 .lf2-sec-copy .lf2-sec-figure {
    width: calc(100% + 120px);
    margin-left: -60px;
    margin-right: -60px;
  }
}
/* Dernier bloc de section : pas de marge basse (gap symétrique des traits). */
.lf-article-v2 .lf2-sec-copy > .lf2-sec-figure:last-child,
.lf-article-v2 .lf2-sec-copy > .lf2-callout:last-child,
.lf-article-v2 .lf2-sec-copy > .lf2-prod:last-child {
  margin-bottom: 0;
}
.lf-article-v2 .lf2-sec-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 1456 / 720;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--lf2-line-2);
}

/* ---------- éléments partagés ---------- */
.lf-article-v2 .lf2-tag {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  background: var(--lf2-accent-tint);
  color: var(--lf2-accent-deep);
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.lf-article-v2 .lf2-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  border-radius: 999px;
  padding: 12px 22px;
  transition: all 0.2s;
  border: 1px solid transparent;
  background: var(--lf2-accent);
  color: #fff;
  box-shadow: 0 8px 22px -12px var(--lf2-accent);
}
.lf-article-v2 .lf2-btn:hover {
  background: var(--lf2-accent-deep);
  color: #fff;
}
.lf-article-v2 .lf2-btn svg {
  transition: transform 0.2s;
}
.lf-article-v2 .lf2-btn:hover svg {
  transform: translateX(3px);
}

/* ---------- carte produit en ligne ---------- */
.lf-article-v2 .lf2-prod {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 0;
  background: var(--lf2-card);
  border: 1px solid var(--lf2-line-2);
  border-radius: 18px;
  overflow: hidden;
  margin: 32px 0;
  box-shadow: 0 18px 40px -30px rgba(60, 40, 15, 0.45);
}
.lf-article-v2 .lf2-prod-media {
  position: relative;
  min-height: 180px;
}
.lf-article-v2 .lf2-prod-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  border: none;
}
.lf-article-v2 .lf2-prod-body {
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.lf-article-v2 .lf2-prod-badge {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lf2-accent-deep);
  background: var(--lf2-accent-tint);
  padding: 5px 10px;
  border-radius: 999px;
}
.lf-article-v2 .lf2-prod .lf2-prod-name {
  font-family: var(--lf2-serif);
  font-weight: 500;
  color: var(--lf2-ink);
  font-size: 1.4rem;
  line-height: 1.2;
  margin: 2px 0 0;
}
.lf-article-v2 .lf2-prod .lf2-prod-desc {
  font-size: 0.96rem;
  line-height: 1.55;
  color: var(--lf2-ink-2);
  margin: 0 0 6px;
}
@media (max-width: 560px) {
  .lf-article-v2 .lf2-prod {
    grid-template-columns: 1fr;
  }
  .lf-article-v2 .lf2-prod-media {
    min-height: 200px;
  }
}

/* ---------- FAQ (accordéon) ---------- */
/* Même largeur que les sections : le trait du haut fait toute la largeur
   (940px) ; le contenu (titre + questions) reste à la largeur du texte. */
.lf-article-v2 .lf2-faq {
  max-width: 940px;
  margin: 0 auto;
  padding: clamp(36px, 4.5vw, 54px) 0;
  border-top: 1px solid var(--lf2-line);
}
.lf-article-v2 .lf2-faq-list,
.lf-article-v2 .lf2-faq > .lf2-faq-title {
  max-width: var(--lf2-measure);
  margin-left: auto;
  margin-right: auto;
}
.lf-article-v2 .lf2-faq-title {
  font-family: var(--lf2-serif);
  font-weight: 400;
  color: var(--lf2-ink);
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0 0 26px;
}
.lf-article-v2 .lf2-faq-list {
  list-style: none;
  /* margin auto conservé (centrage sous le titre) — un `margin: 0` écraserait
     le margin-left/right:auto de la règle partagée plus haut et collerait la
     liste à gauche, désalignée du titre. */
  margin: 0 auto;
  padding: 0;
}
.lf-article-v2 .lf2-faq-item {
  border-top: 1px solid var(--lf2-line);
}
.lf-article-v2 .lf2-faq-item:last-child {
  border-bottom: 1px solid var(--lf2-line);
}
.lf-article-v2 .lf2-faq-q {
  width: 100%;
  background: none;
  border: 0;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 22px 4px;
  text-align: left;
  color: var(--lf2-ink);
  font-family: inherit;
  cursor: pointer;
}
.lf-article-v2 .lf2-faq-qnum {
  font-family: var(--lf2-serif);
  font-size: 1rem;
  color: var(--lf2-accent);
  flex: none;
  line-height: 1.5;
}
.lf-article-v2 .lf2-faq-qtext {
  flex: 1;
  font-weight: 700;
  font-size: 1.08rem;
  line-height: 1.4;
}
.lf-article-v2 .lf2-faq-chev {
  flex: none;
  color: var(--lf2-accent-deep);
  transition: transform 0.25s;
  margin-top: 2px;
}
.lf-article-v2 .lf2-faq-item.is-open .lf2-faq-chev {
  transform: rotate(180deg);
}
.lf-article-v2 .lf2-faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.lf-article-v2 .lf2-faq-a-inner {
  overflow: hidden;
}
.lf-article-v2 .lf2-faq-a-inner p {
  margin: 0 0 22px;
  padding-left: 32px;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--lf2-ink-2);
  max-width: 66ch;
}
.lf-article-v2 .lf2-faq-item.is-open .lf2-faq-a {
  grid-template-rows: 1fr;
}
/* Sans JavaScript, toutes les réponses restent visibles. */
.lf-article-v2 .lf2-faq:not(.lf2-faq--ready) .lf2-faq-a {
  grid-template-rows: 1fr;
}

/* ---------- bandeau CTA (conversion) ---------- */
.lf-article-v2 .lf2-cta {
  max-width: 940px;
  margin: clamp(36px, 4.5vw, 54px) auto 0;
  padding: clamp(36px, 4.4vw, 56px) clamp(24px, 4vw, 56px);
  background:
    radial-gradient(120% 140% at 12% 0%, rgba(176, 122, 60, 0.55), transparent 55%),
    linear-gradient(135deg, var(--lf2-accent-deep), var(--lf2-ink) 75%);
  border-radius: 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.lf-article-v2 .lf2-cta::after {
  content: "";
  position: absolute;
  right: -40px;
  bottom: -60px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.08), transparent 70%);
  pointer-events: none;
}
.lf-article-v2 .lf2-cta-eyebrow {
  display: inline-block;
  color: var(--lf2-accent-tint);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.lf-article-v2 .lf2-cta-title {
  font-family: var(--lf2-serif);
  font-weight: 400;
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  line-height: 1.14;
  letter-spacing: -0.015em;
  margin: 0 auto 12px;
  max-width: 22ch;
  text-wrap: balance;
}
.lf-article-v2 .lf2-cta-sub {
  color: rgba(255, 248, 239, 0.84);
  font-size: 1.06rem;
  line-height: 1.6;
  margin: 0 auto 24px;
  max-width: 52ch;
}
.lf-article-v2 .lf2-cta .lf2-btn {
  background: #fff;
  color: var(--lf2-ink);
  box-shadow: 0 14px 34px -16px rgba(0, 0, 0, 0.6);
  position: relative;
}
.lf-article-v2 .lf2-cta .lf2-btn:hover {
  background: var(--lf2-accent-tint);
  color: var(--lf2-ink);
}

/* ---------- produits liés (bandeau de fin) ---------- */
.lf-article-v2 .lf2-related {
  margin: clamp(36px, 5vw, 64px) auto clamp(48px, 6vw, 84px);
  background: var(--lf2-paper-2);
  border: 1px solid var(--lf2-line);
  border-radius: 26px;
  padding: clamp(34px, 4vw, 56px);
}
.lf-article-v2 .lf2-related-head {
  text-align: center;
  max-width: 620px;
  margin: 0 auto clamp(28px, 3vw, 40px);
}
.lf-article-v2 .lf2-related-title {
  font-family: var(--lf2-serif);
  font-weight: 400;
  color: var(--lf2-ink);
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin: 14px 0 10px;
  text-wrap: balance;
}
.lf-article-v2 .lf2-related-sub {
  color: var(--lf2-ink-2);
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0;
}
.lf-article-v2 .lf2-related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(18px, 2.5vw, 28px);
  max-width: 820px;
  margin: 0 auto;
}
.lf-article-v2 .lf2-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  background: var(--lf2-card);
  border: 1px solid var(--lf2-line-2);
  border-radius: 18px;
  overflow: hidden;
  transition: all 0.25s;
}
.lf-article-v2 .lf2-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 50px -30px rgba(60, 40, 15, 0.55);
  border-color: var(--lf2-accent);
}
.lf-article-v2 .lf2-card-media {
  position: relative;
  aspect-ratio: 16/11;
  overflow: hidden;
}
.lf-article-v2 .lf2-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
  border-radius: 0;
  border: none;
}
.lf-article-v2 .lf2-card:hover .lf2-card-media img {
  transform: scale(1.04);
}
.lf-article-v2 .lf2-card-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(253, 248, 239, 0.92);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  color: var(--lf2-accent-deep);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 11px;
  border-radius: 999px;
}
.lf-article-v2 .lf2-card-body {
  padding: 20px 22px 22px;
}
.lf-article-v2 .lf2-card-name {
  font-family: var(--lf2-serif);
  font-weight: 500;
  color: var(--lf2-ink);
  font-size: 1.32rem;
  line-height: 1.25;
  margin: 0 0 4px;
}
.lf-article-v2 .lf2-card-tag {
  color: var(--lf2-muted);
  font-size: 0.94rem;
  margin: 0 0 14px;
}
.lf-article-v2 .lf2-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--lf2-accent-deep);
}
.lf-article-v2 .lf2-card-cta svg {
  transition: transform 0.2s;
}
.lf-article-v2 .lf2-card:hover .lf2-card-cta svg {
  transform: translateX(3px);
}
@media (max-width: 620px) {
  .lf-article-v2 .lf2-related-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lf-article-v2 *,
  .lf-article-v2 *::before,
  .lf-article-v2 *::after,
  .lf2-progress-bar {
    animation: none !important;
    transition: none !important;
  }
}

/* ===========================================================================
   Rythme vertical homogène + symétrie (19 juin 2026) — appliqué GLOBALEMENT à
   tous les articles v2 (remplace les <style id="lf-rhythm"> par-article).
   Écarts uniformes : titre→1er bloc 16, blocs texte 22, sous-titres 28/14,
   méta 24/24, sections/figures/cartes/FAQ 42 (symétriques haut/bas), bloc CTA
   « Le Félin équipe votre chat » 42/42. Mesuré au navigateur sur arbre+panier.
   Placé en fin de feuille (≥ spécificité d'origine, gagne par ordre source).
   =========================================================================== */
.lf-article-v2 .lf2-sec {
  padding-top: 42px;
  padding-bottom: 42px;
}
.lf-article-v2 .lf2-sec-head {
  margin-bottom: 16px;
}
.lf-article-v2 .lf2-sec-copy > p,
.lf-article-v2 .lf2-content ul:not([class]),
.lf-article-v2 .lf2-content ol:not([class]),
.lf-article-v2 .lf2-sec-copy > blockquote,
.lf-article-v2 .lf2-sec-copy > table {
  margin-top: 0;
  margin-bottom: 22px;
}
.lf-article-v2 .lf2-sec-copy h3 {
  margin: 28px 0 14px;
}
.lf-article-v2 .lf2-sec-copy .lf2-sec-figure,
.lf-article-v2 .lf2-sec-copy .lf2-callout,
.lf-article-v2 .lf2-sec-copy .lf2-prod {
  margin-top: 22px;
  margin-bottom: 22px;
}
.lf-article-v2 .lf2-sec-copy > :first-child {
  margin-top: 0;
}
.lf-article-v2 .lf2-sec-copy > :last-child,
.lf-article-v2 .lf2-sec > :last-child {
  margin-bottom: 0;
}
.lf-article-v2 .lf2-sec-copy > .lf2-sec-figure:last-child,
.lf-article-v2 .lf2-sec-copy > .lf2-prod:last-child,
.lf-article-v2 .lf2-sec-copy > .lf2-callout:last-child {
  margin-top: 42px;
}
.lf-article-v2 .lf2-hero-meta {
  margin-top: 24px;
}
.lf-article-v2 .lf2-hero-media {
  margin-top: 24px;
}
.lf-article-v2 .lf2-ctab {
  margin-top: 0 !important;
  margin-bottom: 42px !important;
}
.lf-article-v2 .lf2-faq {
  padding-top: 42px;
}

/* ---------------------------------------------------------------------------
   Image directement suivie d'un bloc produit : gap divisé par 2 (42 → 21px).
   UNIQUEMENT ce cas (figure + lf2-prod adjacents) — les autres écarts inchangés.
   :has() abaisse aussi la marge basse de la figure (sinon collapse à 22) ;
   dégradé propre à 22px si le navigateur ne gère pas :has().
   --------------------------------------------------------------------------- */
.lf-article-v2 .lf2-sec-copy .lf2-sec-figure:has(+ .lf2-prod) {
  margin-bottom: 21px;
}
.lf-article-v2 .lf2-sec-copy .lf2-sec-figure + .lf2-prod {
  margin-top: 21px;
}

/* ── Bibliographie (Sources et références) — bloc commun à tous les articles ── */
.bibliography{margin:38px 0 0;padding:24px 28px;background:var(--paper-2,#f7f1e6);border:1px solid var(--line,#e7dcc8);border-radius:16px}
.bibliography h3{font-family:var(--serif,'Fraunces',serif);font-weight:500;color:var(--ink,#2a2520);font-size:1.15rem;margin:0 0 12px;padding:0;border:none}
.bibliography-list{margin:0;padding-left:20px}
.bibliography-list li{margin:0 0 8px;font-size:.9rem;line-height:1.55;color:var(--muted,#6b6257)}
.bibliography-list li strong{color:var(--ink-2,#1f1a14)}
.bibliography-list li a{color:inherit}
