/**
 * Agri360 News — main.css
 *
 * Feuille de style principale du thème. Compilée depuis la maquette v12.
 *
 * Structure :
 * 1. Design tokens (variables CSS)
 * 2. Reset & base
 * 3. Typography
 * 4. Layout (container, wrapper, skin)
 * 5. Topbar
 * 6. Masthead (logo + bannière header)
 * 7. Search bar
 * 8. Main nav (menu sticky + mégamenus)
 * 9. Banner zones
 * 10. Hero zone (article principal + pavé flottant)
 * 11. Section bars (titres de sections)
 * 12. Post cards (grilles d'articles)
 * 13. Single article
 * 14. Sidebar widgets
 * 15. Footer
 * 16. Forms & buttons
 * 17. Utilities
 * 18. Responsive
 */

/* =============================================================
   1. DESIGN TOKENS
   ============================================================= */
:root {
  /* Brand colors */
  --brand-primary: #0a5606;
  --brand-primary-dark: #073d04;
  --brand-secondary: #2e8a28;
  --brand-accent: #d4a017;
  --brand-accent-dark: #a07e10;
  --brand-green: #2d6a4f;
  --brand-green-dark: #1a4d2e;

  /* Neutrals */
  --bg-page: #ffffff;     /* Fond global du site (était #faf8f3 crème — passé en blanc à la demande) */
  --bg-card: #ffffff;
  --bg-soft: #f5f1e8;     /* Crème prononcé : utilisé pour les zones secondaires (newsletter cream, sections soft) */
  --bg-dark: #1a1414;
  --bg-darker: #0f0a0a;

  --text-primary: #1a1414;
  --text-body: #2a2424;
  --text-muted: #6b6660;
  --text-light: #9b958e;
  --text-on-dark: #faf8f3;

  --border: #e7e1d5;
  --border-strong: #cfc5b3;

  /* Typography */
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, system-ui, 'Segoe UI', sans-serif;

  /* Layout */
  --site-width: 1280px;
  --container-pad: 56px;     /* Padding latéral du .container — généreux */
  --skin-top-h: 0px;

  /* Transitions */
  --transition: 200ms ease;

  /* Shadows */
  --shadow-card: 0 1px 3px rgba(20, 20, 20, .05);
  --shadow-hover: 0 4px 18px rgba(20, 20, 20, .12);

  /* Radii */
  --radius-sm: 3px;
  --radius-md: 4px;
  --radius-lg: 6px;
}

/* =============================================================
   2. RESET & BASE
   ============================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--text-body);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
picture,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--brand-primary);
  text-decoration: none;
  transition: color var(--transition);
}

a:hover,
a:focus {
  color: var(--brand-primary-dark);
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
}

ul, ol { padding: 0; margin: 0; list-style: none; }

/* Skip link (accessibilité) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 99999;
  background: var(--bg-dark);
  color: white;
  padding: 12px 18px;
  text-decoration: none;
}
.skip-link:focus {
  left: 8px;
  top: 8px;
}
.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  overflow: hidden;
  word-wrap: normal !important;
}

/* =============================================================
   3. TYPOGRAPHY
   ============================================================= */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--text-primary);
  margin: 0 0 .6em;
}

h1 { font-size: 36px; font-variation-settings: "opsz" 96; }
h2 { font-size: 26px; font-variation-settings: "opsz" 56; }
h3 { font-size: 20px; font-variation-settings: "opsz" 36; }
h4 { font-size: 17px; }
h5 { font-size: 15px; }
h6 { font-size: 14px; }

p { margin: 0 0 1em; }

::selection {
  background: var(--brand-primary);
  color: white;
}

/* =============================================================
   4. LAYOUT — Wrapper centré + zones d'habillage (skin)
   ============================================================= */

/* Le body porte le fond habillage (image ou couleur) */
body.has-habillage {
  background-color: var(--skin-bg, #1a4d2e);
  background-image: var(--skin-image, none);
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
  background-repeat: no-repeat;
}

/* Bandeau d'habillage en haut (push down du site, configurable) */
.skin-top {
  height: var(--skin-top-h, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  background: var(--skin-top-bg, transparent);
  color: white;
  text-align: center;
  font-size: 12px;
  letter-spacing: .04em;
  overflow: hidden;
}
.skin-top:empty,
body:not(.has-habillage) .skin-top { display: none; }

/* Zones d'habillage gauche / droite (visibles uniquement sur grand écran si .has-habillage) */
.skin-zone {
  position: fixed;
  z-index: 1;
  pointer-events: none;
  display: none;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
body.has-habillage .skin-zone { display: flex; }
.skin-zone--left  { top: var(--skin-top-h, 0); left: 0; bottom: 0; width: calc((100vw - var(--site-width, 1280px)) / 2); }
.skin-zone--right { top: var(--skin-top-h, 0); right: 0; bottom: 0; width: calc((100vw - var(--site-width, 1280px)) / 2); }
.skin-zone img { max-width: 100%; height: auto; }
.skin-zone a { display: block; width: 100%; height: 100%; pointer-events: auto; }

/* Wrapper du site : CENTRÉ, max-width 1280px, fond blanc, ombre subtile */
.site-wrapper {
  max-width: var(--site-width, 1280px);
  width: 100%;
  margin: 0 auto;
  background: #ffffff !important; /* Force blanc */
  position: relative;
  z-index: 2;
  box-shadow: 0 0 32px rgba(0, 0, 0, .12);
  min-height: 100vh;
  overflow: hidden;
}

/* Container interne : ne dépasse jamais le wrapper */
.container {
  width: 100%;
  margin: 0 auto;
  padding-left: var(--container-pad) !important;
  padding-right: var(--container-pad) !important;
  max-width: 100%;
  box-sizing: border-box;
}

.site--agri360 {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-main {
  flex: 1;
}

/* Sur écran < 1280px, l'habillage latéral disparaît, le wrapper occupe 100% */
@media (max-width: 1280px) {
  body.has-habillage .skin-zone--left,
  body.has-habillage .skin-zone--right { display: none; }
  .site-wrapper { box-shadow: none; }
}

/* =============================================================
   5. TOPBAR
   ============================================================= */
.topbar {
  background: var(--bg-dark);
  color: var(--text-on-dark);
  font-size: 12.5px;
  letter-spacing: .02em;
  padding: 8px 0;
  border-bottom: 3px solid var(--brand-primary);
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.topbar__date {
  font-weight: 500;
  text-transform: capitalize;
}
.topbar__right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.topbar__nav {
  display: flex;
  gap: 18px;
}
.topbar__nav a,
.topbar__nav li > a {
  color: var(--text-on-dark);
  font-weight: 500;
  font-size: 12.5px;
  transition: color var(--transition);
}
.topbar__nav a:hover {
  color: var(--brand-accent);
}

/* =============================================================
   6. MASTHEAD
   ============================================================= */
.masthead {
  padding: 22px 0;
  background: #ffffff !important; /* Force blanc contre tout override plugin/cache */
  border-bottom: 1px solid var(--border);
}
.masthead__inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
}
.masthead--with-banner .masthead__inner {
  grid-template-columns: auto 728px;
  justify-content: space-between;
}

.brand {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
}
.brand__img {
  height: 64px;
  width: auto;
}
.brand__placeholder {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 32px;
  color: var(--brand-primary);
  letter-spacing: -.03em;
  font-variation-settings: "opsz" 72;
}

/* Quand pas de bannière → logo centré */
.masthead:not(.masthead--with-banner) .masthead__inner {
  grid-template-columns: 1fr;
  justify-items: center;
}

/* =============================================================
   7. SEARCH BAR
   ============================================================= */
.searchbar-strip {
  background: #ffffff !important;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 14px 0;
}
.searchbar-strip__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}
/* Ligne 1 : icône + form (en flex row), pleine largeur */
.searchbar-strip__row1 {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.searchbar-strip__label {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-primary);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 6px;
}
.searchbar-strip__label svg { width: 16px; height: 16px; }
.searchbar-strip__form {
  flex: 1;
  display: flex;
  background: white;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color 200ms, box-shadow 200ms;
}
.searchbar-strip__form:focus-within {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 3px rgba(10, 86, 6, .1);
}
.searchbar-strip__form input {
  flex: 1;
  padding: 10px 16px;
  border: none;
  font: inherit;
  background: transparent;
  color: var(--text-primary);
}
.searchbar-strip__form input:focus { outline: none; }
.searchbar-strip__form input::placeholder { color: var(--text-light); }
.searchbar-strip__form button {
  background: var(--brand-primary);
  color: white;
  padding: 0 22px;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background var(--transition);
}
.searchbar-strip__form button:hover { background: var(--brand-primary-dark); }
/* Ligne 2 : tags populaires alignés à gauche, sous la barre */
.searchbar-strip__suggestions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: 11.5px;
  color: var(--text-muted);
}
.searchbar-strip__suggestions span {
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 10.5px;
}
.searchbar-strip__suggestions a {
  color: var(--brand-primary);
  font-weight: 600;
}

/* =============================================================
   8. MAIN NAV (sticky + mégamenus)
   ============================================================= */
.mainnav {
  background: var(--brand-primary);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 4px 20px rgba(20, 32, 26, .15);
  height: 52px;
}
.mainnav__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 100%;
}
.mainnav__menu {
  grid-column: 2;
  justify-self: center;
  display: flex;
  align-items: center;
  height: 100%;
}
.mainnav__menu > li {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}
.mainnav__menu > li > a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  height: 100%;
  color: var(--text-on-dark);
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: background var(--transition);
}
.mainnav__menu > li > a:hover,
.mainnav__menu > li.active > a,
.mainnav__menu > li.current-menu-item > a {
  background: var(--brand-primary-dark);
  color: white;
}
.mainnav__menu > li.active > a::after,
.mainnav__menu > li.current-menu-item > a::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: var(--brand-accent);
}
.mainnav__menu .menu-arrow {
  font-size: 10px;
  margin-left: 4px;
}

/* Sous-menus standards */
.mainnav__menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: white;
  box-shadow: 0 8px 32px rgba(0, 0, 0, .12);
  border-radius: var(--radius-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all 200ms;
  padding: 8px 0;
  z-index: 200;
}
.mainnav__menu li:hover > .sub-menu,
.mainnav__menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.mainnav__menu .sub-menu li { display: block; }
.mainnav__menu .sub-menu a {
  display: block;
  padding: 8px 18px;
  color: var(--text-primary);
  font-size: 13.5px;
  font-weight: 500;
}
.mainnav__menu .sub-menu a:hover {
  background: var(--bg-soft);
  color: var(--brand-primary);
}

/* Mégamenu (item avec class "has-mega") */
.mainnav__menu .has-mega {
  position: static;
}
.mainnav__menu .has-mega > .sub-menu {
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  width: 1100px;
  max-width: calc(var(--site-width) - 32px);
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.mainnav__menu .has-mega:hover > .sub-menu {
  transform: translateX(-50%) translateY(0);
}

.mainnav__tools {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 6px;
  height: 100%;
}
.mainnav__search-toggle {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: var(--text-on-dark);
  font-size: 14px;
  border-radius: var(--radius-md);
  transition: background var(--transition);
}
.mainnav__search-toggle:hover { background: var(--brand-primary-dark); }
.mainnav__cta {
  background: var(--brand-accent);
  color: white !important;
  padding: 0 18px;
  margin-left: 4px;
  border-radius: var(--radius-md);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  height: 36px;
  display: flex;
  align-items: center;
}
.mainnav__cta:hover { background: var(--brand-accent-dark); color: white !important; }

/* =============================================================
   9. BANNER ZONES
   ============================================================= */
.banner-slot {
  position: relative;
}
.banner-slot--header {
  width: 728px; max-width: 100%;
  height: 90px;
}
.banner-slot--under-menu,
.banner-slot--under_menu {
  background: var(--bg-card);
  border-bottom: 1px solid var(--border);
  padding: 14px 0;
  display: flex;
  justify-content: center;
}
.banner-slot--970-250 {
  width: 970px;
  max-width: 100%;
  height: 250px;
}
.banner-slot--header_top,
.banner-slot--before_content,
.banner-slot--after_content,
.banner-slot--footer_banner,
.banner-slot--hero_pave {
  display: block;
  max-width: 100%;
}
.banner-slot--footer {
  margin: 32px 0;
  display: flex;
  justify-content: center;
}
.banner-slot__placeholder {
  background: var(--bg-soft);
  border: 1px dashed var(--border-strong);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: var(--radius-sm);
}
.banner-slot__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-sm);
}

/* =============================================================
   10. HERO ZONE (article principal + pavé flottant)
   ============================================================= */
.hero-zone {
  display: flow-root;
  position: relative;
  padding: 24px var(--container-pad);
  max-width: var(--site-width);
  margin: 0 auto;
}
.hero-zone__pave {
  float: right;
  width: 300px;
  height: 600px;
  margin-left: 24px;
  margin-bottom: 16px;
}
.hero-zone__main {
  position: relative;
  height: 440px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-soft);
}
.hero-zone__main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 800ms cubic-bezier(.2, .8, .2, 1);
}
.hero-zone__main:hover img { transform: scale(1.04); }
.hero-zone__main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, .4) 50%, transparent 100%);
  z-index: 1;
  pointer-events: none;
}
.hero-zone__main-text {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px 32px;
  z-index: 2;
  color: white;
}
.hero-zone__main-text h1,
.hero-zone__main-text h2 {
  color: white;
  font-size: 32px;
  margin-bottom: 14px;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .4);
}
.hero-zone__main-text p {
  font-size: 14px;
  opacity: .94;
  max-width: 640px;
  margin-bottom: 16px;
}

/* =============================================================
   11. SECTION BARS
   ============================================================= */
.section { padding: 36px 0; }
.section-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid var(--brand-primary);
  margin-bottom: 24px;
  position: relative;
}
.section-bar h2 {
  background: var(--brand-primary);
  color: white;
  margin: 0;
  padding: 10px 24px 10px 16px;
  font-size: 20px;
  font-weight: 700;
  position: relative;
}
.section-bar h2::after {
  content: "";
  position: absolute;
  right: -16px;
  top: 0;
  bottom: 0;
  border-left: 16px solid var(--brand-primary);
  border-bottom: 41px solid transparent;
}
.section-bar__more {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.section-bar__more:hover { color: var(--brand-primary); }

/* Sub-pills (filtres rapides sous les section-bar) */
.subcat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}
.subcat-pills a {
  display: inline-block;
  padding: 6px 14px;
  background: white;
  border: 1px solid var(--border);
  color: var(--text-body);
  font-size: 12.5px;
  font-weight: 500;
  border-radius: 100px;
  transition: all var(--transition);
}
.subcat-pills a:hover,
.subcat-pills a.active {
  background: var(--brand-primary);
  color: white;
  border-color: var(--brand-primary);
}

/* =============================================================
   12. POST CARDS
   ============================================================= */
.post-grid {
  display: grid;
  gap: 24px;
}
.post-grid--2 { grid-template-columns: repeat(2, 1fr); }
.post-grid--3 { grid-template-columns: repeat(3, 1fr); }
.post-grid--4 { grid-template-columns: repeat(4, 1fr); }

.post-card {
  background: var(--bg-card);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--transition), box-shadow var(--transition);
}
.post-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}
.post-card__img {
  display: block;
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.post-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(.2, .8, .2, 1);
}
.post-card:hover .post-card__img img { transform: scale(1.05); }
.post-card__cat {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: var(--brand-primary);
  color: white;
  padding: 4px 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  z-index: 2;
}
.post-card__cat--accent { background: var(--brand-accent); color: var(--text-primary); }
.post-card__cat--gold   { background: var(--brand-accent); color: var(--text-primary); }
.post-card h3 {
  font-size: 18px;
  line-height: 1.3;
  padding: 14px 16px 8px;
  margin: 0;
}
.post-card h3 a {
  color: var(--text-primary);
  transition: color var(--transition);
}
.post-card h3 a:hover { color: var(--brand-primary); }
.post-card__excerpt {
  padding: 0 16px 12px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text-muted);
  margin: 0;
}
.post-card__meta {
  padding: 8px 16px 16px;
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  gap: 8px;
  margin-top: auto;
}

/* Post list (compact) */
.post-list { display: flex; flex-direction: column; gap: 12px; }
.post-list__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 12px;
  align-items: start;
}
.post-list__item img {
  width: 80px;
  height: 60px;
  object-fit: cover;
  border-radius: var(--radius-sm);
}
.post-list__item h4 {
  font-size: 14px;
  line-height: 1.3;
  margin: 0 0 4px;
}
.post-list__item h4 a {
  color: var(--text-primary);
}
.post-list__item time {
  font-size: 11px;
  color: var(--text-muted);
}

/* =============================================================
   13. SINGLE ARTICLE
   ============================================================= */
.single-article {
  max-width: 880px;
  margin: 0 auto;
  padding: 32px var(--container-pad);
}
.single-article__hero img {
  width: 100%;
  border-radius: var(--radius-lg);
  margin-bottom: 24px;
}
.single-article h1 {
  font-size: 36px;
  margin-bottom: 16px;
}
.single-article__excerpt {
  font-size: 18px;
  line-height: 1.5;
  color: var(--text-muted);
  margin-bottom: 24px;
}
.single-article__meta {
  display: flex;
  gap: 12px;
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.single-article__content {
  font-size: 16.5px;
  line-height: 1.7;
}
.single-article__content p { margin-bottom: 1.2em; }
.single-article__content h2 { margin-top: 1.4em; font-size: 24px; }
.single-article__content h3 { margin-top: 1.4em; font-size: 19px; }
.single-article__content blockquote {
  margin: 1.5em 0;
  padding: 16px 24px;
  border-left: 4px solid var(--brand-primary);
  background: var(--bg-soft);
  font-family: var(--font-display);
  font-size: 18px;
  font-style: italic;
}
.single-article__content img {
  border-radius: var(--radius-md);
  margin: 1.5em 0;
}
.single-article__content a {
  color: var(--brand-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* === BATCH 53 / 53b : Restauration des styles éditeur classique === */

/* === BATCH 53b : Réduire espacement entre pavés sidebar consécutifs === */
/* La règle générique .section { padding: 36px 0 } créait 72px entre 2 pavés
   (36 bas du premier + 36 haut du second). On réduit ça pour un rendu plus serré. */
.section--sidebar-pave {
  padding: 12px 0 !important;
}
/* Sur mobile, encore plus compact pour limiter le scroll */
@media (max-width: 768px) {
  .section--sidebar-pave {
    padding: 8px 0 !important;
  }
}
/* Quand 2 sections sidebar-pave se suivent, coller le second contre le premier */
.section--sidebar-pave + .section--sidebar-pave {
  padding-top: 0 !important;
}

/* Listes à puces : forcer l'affichage des bullets et numéros (le reset CSS du thème les masquait) */
/* === BATCH 53b : Listes à puces forcées (sélectivité body pour battre les resets) === */
body .single-article__content ul,
body .single-article__content ul li,
body .entry-content ul,
body .entry-content ul li {
  list-style: disc outside !important;
  list-style-type: disc !important;
  list-style-position: outside !important;
}
body .single-article__content ol,
body .single-article__content ol li,
body .entry-content ol,
body .entry-content ol li {
  list-style: decimal outside !important;
  list-style-type: decimal !important;
  list-style-position: outside !important;
}
body .single-article__content ul,
body .single-article__content ol,
body .entry-content ul,
body .entry-content ol {
  padding-left: 1.5em !important;
  margin: 1em 0 1.5em !important;
}
body .single-article__content li,
body .entry-content li {
  display: list-item !important;
  margin-bottom: 0.4em !important;
}
body .single-article__content ul ul,
body .entry-content ul ul {
  list-style: circle outside !important;
  list-style-type: circle !important;
}
body .single-article__content ul ul ul,
body .entry-content ul ul ul {
  list-style: square outside !important;
  list-style-type: square !important;
}
/* Couvre TOUS les conteneurs possibles d'article : single-article, entry-content, post-content, prose */
.single-article__content ul,
.single-article ul,
.entry-content ul,
.post-content ul,
article.post .single-article__content ul {
  list-style: disc outside !important;
  padding-left: 1.5em !important;
  margin: 1em 0 1.5em !important;
}
.single-article__content ol,
.single-article ol,
.entry-content ol,
.post-content ol,
article.post .single-article__content ol {
  list-style: decimal outside !important;
  padding-left: 1.5em !important;
  margin: 1em 0 1.5em !important;
}
.single-article__content ul li,
.single-article__content ol li,
.single-article ul li,
.single-article ol li,
.entry-content ul li,
.entry-content ol li,
.post-content ul li,
.post-content ol li {
  margin-bottom: 0.4em !important;
  display: list-item !important;
  list-style-position: outside !important;
}
.single-article__content ul ul,
.single-article__content ol ol,
.single-article__content ul ol,
.single-article__content ol ul,
.entry-content ul ul,
.entry-content ol ol {
  margin: 0.4em 0 0.4em !important;
}
.single-article__content ul ul,
.entry-content ul ul {
  list-style: circle outside !important;
}
.single-article__content ul ul ul,
.entry-content ul ul ul {
  list-style: square outside !important;
}

/* Alignement de texte : autoriser les overrides inline du Classic Editor (text-align: center/right/left/justify) */
.single-article__content [style*="text-align: center"],
.single-article__content [style*="text-align:center"],
.single-article__content .has-text-align-center {
  text-align: center !important;
}
.single-article__content [style*="text-align: right"],
.single-article__content [style*="text-align:right"],
.single-article__content .has-text-align-right {
  text-align: right !important;
}
.single-article__content [style*="text-align: justify"],
.single-article__content [style*="text-align:justify"],
.single-article__content .has-text-align-justify {
  text-align: justify !important;
}
.single-article__content [style*="text-align: left"],
.single-article__content [style*="text-align:left"],
.single-article__content .has-text-align-left {
  text-align: left !important;
}

/* === FIN BATCH 53 / 53b === */

/* =============================================================
   14. SIDEBAR & WIDGETS
   ============================================================= */
.widget {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  margin-bottom: 24px;
}
.widget__title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--brand-primary);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--brand-primary);
}

/* =============================================================
   15. FOOTER
   ============================================================= */
.site-footer {
  background: var(--bg-darker);
  color: var(--text-on-dark);
  padding: 56px 0 0;
  margin-top: 64px;
}
.site-footer__columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 40px;
}
.site-footer__col h4,
.footer-widget__title {
  color: var(--brand-accent);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0 0 16px;
}
.site-footer__col a {
  color: rgba(250, 248, 243, .7);
  font-size: 13.5px;
  transition: color var(--transition);
}
.site-footer__col a:hover { color: var(--brand-accent); }
.site-footer__col p { color: rgba(250, 248, 243, .65); font-size: 13px; line-height: 1.6; }

.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 20px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-size: 12px;
  color: rgba(250, 248, 243, .5);
}
.site-footer__copyright a { color: var(--brand-accent); }
.site-footer__legal-menu {
  display: flex;
  gap: 16px;
}
.site-footer__legal-menu a {
  color: rgba(250, 248, 243, .5);
  font-size: 12px;
}
.site-footer__legal-menu a:hover { color: var(--brand-accent); }

/* =============================================================
   16. FORMS & BUTTONS
   ============================================================= */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="password"],
textarea,
select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  font: inherit;
  background: white;
  color: var(--text-primary);
  transition: border-color var(--transition), box-shadow var(--transition);
}
input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 3px rgba(10, 86, 6, .1);
}

/* =============================================================
   17. UTILITIES
   ============================================================= */
.alignleft  { float: left; margin: 0 20px 12px 0; }
.alignright { float: right; margin: 0 0 12px 20px; }
.aligncenter { display: block; margin: 0 auto; clear: both; }
.alignwide  { width: calc(100% + 80px); margin-left: -40px; max-width: none; }

/* Pagination */
.pagination,
.nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 40px 0;
}
.page-numbers {
  display: inline-block;
  padding: 8px 14px;
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text-body);
  font-weight: 600;
  text-decoration: none;
  transition: all var(--transition);
}
.page-numbers:hover,
.page-numbers.current {
  background: var(--brand-primary);
  color: white;
  border-color: var(--brand-primary);
}

/* Eyebrow / category badges */
.eyebrow {
  display: inline-block;
  padding: 4px 12px;
  background: var(--brand-primary);
  color: white;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
}
.eyebrow--alaune { background: var(--brand-accent); color: var(--text-primary); }

/* No results */
.no-results {
  text-align: center;
  padding: 48px 16px;
}

/* =============================================================
   18. RESPONSIVE
   ============================================================= */
@media (max-width: 1100px) {
  .masthead--with-banner .masthead__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 16px;
  }
}

@media (max-width: 1024px) {
  .hero-zone__pave {
    float: none;
    width: 100%;
    height: auto;
    min-height: 200px;
    margin: 16px 0;
  }
  .hero-zone__main { height: auto; aspect-ratio: 16/10; }
  .post-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .post-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .site-footer__columns { grid-template-columns: repeat(2, 1fr); }
  .mainnav__menu { display: none; }
  .mainnav__inner { grid-template-columns: 1fr auto; }
  .mainnav__menu .has-mega > .sub-menu { width: 100%; max-width: 100%; left: 0; transform: none; }
}

@media (max-width: 1024px) {
  :root { --container-pad: 32px; } /* Tablet : on revient à 32px */
}

@media (max-width: 768px) {
  :root { --container-pad: 20px; } /* Mobile : 20px (était 16px) */
  h1 { font-size: 28px; }
  h2 { font-size: 22px; }
  .hero-zone__main-text h1,
  .hero-zone__main-text h2 { font-size: 22px; }
  .post-grid--2,
  .post-grid--3,
  .post-grid--4 { grid-template-columns: 1fr; }
  .site-footer__columns { grid-template-columns: 1fr; }
  .topbar__inner { flex-direction: column; align-items: flex-start; gap: 6px; }
  .topbar__nav { flex-wrap: wrap; gap: 12px; }
  /* searchbar-strip est déjà en flex-direction: column par défaut sur tous les écrans */
}

/* =============================================================
   19. TEMPLATES PAGES (Batch 2)
   ============================================================= */

/* Layout 2 colonnes (article/category/archive/search) */
.single-layout,
.archive-layout,
.category-layout,
.search-layout {
  padding: 32px 0;
}
.single-layout__grid,
.archive-layout__grid,
.category-layout__grid,
.search-layout__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
  align-items: start;
}

/* Sidebar (à droite) */
.sidebar {
  position: sticky;
  top: 70px; /* hauteur menu sticky + marge */
}
.sidebar .widget {
  margin-bottom: 20px;
}
.sidebar .widget--admin-notice {
  background: transparent;
  border: none;
  padding: 0;
}

.widget__post-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.widget__post-list .post-list__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.widget__post-list .post-list__item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.widget__post-list .post-list__item-img img {
  width: 80px;
  height: 60px;
  object-fit: cover;
  border-radius: var(--radius-sm);
}

/* Single article */
.single-article {
  background: white;
  border-radius: var(--radius-lg);
  padding: 36px;
  border: 1px solid var(--border);
}
.single-article__header { margin-bottom: 28px; }
.single-article__cat {
  display: inline-block;
  margin-bottom: 14px;
}
.single-article__title {
  font-size: 36px;
  line-height: 1.15;
  margin: 0 0 16px;
}
.single-article__excerpt {
  font-size: 17px;
  line-height: 1.55;
  color: var(--text-muted);
  margin-bottom: 18px;
  font-family: var(--font-display);
  font-style: italic;
}
.single-article__meta {
  font-size: 13px;
  color: var(--text-muted);
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.single-article__hero {
  margin: 0 -36px 28px;
}
.single-article__hero img {
  width: 100%;
  height: auto;
  display: block;
}
.single-article__hero-caption {
  padding: 8px 36px;
  font-size: 12.5px;
  color: var(--text-muted);
  font-style: italic;
  background: var(--bg-soft);
}
.single-article__footer {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.single-article__tags,
.single-article__cats,
.single-article__share {
  margin-bottom: 16px;
  font-size: 13px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.single-article__tags-label,
.single-article__share-label {
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .06em;
}
.single-article__tags a,
.single-article__cats a {
  background: var(--bg-soft);
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  color: var(--text-body);
  font-size: 12.5px;
}
.single-article__tags a:hover,
.single-article__cats a:hover {
  background: var(--brand-primary);
  color: white;
}
/* Boutons de partage : pastilles rondes aux couleurs des plateformes.
   Icônes SVG intégrées au thème — aucune police d'icônes, aucune requête
   vers un service extérieur. */
.share-btn {
  width: 38px;
  height: 38px;
  border: 0;
  padding: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s ease, filter .15s ease;
}
.share-btn:hover,
.share-btn:focus-visible { transform: translateY(-2px); filter: brightness(1.08); color: #fff; }
.share-btn--fb { background: #1877f2; }
.share-btn--x  { background: #000; }
.share-btn--li { background: #0a66c2; }
.share-btn--wa { background: #25d366; }
.share-btn--ml { background: #5b6b61; }
.share-btn--cp { background: #8a8580; }
.share-copie { font-size: 12.5px; color: #0a7c42; font-weight: 600; }

@media (max-width: 480px) {
  .single-article__share { gap: 8px; }
  .share-btn { width: 36px; height: 36px; }
}

/* Related posts */
.related-posts {
  margin-top: 48px;
}

/* Comments */
/* ===========================================================================
   COMMENTAIRES — cartes empilées, style forum
   Fond beige pour les commentaires de premier niveau, réponses en blanc
   indentées avec un filet rouge à gauche.
   =========================================================================== */
.comments-area {
  margin-top: 48px;
  padding: 28px 30px 30px;
  background: #fff;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}
.comments-title {
  font-family: var(--font-display, Georgia, serif);
  font-size: 23px;
  margin: 0 0 22px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--brand-primary);
}
.comment-list {
  list-style: none;
  padding: 0;
  margin: 0 0 34px;
}
.comment-list > li {
  list-style: none;
  margin-bottom: 14px;
}
.comment-list .children {
  list-style: none;
  margin: 14px 0 0;
  padding-left: 28px;
}
.comment-list .children > li {
  margin-bottom: 12px;
}

/* --- la carte --- */
.comment-body {
  position: relative;
  background: #f7f6f2;
  border: 1px solid #ece8e0;
  border-radius: 8px;
  padding: 16px 18px 14px;
  display: block;
}
/* Réponse : fond blanc et filet rouge, pour distinguer le fil d'un coup d'œil */
.comment-list .children .comment-body {
  background: #fff;
  border-left: 3px solid var(--brand-primary);
  border-radius: 0 8px 8px 0;
}

/* --- en-tête : pastille, nom, date --- */
.comment-meta {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 10px;
  font-size: 13px;
}
.comment-author {
  display: flex;
  align-items: center;
  gap: 11px;
  font-weight: 700;
  color: var(--text-primary);
}
.comment-author .fn { font-style: normal; }
.comment-author .says { display: none; }
.comment-metadata {
  color: var(--text-muted);
  font-size: 12.5px;
}
.comment-metadata a { color: inherit; text-decoration: none; }
.comment-metadata a:hover { text-decoration: underline; }

/* --- pastille d'initiales --- */
.agri360-ini {
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  overflow: hidden;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 auto;
  vertical-align: middle;
}
.agri360-ini img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- corps --- */
.comment-content {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--text-primary);
}
.comment-content p { margin: 0 0 .7em; }
.comment-content p:last-child { margin-bottom: 0; }

/* --- lien répondre --- */
.comment-body .reply { margin-top: 10px; }
.comment-reply-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-primary);
  text-decoration: none;
}
.comment-reply-link:hover { text-decoration: underline; }

/* --- états particuliers --- */
.comment-awaiting-moderation {
  display: inline-block;
  margin: 6px 0 0;
  background: #fff8ec;
  border: 1px solid #f6d9ae;
  border-radius: 4px;
  padding: 5px 9px;
  font-size: 12.5px;
  color: #8a4b00;
}
.bypostauthor > .comment-body {
  border-color: #d9c9c9;
}

@media (max-width: 640px) {
  .comments-area { padding: 20px 16px 22px; }
  .comment-list .children { padding-left: 14px; }
  .comment-meta { flex-wrap: wrap; gap: 8px; }
}

.comment-form {
  display: grid;
  gap: 12px;
}
.comment-form label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 4px;
  color: var(--text-primary);
}
.comment-form .form-submit input {
  background: var(--brand-primary);
  color: white;
  padding: 10px 24px;
  border-radius: var(--radius-md);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  border: none;
  cursor: pointer;
  transition: background var(--transition);
}
.comment-form .form-submit input:hover {
  background: var(--brand-primary-dark);
}

/* Archive header */
.archive-header,
.search-header {
  margin: 32px 0 28px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--brand-primary);
}
.archive-header__title,
.search-header__title {
  font-size: 32px;
  margin: 0 0 8px;
}
.archive-header__description {
  color: var(--text-muted);
  max-width: 720px;
  font-size: 15px;
}
.search-header__form {
  margin-top: 16px;
  max-width: 600px;
}

/* Category hero */
.category-hero {
  background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-dark) 100%);
  color: white;
  padding: 48px 40px;
  border-radius: var(--radius-lg);
  margin: 32px 0 28px;
  position: relative;
  overflow: hidden;
}
.category-hero::after {
  content: "";
  position: absolute;
  top: -80px;
  right: -80px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(212,160,23,.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.category-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
}
.category-hero__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand-accent);
  margin-bottom: 10px;
}
.category-hero__title {
  color: white;
  font-size: 44px;
  margin: 0 0 12px;
  line-height: 1.1;
}
.category-hero__description {
  font-size: 16px;
  opacity: .92;
  margin-bottom: 14px;
  line-height: 1.5;
}
.category-hero__count {
  font-size: 13px;
  letter-spacing: .04em;
  opacity: .85;
}
.category-hero__count strong {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--brand-accent);
  margin-right: 4px;
}

/* Page statique */
.page-layout {
  padding: 32px 0;
}
.page-content {
  background: white;
  border-radius: var(--radius-lg);
  padding: 48px;
  border: 1px solid var(--border);
  max-width: 920px;
  margin: 0 auto;
}
.page-content__title {
  font-size: 40px;
  margin: 0 0 24px;
}
.page-content__hero {
  margin: 0 -48px 32px;
}
.page-content__hero img {
  width: 100%;
  height: auto;
}
.page-content__body {
  font-size: 16.5px;
  line-height: 1.7;
}
.page-content__body h2 { font-size: 26px; margin-top: 1.4em; }
.page-content__body h3 { font-size: 20px; margin-top: 1.4em; }
.page-content__body p { margin-bottom: 1.2em; }
.page-content__body img {
  border-radius: var(--radius-md);
  margin: 1.5em 0;
}
.page-content__body a {
  color: var(--brand-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Search form (réutilisable) */
.search-form__inner {
  display: flex;
  background: white;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.search-form__inner:focus-within {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 3px rgba(10, 86, 6, .1);
}
.search-form__input {
  flex: 1;
  border: none;
  padding: 10px 14px;
  font: inherit;
  background: transparent;
}
.search-form__input:focus { outline: none; }
.search-form__submit {
  background: var(--brand-primary);
  color: white;
  padding: 0 16px;
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background var(--transition);
}
.search-form__submit:hover { background: var(--brand-primary-dark); }

/* Page-links pagination intra-article */
.page-links {
  margin: 24px 0;
  font-size: 13px;
  font-weight: 600;
}
.page-links > span,
.page-links > a {
  display: inline-block;
  padding: 4px 10px;
  margin-right: 4px;
  border-radius: var(--radius-sm);
  background: white;
  border: 1px solid var(--border);
  color: var(--text-body);
}
.page-links > span:not(.page-links-title) {
  background: var(--brand-primary);
  color: white;
  border-color: var(--brand-primary);
}

/* 404 */
.error-404-layout {
  padding: 48px 0;
}
.error-404 {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}
.error-404__visual {
  margin-bottom: 24px;
}
.error-404__code {
  font-family: var(--font-display);
  font-size: 144px;
  font-weight: 800;
  font-variation-settings: "opsz" 144;
  color: var(--brand-primary);
  line-height: 1;
  letter-spacing: -.04em;
  display: inline-block;
  padding: 0 24px;
  position: relative;
}
.error-404__code::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--brand-accent);
  transform: translateY(-50%);
  z-index: -1;
}
.error-404__title {
  font-size: 32px;
  margin: 0 0 16px;
}
.error-404__message {
  font-size: 16px;
  color: var(--text-muted);
  margin-bottom: 28px;
  line-height: 1.5;
}
.error-404__actions {
  margin-bottom: 40px;
}
.error-404__btn {
  display: inline-block;
  padding: 12px 28px;
  background: var(--brand-primary);
  color: white;
  border-radius: var(--radius-md);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 13px;
  transition: background var(--transition);
}
.error-404__btn:hover {
  background: var(--brand-primary-dark);
  color: white;
}
.error-404__search {
  max-width: 480px;
  margin: 0 auto 48px;
}
.error-404__search h2 {
  font-size: 18px;
  margin-bottom: 12px;
}
.error-404__suggestions {
  text-align: left;
  margin-top: 48px;
}
.error-404__suggestions h2 {
  text-align: center;
  font-size: 22px;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--brand-primary);
  display: inline-block;
  width: 100%;
}

/* Sub-pills sous catégorie */
.subcat-pills nav,
nav.subcat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;
}

/* Responsive override Batch 2 */
@media (max-width: 1024px) {
  .single-layout__grid,
  .archive-layout__grid,
  .category-layout__grid,
  .search-layout__grid {
    grid-template-columns: 1fr;
  }
  .sidebar { position: static; }
  .single-article__hero { margin: 0 -24px 24px; }
  .single-article { padding: 24px; }
  .single-article__title { font-size: 28px; }
  .page-content { padding: 28px; }
  .page-content__hero { margin: 0 -28px 24px; }
  .page-content__title { font-size: 32px; }
  .category-hero { padding: 32px 24px; }
  .category-hero__title { font-size: 32px; }
  .error-404__code { font-size: 96px; }
}

@media (max-width: 768px) {
  .single-article__title { font-size: 24px; }
  .category-hero__title { font-size: 26px; }
  .page-content__title { font-size: 26px; }
  .error-404__code { font-size: 72px; }
}

/* =============================================================
   20. HOMEPAGE BUILDER LAYOUTS (Batch 4)
   ============================================================= */

/* Section bars colors */
.section-bar--accent h2 { background: var(--brand-accent); color: var(--text-primary); }
.section-bar--accent h2::after { border-left-color: var(--brand-accent); }
.section-bar--green h2 { background: var(--brand-green); }
.section-bar--green h2::after { border-left-color: var(--brand-green); }
.section-bar--dark h2 { background: var(--bg-dark); }
.section-bar--dark h2::after { border-left-color: var(--bg-dark); }

/* === HERO SOLO === */
.hero-solo-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) 320px;
  gap: 32px;
  align-items: start;
}
.hero-solo__main {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-soft);
}
.hero-solo__main img {
  width: 100%; height: 100%; object-fit: cover;
}
.hero-solo__overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: 24px 32px;
  background: linear-gradient(to top, rgba(0,0,0,.85), transparent);
  color: white;
}
.hero-solo__overlay h2 {
  color: white;
  font-size: 28px;
  margin: 8px 0 12px;
}
.hero-solo__overlay h2 a { color: inherit; }
.hero-solo__overlay p {
  font-size: 14px;
  opacity: .94;
  margin-bottom: 12px;
}
.hero-solo__meta {
  font-size: 12px;
  letter-spacing: .04em;
  opacity: .88;
}
.hero-solo__sidebar {
  display: grid;
  place-items: start center;
}

/* === FEATURE SPLIT / CAT BLOCK === */
.cat-block__layout {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 24px;
  align-items: start;
}
.cat-block__feature h3 {
  font-size: 22px;
  line-height: 1.25;
}

/* === POSTS CAROUSEL === */
.posts-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 320px);
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 12px;
}
.posts-carousel::-webkit-scrollbar { height: 6px; }
.posts-carousel::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 3px; }
.posts-carousel__item { scroll-snap-align: start; }

/* === CAT TABS === */
.cat-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--brand-primary);
}
.cat-tabs__btn {
  padding: 10px 20px;
  background: transparent;
  border: none;
  font: 600 13px/1 var(--font-body);
  color: var(--text-muted);
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .05em;
  transition: all var(--transition);
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
}
.cat-tabs__btn:hover { color: var(--brand-primary); }
.cat-tabs__btn.active {
  color: white;
  background: var(--brand-primary);
}
.cat-tabs__panel { display: none; }
.cat-tabs__panel.active { display: block; }

/* === SPLITS === */
.split-grid {
  display: grid;
  gap: 32px;
  align-items: start;
}
.split-grid--50-50 { grid-template-columns: 1fr 1fr; }
.split-grid--70-30 { grid-template-columns: 7fr 3fr; }
.split-grid--33-66 { grid-template-columns: 33fr 66fr; }
.split-grid--60-40 { grid-template-columns: 6fr 4fr; }
.split-col__title {
  font-size: 18px;
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.split-col__html {
  font-size: 14.5px;
  line-height: 1.6;
}
.split-col__image {
  width: 100%;
  border-radius: var(--radius-md);
}

/* === NEWSLETTER CTA === */
.newsletter-cta {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  padding: 36px 40px;
  border-radius: var(--radius-lg);
  align-items: center;
}
.newsletter-cta--red    { background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark)); color: white; }
.newsletter-cta--gold   { background: var(--brand-accent); color: var(--text-primary); }
.newsletter-cta--dark   { background: var(--bg-darker); color: white; }
.newsletter-cta--cream  { background: var(--bg-soft); color: var(--text-primary); }
.newsletter-cta h2 { color: inherit; margin: 0 0 8px; font-size: 26px; }
.newsletter-cta p { color: inherit; opacity: .92; margin: 0; }
.newsletter-form {
  display: flex;
  background: white;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.newsletter-form input {
  flex: 1;
  padding: 12px 16px;
  border: none;
  font: inherit;
}
.newsletter-form input:focus { outline: none; }
.newsletter-form button {
  background: var(--bg-dark);
  color: white;
  padding: 0 22px;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  cursor: pointer;
  border: none;
}
.newsletter-cta--red .newsletter-form button    { background: var(--brand-accent); color: var(--text-primary); }
.newsletter-cta--cream .newsletter-form button  { background: var(--brand-primary); color: white; }

/* === SIAM CTA === */
.siam-cta {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 32px;
  padding: 36px 40px;
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark));
  color: white;
  border-radius: var(--radius-lg);
  align-items: center;
}
.siam-cta__image img {
  width: 100%; height: auto;
  border-radius: var(--radius-md);
}
.siam-cta__title { color: white; font-size: 32px; margin: 0 0 8px; }
.siam-cta__subtitle { color: var(--brand-accent); font-weight: 700; margin: 0 0 12px; letter-spacing: .04em; }
.siam-cta__text { font-size: 15px; opacity: .94; line-height: 1.5; margin-bottom: 20px; }
.siam-cta__btn {
  display: inline-block;
  background: var(--brand-accent);
  color: var(--text-primary) !important;
  padding: 12px 24px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.siam-cta__btn:hover { background: var(--brand-accent-dark); color: white !important; }

/* === SPONSORS === */
.sponsors__title {
  text-align: center;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--text-muted);
  margin: 0 0 28px;
}
.sponsors__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 32px;
  align-items: center;
  justify-items: center;
}
.sponsors__item img {
  max-height: 60px;
  width: auto;
  filter: grayscale(100%) opacity(.7);
  transition: filter var(--transition);
}
.sponsors__item:hover img,
.sponsors__item a:hover img { filter: none; }

/* === MODULE PHYTO === */
.module-phyto {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  padding: 32px 40px;
  background: linear-gradient(135deg, var(--brand-green), var(--brand-green-dark));
  color: white;
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
  align-items: center;
}
.module-phyto__bg-decor {
  position: absolute;
  top: -60px; right: -60px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(212,160,23,.22) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.module-phyto__body { position: relative; z-index: 1; }
.module-phyto__eyebrow {
  display: inline-block;
  background: var(--brand-accent);
  color: var(--text-primary);
  padding: 4px 12px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
}
.module-phyto__title { color: white; font-size: 28px; margin: 0 0 10px; }
.module-phyto__text { font-size: 14.5px; opacity: .95; max-width: 620px; margin-bottom: 18px; line-height: 1.5; }
.module-phyto__stats {
  display: flex;
  gap: 32px;
  font-size: 12px;
  letter-spacing: .04em;
  flex-wrap: wrap;
}
.module-phyto__stats strong {
  display: block;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--brand-accent);
  line-height: 1;
  margin-bottom: 4px;
}
.module-phyto__btn {
  position: relative; z-index: 1;
  display: inline-block;
  background: var(--brand-accent);
  color: var(--text-primary) !important;
  padding: 14px 28px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}
.module-phyto__btn:hover { background: var(--brand-accent-dark); color: white !important; }

/* === MODULE FALLAH360 === */
.module-fallah360 {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
.module-fallah360__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}
.module-fallah360__head h2 {
  font-size: 22px;
  margin: 0 0 4px;
  color: var(--brand-primary);
}
.module-fallah360__head p { margin: 0; color: var(--text-muted); }
.module-fallah360__btn {
  background: var(--brand-primary);
  color: white !important;
  padding: 10px 20px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.module-fallah360__empty,
.module-fallah360__loading {
  text-align: center;
  padding: 24px;
  color: var(--text-muted);
}

/* === MODULE METEO === */
.module-meteo {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
.module-meteo__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.module-meteo__head h2 { margin: 0; font-size: 20px; color: var(--brand-primary); }
.module-meteo__cities {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
}
.module-meteo__city {
  text-align: center;
  padding: 16px;
  background: var(--bg-soft);
  border-radius: var(--radius-md);
}
.module-meteo__city h3 { font-size: 14px; margin: 0 0 8px; }
.module-meteo__placeholder {
  font-size: 28px;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--brand-primary);
  display: block;
}

/* === MODULE MARCHE / FORUM (placeholders) === */
.module-marche, .module-forum {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
}
.module-marche__head, .module-forum__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
}
.module-marche h2, .module-forum h2 { margin: 0; color: var(--brand-primary); }
.module-marche__text, .module-forum p { color: var(--text-muted); margin-bottom: 16px; }
.module-marche__btn, .module-forum__btn {
  background: var(--brand-primary);
  color: white !important;
  padding: 8px 18px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  display: inline-block;
}
.module-forum__questions { padding-left: 0; }
.module-forum__questions li {
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.module-forum__questions li:last-child { border-bottom: none; }
.module-forum__questions a { color: var(--text-primary); font-weight: 600; }
.module-forum__questions a:hover { color: var(--brand-primary); }
.module-forum__questions small { color: var(--text-muted); font-size: 12px; }

/* === HTML LIBRE === */
.html-libre__body {
  font-size: 15px;
  line-height: 1.6;
}
.html-libre__body--wide {
  width: 100%;
}

/* === IFRAME === */
.iframe-embed__wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
}

/* === IMAGE FULL === */
.image-full img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  display: block;
}
.image-full figcaption {
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
  margin-top: 12px;
  font-style: italic;
}

/* === IMAGE GRID === */
.image-grid {
  display: grid;
  gap: 16px;
}
.image-grid--2 { grid-template-columns: repeat(2, 1fr); }
.image-grid--3 { grid-template-columns: repeat(3, 1fr); }
.image-grid--4 { grid-template-columns: repeat(4, 1fr); }
.image-grid--6 { grid-template-columns: repeat(6, 1fr); }
.image-grid__item {
  margin: 0;
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.image-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}
.image-grid__item figcaption {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 8px;
  text-align: center;
}

/* === VIDEO EMBED === */
.video-embed {
  margin: 0;
}
.video-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
}
.video-embed__wrapper iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
}
.video-embed figcaption {
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
  margin-top: 12px;
  font-style: italic;
}

/* === QUOTE PULL === */
.quote-pull {
  max-width: 880px;
  margin: 32px auto;
  padding: 32px;
  border-left: 6px solid var(--brand-primary);
  background: var(--bg-soft);
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}
.quote-pull__text {
  font-family: var(--font-display);
  font-size: 24px;
  font-style: italic;
  line-height: 1.4;
  margin: 0 0 16px;
  color: var(--text-primary);
}
.quote-pull__author cite {
  font-style: normal;
  font-weight: 700;
  color: var(--brand-primary);
}
.quote-pull__author span {
  display: block;
  font-size: 13px;
  color: var(--text-muted);
}

/* === BANNER FULL SECTION === */
.section--banner-full {
  background: var(--bg-soft);
  padding: 24px 0;
}

/* === RESPONSIVE BUILDER === */
@media (max-width: 1024px) {
  .hero-solo-grid { grid-template-columns: 1fr; }
  .hero-solo__sidebar { order: -1; }
  .cat-block__layout { grid-template-columns: 1fr; }
  .split-grid--50-50,
  .split-grid--70-30,
  .split-grid--33-66,
  .split-grid--60-40 { grid-template-columns: 1fr; }
  .newsletter-cta { grid-template-columns: 1fr; }
  .siam-cta { grid-template-columns: 1fr; }
  .module-phyto { grid-template-columns: 1fr; }
  .module-phyto__btn { justify-self: start; }
  .image-grid--3,
  .image-grid--4,
  .image-grid--6 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .module-phyto__title { font-size: 22px; }
  .siam-cta__title { font-size: 24px; }
  .quote-pull__text { font-size: 19px; }
  .image-grid--2,
  .image-grid--3,
  .image-grid--4,
  .image-grid--6 { grid-template-columns: 1fr; }
  .module-phyto__stats { gap: 16px; }
  .module-phyto__stats > div { flex: 1 0 calc(50% - 16px); }
}

/* =============================================================
   21. FIXES BATCH 4 DEBUG — Classes manquantes
   ============================================================= */

/* Wrappers homepage fallback */
.homepage-fallback .page-header {
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--border);
}
.homepage-fallback .page-title {
  font-size: 32px;
  margin: 0 0 8px;
  color: var(--brand-primary);
}
.homepage-fallback .page-description {
  color: var(--text-muted);
  font-size: 16px;
}

/* Cat-tabs wrapper (le styling est sur les enfants nav/btn/panels) */
.cat-tabs { margin: 0 0 24px; }
.cat-tabs__panels { padding: 0; }

/* Hero zone actus wrap */
.hero-zone__actus {
  clear: both;
  padding-top: 24px;
}
.hero-zone__actus-grid {
  margin-top: 16px;
}

/* Hero solo image link wrapper (pour absolute positioning) */
.hero-solo__img-link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.hero-solo__img-link img { width: 100%; height: 100%; object-fit: cover; }

/* Newsletter inline (split column) */
.newsletter-cta--inline {
  background: var(--bg-soft);
  padding: 24px;
  border-radius: var(--radius-md);
  border-left: 4px solid var(--brand-primary);
}
.newsletter-cta--inline h3 {
  margin: 0 0 8px;
  font-size: 18px;
  color: var(--brand-primary);
}
.newsletter-cta--inline p {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--text-muted);
}
.newsletter-cta__text { flex: 1; }
.newsletter-cta__action {
  min-width: 280px;
}

/* Module-meteo bouton + forecast */
.module-meteo__btn {
  background: var(--brand-primary);
  color: white !important;
  padding: 8px 16px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.module-meteo__forecast {
  margin-top: 8px;
}
.module-meteo__forecast small {
  display: block;
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 4px;
  font-style: italic;
}

/* Module-fallah360 list (placeholder ou liste dynamique) */
.module-fallah360__list { min-height: 80px; }

/* Section wrappers — assurent un padding cohérent */
.section--hero-floating,
.section--hero-solo,
.section--alaune-grid,
.section--feature-split,
.section--cat-block,
.section--cat-block-subpills,
.section--posts-grid,
.section--posts-carousel,
.section--cat-tabs,
.section--newsletter-cta,
.section--siam-cta,
.section--sponsors,
.section--module-phyto,
.section--module-fallah360,
.section--module-meteo,
.section--module-marche,
.section--module-forum,
.section--html-libre,
.section--shortcode,
.section--widget-area,
.section--iframe-embed,
.section--image-full,
.section--image-grid,
.section--video-embed,
.section--quote-pull,
.section--split {
  padding: 36px 0;
}

/* Splits réduisent leur padding (déjà compact) */
.section--split { padding: 24px 0; }

/* Bloc shortcode et widget-area */
.shortcode__body,
.widget-area-block {
  margin-top: 8px;
}

/* SIAM CTA body wrapper */
.siam-cta__body { display: flex; flex-direction: column; }

/* Split-col image link wrapper */
.split-col__image-link {
  display: block;
}
.split-col__image-link img {
  width: 100%;
  border-radius: var(--radius-md);
}

/* Fix banner-slot__placeholder visible dans hero_solo / hero_floating */
.banner-slot__placeholder {
  background: repeating-linear-gradient(
    45deg,
    var(--bg-soft),
    var(--bg-soft) 10px,
    var(--border) 10px,
    var(--border) 20px
  );
  border: 2px dashed var(--border-strong);
  display: grid;
  place-items: center;
  color: var(--text-muted);
  font-size: 13px;
  text-align: center;
  font-style: italic;
  border-radius: var(--radius-md);
}

/* =============================================================
   22. SPLIT v12 — Variantes SIAM verte + Newsletter rouge compacte
   (Reproduit le rendu split 60/40 final de la maquette v12)
   ============================================================= */

/* === SIAM CTA dans split (vert) === */
.siam-cta--split {
  background: linear-gradient(135deg, #1a3d2e 0%, var(--brand-green, #2d6a4f) 100%);
  color: white;
  padding: 32px;
  border-radius: var(--radius-lg, 6px);
  height: 100%;
  min-height: 220px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.siam-cta--split::before {
  content: "";
  position: absolute;
  top: -30px;
  right: -30px;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(212, 160, 23, 0.2) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.siam-cta--split > * { position: relative; z-index: 1; }
.siam-cta--split__eyebrow {
  display: inline-block;
  background: var(--brand-accent, #d4a017);
  color: #1a1414;
  padding: 3px 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 2px;
  margin-bottom: 10px;
}
.siam-cta--split__title {
  font-family: var(--font-display, "Fraunces", Georgia, serif);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 0 0 8px;
  color: white;
}
.siam-cta--split__text {
  font-size: 13.5px;
  opacity: .92;
  line-height: 1.5;
  margin: 0 0 14px;
  color: white;
}
.siam-cta--split__btn {
  display: inline-block;
  background: white;
  color: var(--brand-primary, #0a5606) !important;
  padding: 9px 18px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  align-self: flex-start;
  text-decoration: none;
}
.siam-cta--split__btn:hover {
  background: var(--brand-accent, #d4a017);
  color: #1a1414 !important;
}

/* === Newsletter compacte dans split (rouge) === */
.newsletter-cta--split {
  background: var(--brand-primary, #0a5606);
  color: white;
  border-radius: var(--radius-lg, 6px);
  padding: 28px;
  height: 100%;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.newsletter-cta--split::before {
  content: "";
  position: absolute;
  top: -30px;
  left: -30px;
  width: 140px;
  height: 140px;
  background: var(--brand-accent, #d4a017);
  opacity: .15;
  border-radius: 50%;
  pointer-events: none;
}
.newsletter-cta--split > * { position: relative; z-index: 1; }
.newsletter-cta--split__icon {
  font-size: 32px;
  line-height: 1;
  margin-bottom: 10px;
}
.newsletter-cta--split__title {
  font-family: var(--font-display, "Fraunces", Georgia, serif);
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 6px;
  letter-spacing: -.01em;
  color: white;
}
.newsletter-cta--split__subtitle {
  font-size: 12.5px;
  opacity: .88;
  margin: 0 0 14px;
  line-height: 1.4;
  color: white;
}
.newsletter-form--split {
  display: block;
}
.newsletter-form--split input {
  width: 100%;
  padding: 9px 12px;
  border: none;
  border-radius: 3px;
  font-size: 12.5px;
  margin-bottom: 6px;
  color: #1a1414;
  box-sizing: border-box;
}
.newsletter-form--split input:focus { outline: 2px solid var(--brand-accent, #d4a017); }
.newsletter-form--split button {
  width: 100%;
  background: var(--brand-accent, #d4a017);
  color: white;
  padding: 10px;
  border: none;
  border-radius: 3px;
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.newsletter-form--split button:hover { background: #b88513; }

/* === Strip CTA newsletter pleine largeur (entre Cultures et Index Phyto) === */
/* On crée une variante ".newsletter-cta--strip" pour le layout newsletter_cta
   qui reproduit le strip pleine largeur de la v12 */
.newsletter-cta--strip {
  background: linear-gradient(135deg, #1a1414 0%, #2a1f1f 100%);
  color: white;
  padding: 28px 40px;
  border-radius: var(--radius-lg, 6px);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}
.newsletter-cta--strip h2 {
  color: white;
  font-family: var(--font-display, "Fraunces", Georgia, serif);
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 4px;
  letter-spacing: -.01em;
}
.newsletter-cta--strip p {
  color: white;
  opacity: .88;
  font-size: 13.5px;
  margin: 0;
  line-height: 1.5;
}
.newsletter-cta--strip .newsletter-form {
  background: white;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  min-width: 360px; max-width: 100%;
}
.newsletter-cta--strip .newsletter-form input {
  flex: 1;
  padding: 11px 14px;
  border: none;
  font-size: 13px;
  color: #1a1414;
}
.newsletter-cta--strip .newsletter-form button {
  background: var(--brand-primary, #0a5606);
  color: white;
  border: none;
  padding: 0 22px;
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.newsletter-cta--strip .newsletter-form button:hover { background: #084a05; }

/* Responsive */
@media (max-width: 768px) {
  .newsletter-cta--strip { grid-template-columns: 1fr; text-align: center; }
  .newsletter-cta--strip .newsletter-form { min-width: 0; width: 100%; }
}

/* ============================================================================
 * RESPONSIVE GLOBAL — Audit complet PC / Tablette / Smartphone
 * ============================================================================
 * Breakpoints :
 *   - Desktop large : > 1280px
 *   - Desktop standard : 1025px - 1280px
 *   - Tablette : 768px - 1024px
 *   - Mobile : 481px - 767px
 *   - Petit mobile : ≤ 480px
 * ============================================================================ */


/* ────────────────────────────────────────────────
 * TABLETTE & desktop-petit (max 1024px)
 * ────────────────────────────────────────────── */
@media (max-width: 1024px) {

  /* Topbar : compacter */
  .topbar { font-size: 11.5px; }
  .topbar__inner { padding: 6px 0; }

  /* Header : logo et bannière OCP empilés */
  .masthead {
    padding: 16px 0;
  }
  .masthead--with-banner .masthead__inner {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 14px;
  }
  .masthead__logo img {
    max-height: 60px;
    width: auto;
  }
  .masthead__banner {
    width: 100%;
    max-width: 728px;
    margin: 0 auto;
  }
  .masthead__banner img,
  .masthead__banner iframe {
    max-width: 100%;
    height: auto;
  }

  /* Searchbar : reste en ligne mais plus compacte */
  .searchbar-strip__inner { padding: 10px 0; }

  /* Menu principal : fonts un peu plus petites */
  .mainnav__menu > li > a {
    font-size: 12.5px;
    padding: 0 12px;
  }

  /* Bannière sous le menu : 970×300 → s'adapte avec aspect-ratio */
  .agri360-banner-frame { max-width: 100% !important; }

  /* Layouts à 2 colonnes (single, archive, search, category) → empilés */
  .single-layout__grid,
  .archive-layout__grid,
  .category-layout__grid,
  .search-layout__grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .sidebar { position: static !important; }

  /* Grilles d'articles : 4 cols → 2 cols, 3 cols → 2 cols */
  .post-grid--4,
  .post-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* Hero article : hauteur réduite */
  .hero-article { height: auto !important; min-height: 360px; }

  /* Splits 50/50, 60/40, 70/30, 33/66 → empilés en mobile */
  .split-grid,
  .split-50-50,
  .split-60-40,
  .split-70-30,
  .split-33-66 {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Footer : 4 colonnes → 2 colonnes */
  .site-footer__columns {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px;
  }

  /* Modules métier : padding intérieur réduit */
  .module-fallah360,
  .module-phyto,
  .module-meteo,
  .module-marche {
    padding: 24px !important;
  }

  /* Pavé sidebar 300×600 : peut être réduit ou pleine largeur */
  .sidebar-pave-frame { max-width: 300px; margin: 0 auto; }

  /* Section bar : titre plus petit */
  .section-bar h2 {
    font-size: 17px;
    padding: 8px 18px 8px 14px;
  }
  .section-bar h2::after {
    border-left-width: 14px;
    border-bottom-width: 35px;
  }

  /* Newsletter CTA strip */
  .newsletter-cta--strip { padding: 28px 24px !important; }
  .newsletter-cta--strip h2 { font-size: 22px !important; }
}


/* ────────────────────────────────────────────────
 * MOBILE (max 768px)
 * ────────────────────────────────────────────── */
@media (max-width: 768px) {

  /* Topbar : encore plus compact, items wrap */
  .topbar__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 6px 0;
  }
  .topbar__nav {
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
  }
  .topbar__nav a { font-size: 11px; }

  /* Header : logo plus petit, bannière OCP cachée ou réduite */
  .masthead { padding: 12px 0; }
  .masthead__logo img { max-height: 48px; }
  .masthead__banner {
    /* On affiche encore mais à 100% de largeur du container */
    width: 100%;
    max-width: 100%;
  }

  /* Searchbar : layout déjà en colonne sur tous les écrans, on ajuste juste le spacing mobile */
  .searchbar-strip__inner {
    padding: 12px 0;
  }
  .searchbar-strip__suggestions {
    gap: 6px 12px;
    font-size: 11.5px;
  }

  /* Menu principal : transformer en hamburger / scrollable horizontal */
  .mainnav__inner {
    grid-template-columns: 1fr auto;
    padding: 10px 0;
  }
  .mainnav__menu {
    display: none; /* caché sur mobile, accessible via hamburger ouvert */
  }
  .mainnav__menu.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--brand-primary);
    z-index: 100;
    padding: 12px 16px;
    gap: 4px;
  }
  .mainnav__menu.is-open > li {
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,.15);
  }
  .mainnav__menu.is-open > li:last-child { border-bottom: 0; }
  .mainnav__menu.is-open > li > a {
    padding: 14px 8px;
    font-size: 14px;
    width: 100%;
    display: block;
  }
  .mainnav__menu.is-open .sub-menu {
    position: static !important;
    background: rgba(0,0,0,.15) !important;
    box-shadow: none !important;
    width: 100% !important;
    transform: none !important;
    padding: 4px 0 !important;
  }
  /* Bouton hamburger visible */
  .mainnav__hamburger { display: inline-flex !important; }

  /* Toutes les grilles → 1 seule colonne */
  .post-grid--2,
  .post-grid--3,
  .post-grid--4 {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  /* Hero article : hauteur min plus petite */
  .hero-article {
    min-height: 280px !important;
    height: auto !important;
  }
  .hero-article__text {
    padding: 18px 22px !important;
  }
  .hero-article__text h2 {
    font-size: 22px !important;
  }
  .hero-article__text p {
    font-size: 13px !important;
  }

  /* Section-bar : encore plus compacte */
  .section-bar h2 {
    font-size: 15px;
    padding: 7px 14px 7px 12px;
  }
  .section-bar h2::after {
    border-left-width: 12px;
    border-bottom-width: 32px;
  }
  .section-bar__more { font-size: 10.5px; }

  /* Sub-pills (filtres rapides) : scrollable horizontal */
  .subcat-pills {
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
  }
  .subcat-pills a {
    font-size: 11.5px;
    padding: 5px 10px;
  }

  /* Bannières : hauteur auto, max 100% */
  .agri360-banner-frame,
  .agri360-banner-frame img,
  .agri360-banner-frame iframe {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
  }

  /* Pavé sidebar 300×600 : 100% width sur mobile */
  .sidebar-pave-frame {
    width: 100% !important;
    max-width: 300px !important;
  }
  .sidebar-pave-frame img {
    width: 100% !important;
    height: auto !important;
  }

  /* Single article : padding et fontes réduites */
  .single-article__hero {
    margin-bottom: 16px;
  }
  .single-article__title {
    font-size: 26px !important;
    line-height: 1.2 !important;
  }
  .single-article__content {
    font-size: 16px;
  }
  .single-article__content h2 { font-size: 22px; }
  .single-article__content h3 { font-size: 18px; }

  /* Footer : 4 colonnes → 1 colonne */
  .site-footer__columns {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-top: 24px;
  }
  .site-footer__legal-menu {
    flex-wrap: wrap;
    gap: 12px;
  }

  /* Modules métier */
  .module-phyto,
  .module-fallah360,
  .module-meteo,
  .module-marche {
    padding: 20px !important;
  }
  .module-phyto h2,
  .module-fallah360 h2 {
    font-size: 22px !important;
  }
  .module-fallah360__list {
    grid-template-columns: 1fr !important;
  }

  /* Newsletter CTA strip : empilé centré */
  .newsletter-cta--strip {
    grid-template-columns: 1fr !important;
    text-align: center;
    padding: 24px 18px !important;
  }
  .newsletter-cta--strip h2 { font-size: 20px !important; }
  .newsletter-cta--strip p { font-size: 13px; }
  .newsletter-cta--strip .newsletter-form {
    min-width: 0;
    width: 100%;
  }

  /* Pagination */
  .nav-links a, .nav-links span {
    padding: 6px 10px;
    font-size: 13px;
  }

  /* Banner Alltech sous le menu : ajuster aspect ratio sur mobile */
  .section--banner-full { padding: 12px 0 !important; }
}


/* ────────────────────────────────────────────────
 * PETIT MOBILE (max 480px)
 * ────────────────────────────────────────────── */
@media (max-width: 480px) {

  :root { --container-pad: 16px; }

  /* Logo encore plus petit */
  .masthead { padding: 10px 0; }
  .masthead__logo img { max-height: 42px; }

  /* Topbar items : scrollable horizontal */
  .topbar__nav {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .topbar__nav a { white-space: nowrap; }

  /* Searchbar : input pleine largeur */
  .searchbar-strip__form input {
    font-size: 14px;
    padding: 10px 12px;
  }
  .searchbar-strip__form button {
    padding: 10px 14px;
    font-size: 12px;
  }

  /* Hero article : compact */
  .hero-article {
    min-height: 240px !important;
  }
  .hero-article__text h2 {
    font-size: 18px !important;
    margin-bottom: 8px !important;
  }

  /* Section bar : très compact */
  .section-bar h2 {
    font-size: 14px;
    padding: 6px 12px 6px 10px;
  }
  .section-bar__more {
    font-size: 10px;
  }

  /* Cards d'articles */
  .post-card__title { font-size: 16px; }
  .post-card__excerpt { font-size: 13px; }
  .post-card__meta { font-size: 11px; }

  /* Single article */
  .single-article__title { font-size: 22px !important; }
  .single-article__content { font-size: 15px; }

  /* Footer */
  .site-footer { padding: 32px 0 16px; }
  .site-footer__col h3 { font-size: 14px; }
  .site-footer__col,
  .site-footer__col p,
  .site-footer__col a { font-size: 13px; }

  /* Modules : titre plus petit */
  .module-phyto h2,
  .module-fallah360 h2 {
    font-size: 18px !important;
  }

  /* CTA buttons */
  .btn,
  button[type=submit] {
    font-size: 12.5px;
    padding: 10px 18px;
  }
}


/* ────────────────────────────────────────────────
 * Très grand écran (> 1400px)
 * ────────────────────────────────────────────── */
@media (min-width: 1401px) {
  /* Le wrapper reste à 1280px max, mais on peut afficher l'habillage */
  body.has-habillage .skin-zone--left,
  body.has-habillage .skin-zone--right {
    display: block;
  }
}


/* ────────────────────────────────────────────────
 * Préférences utilisateur : reduced motion
 * ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ────────────────────────────────────────────────
 * Bouton Hamburger (mobile)
 * ────────────────────────────────────────────── */
.mainnav__hamburger {
  display: none; /* Caché par défaut, visible en mobile */
  background: transparent;
  border: 0;
  padding: 8px;
  cursor: pointer;
  width: 44px;
  height: 44px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
}
.mainnav__hamburger-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  transition: transform 200ms ease, opacity 200ms ease;
  border-radius: 2px;
}
.mainnav__hamburger[aria-expanded="true"] .mainnav__hamburger-bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.mainnav__hamburger[aria-expanded="true"] .mainnav__hamburger-bar:nth-child(2) {
  opacity: 0;
}
.mainnav__hamburger[aria-expanded="true"] .mainnav__hamburger-bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* En mobile : afficher le hamburger, repositionner le inner */
@media (max-width: 768px) {
  .mainnav__hamburger { display: inline-flex; }
  .mainnav__inner {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    position: relative;
  }
  .mainnav { position: relative; }
}


/* ============================================================================
 * LAYOUT : hero_pave_combo
 * Hero article + MegaBanner 2 (gauche) | Pavé Fallah360 300×600 (droite)
 * Les 2 colonnes ont la même hauteur (600px) → pas d'espace vide
 * ============================================================================ */

.hero-pave-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px;
  align-items: stretch;
}

.hero-pave-grid__left {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  /* Hauteur totale = hauteur du pavé droit (600px) pour alignement parfait
     Hero (~494px flex:1) + gap (16px) + MegaBanner (90px) = 600px */
  height: 600px;
}

/* Hero — flex:1 pour prendre l'espace dispo (jusqu'à 600px - 90px - 16px = 494px) */
.hero-pave-grid__hero {
  flex: 1 1 auto;
  min-height: 0; /* Permet à flex:1 de prendre EXACTEMENT l'espace restant */
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  background: #f6f7f7;
}
.hero-pave-grid__hero-link,
.hero-pave-grid__hero-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-pave-grid__hero-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px 28px;
  z-index: 2;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
}
.hero-pave-grid__eyebrow {
  display: inline-block;
  background: #d4a017;
  color: #1a1414;
  padding: 4px 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 2px;
  margin-bottom: 10px;
}
.hero-pave-grid__hero-title {
  margin: 0 0 12px;
  font-family: Fraunces, Georgia, serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -.01em;
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
}
.hero-pave-grid__hero-title a {
  color: #fff;
  text-decoration: none;
}
.hero-pave-grid__hero-title a:hover { opacity: .9; }
.hero-pave-grid__hero-excerpt {
  font-size: 14px;
  line-height: 1.5;
  opacity: .94;
  max-width: 640px;
  margin: 0 0 12px;
  color: #fff;
}
.hero-pave-grid__hero-meta {
  font-size: 12px;
  opacity: .85;
  color: #fff;
}

/* MegaBanner 2 728×90 (sous le hero, hauteur fixe) */
.hero-pave-grid__megabanner {
  flex: 0 0 auto;
  /* BATCH 52d : height auto pour laisser apparaître le label PUBLICITÉ en-dessous.
     L'image a sa propre contrainte 90px via .banner-slot__img ci-dessous. */
  min-height: 90px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fff;
}
.hero-pave-grid__megabanner > .banner-slot,
.hero-pave-grid__megabanner img,
.hero-pave-grid__megabanner iframe {
  max-width: 728px;
  width: 100%;
  /* height auto sur le wrapper (.banner-slot), 90px reste sur l'image elle-même */
  display: block;
  object-fit: contain;
}
.hero-pave-grid__megabanner > .banner-slot {
  height: auto;
}
.hero-pave-grid__megabanner img,
.hero-pave-grid__megabanner iframe {
  height: 90px;
}
.hero-pave-grid__megabanner .banner-slot__img {
  max-height: 90px !important;
  height: 90px !important;
  width: auto !important;
  max-width: 100% !important;
}
/* Placeholder MegaBanner 2 (admin only) */
.hero-pave-grid__megabanner-placeholder {
  width: 100%;
  max-width: 728px;
  height: 90px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8f 100%);
  background-image: linear-gradient(135deg, #1e3a5f 0%, #2d5a8f 100%),
                    repeating-linear-gradient(45deg, transparent 0 20px, rgba(255,255,255,.05) 20px 40px);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: #fff;
  font-size: 12px;
  padding: 0 16px;
}
.hero-pave-grid__megabanner-label {
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 11px;
}
.hero-pave-grid__megabanner-cta {
  background: #d4a017;
  color: #1a1414 !important;
  padding: 7px 14px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}
.hero-pave-grid__megabanner-meta {
  font-size: 10px;
  opacity: .7;
}
.hero-pave-grid__megabanner-meta code {
  background: rgba(0,0,0,.25);
  padding: 1px 5px;
  border-radius: 2px;
  font-size: 10px;
  color: #fff;
}

/* Pavé Fallah360 colonne droite */
.hero-pave-grid__pave {
  width: 300px;
  min-height: 600px; /* min au lieu de height : permet d'accommoder le label PUBLICITÉ
                        + une image plus haute que 600px sans cropper                  */
  align-self: stretch;
  position: relative;
}
.hero-pave-grid__pave > .banner-slot,
.hero-pave-grid__pave > a {
  /* Wrapper du pavé : largeur cible 300px, hauteur libre (auto) pour qu'image
     + label PUBLICITÉ tiennent sans crop. Flex-column pour centrer horizontalement.  */
  width: 100% !important;
  max-width: 300px !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  border-radius: 4px;
  overflow: visible !important; /* override inline overflow:hidden de banner-display.php */
}
.hero-pave-grid__pave > .banner-slot img,
.hero-pave-grid__pave > .banner-slot a img,
.hero-pave-grid__pave > a img {
  /* Image : taille naturelle, jamais cropée, contenue dans le wrapper.
     Batch 55 — fix affichage banners de format différent du slot.             */
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 600px !important;
  display: block !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  border-radius: 4px;
}
/* Placeholder pavé (admin only) */
.hero-pave-grid__pave-placeholder {
  width: 300px;
  height: 600px;
  background: linear-gradient(180deg, #1a4d2e 0%, #2d6a4f 50%, #1a4d2e 100%);
  background-image: linear-gradient(180deg, #1a4d2e 0%, #2d6a4f 50%, #1a4d2e 100%),
                    repeating-linear-gradient(45deg, transparent 0 25px, rgba(255,255,255,.03) 25px 50px);
  border-radius: 4px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 32px 22px;
  text-align: center;
}
.hero-pave-grid__pave-brand {
  font-family: Fraunces, Georgia, serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1;
  margin-bottom: 8px;
}
.hero-pave-grid__pave-tagline {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .85;
  margin-bottom: 14px;
}
.hero-pave-grid__pave-divider {
  width: 60px;
  height: 2px;
  background: #d4a017;
  margin: 0 auto 14px;
}
.hero-pave-grid__pave-label {
  font-size: 13px;
  line-height: 1.5;
  opacity: .85;
  margin-bottom: 24px;
}
.hero-pave-grid__pave-cta {
  background: #d4a017;
  color: #1a1414 !important;
  padding: 10px 18px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  margin-bottom: 12px;
}
.hero-pave-grid__pave-meta {
  font-size: 10px;
  letter-spacing: .04em;
  opacity: .7;
}
.hero-pave-grid__pave-meta code {
  background: rgba(0,0,0,.25);
  padding: 1px 6px;
  border-radius: 2px;
  font-size: 10px;
  color: #fff;
}

/* RESPONSIVE : tablette → empile en 1 colonne */
@media (max-width: 1024px) {
  .hero-pave-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* Sur tablette/mobile : libère la contrainte 600px du desktop
     pour que le hero respire à sa hauteur naturelle */
  .hero-pave-grid__left {
    height: auto;
  }
  .hero-pave-grid__hero {
    min-height: 280px;
  }
  .hero-pave-grid__pave {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
  }
  .hero-pave-grid__hero {
    min-height: 340px;
  }
}

/* RESPONSIVE : mobile → fontes adaptées */
@media (max-width: 768px) {
  .hero-pave-grid__hero-title { font-size: 22px !important; }
  .hero-pave-grid__hero-overlay { padding: 18px 20px; }
  .hero-pave-grid__megabanner { height: 80px; }
  .hero-pave-grid__megabanner img,
  .hero-pave-grid__megabanner iframe { height: 80px; }
}


/* ============================================================================
 * RESPONSIVE supplémentaire pour pages internes (catégorie, archive, search)
 * ============================================================================ */
@media (max-width: 1024px) {
  .category-hero,
  .archive-header,
  .search-header {
    padding: 32px 28px !important;
  }
  .category-hero__title { font-size: 32px !important; }
  .category-hero__meta { margin-top: 16px; }
  .category-hero__count { font-size: 14px; }
}

@media (max-width: 768px) {
  .category-hero,
  .archive-header,
  .search-header {
    padding: 24px 20px !important;
    margin: 20px 0 20px !important;
    border-radius: 4px !important;
  }
  .category-hero__title { font-size: 24px !important; }
  .archive-header__title,
  .search-header__title { font-size: 22px !important; }
  .category-hero__count,
  .category-hero__description { font-size: 13px; }
  /* La section-bar dans le hero : barre rouge h2 */
  .category-hero .section-bar h2 {
    font-size: 18px;
    padding: 8px 16px 8px 12px;
  }
}

@media (max-width: 480px) {
  .category-hero,
  .archive-header,
  .search-header {
    padding: 18px 16px !important;
  }
  .category-hero__title { font-size: 20px !important; }
  .archive-header__title,
  .search-header__title { font-size: 18px !important; }
}


/* ============================================================================
 * RESPONSIVE : grid d'articles dans pages internes
 * ============================================================================ */
@media (max-width: 1024px) {
  /* La grille d'articles passe à 2 colonnes en tablet */
  .archive-layout .post-grid--3,
  .category-layout .post-grid--3,
  .search-layout .post-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  /* Sur petit mobile : 1 colonne */
  .archive-layout .post-grid--3,
  .category-layout .post-grid--3,
  .search-layout .post-grid--3,
  .archive-layout .post-grid--2,
  .category-layout .post-grid--2,
  .search-layout .post-grid--2 {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
}


/* ============================================================================
 * RESPONSIVE : sub-pills sur pages catégorie
 * ============================================================================ */
.category-layout .subcat-pills,
.archive-layout .subcat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 24px;
}

@media (max-width: 768px) {
  .category-layout .subcat-pills,
  .archive-layout .subcat-pills {
    /* Scrollable horizontalement sur mobile */
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 8px;
  }
  .category-layout .subcat-pills > a,
  .archive-layout .subcat-pills > a {
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 12.5px;
  }
}


/* ============================================================================
 * DRAWER MOBILE PRO
 * Menu slide-in depuis la gauche, activé via .mainnav__hamburger
 * Affiché uniquement en mobile/tablette (≤ 1024px)
 * ============================================================================ */

/* Overlay sombre derrière le drawer */
.agri360-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .55);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  display: none; /* hidden by default desktop */
}
.agri360-drawer-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* Drawer container */
.agri360-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 88%;
  max-width: 360px;
  background: #ffffff;
  z-index: 1001;
  display: none; /* hidden by default desktop */
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform .32s cubic-bezier(.4, 0, .2, 1);
  box-shadow: 4px 0 24px rgba(0, 0, 0, .18);
}
.agri360-drawer.is-open {
  transform: translateX(0);
}

/* En mobile / tablette : on active le drawer */
@media (max-width: 1024px) {
  .agri360-drawer-overlay,
  .agri360-drawer {
    display: flex;
  }
}

/* === Drawer head === */
.agri360-drawer__head {
  background: var(--brand-primary, #0a5606);
  color: #fff;
  padding: 18px 20px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  min-height: 64px;
}
.agri360-drawer__logo img {
  display: block;
  max-height: 38px;
  width: auto;
  background: #fff;
  padding: 4px 10px;
  border-radius: 4px;
}
.agri360-drawer__brand {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -.01em;
  color: #fff;
}
.agri360-drawer__close {
  background: rgba(255, 255, 255, .12);
  border: 0;
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s;
  flex-shrink: 0;
  padding: 0;
}
.agri360-drawer__close:hover,
.agri360-drawer__close:active {
  background: rgba(255, 255, 255, .25);
}
.agri360-drawer__close svg {
  width: 18px;
  height: 18px;
}

/* === Drawer search === */
.agri360-drawer__search {
  padding: 14px 18px;
  background: #f7f5f0;
  border-bottom: 1px solid #e8e4dc;
  flex-shrink: 0;
}
.agri360-drawer__search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #e8e4dc;
  border-radius: 24px;
  padding: 0 14px;
  height: 42px;
  margin: 0;
}
.agri360-drawer__search-wrap svg {
  width: 16px;
  height: 16px;
  color: var(--brand-primary, #0a5606);
  flex-shrink: 0;
  margin-right: 8px;
}
.agri360-drawer__search-wrap input {
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  width: 100%;
  font-family: inherit;
  font-size: 14px;
  color: #1a1414;
  box-shadow: none !important;
  padding: 0;
  height: 100%;
}
.agri360-drawer__search-wrap input::placeholder {
  color: #999;
}

/* === Drawer nav (liste menu) === */
.agri360-drawer__nav {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 8px 0 16px;
  background: #fff;
}

/* Reset ul/li dans drawer */
.agri360-drawer__menu,
.agri360-drawer__menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Items niveau 1 */
.agri360-drawer__menu > li {
  border-bottom: 1px solid #e8e4dc;
  position: relative;
}
.agri360-drawer__menu > li:last-child {
  border-bottom: 0;
}
.agri360-drawer__menu > li > a {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 600;
  color: #1a1414;
  text-decoration: none !important;
  transition: background .15s;
  position: relative;
  line-height: 1.3;
}
.agri360-drawer__menu > li > a:active,
.agri360-drawer__menu > li > a:hover {
  background: #f5f1ea;
}

/* Item actif (current_page_item, current-menu-item, current-menu-parent) */
.agri360-drawer__menu > li.current-menu-item > a,
.agri360-drawer__menu > li.current-menu-parent > a,
.agri360-drawer__menu > li.current_page_item > a,
.agri360-drawer__menu > li.current-menu-ancestor > a {
  color: var(--brand-primary, #0a5606);
  background: #f7fdf6;
}
.agri360-drawer__menu > li.current-menu-item > a::before,
.agri360-drawer__menu > li.current-menu-parent > a::before,
.agri360-drawer__menu > li.current_page_item > a::before,
.agri360-drawer__menu > li.current-menu-ancestor > a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 24px;
  background: var(--brand-primary, #0a5606);
  border-radius: 0 2px 2px 0;
}

/* Chevron pour les items avec sous-menu */
.agri360-drawer__menu .menu-item-has-children > a {
  padding-right: 50px;
}
.agri360-drawer__menu .menu-item-has-children > a .drawer-chevron {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: #999;
  transition: transform .25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.agri360-drawer__menu .menu-item-has-children > a .drawer-chevron svg {
  width: 100%;
  height: 100%;
}
.agri360-drawer__menu .menu-item-has-children.is-expanded > a .drawer-chevron {
  transform: translateY(-50%) rotate(90deg);
}

/* === Sous-menu (.sub-menu généré par wp_nav_menu) === */
.agri360-drawer__menu .sub-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
  background: #faf8f3;
  border-top: 0;
}
.agri360-drawer__menu .menu-item-has-children.is-expanded > .sub-menu {
  max-height: 1200px;
  border-top: 1px solid #e8e4dc;
  border-bottom: 1px solid #e8e4dc;
}
.agri360-drawer__menu .sub-menu li {
  border-bottom: 1px solid #efebe2;
}
.agri360-drawer__menu .sub-menu li:last-child {
  border-bottom: 0;
}
.agri360-drawer__menu .sub-menu a {
  display: block;
  padding: 12px 20px 12px 36px;
  font-size: 14px;
  font-weight: 500;
  color: #555;
  text-decoration: none !important;
  position: relative;
  transition: background .15s;
  line-height: 1.4;
}
.agri360-drawer__menu .sub-menu a::before {
  content: '·';
  position: absolute;
  left: 22px;
  top: 50%;
  transform: translateY(-55%);
  color: var(--brand-primary, #0a5606);
  font-weight: 700;
  font-size: 18px;
}
.agri360-drawer__menu .sub-menu a:active,
.agri360-drawer__menu .sub-menu a:hover {
  background: #f5f1ea;
  color: var(--brand-primary, #0a5606);
}
.agri360-drawer__menu .sub-menu li.current-menu-item > a,
.agri360-drawer__menu .sub-menu li.current_page_item > a {
  color: var(--brand-primary, #0a5606);
  font-weight: 600;
  background: #f7fdf6;
}

/* Sous-sous-menu (3e niveau) : juste un peu plus indenté */
.agri360-drawer__menu .sub-menu .sub-menu {
  background: #f5f1e7;
}
.agri360-drawer__menu .sub-menu .sub-menu a {
  padding-left: 56px;
  font-size: 13px;
}
.agri360-drawer__menu .sub-menu .sub-menu a::before {
  left: 42px;
}

/* === Drawer footer (CTA seulement, pas de quick-links ni socials) === */
.agri360-drawer__foot {
  flex-shrink: 0;
  padding: 16px 18px 24px;
  background: var(--cream, #faf8f3);
  border-top: 1px solid #e8e4dc;
}
.agri360-drawer__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--brand-accent, #d4a017);
  color: #1a1414 !important;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 13px 16px;
  border-radius: 4px;
  text-decoration: none !important;
  transition: background .2s;
}
.agri360-drawer__cta:hover {
  background: #b88913;
}
.agri360-drawer__cta svg {
  width: 16px;
  height: 16px;
  margin-right: 8px;
}

/* Quand drawer ouvert : empêcher scroll body */
body.agri360-drawer-open {
  overflow: hidden;
}

/* En desktop, on cache le drawer même si is-open par défense */
@media (min-width: 1025px) {
  .agri360-drawer,
  .agri360-drawer-overlay {
    display: none !important;
  }
}

/* Cacher l'ancien menu mobile fullscreen (.mainnav__menu.is-open)
 * puisqu'on utilise maintenant le drawer */
@media (max-width: 768px) {
  .mainnav__menu.is-open {
    display: none !important;
  }
}


/* ============================================================================
 * BREADCRUMB sur les pages sous-catégories
 *
 * Note : ce breadcrumb est rendu À L'INTÉRIEUR du <header class="category-hero">
 * qui a un fond rouge dégradé. Les couleurs DOIVENT donc être claires (blanc /
 * blanc transparent) pour rester lisibles.
 * ============================================================================ */
.category-breadcrumb {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 14px;
  letter-spacing: .01em;
  position: relative;
  z-index: 1; /* passer au-dessus du décor radial ::after du category-hero */
}
.category-breadcrumb a {
  color: #ffffff;
  text-decoration: none;
  font-weight: 500;
  transition: color .15s, opacity .15s;
  opacity: 0.9;
}
.category-breadcrumb a:hover {
  color: var(--brand-accent, #f88c00);
  text-decoration: underline;
  opacity: 1;
}
.category-breadcrumb__sep {
  margin: 0 8px;
  color: rgba(255, 255, 255, 0.55);
  font-weight: 400;
}
.category-breadcrumb__current {
  color: #ffffff;
  font-weight: 700;
}

@media (max-width: 768px) {
  .category-breadcrumb { font-size: 12px; }
  .category-breadcrumb__sep { margin: 0 6px; }
}


/* ============================================================================
 * MODE "SECTIONS" du layout cat_block_subpills :
 * Chaque sous-catégorie est rendue comme une mini-section avec barre rouge
 * ============================================================================ */
.cat-block-subsections {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 16px;
}
.cat-block-subsection {
  /* Espacement interne entre la barre rouge et la grille */
}
.cat-block-subsection .section-bar {
  margin-bottom: 18px;
}
@media (max-width: 768px) {
  .cat-block-subsections { gap: 24px; }
  .cat-block-subsection .section-bar { margin-bottom: 14px; }
}


/* ============================================================================
 * SECTION-BAR : éviter le chevauchement titre / lien "Toutes les..." sur mobile
 * ============================================================================ */

/* Tablette : compacter le lien more */
@media (max-width: 1024px) {
  .section-bar__more {
    font-size: 11px;
    letter-spacing: .04em;
    padding-left: 12px;
    text-align: right;
    line-height: 1.3;
  }
}

/* Mobile : stack vertical pour éviter tout chevauchement */
@media (max-width: 720px) {
  .section-bar {
    flex-wrap: wrap;
    align-items: stretch;
    border-bottom-width: 2px;
    padding-bottom: 0;
  }
  /* Le titre prend toute la largeur, comme un bandeau pleine largeur */
  .section-bar h2 {
    flex: 1 1 100%;
    width: 100%;
    margin-bottom: 0;
    /* Le triangle rouge de droite n'a plus de sens en pleine largeur,
       on le retire au profit d'un fond rouge net jusqu'au bord */
    padding-right: 16px;
  }
  .section-bar h2::after {
    display: none;
  }
  /* Le lien "Toutes les..." passe sous la barre rouge, à droite,
     avec un peu de respiration */
  .section-bar__more {
    flex: 1 1 100%;
    width: 100%;
    text-align: right;
    padding: 8px 4px 8px 0;
    font-size: 11px;
    letter-spacing: .04em;
    border-top: 0;
  }
}

/* Petit mobile : encore plus compact */
@media (max-width: 480px) {
  .section-bar h2 {
    font-size: 14px;
    padding: 7px 14px 7px 10px;
  }
  .section-bar__more {
    font-size: 10.5px;
    padding: 6px 2px 6px 0;
  }
}


/* ============================================================================
 * PAVÉ FALLAH360 déplacé en fin de home sur mobile (cf. main.js)
 * ============================================================================ */
.section--mobile-pave-bottom {
  background: #fff;
}
.section--mobile-pave-bottom .hero-pave-grid__pave {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
  height: auto; /* on libère la contrainte 600px qui peut couper en mobile */
}
.section--mobile-pave-bottom .hero-pave-grid__pave > .banner-slot,
.section--mobile-pave-bottom .hero-pave-grid__pave > .banner-slot img,
.section--mobile-pave-bottom .hero-pave-grid__pave > a,
.section--mobile-pave-bottom .hero-pave-grid__pave > a img {
  width: 100% !important;
  max-width: 300px !important;
  height: auto !important;
}
.section--mobile-pave-bottom .hero-pave-grid__pave-placeholder {
  width: 100%;
  max-width: 300px;
  height: 600px;
}

/* Quand on est en mobile et que JS a déplacé le pavé,
   masquer la colonne pavé dans la grille pour ne pas laisser de trou */
@media (max-width: 1024px) {
  /* Le JS gère le déplacement, on s'assure juste que la grille s'adapte
     proprement quand le pavé est sorti */
  .hero-pave-grid__left {
    width: 100%;
  }
}


/* ============================================================================
 * MOBILE — Articles miniaturisés à partir du 2ème (logique news app)
 * ============================================================================
 * Sur smartphone, dans toutes les grilles d'articles :
 *   - 1er article : grand format (image fullwidth + titre + extrait + meta)
 *   - 2ème et suivants : format compact horizontal
 *     (image carrée à gauche, titre + meta à droite, sans extrait)
 *
 * Optimisation perf : moins de scroll, moins d'images plein écran à charger,
 * lecture rapide façon Le Monde / BBC News mobile.
 *
 * S'applique dans la home (cat_block_subpills, cat_block, posts_grid,
 * alaune_grid…) ET les pages catégorie / archive / recherche.
 * ============================================================================ */

@media (max-width: 720px) {

  /* ===== 1er article : grand format ===== */
  .post-grid > .post-card:first-child,
  .post-grid > article.post-card:first-child {
    /* On laisse le format vertical par défaut, juste ajusté pour mobile */
    display: block;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--border, #e8e4dc);
    margin-bottom: 18px;
  }
  .post-grid > .post-card:first-child .post-card__img,
  .post-grid > article.post-card:first-child .post-card__img {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
  }
  .post-grid > .post-card:first-child .post-card__img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
  }
  .post-grid > .post-card:first-child h3 {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    margin: 14px 16px 10px;
  }
  .post-grid > .post-card:first-child h3 a { color: var(--text, #1a1414); }
  .post-grid > .post-card:first-child .post-card__excerpt {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-soft, #555);
    margin: 0 16px 12px;
    display: block;
  }
  .post-grid > .post-card:first-child .post-card__meta {
    margin: 0 16px 14px;
    font-size: 12px;
    color: var(--text-soft, #777);
  }

  /* ===== 2ème article et suivants : format compact horizontal ===== */
  .post-grid > .post-card:not(:first-child),
  .post-grid > article.post-card:not(:first-child) {
    display: grid !important;
    grid-template-columns: 110px 1fr;
    gap: 14px;
    align-items: start;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--border, #e8e4dc);
    border-radius: 0;
    padding: 14px 0;
    margin-bottom: 0;
  }
  .post-grid > .post-card:not(:first-child):last-child {
    border-bottom: 0;
  }

  /* Image compacte à gauche (carrée) */
  .post-grid > .post-card:not(:first-child) .post-card__img {
    width: 110px;
    height: 110px;
    flex-shrink: 0;
    margin: 0;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    display: block;
  }
  .post-grid > .post-card:not(:first-child) .post-card__img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
  }
  /* Cacher le badge catégorie sur les compacts (gain de place) */
  .post-grid > .post-card:not(:first-child) .post-card__cat {
    display: none !important;
  }

  /* Texte à droite : h3 + meta uniquement, pas d'extrait */
  .post-grid > .post-card:not(:first-child) h3 {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 15.5px;
    line-height: 1.25;
    font-weight: 600;
    margin: 0 0 6px;
    /* Limiter à 3 lignes max avec ellipsis */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .post-grid > .post-card:not(:first-child) h3 a {
    color: var(--text, #1a1414);
  }

  /* Cacher l'extrait sur les compacts */
  .post-grid > .post-card:not(:first-child) .post-card__excerpt {
    display: none !important;
  }

  /* Meta date en petit gris en bas */
  .post-grid > .post-card:not(:first-child) .post-card__meta {
    font-size: 11.5px;
    color: var(--text-soft, #777);
    margin: 0;
    line-height: 1.3;
  }

  /* Cas spécial : .post-card hors d'une .post-grid (ex: feature articles) */
  .cat-block__feature {
    margin-bottom: 18px;
  }
}

/* Très petit mobile : image encore un peu plus petite */
@media (max-width: 380px) {
  .post-grid > .post-card:not(:first-child) {
    grid-template-columns: 92px 1fr;
    gap: 12px;
    padding: 12px 0;
  }
  .post-grid > .post-card:not(:first-child) .post-card__img {
    width: 92px;
    height: 92px;
  }
  .post-grid > .post-card:not(:first-child) h3 {
    font-size: 14.5px;
  }
}


/* ============================================================================
 * LAYOUT cat_block_with_pave : Catégorie (gauche fluide) + Pavé 300×N (droite fixe)
 * ============================================================================ */

.section--cat-block-with-pave {
  padding: 24px 0;
}

.cat-pave-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 32px;
  align-items: start;
  margin-top: 16px;
}

.cat-pave-grid__left {
  min-width: 0;
}

/* Article featured */
.cat-pave-grid__feature {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border, #e8e4dc);
  margin-bottom: 24px;
}
.cat-pave-grid__feature .post-card__img {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.cat-pave-grid__feature .post-card__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.cat-pave-grid__feature h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 700;
  margin: 18px 22px 10px;
}
.cat-pave-grid__feature h3 a {
  color: var(--text, #1a1414);
  text-decoration: none;
}
.cat-pave-grid__feature h3 a:hover {
  color: var(--brand-primary, #0a5606);
}
.cat-pave-grid__feature .post-card__excerpt {
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--text-soft, #555);
  margin: 0 22px 12px;
}
.cat-pave-grid__feature .post-card__meta {
  margin: 0 22px 18px;
  font-size: 12px;
  color: #777;
}

/* Liste articles secondaires */
.cat-pave-grid__list .post-list__item {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.cat-pave-grid__list .post-list__item:last-child {
  border-bottom: 0;
}
.cat-pave-grid__list .post-list__item img {
  width: 100px !important;
  height: 100px !important;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.cat-pave-grid__list .post-list__item h4 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 16px;
  line-height: 1.3;
  font-weight: 600;
  margin: 0 0 6px;
}
.cat-pave-grid__list .post-list__item h4 a {
  color: var(--text, #1a1414);
  text-decoration: none;
}
.cat-pave-grid__list .post-list__item h4 a:hover {
  color: var(--brand-primary, #0a5606);
}
.cat-pave-grid__list .post-list__item time {
  font-size: 12px;
  color: #777;
}

/* Pavé colonne droite : taille forcée 300×N */
.cat-pave-grid__pave {
  width: 300px;
  min-height: var(--pave-h, 300px); /* min au lieu de height : permet d'accommoder
                                       le label PUBLICITÉ + l'image sans cropper      */
  position: sticky;
  top: 80px; /* sous le menu sticky */
  align-self: start;
}
.cat-pave-grid__pave .banner-slot,
.cat-pave-grid__pave > a {
  /* Wrapper du pavé inline : largeur cible 300px, hauteur libre (auto) pour que
     l'image + le label PUBLICITÉ tiennent sans crop. Flex-column pour le centrage. */
  width: 100% !important;
  max-width: 300px !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  border-radius: 4px;
  overflow: visible !important; /* override inline overflow:hidden de banner-display.php */
}
.cat-pave-grid__pave .banner-slot img,
.cat-pave-grid__pave .banner-slot a img,
.cat-pave-grid__pave > a img {
  /* Image : taille naturelle, jamais cropée, contenue dans le wrapper.
     Batch 55 — fix affichage banners de format différent du slot.             */
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: var(--pave-h, 600px) !important;
  display: block !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  border-radius: 4px;
}

/* Placeholder pavé (admin only) */
.cat-pave-grid__pave-placeholder {
  width: 300px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8f 100%);
  background-image: linear-gradient(135deg, #1e3a5f 0%, #2d5a8f 100%),
                    repeating-linear-gradient(45deg, transparent 0 20px, rgba(255, 255, 255, .04) 20px 40px);
  border-radius: 4px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 22px 18px;
  text-align: center;
}
.cat-pave-grid__pave-format {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(0, 0, 0, .25);
  padding: 4px 10px;
  border-radius: 2px;
  margin-bottom: 12px;
}
.cat-pave-grid__pave-label {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 16px;
}
.cat-pave-grid__pave-cta {
  background: #d4a017;
  color: #1a1414 !important;
  padding: 9px 16px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none !important;
  margin-bottom: 12px;
}
.cat-pave-grid__pave-meta {
  font-size: 10px;
  opacity: .7;
}
.cat-pave-grid__pave-meta code {
  background: rgba(0, 0, 0, .25);
  padding: 1px 5px;
  border-radius: 2px;
  color: #fff;
}

/* === Banner column dans split (solution 2) === */
.split-col__banner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.split-col__banner > .banner-slot,
.split-col__banner > a {
  max-width: 300px;
  margin: 0 auto;
}

/* RESPONSIVE — tablette : grille empilée */
@media (max-width: 1024px) {
  .cat-pave-grid {
    grid-template-columns: 1fr;
    gap: 16px; /* BATCH 53b : r\u00e9duit (\u00e9tait 24px) */
  }
  .cat-pave-grid__pave {
    width: 100%;
    max-width: 300px;
    height: auto !important; /* BATCH 53b : laisse le pav\u00e9 prendre sa hauteur naturelle (\u00e9tait forc\u00e9 \u00e0 300px) */
    margin: 0 auto;
    position: static;
  }
  .cat-pave-grid__pave .banner-slot,
  .cat-pave-grid__pave .banner-slot img,
  .cat-pave-grid__pave > a,
  .cat-pave-grid__pave > a img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important; /* BATCH 53b : image en hauteur naturelle */
  }
  /* BATCH 53b : r\u00e9duit le padding section sur mobile pour rapprocher les pav\u00e9s */
  .section--cat-block-with-pave {
    padding: 12px 0;
  }
}

/* RESPONSIVE — mobile : feature card adaptée */
@media (max-width: 720px) {
  .cat-pave-grid__feature h3 {
    font-size: 20px;
    margin: 14px 16px 8px;
  }
  .cat-pave-grid__feature .post-card__excerpt {
    font-size: 13.5px;
    margin: 0 16px 10px;
  }
  .cat-pave-grid__feature .post-card__meta {
    margin: 0 16px 14px;
  }
  .cat-pave-grid__list .post-list__item {
    grid-template-columns: 92px 1fr;
    gap: 12px;
    padding: 12px 0;
  }
  .cat-pave-grid__list .post-list__item img {
    width: 92px !important;
    height: 92px !important;
  }
  .cat-pave-grid__list .post-list__item h4 {
    font-size: 14.5px;
  }
}


/* ============================================================================
 * MULTI-CAT BLOCK : badges et layouts
 * ============================================================================ */

/* Badge inline pour les cards compactes (sub-cat name) */
.post-card__cat-inline {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--brand-primary, #0a5606);
  margin-bottom: 4px;
}

/* Layout featured + liste compacte */
.multi-cat-grid--featured-list {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.multi-cat-grid__featured .post-card { margin: 0; }
.multi-cat-grid__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.multi-cat-grid__list .post-card--compact {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 14px;
  align-items: start;
  padding: 12px 0;
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.multi-cat-grid__list .post-card--compact:first-child { padding-top: 0; }
.multi-cat-grid__list .post-card--compact:last-child { border-bottom: 0; padding-bottom: 0; }
.multi-cat-grid__list .post-card--compact .post-card__img {
  width: 110px;
  height: 110px;
  border-radius: 6px;
  overflow: hidden;
  display: block;
}
.multi-cat-grid__list .post-card--compact .post-card__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.multi-cat-grid__list .post-card--compact h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15.5px;
  line-height: 1.25;
  font-weight: 600;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.multi-cat-grid__list .post-card--compact .post-card__meta {
  font-size: 11.5px;
  color: var(--text-soft, #777);
}

/* Layout featured + grille 2 colonnes */
.multi-cat-grid--featured-grid {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.multi-cat-grid__featured-top .post-card { margin: 0; }
.multi-cat-grid__cards {
  /* utilise post-grid--2 standard */
}

/* Layout vertical list (breaking news) */
.multi-cat-grid--vertical {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.multi-cat-grid--vertical .post-card--compact {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.multi-cat-grid--vertical .post-card--compact:last-child { border-bottom: 0; }
.multi-cat-grid--vertical .post-card--compact .post-card__img {
  width: 90px; height: 90px;
  border-radius: 4px; overflow: hidden;
}
.multi-cat-grid--vertical .post-card--compact .post-card__img img {
  width: 100% !important; height: 100% !important; object-fit: cover !important;
}
.multi-cat-grid--vertical .post-card--compact h3 {
  font-size: 15px;
  line-height: 1.3;
  margin: 0 0 4px;
}

/* Responsive multi-cat */
@media (max-width: 1024px) {
  .multi-cat-grid--featured-list { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 720px) {
  .multi-cat-grid__list .post-card--compact {
    grid-template-columns: 100px 1fr;
    gap: 12px;
    padding: 10px 0;
  }
  .multi-cat-grid__list .post-card--compact .post-card__img {
    width: 100px; height: 100px;
  }
}


/* ============================================================================
 * cat_block_with_pave : 5 modèles d'affichage
 * ============================================================================ */

/* Mode 2 : featured + grille 2 cols dessous */
.cat-pave-grid--mode-featured-grid2 .cat-pave-grid__feature {
  margin-bottom: 18px;
}
.cat-pave-grid__grid2 {
  gap: 16px;
}
.cat-pave-grid__grid2 .post-card {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}
.cat-pave-grid__grid2 .post-card__img {
  aspect-ratio: 16 / 10;
  display: block;
  position: relative;
  overflow: hidden;
}
.cat-pave-grid__grid2 .post-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cat-pave-grid__grid2 .post-card h3 {
  font-family: Fraunces, Georgia, serif;
  font-size: 17px;
  line-height: 1.25;
  margin: 12px 0 6px;
  font-weight: 700;
}
.cat-pave-grid__grid2 .post-card h3 a { color: var(--text); text-decoration: none; }
.cat-pave-grid__grid2 .post-card h3 a:hover { color: var(--brand-primary); }
.cat-pave-grid__grid2 .post-card__meta {
  font-size: 12px;
  color: var(--text-soft);
}

/* Mode 3 : grid 2 cols simple, sans featured */
.cat-pave-grid--mode-grid2-simple .post-grid--2 {
  gap: 18px;
}

/* Mode 4 : list only — articles compacts en liste verticale */
.cat-pave-grid__list--full {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cat-pave-grid__list--full .post-list__item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  align-items: start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.cat-pave-grid__list--full .post-list__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.cat-pave-grid__list--full .post-list__item img {
  width: 120px;
  height: 80px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.cat-pave-grid__list--full .post-list__cat {
  display: inline-block;
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--brand-primary);
  font-weight: 700;
  margin-bottom: 4px;
}
.cat-pave-grid__list--full h4 {
  font-family: Fraunces, Georgia, serif;
  font-size: 16px;
  line-height: 1.25;
  margin: 0 0 6px;
}
.cat-pave-grid__list--full h4 a { color: var(--text); text-decoration: none; }
.cat-pave-grid__list--full h4 a:hover { color: var(--brand-primary); }
.cat-pave-grid__list--full time {
  font-size: 11.5px;
  color: var(--text-soft);
}

/* Mode 5 : featured + carousel horizontal */
.cat-pave-carousel {
  position: relative;
  margin-top: 18px;
}
.cat-pave-carousel__track {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
  scrollbar-width: thin;
}
.cat-pave-carousel__track::-webkit-scrollbar {
  height: 6px;
}
.cat-pave-carousel__track::-webkit-scrollbar-thumb {
  background: var(--border, #e8e4dc);
  border-radius: 3px;
}
.cat-pave-carousel__item {
  flex: 0 0 auto;
  width: 200px;
  scroll-snap-align: start;
}
.cat-pave-carousel__item a {
  display: block;
  text-decoration: none;
  color: var(--text);
}
.cat-pave-carousel__img {
  width: 200px !important;
  height: 130px !important;
  object-fit: cover !important;
  border-radius: 4px;
  display: block;
  margin-bottom: 8px;
}
.cat-pave-carousel__item h4 {
  font-family: Fraunces, Georgia, serif;
  font-size: 14px;
  line-height: 1.25;
  margin: 0 0 4px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cat-pave-carousel__item time {
  font-size: 11px;
  color: var(--text-soft);
}
.cat-pave-carousel__item:hover h4 {
  color: var(--brand-primary);
}
.cat-pave-carousel__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: #fff;
  border: 1px solid var(--border, #e8e4dc);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  color: var(--brand-primary);
  font-weight: bold;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  transition: transform .15s, background .15s;
}
.cat-pave-carousel__btn:hover {
  background: var(--brand-primary);
  color: #fff;
  transform: translateY(-50%) scale(1.05);
}
.cat-pave-carousel__btn--prev { left: -10px; }
.cat-pave-carousel__btn--next { right: -10px; }

/* Mobile : carousel devient pleine largeur, items un peu plus petits */
@media (max-width: 768px) {
  .cat-pave-carousel__item { width: 180px; }
  .cat-pave-carousel__img { width: 180px !important; height: 120px !important; }
  .cat-pave-carousel__btn { display: none; } /* sur mobile, swipe natif */

  .cat-pave-grid__list--full .post-list__item {
    grid-template-columns: 100px 1fr;
    gap: 12px;
  }
  .cat-pave-grid__list--full .post-list__item img {
    width: 100px;
    height: 70px;
  }
  .cat-pave-grid__list--full h4 { font-size: 14.5px; }

  /* Mode 2 et 3 : 1 colonne en mobile */
  .cat-pave-grid--mode-featured-grid2 .cat-pave-grid__grid2,
  .cat-pave-grid--mode-grid2-simple .cat-pave-grid__grid2 {
    grid-template-columns: 1fr !important;
  }
}


/* ============================================================================
 * multi_cat_block — Mode "featured_2cols_list" (style magazine pro)
 * ============================================================================
 * Layout : 1 grand featured à gauche + 2 colonnes verticales à droite
 * Inspiré des layouts magazine type Le Monde, Reuters, BBC News.
 * ============================================================================ */

.multi-cat-grid--featured-2cols {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

/* Featured grand format à gauche */
.multi-cat-grid__featured-left {
  min-width: 0;
}
.multi-cat-grid__featured-left .multi-cat-card__img {
  aspect-ratio: 4 / 3;
  margin-bottom: 14px;
}
.multi-cat-grid__featured-left .multi-cat-card__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  border-radius: 4px;
}
.multi-cat-grid__featured-left h3 {
  font-family: Fraunces, Georgia, serif;
  font-size: 24px;
  line-height: 1.2;
  margin: 8px 0 10px;
  font-weight: 700;
}
.multi-cat-grid__featured-left h3 a {
  color: var(--text, #1a1414);
  text-decoration: none;
}
.multi-cat-grid__featured-left h3 a:hover { color: var(--brand-primary); }
.multi-cat-grid__featured-left .multi-cat-card__excerpt {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--text-soft, #555);
  margin: 0 0 10px;
  display: block;
}
.multi-cat-grid__featured-left .multi-cat-card__meta {
  font-size: 12px;
  color: var(--text-soft, #777);
}

/* Colonnes verticales d'articles compacts à droite */
.multi-cat-grid__col {
  display: flex;
  flex-direction: column;
  gap: 22px; /* espace entre les cards horizontales compactes */
  min-width: 0;
}

/* Card horizontale compacte (image carrée à gauche, titre+date à droite)
   Style "magazine pro" comme dans Le Monde, Reuters, BBC News */
.multi-cat-vcard {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 12px;
  align-items: start;
}
.multi-cat-vcard__img {
  display: block;
  width: 90px;
  height: 90px;
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  flex-shrink: 0;
}
.multi-cat-vcard__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  transition: transform .3s;
}
.multi-cat-vcard:hover .multi-cat-vcard__img img {
  transform: scale(1.04);
}
.multi-cat-vcard__body {
  min-width: 0; /* Permet au texte de wrapper sans déborder */
}
.multi-cat-vcard h4 {
  font-family: Fraunces, Georgia, serif;
  font-size: 15px;
  line-height: 1.25;
  margin: 0 0 6px;
  font-weight: 700;
  /* Limiter à 4 lignes max avec ellipsis */
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.multi-cat-vcard h4 a {
  color: var(--text, #1a1414);
  text-decoration: none;
}
.multi-cat-vcard h4 a:hover { color: var(--brand-primary); }
.multi-cat-vcard__meta {
  font-size: 11.5px;
  color: var(--text-soft, #777);
  letter-spacing: .02em;
  display: block;
  margin-top: 4px;
}

/* Tablette : 1 colonne featured + 2 colonnes secondaires plus compactes */
@media (max-width: 1024px) {
  .multi-cat-grid--featured-2cols {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 24px;
  }
  /* La 3e colonne passe sous le featured */
  .multi-cat-grid__col-2 {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 22px;
  }
  .multi-cat-grid__col-2 .multi-cat-vcard {
    flex: 1 1 calc(33.333% - 16px);
    min-width: 240px;
  }
  .multi-cat-grid__featured-left h3 { font-size: 22px; }
}

/* Mobile : tout en 1 colonne, conserve le format compact horizontal */
@media (max-width: 720px) {
  .multi-cat-grid--featured-2cols {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .multi-cat-grid__featured-left h3 { font-size: 20px; }
  .multi-cat-grid__featured-left .multi-cat-card__img { aspect-ratio: 16 / 10; }

  .multi-cat-grid__col,
  .multi-cat-grid__col-2 {
    flex-direction: column;
    grid-column: auto;
    gap: 14px;
  }
  /* Les cards restent en compact horizontal (même structure que desktop)
     mais avec une ligne de séparation et padding pour donner de l'aération */
  .multi-cat-vcard {
    grid-template-columns: 110px 1fr;
    gap: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border, #e8e4dc);
  }
  .multi-cat-vcard:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
  .multi-cat-vcard__img {
    width: 110px;
    height: 110px;
  }
  .multi-cat-vcard h4 {
    font-size: 14.5px;
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
}


/* ============================================================================
 * MENU MOBILE ACCORDÉON pleine largeur (remplace l'ancien drawer slide-in)
 * ============================================================================
 * Bouton hamburger ≡ à GAUCHE du menu rouge.
 * Au clic, l'accordéon descend en pleine largeur sous le menu rouge avec
 * animation fluide. Pas d'overlay (le contenu reste visible derrière).
 * Visible UNIQUEMENT en mobile/tablette (≤1024px). Sur desktop : caché.
 *
 * Cette règle prend le dessus sur l'ancien CSS .agri360-drawer (slide-in).
 * ============================================================================ */

/* ===== Désactivation totale de l'ancien drawer slide-in ===== */
.agri360-drawer,
.agri360-drawer-overlay {
  display: none !important;
}
body.agri360-drawer-open {
  overflow: auto !important;
}

/* ===== Nouvel accordéon ===== */
.agri360-mobile-accordion {
  display: none; /* caché par défaut */
  position: relative;
  background: #fff;
  width: 100%;
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
  border-bottom: 0 solid var(--brand-primary, #0a5606);
  z-index: 50;
}

/* En mobile/tablette : visible (mais fermé par défaut) */
@media (max-width: 1024px) {
  .agri360-mobile-accordion {
    display: block;
  }
}

/* État ouvert */
.agri360-mobile-accordion.is-open {
  max-height: 80vh; /* limite à 80% de l'écran avec scroll interne si besoin */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-bottom-width: 3px;
  box-shadow: 0 8px 16px -4px rgba(0,0,0,.1);
}

/* Bloquer le scroll body quand le menu est ouvert */
body.agri360-mobile-menu-open {
  overflow: hidden;
}

/* ===== Liste du menu ===== */
.agri360-mobile-accordion__nav {
  background: #fff;
}
.agri360-mobile-accordion__menu,
.agri360-mobile-accordion__menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Items niveau 1 */
.agri360-mobile-accordion__menu > li {
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.agri360-mobile-accordion__menu > li:last-child {
  border-bottom: 0;
}
.agri360-mobile-accordion__menu > li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--text, #1a1414);
  text-decoration: none !important;
  transition: background .15s, color .15s;
  position: relative;
  line-height: 1.3;
  -webkit-tap-highlight-color: rgba(10, 86, 6,.08);
}
.agri360-mobile-accordion__menu > li > a:active,
.agri360-mobile-accordion__menu > li > a:hover {
  background: #f5f1ea;
}

/* Item actif (catégorie/page courante) */
.agri360-mobile-accordion__menu > li.current-menu-item > a,
.agri360-mobile-accordion__menu > li.current-menu-parent > a,
.agri360-mobile-accordion__menu > li.current_page_item > a,
.agri360-mobile-accordion__menu > li.current-menu-ancestor > a {
  color: var(--brand-primary, #0a5606);
  background: #f7fdf6;
}

/* Chevron pour items avec sous-menu */
.agri360-mobile-accordion__menu .menu-item-has-children > a {
  padding-right: 50px;
}
.agri360-mobile-accordion__menu .accordion-chevron {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: #999;
  transition: transform .25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.agri360-mobile-accordion__menu .accordion-chevron svg {
  width: 100%;
  height: 100%;
}
.agri360-mobile-accordion__menu .menu-item-has-children.is-expanded > a .accordion-chevron {
  transform: translateY(-50%) rotate(90deg);
}

/* ===== Sous-menus (.sub-menu) ===== */
.agri360-mobile-accordion__menu .sub-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
  background: #faf8f3;
}
.agri360-mobile-accordion__menu .menu-item-has-children.is-expanded > .sub-menu {
  max-height: 1500px;
  border-top: 1px solid var(--border, #e8e4dc);
  border-bottom: 1px solid var(--border, #e8e4dc);
}
.agri360-mobile-accordion__menu .sub-menu li {
  border-bottom: 1px solid #efebe2;
}
.agri360-mobile-accordion__menu .sub-menu li:last-child {
  border-bottom: 0;
}
.agri360-mobile-accordion__menu .sub-menu a {
  display: block;
  padding: 12px 22px 12px 38px;
  font-size: 13.5px;
  font-weight: 500;
  color: #555;
  text-decoration: none !important;
  position: relative;
  transition: background .15s;
  line-height: 1.4;
}
.agri360-mobile-accordion__menu .sub-menu a::before {
  content: '·';
  position: absolute;
  left: 24px;
  top: 50%;
  transform: translateY(-55%);
  color: var(--brand-primary, #0a5606);
  font-weight: 700;
  font-size: 18px;
}
.agri360-mobile-accordion__menu .sub-menu a:active,
.agri360-mobile-accordion__menu .sub-menu a:hover {
  background: #f5f1ea;
  color: var(--brand-primary, #0a5606);
}
.agri360-mobile-accordion__menu .sub-menu li.current-menu-item > a,
.agri360-mobile-accordion__menu .sub-menu li.current_page_item > a {
  color: var(--brand-primary, #0a5606);
  font-weight: 600;
  background: #f7fdf6;
}

/* Sous-sous-menus (3e niveau) */
.agri360-mobile-accordion__menu .sub-menu .sub-menu {
  background: #f3eee2;
}
.agri360-mobile-accordion__menu .sub-menu .sub-menu a {
  padding-left: 56px;
  font-size: 13px;
}
.agri360-mobile-accordion__menu .sub-menu .sub-menu a::before {
  left: 42px;
}

/* ===== Footer du menu (CTA S'abonner) ===== */
.agri360-mobile-accordion__foot {
  padding: 18px 22px 22px;
  background: var(--cream, #faf8f3);
  border-top: 1px solid var(--border, #e8e4dc);
}
.agri360-mobile-accordion__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--brand-accent, #d4a017);
  color: var(--text, #1a1414) !important;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 13px 16px;
  border-radius: 4px;
  text-decoration: none !important;
  transition: filter .15s;
}
.agri360-mobile-accordion__cta:hover,
.agri360-mobile-accordion__cta:active {
  filter: brightness(.92);
}

/* ===== Cacher la loupe search redondante en mobile ===== */
/* La searchbar pleine largeur juste au-dessus du menu rouge a déjà
   un champ de recherche, donc le bouton loupe dans .mainnav ou
   .mainnav__cta-zone est redondant en mobile. */
@media (max-width: 1024px) {
  .mainnav__search,
  .mainnav .icon-search,
  .mainnav .mainnav__icon-search,
  .mainnav__cta-zone .icon-search {
    display: none !important;
  }
}

/* ===== Hamburger button : animation X quand ouvert ===== */
.mainnav__hamburger.is-open .mainnav__hamburger-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.mainnav__hamburger.is-open .mainnav__hamburger-bar:nth-child(2) {
  opacity: 0;
}
.mainnav__hamburger.is-open .mainnav__hamburger-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.mainnav__hamburger-bar {
  transition: transform .25s ease, opacity .2s ease;
}

/* Sur desktop : aucun hamburger ni accordéon visibles */
@media (min-width: 1025px) {
  .mainnav__hamburger {
    display: none !important;
  }
  .agri360-mobile-accordion {
    display: none !important;
  }
}


/* ============================================================================
 * SPONSORED CONTENT — Bandeau + badge
 * ============================================================================ */

/* === Bandeau sous le H1 sur la page article === */
.agri360-sponsored-banner {
  margin: 16px 0 24px;
  background: linear-gradient(135deg, #fff8e6 0%, #fff4d6 100%);
  border: 1px solid #e8d5a0;
  border-left: 4px solid #d4a017;
  border-radius: 4px;
  padding: 14px 18px;
  font-size: 13.5px;
  line-height: 1.55;
  color: #4a3f1c;
}
.agri360-sponsored-banner__inner {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}
.agri360-sponsored-banner__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.agri360-sponsored-banner__label strong {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 12px;
  color: #8a6800;
}
.agri360-sponsored-banner__icon {
  font-size: 16px;
  line-height: 1;
}
.agri360-sponsored-banner__separator {
  color: #c4a85a;
  font-weight: 400;
}
.agri360-sponsored-banner__message {
  flex: 1;
  min-width: 220px;
  color: #4a3f1c;
}
.agri360-sponsored-banner__message strong {
  color: #2a1f00;
  font-weight: 700;
}

/* Mobile : empile label et message */
@media (max-width: 600px) {
  .agri360-sponsored-banner {
    padding: 12px 14px;
    font-size: 12.5px;
  }
  .agri360-sponsored-banner__inner {
    flex-direction: column;
    gap: 6px;
  }
  .agri360-sponsored-banner__separator {
    display: none;
  }
  .agri360-sponsored-banner__message {
    min-width: 0;
  }
}


/* === Badge "Sponsorisé" sur les listings (remplace badge catégorie) === */
/* On cible toutes les catégories nommées "💼 Sponsorisé" via attribut content
   (pas réalisable en CSS pur). Donc on cible plutôt le texte spécifique :
   le helper agri360_primary_category() retourne un name commençant par "💼"
   uniquement pour les sponsorisés. On crée un sélecteur qui matche ces badges. */
.post-card__cat:has-text("💼") {
  /* :has-text n'est pas standard CSS, on utilise une autre approche : */
}

/* Approche : sélecteur attribut sur le texte du span n'est pas possible en CSS,
   donc on style via un pseudo-élément quand le content commence par 💼.
   Fallback : on stylise tous les badges qui contiennent "💼" via JS au load,
   ou on utilise une classe ajoutée côté serveur. */

/* Pour être robuste, on ajoute juste un style générique pour le pictogramme :
   tous les .post-card__cat qui commencent par 💼 doivent être dorés brand */
.post-card__cat[data-sponsored="true"],
.post-card__cat--sponsored {
  background: linear-gradient(135deg, #d4a017 0%, #b8870c 100%) !important;
  color: #fff !important;
  font-weight: 700;
}

/* Variante : on force un style pour les badges contenant "Sponsorisé" via JS
   (cf. main.js : ajoute la classe .post-card__cat--sponsored au runtime) */


/* === Bordure dorée subtile autour de l'article single sponsorisé === */
body.agri360-post-sponsored .single-article {
  position: relative;
}
body.agri360-post-sponsored .single-article::before {
  content: '';
  position: absolute;
  top: -4px;
  left: -4px;
  right: -4px;
  bottom: -4px;
  border: 1px solid #e8d5a0;
  border-radius: 6px;
  pointer-events: none;
  opacity: .5;
  z-index: -1;
}


/* ============================================================================
 * BATCH 21 — Menu mobile en haut + barre de recherche élargie (v8)
 * ----------------------------------------------------------------------------
 * v3 : réordonnancement + défense iOS sur le hamburger
 * v4 : retour visuel garanti + message si menu vide + ombre verte de preuve
 * v5 : handler hamburger inline dans header.php + sous-menus dépliables
 * v6 : barre de recherche desktop élargie, tags Populaires sous le champ
 * v7 : loupe seule (sans texte "Rechercher" en doublon), icône agrandie
 * v8 : layout searchbar PC réécrit en flex-wrap (robuste à la minification CSS)
 * ============================================================================ */

/* === Mobile (≤ 1024px) : menu rouge en haut, hamburger fiable iOS === */
@media (max-width: 1024px) {
  .site-wrapper {
    display: flex;
    flex-direction: column;
  }
  .site-wrapper > .mainnav                  { order: -2; }
  .site-wrapper > .agri360-mobile-accordion { order: -1; }

  .mainnav__hamburger {
    position: relative;
    z-index: 200;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(255, 255, 255, .25);
    -webkit-user-select: none;
            user-select: none;
    cursor: pointer;
  }
  .mainnav__hamburger-bar {
    pointer-events: none;
  }

  .agri360-mobile-accordion.is-open {
    min-height: 60px !important;
  }

  .agri360-mobile-accordion.is-open .agri360-mobile-accordion__nav:empty::before,
  .agri360-mobile-accordion.is-open .agri360-mobile-accordion__menu:empty::before {
    content: "Menu mobile vide — configurez le menu « Menu principal » dans Apparence → Menus";
    display: block;
    padding: 14px 20px;
    text-align: center;
    color: #856404;
    background: #fff3cd;
    font-size: 13px;
    line-height: 1.4;
  }

  body.agri360-mobile-menu-open .mainnav {
    box-shadow: 0 4px 0 #2d6a4f, 0 8px 20px rgba(20,32,26,.15) !important;
  }
}

/* === Desktop (≥ 1025px) : barre de recherche élargie, tags Populaires
       sous le champ. Flex-wrap au lieu de grid-template-areas car certains
       minifiers CSS (LiteSpeed, etc.) cassent les chaînes multi-lignes. === */
@media (min-width: 1025px) {
  .searchbar-strip__inner {
    flex-wrap: wrap;
    max-width: 1100px;
  }
  .searchbar-strip__suggestions {
    flex: 1 0 100%;
    margin-left: 38px;
    justify-content: flex-start;
  }
  .searchbar-strip__form input {
    padding: 12px 18px;
  }
}

/* === v7 : loupe agrandie (texte "Rechercher" wrappé en .screen-reader-text dans header.php) === */
.searchbar-strip__label svg {
  width: 22px !important;
  height: 22px !important;
}


/* ============================================================================
 * BATCH 22 — Méta-infos article (Variante 3 : presse pro)
 * ----------------------------------------------------------------------------
 * Affiché uniquement sur la page single d'un article, sous le titre/chapô.
 * Sur la home et les listings, l'auteur reste masqué (selon préférence).
 *
 * Structure :
 *   Ligne 1 : Par [auteur] · Publié le 29 avril 2026 à 14:32 · 5 min de lecture
 *   Ligne 2 (conditionnelle, si modifié > 1h après publication) :
 *           [Mis à jour] il y a 2 heures
 * ============================================================================ */

/* Override des règles existantes .single-article__meta pour la nouvelle structure */
.single-article__meta {
  display: block !important;
  margin-top: 16px;
  padding-top: 14px;
  padding-bottom: 16px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  color: var(--text-muted);
}
.single-article__meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  line-height: 1.5;
}
.single-article__meta-row + .single-article__meta-row {
  margin-top: 6px;
}
.single-article__byline {
  color: var(--text-muted);
}
.single-article__author {
  color: var(--brand-primary);
  font-weight: 600;
  text-decoration: none;
}
.single-article__author:hover {
  text-decoration: underline;
  color: var(--brand-primary-dark);
}
.single-article__date {
  color: var(--text-body);
  font-weight: 500;
}
.single-article__reading {
  color: var(--text-muted);
}
.single-article__sep {
  color: var(--text-light);
  -webkit-user-select: none;
          user-select: none;
}
.single-article__updated-badge {
  display: inline-block;
  background: #d4f1de;
  color: #1a4d2e;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}

/* Catégories cliquables sous la meta-row principale */
.single-article__meta-row--cats {
  font-size: 13px;
}
.single-article__cats-label {
  font-size: 12px;
  margin-right: 2px;
  -webkit-user-select: none;
          user-select: none;
}
.single-article__cats-list {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.single-article__cat-link {
  color: var(--brand-primary);
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s, color .15s;
}
.single-article__cat-link:hover {
  color: var(--brand-primary-dark);
  border-bottom-color: var(--brand-primary-dark);
}

/* Mobile : passer en colonne pour ne pas wrap au milieu d'un élément */
@media (max-width: 600px) {
  .single-article__meta-row {
    font-size: 12.5px;
  }
}

/* Tableaux des articles AgriAlgerie */

.single-post table {
    width: 100%;
    margin: 28px 0;
    border-collapse: collapse;
    background: #fff;
    font-size: 16px;
    line-height: 1.5;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
}

.single-post table th {
    padding: 14px 16px;
    background: #f36b21;
    color: #fff !important;
    font-weight: 700;
    text-align: left;
    vertical-align: middle;
    border: 1px solid #d95712;
}

.single-post table th span,
.single-post table th strong {
    color: #fff !important;
}

.single-post table td {
    padding: 13px 16px;
    color: #292929;
    text-align: left;
    vertical-align: top;
    border: 1px solid #d8dde3;
}

.single-post table tbody tr:nth-child(even) {
    background: #f5f6f7;
}

.single-post table tbody tr:nth-child(odd) {
    background: #fff;
}

.single-post table tbody tr:hover {
    background: #fff1e8;
}

.single-post table tbody td:first-child {
    width: 25%;
    font-weight: 700;
    color: #202020;
}

@media screen and (max-width: 700px) {
    .single-post table {
        font-size: 14px;
    }

    .single-post table th,
    .single-post table td {
        padding: 10px;
    }

    .single-post table tbody td:first-child {
        width: 32%;
    }
}

/* =============================================================
   MODULE RECHERCHE INDEX PHYTOSANITAIRE — HOME
   ============================================================= */
.section--module-phyto-search {
  padding: 0 0 20px;
  background: #fff;
}

.module-phyto-search {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(260px, .85fr) minmax(420px, 1.15fr);
  align-items: center;
  gap: 18px 36px;
  padding: 24px 28px 18px;
  border: 1px solid #cfe0d6;
  border-left: 5px solid var(--brand-green);
  border-radius: var(--radius-lg);
  background: linear-gradient(110deg, #f2f8f4 0%, #fff 72%);
  box-shadow: 0 3px 14px rgba(26, 77, 46, .07);
}

.module-phyto-search::after {
  content: '';
  position: absolute;
  top: -85px;
  right: -80px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: rgba(45, 106, 79, .045);
  pointer-events: none;
}

.module-phyto-search__intro,
.module-phyto-search__form,
.module-phyto-search__meta {
  position: relative;
  z-index: 1;
}

.module-phyto-search__eyebrow {
  display: block;
  margin: 0 0 4px;
  color: var(--brand-green);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.module-phyto-search__title {
  margin: 0 0 5px;
  color: var(--brand-green-dark);
  font-family: var(--font-display);
  font-size: clamp(21px, 2vw, 27px);
  line-height: 1.12;
}

.module-phyto-search__text {
  max-width: 540px;
  margin: 0;
  color: var(--text-body);
  font-size: 13.5px;
  line-height: 1.45;
}

.module-phyto-search__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  padding: 4px;
  border: 1px solid #b9cfc1;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(26, 77, 46, .06);
}

.module-phyto-search__form:focus-within {
  border-color: var(--brand-green);
  box-shadow: 0 0 0 3px rgba(45, 106, 79, .13);
}

.module-phyto-search__form input[type='search'] {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text-primary);
  font: 500 14px/1.2 var(--font-body);
}

.module-phyto-search__form input[type='search']::placeholder {
  color: #817d77;
  opacity: 1;
}

.module-phyto-search__form button {
  min-height: 44px;
  padding: 0 22px;
  border: 0;
  border-radius: 4px;
  background: var(--brand-accent);
  color: #1a1414;
  cursor: pointer;
  font: 800 11.5px/1 var(--font-body);
  letter-spacing: .055em;
  text-transform: uppercase;
  transition: background var(--transition), color var(--transition), transform var(--transition);
}

.module-phyto-search__form button:hover,
.module-phyto-search__form button:focus-visible {
  background: var(--brand-accent-dark);
  color: #fff;
}

.module-phyto-search__form button:active {
  transform: translateY(1px);
}

.module-phyto-search__meta {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 18px;
  padding-top: 12px;
  border-top: 1px solid rgba(45, 106, 79, .14);
  color: var(--text-muted);
  font-size: 11.5px;
}

.module-phyto-search__meta strong {
  color: var(--brand-green-dark);
  font-size: 13px;
}

.module-phyto-search__source {
  margin-left: auto;
  color: var(--brand-green);
  font-weight: 650;
}

@media screen and (max-width: 900px) {
  .module-phyto-search {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .module-phyto-search__meta {
    grid-column: auto;
  }
}

@media screen and (max-width: 600px) {
  .section--module-phyto-search {
    padding-bottom: 16px;
  }

  .module-phyto-search {
    padding: 20px 16px 16px;
    border-left-width: 4px;
  }

  .module-phyto-search__form {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .module-phyto-search__form button {
    width: 100%;
  }

  .module-phyto-search__meta {
    align-items: flex-start;
    gap: 7px 14px;
  }

  .module-phyto-search__source {
    flex-basis: 100%;
    margin-left: 0;
  }
}

/* =============================================================
   SINGLE ARTICLE — MISE EN PAGE ÉPURÉE
   Le texte, les métadonnées et le pied d'article suivent désormais
   exactement la largeur de l'image principale. Les cadres gris sont
   retirés uniquement sur les pages d'article.
   ============================================================= */
body.single-post .single-article {
  padding: 0;
  border: 0;
  border-radius: 0;
}

body.single-post .single-article__hero {
  margin: 0 0 28px;
}

body.single-post .single-article__hero-caption {
  padding-right: 0;
  padding-left: 0;
}

body.single-post .single-article__meta {
  border-top: 0;
  border-bottom: 0;
}

body.single-post .single-article__footer {
  border-top: 0;
}

body.single-post .single-layout__sidebar .widget,
body.single-post .comments-area {
  border: 0;
}

@media (max-width: 1024px) {
  body.single-post .single-article__hero {
    margin-right: 0;
    margin-left: 0;
  }
}

/* ===========================================================================
   SECTION ESPACE MEMBRE — bandeau personnel du membre connecté
   =========================================================================== */
.section--espace-membre { padding: 26px 0; }
.espace-membre {
  background: linear-gradient(135deg, #f3f8f4 0%, #eef5f0 100%);
  border: 1px solid #cfe3d6;
  border-radius: 10px;
  padding: 22px 24px 20px;
}
.espace-membre__head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.espace-membre__avatar { display: inline-grid; place-items: center; border-radius: 50%; overflow: hidden;
  background: #fff; color: #2d6a4f; font-weight: 700; border: 1px solid #cfe3d6; }
.espace-membre__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.espace-membre__salut { font-family: var(--font-display); font-size: 21px; margin: 0; color: #1b4332; }
.espace-membre__sous { margin: 2px 0 0; font-size: 13.5px; color: #5b6b61; }
.espace-membre__palier { margin-left: auto; background: #fff; border: 1px solid #cfe3d6; color: #1b4332;
  border-radius: 99px; padding: 5px 13px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }

.espace-membre__cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.espace-membre__carte { background: #fff; border: 1px solid #dfe8e2; border-radius: 8px; padding: 15px 16px; }
.espace-membre__carte .k { margin: 0 0 7px; font-size: 12.5px; color: #5b6b61; }
.espace-membre__carte .v { margin: 0 0 9px; font-size: 25px; font-weight: 700; line-height: 1.1; color: #1b4332; }
.espace-membre__carte .v span { font-size: 14px; font-weight: 400; color: #5b6b61; }
.espace-membre__carte .v-txt { margin: 0 0 7px; font-size: 15px; font-weight: 600; line-height: 1.35; color: #1b4332; }
.espace-membre__carte .jauge { height: 7px; background: #eceae4; border-radius: 5px; overflow: hidden; }
.espace-membre__carte .jauge i { display: block; height: 100%; border-radius: 5px; background: #2d6a4f; }
.espace-membre__carte .aide { margin: 9px 0 0; font-size: 12.5px; line-height: 1.5; color: #5b6b61; }
.espace-membre__carte .lien { display: inline-block; margin-top: 9px; font-size: 13.5px; font-weight: 600;
  color: #2d6a4f; text-decoration: none; }
.espace-membre__carte .lien:hover { text-decoration: underline; }

.espace-membre__articles { margin-top: 16px; background: #fff; border: 1px solid #dfe8e2; border-radius: 8px; padding: 14px 16px; }
.espace-membre__t { margin: 0 0 8px; font-size: 12.5px; font-weight: 700; color: #5b6b61; text-transform: uppercase; letter-spacing: .04em; }
.espace-membre__articles ul { list-style: none; margin: 0; padding: 0; }
.espace-membre__articles li { padding: 8px 0; border-bottom: 1px solid #f0eeea; }
.espace-membre__articles li:last-child { border-bottom: 0; }
.espace-membre__articles a { font-size: 14.5px; color: #1a1414; text-decoration: none; font-weight: 600; }
.espace-membre__articles a:hover { color: #2d6a4f; }
.espace-membre__articles span { display: block; font-size: 12px; color: #8b968e; margin-top: 2px; }

.espace-membre__liens { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid #cfe3d6; }
.espace-membre__liens a { font-size: 13.5px; color: #2d6a4f; font-weight: 600; text-decoration: none; }
.espace-membre__liens a:hover { text-decoration: underline; }

@media (max-width: 640px) {
  .espace-membre { padding: 18px 16px 16px; border-radius: 8px; }
  .espace-membre__palier { margin-left: 0; }
  .espace-membre__salut { font-size: 19px; }
  .espace-membre__cartes { grid-template-columns: 1fr; }
}

/* ===========================================================================
   BARRE MEMBRE — bandeau fin sous l'en-tête, visible des seuls connectés
   =========================================================================== */
.barre-membre { background: #1b4332; color: #e8f5e9; font-size: 13px; }
.barre-membre__inner { display: flex; align-items: center; gap: 18px; min-height: 38px; flex-wrap: wrap; padding-top: 5px; padding-bottom: 5px; }

.barre-membre__moi { display: inline-flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; font-weight: 600; }
.barre-membre__moi:hover { color: #fff; }
.barre-membre__avatar { display: inline-grid; place-items: center; border-radius: 50%; overflow: hidden;
  background: rgba(255,255,255,.16); color: #fff; font-weight: 700; line-height: 1; }
.barre-membre__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.barre-membre__nom { white-space: nowrap; }
.barre-membre__palier { background: rgba(255,255,255,.14); border-radius: 99px; padding: 2px 9px;
  font-size: 11px; font-weight: 700; white-space: nowrap; }

.barre-membre__quota { color: #b8e0c4; white-space: nowrap; }
.barre-membre__quota.est-vide { color: #ffc9a0; }

.barre-membre__liens { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.barre-membre__liens a { color: #b8e0c4; text-decoration: none; }
.barre-membre__liens a:hover { color: #fff; text-decoration: underline; }
.barre-membre__notif { background: #0a5606; color: #fff !important; border-radius: 99px; padding: 3px 11px; font-weight: 700; }
.barre-membre__notif:hover { background: #073d04; text-decoration: none !important; }
.barre-membre__notif span { font-weight: 400; opacity: .85; }

.barre-membre__sortie { margin-left: auto; color: #b8e0c4; text-decoration: none; white-space: nowrap; }
.barre-membre__sortie:hover { color: #fff; text-decoration: underline; }

@media (max-width: 780px) {
  .barre-membre { font-size: 12.5px; }
  .barre-membre__inner { gap: 10px 14px; }
  .barre-membre__sortie { margin-left: 0; }
  .barre-membre__liens { width: 100%; order: 3; gap: 14px; }
}

/* ===========================================================================
   SECTION CTA ESPACE — bandeau « Créez votre compte »
   =========================================================================== */
.section--cta-espace { padding: 26px 0; }
.cta-espace {
  background: #f7fdf6;
  border-top: 4px solid var(--brand-primary);
  border-bottom: 1px solid #d9f0d6;
  border-radius: 0 0 6px 6px;
  padding: clamp(30px, 5vw, 46px) clamp(18px, 4vw, 40px) clamp(26px, 4vw, 38px);
  text-align: center;
}
.cta-espace__titre {
  margin: 0 0 16px;
  color: var(--brand-primary);
  font-family: var(--font-display);
  font-size: clamp(19px, 3.2vw, 28px);
  line-height: 1.3;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.cta-espace__texte { margin: 0 auto 18px; max-width: 60ch; font-size: 16px; line-height: 1.65; color: #2a2424; }
.cta-espace__liste { list-style: none; margin: 0 auto; padding: 0; max-width: 52ch; text-align: left; display: inline-block; }
.cta-espace__liste li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.8; color: #2a2424; }
.cta-espace__liste li::before {
  content: ""; position: absolute; left: 2px; top: 10px; width: 7px; height: 7px;
  background: var(--brand-primary); transform: rotate(45deg);
}
.cta-espace__btn {
  display: block; width: 100%; max-width: 420px; margin: 24px auto 0;
  background: var(--brand-primary); color: #fff; text-decoration: none;
  font-weight: 700; font-size: 17px; padding: 16px 22px; border-radius: 2px;
}
.cta-espace__btn:hover { background: var(--brand-primary-dark); color: #fff; }
.cta-espace__sec { margin: 14px 0 0; font-size: 14px; color: var(--text-muted); }
.cta-espace__sec a { color: var(--brand-primary); text-decoration: underline; }
.cta-espace__legal { margin: 10px 0 0; font-size: 12px; color: #9b958e; line-height: 1.5; }

/* ===========================================================================
   SECTION DERNIERS COMMENTAIRES — fil de discussion sur deux colonnes
   =========================================================================== */
.section--derniers-commentaires { padding: 26px 0; }

.dcom__tete { display: flex; align-items: center; gap: 14px; margin: 0 0 6px; }
.dcom__tete h2 { font-family: var(--font-display); font-size: 23px; margin: 0; font-weight: 700; }
.dcom__filet { flex: 1; height: 2px; background: var(--border); }
.dcom__tete a { font-size: 13px; color: var(--brand-primary); font-weight: 600; text-decoration: none; white-space: nowrap; }
.dcom__tete a:hover { text-decoration: underline; }

.dcom { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 30px; }
.dcom__item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid #f0eeea; }
.dcom__col > .dcom__item:last-child { border-bottom: 0; }
.dcom__corps { flex: 1; min-width: 0; }
.dcom__qui { font-size: 13px; font-weight: 700; margin: 0 0 2px; }
.dcom__qui span { font-weight: 400; color: var(--text-muted); }
.dcom__txt { margin: 0 0 5px; font-size: 14px; line-height: 1.55; color: #3a3430; }
.dcom__sur { font-size: 12.5px; color: var(--text-muted); margin: 0; }
.dcom__sur a { color: #2d6a4f; text-decoration: none; font-weight: 600; }
.dcom__sur a:hover { text-decoration: underline; }

@media (max-width: 640px) {
  .dcom__tete h2 { font-size: 19px; }
  .dcom { gap: 0; }
  .dcom__col:last-child .dcom__item:first-child { border-top: 1px solid #f0eeea; }
}

/* ===========================================================================
   FILET DE SÉCURITÉ RESPONSIVE
   ---------------------------------------------------------------------------
   L'audit du thème a montré que les sections ont déjà leurs media queries.
   Ce bloc ne les remplace pas : il corrige les trois causes de débordement
   horizontal qui subsistaient, et protège les contenus que l'on ne maîtrise
   pas — tableaux d'articles, intégrations tierces, mots très longs.
   =========================================================================== */

/* Aucun média ni bloc de code ne peut dépasser son conteneur, quelle que soit
   sa taille d'origine. */
img, svg, video, iframe, embed, object, canvas, pre, table {
  max-width: 100%;
}

/* Les tableaux d'articles — index, comparatifs, TablePress — sont la première
   cause de page qui « glisse » latéralement sur téléphone. Ils deviennent
   défilables horizontalement plutôt que de pousser toute la page. */
@media (max-width: 720px) {
  .single-article__content table,
  .page-content__body table,
  .comment-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Une adresse ou un nom de matière active sans espace ne doit pas élargir
   la colonne de texte. */
.single-article__content,
.comment-content,
.dcom__txt,
.espace-membre__articles a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Les intégrations en iframe gardent leurs proportions sans déborder. */
.section--iframe-embed iframe,
.section--video-embed iframe,
#phyto-iframe {
  width: 100%;
  max-width: 100%;
  border: 0;
}

/* Sur les écrans étroits, les éléments marqués « sans césure » peuvent passer
   à la ligne : mieux vaut deux lignes qu'une barre qui dépasse. */
@media (max-width: 480px) {
  .barre-membre__nom,
  .barre-membre__quota,
  .barre-membre__palier,
  .espace-membre__palier,
  .dcom__tete a {
    white-space: normal;
  }
  .banner-slot--header,
  .banner-slot--header img {
    width: 100%;
    height: auto;
  }
}

/* Dernier recours : si une section tierce déborde malgré tout, la page ne
   défile pas latéralement. Volontairement limité au conteneur principal pour
   ne pas casser les éléments collants de l'en-tête. */
.site-main,
.agri360-homepage {
  overflow-x: clip;
}

/* Le format compact des listes sur mobile est défini plus haut
   (vignette carrée à gauche, comme les blocs catégorie). L'ancien essai
   « vignette à droite » a été retiré en v1.43 : les deux se contredisaient
   et écrasaient le titre sur 110 px de large. */

/* ===========================================================================
   SECTION PREUVE SOCIALE — flux d'inscriptions anonymisé
   =========================================================================== */
.section--preuve-sociale { padding: 18px 0; }
.preuve__titre { margin: 0 0 10px; font-size: 12px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em; }
.preuve { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.preuve__flux { position: relative; flex: 1 1 380px; min-width: 0;
  background: #f7f6f2; border: 1px solid var(--border); border-radius: 8px; padding: 12px 16px; }
.preuve__ligne { display: none; align-items: center; gap: 12px; }
.preuve__ligne.est-visible { display: flex; animation: preuveEntre .4s ease-out; }
@keyframes preuveEntre { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .preuve__ligne.est-visible { animation: none; } }
.preuve__pastille { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%;
  display: grid; place-items: center; font-size: 13px; font-weight: 700; line-height: 1; }
.preuve__txt { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.45; color: var(--text-body); }
.preuve__quand { font-size: 12px; color: var(--text-muted); white-space: nowrap; }
.preuve__point { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; flex: 0 0 7px; }
.preuve__compteur { font-size: 13px; color: var(--text-body); background: var(--bg-soft);
  border-radius: 99px; padding: 6px 14px; white-space: nowrap; }
.preuve__compteur strong { color: var(--brand-primary); font-weight: 700; }
.preuve__lien { font-size: 13.5px; font-weight: 700; color: var(--brand-primary); text-decoration: none; white-space: nowrap; }
.preuve__lien:hover { text-decoration: underline; }
@media (max-width: 560px) {
  .preuve__quand { display: none; }
  .preuve__flux { padding: 11px 13px; }
}

/* =============================================================
   BATCH 65 — Bloc membre dans la barre du haut
   -------------------------------------------------------------
   Remplace le bandeau `.barre-membre`, qui occupait une ligne
   pleine largeur sous le menu. Les anciennes règles restent plus
   bas dans le fichier : elles ne s'appliquent plus à rien, mais
   les retirer demanderait de relire tout ce qui s'y accrochait.
   ============================================================= */
.membre {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.membre__quota {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  background: var(--brand-accent);
  color: #1a1414;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .02em;
  padding: 2px 10px;
  border-radius: 100px;
  white-space: nowrap;
}
.membre__quota strong {
  font-family: var(--font-display);
  font-size: 12.5px;
  font-weight: 700;
}
.membre__quota:hover { color: #1a1414; background: var(--brand-accent-dark); }
.membre__quota.est-vide { background: var(--border-strong); color: #2a2424; }

.membre__bouton {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: none;
  border: 0;
  padding: 2px 0;
  cursor: pointer;
  color: var(--text-on-dark);
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1;
}
.membre__bouton:hover { color: var(--brand-accent); }
.membre__avatar {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}
.membre__puce {
  background: var(--brand-primary);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 100px;
  display: inline-grid;
  place-items: center;
  padding: 0 4px;
}
.membre__fleche { font-size: 9px; opacity: .7; }

.membre__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 200;
  min-width: 210px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-hover);
  padding: 8px 0;
  display: flex;
  flex-direction: column;
}
.membre__menu[hidden] { display: none; }
.membre__menu a {
  padding: 8px 16px;
  font-size: 13px;
  color: var(--text-body);
}
.membre__menu a:hover { background: var(--bg-soft); color: var(--brand-primary); }
.membre__palier {
  padding: 4px 16px 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--brand-accent-dark);
}
.membre__notif { color: var(--brand-primary) !important; font-weight: 500; }
.membre__notif span { color: var(--text-muted); font-weight: 400; }
.membre__sortie {
  margin-top: 4px;
  padding-top: 10px !important;
  border-top: 1px solid var(--border);
  color: var(--text-muted) !important;
}

/* Sur mobile la barre du haut passe en colonne : le bloc membre
   revient à gauche avec le reste plutôt que de rester collé à droite. */
@media (max-width: 768px) {
  .membre { width: 100%; justify-content: flex-start; }
  .membre__menu { right: auto; left: 0; }
}

/* Libellé de la preuve sociale : le serif du site, en italique, plutôt
   qu'une étiquette en capitales. */
.preuve__titre {
  font-family: var(--font-display);
  font-size: 17px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.01em;
  text-transform: none;
  color: var(--text-muted);
  margin: 0 0 12px;
}


/* =============================================================
   BATCH — HEADER CLAIR, RECHERCHE ÉPURÉE, FOOTER GRIS (v1.39.0)
   -------------------------------------------------------------
   Placé en fin de fichier pour passer après toutes les règles
   précédentes. Le footer est fait de widgets « HTML personnalisé »
   dont les couleurs sont écrites en dur dans le code du widget :
   on les remappe ici par sélecteur d'attribut, sans toucher aux
   widgets eux-mêmes (retour arrière = supprimer ce bloc).
   ============================================================= */

/* ---------- 1. Barre du haut : fond blanc ---------- */
.topbar {
  background: #ffffff;
  color: #2a2424;
  border-bottom: 1px solid #e6e3df;
  box-shadow: inset 0 3px 0 var(--brand-primary);
  padding: 11px 0 8px;
}
.topbar__date {
  color: #6b6660;
  font-weight: 500;
}
.topbar__nav a,
.topbar__nav li > a {
  color: #2a2424;
  font-weight: 500;
}
.topbar__nav a:hover,
.topbar__nav li > a:hover {
  color: var(--brand-primary);
}
/* « Devenir expert » : l'orange d'origine (#f88c00) ne se lit pas
   sur du blanc ; on garde la teinte, en plus soutenu. */
.topbar .agri360-menu-cta-experts > a {
  color: #b35c00 !important;
}
.topbar .agri360-menu-cta-experts > a:hover {
  color: var(--brand-primary) !important;
}
/* Bloc membre connecté */
.topbar .membre__bouton {
  color: #2a2424;
}
.topbar .membre__bouton:hover {
  color: var(--brand-primary);
}
.topbar .agrimd-menu-compte > a {
  color: #2a2424;
}

/* ---------- 2. Barre de recherche épurée ---------- */
.searchbar-strip {
  border-top: 0;
  border-bottom: 1px solid #e6e3df;
  padding: 18px 0 16px;
}
.searchbar-strip__inner {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  gap: 12px;
}
.searchbar-strip__label { display: none !important; }

.searchbar-strip__form {
  position: relative;
  align-items: center;
  background: #f6f5f3;
  border: 1px solid #dcd8d2;
  border-radius: 999px;
  padding: 5px;
  overflow: visible;
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}
.searchbar-strip__form:hover {
  border-color: #c9c4bc;
}
.searchbar-strip__form:focus-within {
  background: #ffffff;
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 4px rgba(10, 86, 6, .08);
}
.searchbar-strip__icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0 2px 0 14px;
  color: #8a847d;
  pointer-events: none;
}
.searchbar-strip__form:focus-within .searchbar-strip__icon {
  color: var(--brand-primary);
}
.searchbar-strip__form input,
.searchbar-strip__form input[type="search"] {
  flex: 1;
  min-width: 0;
  height: 40px;
  padding: 0 12px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text-primary);
}
.searchbar-strip__form input::placeholder {
  color: #9b958e;
}
.searchbar-strip__form input::-webkit-search-cancel-button {
  cursor: pointer;
}
.searchbar-strip__form button {
  flex: 0 0 auto;
  height: 40px;
  padding: 0 22px !important;
  border: 0;
  border-radius: 999px;
  background: var(--brand-primary);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 14px !important;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}
.searchbar-strip__form button:hover {
  background: var(--brand-primary-dark);
}
.searchbar-strip__form button:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}

/* Recherches populaires — socle commun aux 4 styles
   (choix dans AGRI360 → Options du thème → Tags populaires).
   Toujours sur une seule ligne : ce qui déborde s'estompe à droite
   au lieu de passer à la ligne. */
.searchbar-strip__suggestions,
.searchbar-strip__suggestions[class] {
  display: flex;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  margin-left: 0 !important;
  padding: 0 8px;
  overflow: hidden;
  white-space: nowrap;
  font-size: 13px;
  color: #6b6660;
  -webkit-mask-image: linear-gradient(to right, #000 90%, transparent);
          mask-image: linear-gradient(to right, #000 90%, transparent);
}
.searchbar-strip__suggestions > * { flex: 0 0 auto; }
.searchbar-strip__suggestions .searchbar-strip__suggestions-label {
  text-transform: none;
  letter-spacing: 0;
  font-size: 12.5px;
  font-weight: 500;
  color: #8a847d;
  margin-right: 10px;
}
.searchbar-strip__suggestions a {
  color: #3d3835;
  font-weight: 500;
  transition: color var(--transition), background var(--transition), border-color var(--transition);
}
.searchbar-strip__suggestions a:hover { color: var(--brand-primary); }

/* Style 1 — Liens simples séparés par un filet */
.searchbar-strip__suggestions--liens a {
  padding: 0 12px;
  line-height: 1.1;
}
.searchbar-strip__suggestions--liens a + a { border-left: 1px solid #dcd8d2; }
.searchbar-strip__suggestions--liens .searchbar-strip__suggestions-label + a { padding-left: 0; }
.searchbar-strip__suggestions--liens a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* Style 2 — Top 5 numéroté (ordre = classement des 30 derniers jours) */
.searchbar-strip__suggestions.searchbar-strip__suggestions--classement[class] {
  gap: 18px !important;
  -webkit-mask-image: none;
          mask-image: none;
}
.searchbar-strip__suggestions--classement .searchbar-strip__suggestions-label {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 14px;
  color: var(--text-primary);
  margin-right: 0;
}
.searchbar-strip__suggestions--classement a {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
}
.searchbar-strip__suggestions--classement .rp-rang {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  color: var(--brand-primary);
}

/* Style 3 — Suggestions avec loupe, sans cadre */
.searchbar-strip__suggestions--suggestions a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
}
.searchbar-strip__suggestions--suggestions a:hover { background: #f3f1ee; }
.searchbar-strip__suggestions--suggestions .rp-loupe {
  width: 13px;
  height: 13px;
  color: #a7a19a;
}
.searchbar-strip__suggestions--suggestions a:hover .rp-loupe { color: var(--brand-primary); }

/* Style 4 — Pastilles */
.searchbar-strip__suggestions.searchbar-strip__suggestions--pastilles[class] { gap: 6px !important; }
.searchbar-strip__suggestions--pastilles a {
  padding: 3px 11px;
  border: 1px solid #e6e3df;
  border-radius: 999px;
  background: #ffffff;
  line-height: 1.5;
}
.searchbar-strip__suggestions--pastilles a:hover { border-color: var(--brand-primary); }

@media (max-width: 768px) {
  .searchbar-strip { padding: 12px 0; }
  .searchbar-strip__icon { margin-left: 10px; }
  .searchbar-strip__form input,
  .searchbar-strip__form input[type="search"] { font-size: 16px; height: 38px; } /* 16px : évite le zoom auto sur iPhone */
  .searchbar-strip__form button { height: 38px; padding: 0 16px !important; }
  /* Sur téléphone la ligne défile au doigt */
  .searchbar-strip__suggestions,
  .searchbar-strip__suggestions[class] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .searchbar-strip__suggestions::-webkit-scrollbar { display: none; }
}

/* ---------- 1 bis. Pastilles « Mon compte » et « S'abonner » ---------- */
.topbar { padding: 9px 0 6px; }
.topbar .topbar__right { gap: 16px; }
.topbar .topbar__nav { align-items: center; }
.topbar .topbar__nav > li { display: flex; align-items: center; }

.topbar .compte-pastille,
.topbar .agrimd-menu-connexion > a.agrimd-menu-bouton.compte-pastille {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 30px;
  padding: 0 14px 0 4px;
  border: 0;
  border-radius: 999px;
  background: #ececea !important;
  color: #1a1414 !important;
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--transition);
}
.topbar .compte-pastille:hover,
.topbar .agrimd-menu-connexion > a.agrimd-menu-bouton.compte-pastille:hover {
  background: #e0dfdc !important;
  color: #1a1414 !important;
}
/* Icône « personne » dans un rond cerclé de rouge (visiteurs) */
.compte-pastille__icone {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--brand-primary);
  box-sizing: border-box;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='9' r='4' fill='%23ba222e'/%3E%3Cpath d='M4 21c1.2-4 4.4-6 8-6s6.8 2 8 6z' fill='%23ba222e'/%3E%3C/svg%3E") center 3px / 16px 16px no-repeat;
  overflow: hidden;
}
/* Membres connectés : leur avatar, cerclé de rouge */
.topbar .compte-pastille .membre__avatar {
  width: 22px;
  height: 22px;
  box-shadow: 0 0 0 2px var(--brand-primary);
}
.topbar .compte-pastille .membre__fleche { margin-left: -2px; }
.topbar .compte-pastille .membre__puce { margin-left: -2px; }

/* Bouton S'abonner : or de la marque */
.topbar-cta {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--brand-accent);
  color: #1a1414;
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  transition: background var(--transition);
}
.topbar-cta:hover { background: #c1910f; color: #1a1414; }
.topbar-cta:focus-visible,
.topbar .compte-pastille:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}

/* Compteur d'analyses : discret, pour ne pas concurrencer S'abonner */
.topbar .membre__quota {
  height: 30px;
  align-items: center;
  padding: 0 12px;
  background: #ffffff;
  border: 1px solid #e6e3df;
  color: #6b6660;
  font-size: 11.5px;
}
.topbar .membre__quota strong { color: var(--brand-primary); }
.topbar .membre__quota:hover { background: #ffffff; border-color: var(--brand-primary); color: #1a1414; }
.topbar .membre__quota.est-vide strong { color: #6b6660; }

/* Prénom en tête du menu déroulant */
.membre__prenom {
  padding: 4px 16px 2px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
}

/* Le lien compte ajouté par l'extension fait doublon avec le bloc
   membre du thème : on le masque quand ce bloc est présent. */
.topbar__right:has(.membre) .agrimd-menu-compte { display: none !important; }

/* ---------- 3. Footer gris clair ---------- */
.site-footer {
  --footer-bg: #ececea;
  --footer-titre: #1a1414;
  --footer-texte: #3d3835;
  --footer-discret: #6b6660;
  --footer-accent: #8a6a0a;   /* or de la marque, assombri pour rester lisible sur gris */
  --footer-filet: #d3cfc9;
  background: var(--footer-bg);
  color: var(--footer-texte);
  border-top: 3px solid var(--brand-primary);
}
.site-footer__col h4,
.site-footer .footer-widget__title {
  color: var(--footer-accent);
}
.site-footer__col a {
  color: var(--footer-texte);
}
.site-footer__col p {
  color: var(--footer-texte);
}

/* Remappage des couleurs écrites dans les widgets HTML personnalisés.
   Les éléments qui ont un fond propre (bouton S'abonner) sont exclus. */
.site-footer [style*="#cfc5b3" i]:not([style*="background" i]),
.site-footer [style*="#a89e8c" i]:not([style*="background" i]) {
  color: var(--footer-texte) !important;
}
.site-footer [style*="#fff" i]:not([style*="background" i]) {
  color: var(--footer-titre) !important;
}
.site-footer [style*="#9c9082" i]:not([style*="background" i]),
.site-footer [style*="#7a6e60" i]:not([style*="background" i]) {
  color: var(--footer-discret) !important;
}
.site-footer [style*="#d4a017" i]:not([style*="background" i]) {
  color: var(--footer-accent) !important;
}
.site-footer [style*="#3a3024" i] {
  border-color: var(--footer-filet) !important;
}
/* Survol : rouge de la marque, y compris sur les liens colorés en dur */
.site-footer a:not([style*="background" i]):hover,
.site-footer a:not([style*="background" i]):hover span {
  color: var(--brand-primary) !important;
}
.site-footer a[style*="background" i]:hover {
  background: var(--brand-primary-dark) !important;
}

/* Bas de footer */
.site-footer__bottom {
  border-top-color: var(--footer-filet);
  color: var(--footer-discret);
}
.site-footer__legal-menu a,
.site-footer__copyright,
.site-footer__credits {
  color: var(--footer-discret);
}
.site-footer__copyright a {
  color: var(--footer-accent);
}
.site-footer__legal-menu a:hover {
  color: var(--brand-primary);
}


/* =============================================================
   BATCH — BARRE LATÉRALE SANS CADRES (v1.40.0)
   -------------------------------------------------------------
   Trois mises en forme au choix dans AGRI360 → Options du thème
   → Barre latérale : .sidebar--aeree / --filets / --colonne.
   « cadres » garde l'ancien rendu (aucune règle ci-dessous).
   ============================================================= */

/* --- Socle commun aux trois styles --- */
.sidebar:not(.sidebar--cadres) > .widget,
.sidebar:not(.sidebar--cadres) > aside,
.sidebar:not(.sidebar--cadres) > div {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin-bottom: 0 !important;   /* l'espacement est géré ci-dessous, par le haut de chaque bloc */
}
/* Les blocs maison qui ont leur propre fond gardent leur rembourrage */
.sidebar:not(.sidebar--cadres) > .agri360-cta-espace { padding: 22px 18px 20px !important; }
.sidebar:not(.sidebar--cadres) > .agri360-cta-experts { padding: 22px 18px !important; }

/* Les cartes Newsletter et Index Phyto sont écrites en 300px fixes :
   on les cale sur la vraie largeur de la colonne. */
.sidebar [style*="width:300px"],
.sidebar [style*="width: 300px"] {
  width: 100% !important;
  max-width: 100% !important;
}
.sidebar img { max-width: 100%; height: auto; }

/* Mention « Publicité » : collée à la pub qu'elle annonce */
.sidebar:not(.sidebar--cadres) > .agri360-pub-label,
.sidebar .agri360-pub-label {
  margin-bottom: 8px !important;
  text-align: left !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  letter-spacing: .08em !important;
  color: #9b958e !important;
}

/* Recherche de la sidebar, alignée sur la grande barre du header */
.sidebar:not(.sidebar--cadres) .widget_search .search-form__inner {
  display: flex;
  align-items: center;
  background: #f6f5f3;
  border: 1px solid #dcd8d2;
  border-radius: 999px;
  padding: 4px;
}
.sidebar:not(.sidebar--cadres) .widget_search .search-form__inner:focus-within {
  background: #fff;
  border-color: var(--brand-primary);
}
.sidebar:not(.sidebar--cadres) .widget_search .search-form__input {
  flex: 1;
  min-width: 0;
  height: 36px;
  padding: 0 14px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px;
}
.sidebar:not(.sidebar--cadres) .widget_search .search-form__submit {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--brand-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}
.sidebar:not(.sidebar--cadres) .widget_search .search-form__submit .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.sidebar:not(.sidebar--cadres) .widget_search .search-form__submit svg { flex: 0 0 16px; width: 16px; height: 16px; }

/* Titres de widgets (quand il y en a) : sobres, sans double filet */
.sidebar:not(.sidebar--cadres) .widget__title,
.sidebar:not(.sidebar--cadres) .widget-title,
.sidebar:not(.sidebar--cadres) .widgettitle {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 14px;
  padding: 0 0 0 12px;
  border: 0;
  border-left: 3px solid var(--brand-primary);
  line-height: 1.2;
}

/* --- Style 1 : Aérée --- */
.sidebar--aeree > * + * { margin-top: 40px !important; }

/* --- Style 2 : Filets --- */
.sidebar--filets > * + * { margin-top: 28px !important; }
/* Le filet ne s'applique pas aux blocs qui ont déjà leur propre fond
   (compte gratuit, experts) : ils se délimitent tout seuls. */
.sidebar--filets > * + *:not([style*="background"]) {
  padding-top: 28px !important;
  border-top: 1px solid #e6e3df !important;
}

/* --- Style 3 : Colonne --- */
.sidebar--colonne {
  padding-left: 28px;
  border-left: 1px solid #e6e3df;
}
.sidebar--colonne > * + * { margin-top: 36px !important; }

/* Dans les trois styles : pas d'espace entre « Publicité » et sa pub,
   et le filet éventuel passe au-dessus de la mention, pas entre les deux. */
.sidebar:not(.sidebar--cadres) > .agri360-pub-label + * {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

@media (max-width: 1024px) {
  .sidebar--colonne { padding-left: 0; border-left: 0; }
}


/* =============================================================
   BATCH — BARRE DU HAUT SUR TÉLÉPHONE (v1.40.5)
   -------------------------------------------------------------
   Ligne 1 : les boutons de compte, pleine largeur, faciles à toucher.
   Ligne 2 : les liens secondaires (À propos, FAQ…), en petit.
   La date est masquée : elle prenait une ligne entière.
   ============================================================= */
@media (max-width: 768px) {
  .topbar { padding: 10px 0 8px !important; }
  .topbar .topbar__inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .topbar .topbar__left { display: none !important; }
  .topbar .topbar__right {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
  }
  /* Le menu s'efface pour que ses éléments se rangent directement dans la barre */
  .topbar .topbar__nav { display: contents !important; }
  .topbar .topbar__nav > li { order: 2; }
  .topbar .topbar__nav > li > a { font-size: 12px !important; white-space: nowrap; }
  /* Coupure de ligne entre les boutons (ordre 0) et les liens (ordre 2) */
  .topbar .topbar__right::before {
    content: "";
    order: 1;
    flex-basis: 100%;
    height: 2px;
  }
  .topbar .topbar__nav > li.agrimd-menu-connexion,
  .topbar .topbar__nav > li.agrimd-menu-compte,
  .topbar .membre,
  .topbar .topbar-cta { order: 0; }

  /* Boutons : deux moitiés égales, 38px de haut */
  .topbar .topbar__nav > li.agrimd-menu-connexion { flex: 1 1 0; display: flex; }
  .topbar .topbar__nav > li.agrimd-menu-connexion > a.compte-pastille,
  .topbar .topbar-cta {
    flex: 1 1 0;
    justify-content: center;
    height: 38px !important;
    font-size: 11.5px !important;
    padding: 0 12px !important;
  }
  .topbar .topbar__nav > li.agrimd-menu-connexion > a.compte-pastille { width: 100%; padding-left: 4px !important; }

  /* Membre connecté : compteur + « Mon espace » sur une ligne */
  .topbar .membre {
    flex: 1 1 100%;
    width: auto !important;
    justify-content: center !important;
    gap: 8px !important;
  }
  .topbar .membre__quota { height: 38px; }
  .topbar .membre__bouton.compte-pastille { height: 38px; flex: 1 1 auto; justify-content: center; }
  .topbar .membre__menu { left: 0 !important; right: 0 !important; min-width: 0; }

  /* Liens secondaires */
  .topbar .topbar__nav > li:not(.agrimd-menu-connexion):not(.agrimd-menu-compte) > a {
    display: inline-block;
    padding: 6px 3px;
    color: #6b6660;
  }
  .topbar .topbar__nav > li.agri360-menu-cta-experts > a { color: #b35c00 !important; }
}


/* =============================================================
   BATCH — BANDEAU BAS FIXE (v1.41) — emplacement « sticky_bottom »
   ============================================================= */
.bandeau-bas {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 950;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70px;
  padding: 0 56px 0 16px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: var(--brand-primary, #0a5606);
  box-shadow: 0 -6px 20px rgba(26, 20, 20, .18);
  box-sizing: border-box;
}
.bandeau-bas[hidden] { display: none; }
.bandeau-bas__contenu { width: 100%; max-width: 1180px; }
.bandeau-bas .banner-slot { margin: 0 auto !important; max-width: 100% !important; overflow: visible !important; }
.bandeau-bas .banner-slot img { max-height: 70px !important; width: auto !important; display: block; margin: 0 auto; }
.bandeau-bas__fermer {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.bandeau-bas__fermer:hover { background: rgba(255, 255, 255, .26); }
.bandeau-bas__fermer:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }

/* La page garde de la place pour ne rien masquer sous le bandeau */
body.a-bandeau-bas { padding-bottom: 70px; }
/* Sélecteur de langue flottant : remonte au-dessus du bandeau */
body.a-bandeau-bas #gt_float_wrapper { bottom: 90px !important; }

/* Contenu par défaut : offre AgriAlgerie 360° */
.bb360 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 70px;
  color: #ffffff;
  text-align: left;
  font-family: var(--font-body);
}
.bb360__marque {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--brand-primary, #0a5606);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.02em;
}
.bb360__texte { margin: 0; font-size: 15px; line-height: 1.35; color: #ffffff; text-align: left !important; }
.bb360__texte strong { font-weight: 700; }
.bb360__detail { color: #e0f7dc; font-size: 14px; }
.bb360__court { display: none; }
.bb360__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 16px; }
.bb360__bouton {
  display: inline-flex;
  align-items: center;
  height: 42px;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--brand-accent, #d4a017);
  color: #1a1414 !important;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none !important;
  transition: background var(--transition);
}
.bb360__bouton:hover { background: #ecc23a; }
.bb360__lien {
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bb360__lien:hover { color: #ffe9a8 !important; }
.bb360__bouton:focus-visible, .bb360__lien:focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }

@media (max-width: 1024px) {
  .bb360__detail { display: none; }
}
@media (max-width: 640px) {
  .bandeau-bas { min-height: 72px; padding: 8px 50px 8px 14px; padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); }
  body.a-bandeau-bas { padding-bottom: 80px; }
  body.a-bandeau-bas #gt_float_wrapper { bottom: 96px !important; }
  .bb360 { gap: 12px; min-height: 56px; justify-content: space-between; }
  .bb360__marque { display: none; }
  .bb360__texte { flex: 1 1 auto; min-width: 0; font-size: 13px; }
  .bb360__texte strong, .bb360__detail { display: none; }
  .bb360__court { display: inline; font-weight: 700; }
  .bb360__actions { flex-direction: column; align-items: center; gap: 5px; }
  .bb360__bouton { height: 36px; padding: 0 14px; font-size: 12.5px; }
  .bb360__lien { font-size: 12px; }
}
@media (max-width: 360px) {
  .bb360__bouton { padding: 0 10px; font-size: 12px; }
}


/* =============================================================
   BATCH — EN-TÊTE DE CATÉGORIE ÉDITORIAL (v1.42)
   -------------------------------------------------------------
   Fond clair, vrai titre H1, description lisible et repliée
   au-delà de 5 lignes pour que les articles remontent.
   Les couleurs écrites à la main dans les descriptions (titres
   verts, liens rouges invisibles sur le rouge…) sont neutralisées.
   ============================================================= */
.cat-entete {
  box-sizing: border-box;
  max-width: 100%;
  margin: 32px 0 28px;
  padding: 30px 36px 28px;
  background: #f6f5f3;
  border-radius: 12px;
  border-top: 4px solid var(--brand-primary);
}
.cat-entete__ariane {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-size: 12.5px;
  color: #8a847d;
}
.cat-entete__ariane a { color: #6b6660; text-decoration: none; }
.cat-entete__ariane a:hover { color: var(--brand-primary); text-decoration: underline; text-underline-offset: 3px; }
.cat-entete__haut {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px 24px;
  flex-wrap: wrap;
}
.cat-entete__titre {
  margin: 0;
  font-family: var(--font-display);
  font-size: 42px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1a1414;
}
.cat-entete__compte {
  margin: 0;
  font-size: 13.5px;
  color: #6b6660;
  white-space: nowrap;
}
.cat-entete__compte strong {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--brand-primary);
  margin-right: 3px;
}
.cat-entete__page::before { content: "·"; margin: 0 8px; color: #b5afa8; }

/* Description */
.cat-entete__desc {
  position: relative;
  max-width: 78ch;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #e2dfda;
  font-size: 15.5px;
  line-height: 1.65;
  color: #3d3835;
}
.cat-entete__desc * {
  white-space: normal !important;
  overflow-wrap: break-word;
  max-width: 100%;
  color: inherit !important;
  background: transparent !important;
  font-family: var(--font-body) !important;
  font-size: inherit !important;
  line-height: inherit !important;
  text-align: left !important;
}
.cat-entete__desc p { margin: 0 0 12px; }
.cat-entete__desc p:last-child { margin-bottom: 0; }
.cat-entete__desc strong, .cat-entete__desc b { color: #1a1414 !important; font-weight: 700; }
.cat-entete__desc h1, .cat-entete__desc h2, .cat-entete__desc h3, .cat-entete__desc h4 {
  margin: 0 0 12px;
  font-family: var(--font-display) !important;
  font-size: 21px !important;
  font-weight: 600;
  line-height: 1.3 !important;
  letter-spacing: -.01em;
  color: #1a1414 !important;
}
.cat-entete__desc h1 *, .cat-entete__desc h2 *, .cat-entete__desc h3 *, .cat-entete__desc h4 * {
  font-family: var(--font-display) !important;
  line-height: 1.3 !important;
}
.cat-entete__desc a {
  color: var(--brand-primary) !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.cat-entete__desc a:hover { color: var(--brand-primary-dark) !important; }
.cat-entete__desc ul, .cat-entete__desc ol { margin: 0 0 12px 20px; }

/* Repliée : ~5 lignes et un fondu */
.cat-entete__desc.est-repliee:not(.est-ouverte) {
  max-height: 11em;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent);
          mask-image: linear-gradient(to bottom, #000 55%, transparent);
}
.cat-entete__plus {
  margin-top: 10px;
  padding: 6px 0;
  border: 0;
  background: none;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-primary);
  cursor: pointer;
}
.cat-entete__plus::after { content: " ↓"; }
.cat-entete__plus[aria-expanded="true"]::after { content: " ↑"; }
.cat-entete__plus:hover { color: var(--brand-primary-dark); text-decoration: underline; text-underline-offset: 3px; }
.cat-entete__plus:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 2px; }

@media (max-width: 768px) {
  .cat-entete { margin: 20px 0; padding: 22px 20px 20px; border-radius: 8px; }
  .cat-entete__titre { font-size: 28px; }
  .cat-entete__desc { font-size: 14.5px; }
}


/* =============================================================
   BATCH — LISTES ET PAVÉS SUR TÉLÉPHONE (v1.43)
   -------------------------------------------------------------
   1. Les grilles d'articles (section « Grille d'articles N colonnes »,
      ex. Technique) prennent la même allure que les blocs catégorie :
      vignette carrée à gauche, titre à droite, lignes serrées.
   2. Les pavés publicitaires déplacés en bas de page ne réservent
      plus de hauteur vide entre eux.
   ============================================================= */
@media (max-width: 1024px) {
  /* Pavés : voir le point 2 plus bas (le script les déplace dès 1024 px). */
}

@media (max-width: 768px) {
  /* --- 1. Lignes d'articles --- */
  .post-grid > .post-card:not(:first-child),
  .post-grid > article.post-card:not(:first-child) {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 12px 0 !important;
    align-items: start !important;
  }
  /* Placement explicite : la vignette reste à gauche quel que soit
     l'ordre des éléments dans le code. */
  .post-grid > .post-card:not(:first-child) .post-card__img {
    grid-area: 1 / 1 / 4 / 2 !important;
    width: 92px !important;
    height: 92px !important;
    border-radius: 5px;
  }
  .post-grid > .post-card:not(:first-child) h3 {
    grid-area: 1 / 2 / 2 / 3 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  /* L'extrait coûte quatre lignes pour une information que le titre donne. */
  .post-grid > .post-card:not(:first-child) .post-card__excerpt { display: none !important; }
  .post-grid > .post-card:not(:first-child) .post-card__meta {
    grid-area: 2 / 2 / 3 / 3 !important;
    margin: 5px 0 0 !important;
    padding: 0 !important;
    font-size: 11.5px !important;
    white-space: nowrap;
  }

  /* --- 2. Pavés regroupés en bas de page ---
     Le script les sort de leur section : la règle vise donc les pavés
     eux-mêmes, où qu'ils se trouvent, et pas seulement le bloc d'accueil. */
  .hero-pave-grid__pave,
  .cat-pave-grid__pave,
  .section--mobile-pave-bottom .hero-pave-grid__pave,
  .section--mobile-pave-bottom .cat-pave-grid__pave {
    min-height: 0 !important;
    height: auto !important;
    position: static !important;
    top: auto !important;
    align-self: center !important;
    width: 100% !important;
    max-width: 300px !important;
  }
  /* Un emplacement sans bannière ne doit rien réserver : c'est ce qui
     laissait 300 px de blanc entre deux publicités. */
  .hero-pave-grid__pave:empty,
  .cat-pave-grid__pave:empty { display: none !important; }

  .cat-pave-grid__pave .banner-slot,
  .cat-pave-grid__pave .banner-slot img,
  .section--mobile-pave-bottom .cat-pave-grid__pave .banner-slot,
  .section--mobile-pave-bottom .cat-pave-grid__pave .banner-slot img {
    width: 100% !important;
    max-width: 300px !important;
    height: auto !important;
    max-height: none !important;
  }
}


/* ============================================================================
 * TRIBUNES (v1.44.0) — Bandeau, badge et mention de fin d'article
 * ============================================================================ */

/* === Bandeau sous le H1 === */
.agri360-tribune-banner {
  margin: 16px 0 24px;
  background: var(--bg-soft);
  border: 1px solid #e3dccb;
  border-left: 4px solid var(--brand-primary);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  font-size: 13.5px;
  line-height: 1.55;
  color: #3a3330;
}
.agri360-tribune-banner__inner {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}
.agri360-tribune-banner__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.agri360-tribune-banner__label strong {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 12px;
  color: var(--brand-primary);
}
.agri360-tribune-banner__icon { font-size: 16px; line-height: 1; }
.agri360-tribune-banner__separator { color: #b8ad96; }
.agri360-tribune-banner__message { flex: 1; min-width: 220px; }
.agri360-tribune-banner__message strong { color: #1a1414; }

@media (max-width: 600px) {
  .agri360-tribune-banner { padding: 12px 14px; font-size: 12.5px; }
  .agri360-tribune-banner__inner { flex-direction: column; gap: 6px; }
  .agri360-tribune-banner__separator { display: none; }
  .agri360-tribune-banner__message { min-width: 0; }
}

/* === Badge « ✍️ Tribune » sur les listings === */
.post-card__cat[data-tribune="true"],
.post-card__cat--tribune {
  background: #1a1414 !important;
  color: #fff !important;
  font-weight: 700;
}

/* === Mention automatique en fin d'article === */
.single-article__content .agri360-tribune-footer {
  margin-top: 2em;
  padding-top: 1em;
  border-top: 1px solid #e3dccb;
  font-size: 14px;
  color: var(--text-muted);
}
.single-article__content .agri360-tribune-footer p { margin: 0; }
