/* Articles du blog (AGRI-60). Variables : modules/charte/charte.css.
 * Repères : colonne de 65 à 75 caractères, texte 17 px (16 px sur téléphone), interligne 1,7, titres Lexend. */

.ast-container:has(.ab-article) { display: block; max-width: none; padding: 0; }
.ast-container:has(.ab-article) > #primary { width: 100%; margin: 0; padding: 0; float: none; }
.ab-article { width: 100%; padding: var(--ab-espace-2) 16px var(--ab-espace-3); font-family: var(--ab-police-texte); color: var(--ab-texte); }
.ab-article > .ab-article__corps { max-width: 720px; margin: 0 auto !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; float: none; width: auto; } /* ≈ 70 caractères à 17 px ; Astra impose marges et fond à l'article */
.ab-article .ab-fil { display: flex; flex-wrap: wrap; gap: .375rem; font-size: var(--ab-taille-petit); margin-bottom: var(--ab-espace-2); }
.ab-article .ab-fil a { color: var(--ab-vert-fonce); }

.ab-article__rubrique { display: inline-flex; align-items: center; min-height: 32px; padding: 0 .75rem; border-radius: 999px; background: var(--ab-fond); color: var(--ab-vert-fonce); font: 600 13px/1 var(--ab-police-texte); text-decoration: none; text-transform: uppercase; letter-spacing: .03em; }
.ab-article__rubrique:hover { background: var(--ab-ligne); color: var(--ab-encre); }
.ab-article h1.ab-article__titre { margin: .75rem 0 .5rem; font-family: var(--ab-police-titre); font-weight: 600; font-size: clamp(28px, 4vw + 12px, 44px); line-height: 1.15; letter-spacing: -.01em; color: var(--ab-encre); }
.ab-article__chapo { margin: 0 0 .75rem; font-size: 19px; line-height: 1.55; color: var(--ab-encre); }
.ab-article__meta { display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: 0; font-size: var(--ab-taille-petit); color: var(--ab-texte); }

.ab-article__image { max-width: 1100px; margin: var(--ab-espace-3) auto; }
.ab-article__image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--ab-rayon-carte); }
@media (min-width: 1150px) { .ab-article__image { margin-left: calc((720px - 1100px) / 2); margin-right: calc((720px - 1100px) / 2); } }

/* Texte de l'article : la typographie de la charte s'impose aux styles hérités (Elementor, Astra, blocs). */
.ab-article__contenu { font-size: 17px; line-height: 1.7; color: var(--ab-texte); overflow-wrap: break-word; }
.ab-article__contenu :is(p, li) { font-size: inherit; line-height: inherit; }
.ab-article__contenu > * + * { margin-top: 1.1em; }
.ab-article__contenu :is(h1, h2, h3, h4) { font-family: var(--ab-police-titre); font-weight: 600; color: var(--ab-encre); line-height: 1.25; scroll-margin-top: 90px; }
.ab-article__contenu :is(h1, h2) { font-size: clamp(22px, 1.2vw + 17px, 28px); margin: 2em 0 .6em; }
.ab-article__contenu h3 { font-size: clamp(19px, .6vw + 16px, 22px); margin: 1.6em 0 .5em; }
.ab-article__contenu > :is(h1, h2):first-child { margin-top: 0; } /* titre en tête du texte : pas de grand vide sous l'image */
.ab-article__contenu h4 { font-size: 18px; margin: 1.4em 0 .4em; }
.ab-article__contenu a { color: var(--ab-vert-fonce); text-decoration: underline; text-underline-offset: 2px; }
.ab-article__contenu :is(ul, ol) { padding-left: 1.4em; }
.ab-article__contenu li + li { margin-top: .35em; }
.ab-article__contenu img { max-width: 100%; height: auto; border-radius: var(--ab-rayon); }
.ab-article__contenu figure { margin: 1.6em 0; }
.ab-article__contenu figcaption { margin-top: .5em; font-size: var(--ab-taille-petit); color: var(--ab-texte); text-align: center; }
.ab-article__contenu blockquote { margin: 1.6em 0; padding: .5em 0 .5em 1.25em; border-left: 4px solid var(--ab-vert); color: var(--ab-encre); font-style: normal; }
.ab-article__contenu table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: 15px; }
.ab-article__contenu :is(th, td) { padding: .5rem .75rem; border: 1px solid var(--ab-ligne); text-align: left; vertical-align: top; }
.ab-article__contenu th { background: var(--ab-fond); color: var(--ab-encre); font-weight: 600; }
.ab-article__contenu iframe { max-width: 100%; }
@media (max-width: 600px) { .ab-article__contenu { font-size: var(--ab-taille-texte); line-height: 1.65; } .ab-article__chapo { font-size: 17px; } }

/* Encadré d'action en fin d'article */
.ab-article__action { margin: var(--ab-espace-3) 0 0; padding: var(--ab-espace-3); background: var(--ab-fond); border-radius: var(--ab-rayon-carte); }
.ab-article__action-titre { margin: 0 0 .25rem; font: 600 20px/1.3 var(--ab-police-titre); color: var(--ab-encre); }
.ab-article__action-texte { margin: 0 0 1rem; }

/* À lire aussi */
.ab-proches { max-width: 1100px; margin: calc(var(--ab-espace-3) * 2) auto 0; }
.ab-article h2.ab-proches__titre { margin: 0 0 var(--ab-espace-2); font-family: var(--ab-police-titre); font-weight: 600; font-size: 24px; color: var(--ab-encre); }
.ab-proches__liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: var(--ab-espace-2); margin: 0; padding: 0; list-style: none; }
.ab-proche { position: relative; display: flex; flex-direction: column; gap: .375rem; padding-bottom: .875rem; background: var(--ab-blanc); border: 1px solid var(--ab-ligne); border-radius: var(--ab-rayon-carte); overflow: hidden; transition: border-color var(--ab-transition), box-shadow var(--ab-transition); }
.ab-proche:hover, .ab-proche:focus-within { border-color: var(--ab-vert-fonce); box-shadow: var(--ab-ombre); }
.ab-proche__image { aspect-ratio: 16 / 9; background: var(--ab-fond); }
.ab-proche__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-proche__date { margin: .25rem .875rem 0; font-size: 13px; color: var(--ab-texte); }
.ab-article h3.ab-proche__titre { margin: 0 .875rem; font-family: var(--ab-police-titre); font-weight: 600; font-size: 17px; line-height: 1.35; }
.ab-proche__titre a { color: var(--ab-encre); text-decoration: none; }
.ab-proche__titre a::after { content: ""; position: absolute; inset: 0; }
.ab-proche:has(a:focus-visible) { outline: 3px solid var(--ab-encre); outline-offset: 2px; }

/* ---- Listes d'articles (AGRI-138 étape 4, gabarit-liste.php) ---- */
.ab-liste { font-family: var(--ab-police-texte); color: var(--ab-texte); }
.ab-liste .ab-fil { font-size: 14px; margin-bottom: var(--ab-espace-1); }
.ab-liste .ab-fil a { color: var(--ab-vert-fonce); display: inline-block; padding-block: 11px; }
.ab-liste__entete h1 { font: 600 clamp(28px, 2.4vw + 16px, 40px)/1.2 var(--ab-police-titre); color: var(--ab-encre); margin: 0 0 .5rem; }
.ab-liste__intro { max-width: 70ch; font-size: 17px; line-height: 1.6; margin: 0 0 var(--ab-espace-2); }
.ab-liste__rubriques { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 var(--ab-espace-3); padding: 0; list-style: none; }
.ab-liste .ab-puce { display: inline-flex; align-items: center; gap: .4rem; min-height: var(--ab-cible-serree); padding: 0 14px; border: 1px solid var(--ab-ligne); border-radius: 999px; background: var(--ab-blanc); color: var(--ab-encre); font-size: 15px; font-weight: 600; text-decoration: none; }
.ab-liste .ab-puce:hover { border-color: var(--ab-vert-fonce); }
.ab-liste .ab-puce--active { background: var(--ab-encre); border-color: var(--ab-encre); color: var(--ab-blanc); }
.ab-liste .ab-puce__nb { font-size: 12px; font-weight: 600; opacity: .75; }
.ab-liste__cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ab-espace-2); margin: 0; padding: 0; list-style: none; }
@media (max-width: 1000px) { .ab-liste__cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ab-liste__cartes { grid-template-columns: 1fr; } }
.ab-liste__carte { display: flex; }
.ab-liste__lien { display: flex; flex-direction: column; width: 100%; background: var(--ab-blanc); border: 1px solid var(--ab-ligne); border-radius: var(--ab-rayon-carte); overflow: hidden; color: inherit; text-decoration: none; transition: border-color var(--ab-transition); }
.ab-liste__lien:hover { border-color: var(--ab-vert-fonce); }
.ab-liste__lien:focus-visible { outline: 3px solid var(--ab-encre); outline-offset: 2px; }
.ab-liste__image { aspect-ratio: 16 / 9; background: var(--ab-fond); }
.ab-liste__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-liste__corps { display: flex; flex-direction: column; gap: .4rem; flex: 1; padding: 16px 18px 18px; }
.ab-liste__rubrique { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--ab-vert-fonce); }
.ab-liste__titre { margin: 0; font: 600 19px/1.3 var(--ab-police-titre); color: var(--ab-encre); }
.ab-liste__resume { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ab-texte); }
.ab-liste__meta { margin: auto 0 0; padding-top: .5rem; font-size: 13px; color: var(--ab-texte); }
.ab-liste__suite { font-size: 15px; font-weight: 700; color: var(--ab-vert-fonce); }
.ab-liste__pages ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: var(--ab-espace-3) 0 0; padding: 0; list-style: none; }
.ab-liste__pages :is(a, span) { display: inline-flex; align-items: center; justify-content: center; min-width: var(--ab-cible-serree); min-height: var(--ab-cible-serree); padding: 0 12px; border: 1px solid var(--ab-ligne); border-radius: var(--ab-rayon); color: var(--ab-vert-fonce); font-weight: 600; text-decoration: none; }
.ab-liste__pages .current { background: var(--ab-encre); border-color: var(--ab-encre); color: var(--ab-blanc); }
.ab-liste__vide { padding: var(--ab-espace-3); background: var(--ab-fond); border-radius: var(--ab-rayon-carte); text-align: center; }

/* AGRI-152 : dans le texte des articles, les blocs repris des anciens articles (.abx-wrap, sections) n'ajoutent pas de
 * marge latérale ; encadrés et cartes à --ab-carte-pad ; listes indentées de 1,2 em. */
.ab-article__contenu :is(.abx-wrap, article, section, .wrap, .container) { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
.ab-article__contenu :is(aside, .abx-card, .card, .carte, .box, .callout, .encadre, .note, [class*="card"], [class*="box"]) { padding-left: var(--ab-carte-pad) !important; padding-right: var(--ab-carte-pad) !important; }
.ab-article__contenu :is(ul, ol) { padding-left: 1.2em !important; margin-left: 0 !important; }
