/* ==================================================================
   Modèle d'accueil v2, direction C (2026-09-10).
   Structure de la direction A, esprit de ridedott.com : aplats orange
   pleine largeur, blocs très arrondis, boutons en pastille, photos dans
   des formes à gros rayon, titre de hero énorme et court, mouvement
   plus présent. Le L dissociable de la charte tient le rôle des crochets
   épais de Dott : il coiffe la photo du hero (seule sortie de grille de la
   page) et se referme sur la mission.

   Chargée seulement sur le gabarit « Page pleine largeur » (functions.php).
   Aucun JavaScript : tout le mouvement est en CSS, sous @supports et
   prefers-reduced-motion. Aucune couleur écrite en dur : palette et jetons
   (settings.custom) viennent de theme.json.

   Contraste : sur l'orange, titres blancs de 24 px et plus (grand texte,
   3,0:1) et texte noir (5,8:1). Aucun petit texte blanc sur orange : les
   boutons sont en pastille noire ou blanche. Le jaune ne porte jamais de
   texte, il reçoit du noir (10,9:1).
   ================================================================== */

/* --- Cadre de page ------------------------------------------------ */

/* Les sections colorées se touchent : ni l'écart entre les parties du
   gabarit, ni celui entre les blocs du contenu. */
.page-template-page-pleine-largeur .wp-site-blocks > * {
  margin-block-start: 0;
}
.lea-v2 .wp-block-post-content > * {
  margin-block: 0;
}

.lea-v2-section {
  padding-block: calc(var(--wp--preset--spacing--80) * 1.25);
}

/* Le L et l'anneau débordent : on coupe l'horizontale seulement, pour ne
   jamais créer de défilement latéral. */
.lea-v2-hero,
.lea-v2-mission {
  overflow-x: clip;
}

.lea-v2-titre {
  font-weight: 800;
  text-transform: uppercase;
  font-size: clamp(2.25rem, 1.4rem + 3.2vw, 3.5rem);
  line-height: 1;
  letter-spacing: -0.005em;
  margin: 0 0 var(--wp--preset--spacing--60);
  /* Pas de césure automatique : elle coupe un mot pour remplir la ligne
     même quand il tiendrait entier sur la suivante (« ENTREPRE-NEURS » à
     390 px). Mesuré : le plus long mot des titres, « ENTREPRENEURS », tient
     à 36 px dans 310 px. overflow-wrap reste en filet de sécurité. */
  hyphens: manual;
  overflow-wrap: break-word;
}

.lea-v2-surtitre {
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin: 0 0 var(--wp--preset--spacing--40);
}

/* --- Boutons en pastille ------------------------------------------ */

/* Les variantes lea-v2-btn (sombre, clair, filet) vivent dans lea.css depuis
   qu'elles servent aussi hors de l'accueil. Restent ici les cas propres à
   cette page. */
.lea-v2 .lea-v2-appel .wp-block-button.lea-v2-btn--filet > .wp-block-button__link:hover,
.lea-v2 .lea-v2-appel .wp-block-button.lea-v2-btn--filet > .wp-block-button__link:focus-visible {
  background-color: var(--wp--preset--color--base);
  border-color: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
}

/* Le bouton « Adhérer » de l'en-tête est traité dans lea.css pour tout le
   site depuis l'étape a (lea-btn-adherer). */

/* --- 1. Hero ------------------------------------------------------ */

.lea-v2-hero {
  padding-block: var(--wp--preset--spacing--80) calc(var(--wp--preset--spacing--80) * 1.25);
  color: var(--wp--preset--color--contrast);
}
.lea-v2 .lea-v2-hero__colonnes {
  gap: var(--wp--preset--spacing--70);
}
.lea-v2-hero__titre {
  font-size: clamp(3.25rem, 1.6rem + 7vw, 8.5rem);
  line-height: 0.92;
  letter-spacing: -0.01em;
  margin: 0 0 var(--wp--preset--spacing--50);
  hyphens: manual;
}
.lea-v2-hero .lea-v2-chapo {
  font-size: 1.25rem;
  line-height: 1.5;
  max-width: 34ch;
  margin: 0 0 var(--wp--preset--spacing--60);
}
.lea-v2-hero__visuel {
  position: relative;
}
.lea-v2-hero__visuel > * {
  margin: 0;
}
.lea-v2-hero__photo {
  position: relative;
  z-index: 1;
}
/* Gros rayon partout, un angle très ouvert en bas à gauche : la photo
   quitte le rectangle sans devenir une pastille. */
.lea-v2-hero__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--photo) var(--wp--custom--rayon--photo) var(--wp--custom--rayon--photo) 160px;
}

/* Anneau jaune, trois quarts de cercle en trait épais, derrière la photo. */
.lea-v2-anneau {
  position: absolute;
  z-index: 0;
  top: -14%;
  left: -18%;
  width: min(440px, 80%);
  aspect-ratio: 1;
  box-sizing: border-box;
  border: clamp(28px, 4vw, 56px) solid var(--wp--preset--color--secondary);
  border-left-color: transparent;
  border-radius: 50%;
  rotate: -20deg;
  pointer-events: none;
}

/* Le L de la charte. Tracé vectoriel repris de la planche 5 du PDF. */
.lea-v2-L {
  display: block;
  width: auto;
  pointer-events: none;
}
/* Retourné en ┘, il coiffe le coin de la photo et sort de la grille de
   1200 px : c'est l'unique sortie de grille de la page. */
.lea-v2-L--hero {
  position: absolute;
  z-index: 2;
  height: clamp(110px, 14vw, 210px);
  right: clamp(-96px, -6vw, -12px);
  bottom: clamp(-72px, -4vw, -20px);
  transform: scaleX(-1);
  color: var(--wp--preset--color--contrast);
}

/* --- 2. Mission et objectifs --------------------------------------- */

.lea-v2-mission__cadre {
  position: relative;
  padding: var(--wp--preset--spacing--70) clamp(56px, 8vw, 128px);
  margin-bottom: var(--wp--preset--spacing--80);
  view-timeline-name: --lea-mission;
}
.lea-v2-mission__cadre > * {
  margin: 0;
}
.lea-v2-mission__cadre .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-v2-citation {
  border: 0;
  padding: 0;
  margin: 0;
}
.lea-v2-citation p {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: clamp(1.6rem, 1rem + 2.2vw, 2.75rem);
  line-height: 1.18;
  margin: 0;
}
/* Les deux L, en guillemets : ┌ en haut à gauche, ┘ en bas à droite. */
.lea-v2-L--ouvre,
.lea-v2-L--ferme {
  position: absolute;
  height: clamp(72px, 9vw, 132px);
  color: var(--wp--preset--color--primary);
}
.lea-v2-L--ouvre {
  top: 0;
  left: 0;
  transform: scaleY(-1);
}
.lea-v2-L--ferme {
  right: 0;
  bottom: 0;
  transform: scaleX(-1);
}

.lea-v2-objectifs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2-objectifs > * {
  margin: 0;
}
.lea-v2-objectif {
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}
.lea-v2-objectif > * {
  margin: 0;
}
.lea-v2-numero {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 1.25rem;
}
.lea-v2 .lea-v2-objectif .lea-v2-numero {
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-v2-objectif__titre {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: var(--wp--preset--spacing--30);
}

/* --- 3. Catégories ------------------------------------------------ */

.lea-v2-entete > * {
  margin: 0;
}
.lea-v2-entete p {
  max-width: 48ch;
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-v2-entete--ligne {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--50);
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2-entete--ligne .lea-v2-titre {
  margin: 0;
}
.lea-v2-entete:not(.lea-v2-entete--ligne) .lea-v2-titre {
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-v2-categories .lea-v2-entete {
  margin-bottom: var(--wp--preset--spacing--60);
}

.lea-v2-grille-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2-grille-categories > * {
  margin: 0;
}
/* Carte photo à 32 px de rayon. La hauteur écrite en ligne par le bloc
   Couverture est reprise ici, d'où le !important. */
.lea-v2-categorie {
  position: relative;
  border-radius: var(--wp--custom--rayon--photo);
  overflow: hidden;
  min-height: 300px !important;
  padding: var(--wp--preset--spacing--40);
}
/* Le conteneur intérieur reste au-dessus de la photo par son z-index
   d'élément flex, sans être positionné : ainsi le lien du titre étend sa
   zone de clic à toute la carte, et non au seul bandeau. */
.lea-v2-categorie .wp-block-cover__inner-container {
  position: static;
  z-index: 3;
  width: auto;
  max-width: none;
  margin: 0;
}
.lea-v2 .lea-v2-categorie__titre {
  display: inline-block;
  margin: 0;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  border-radius: 18px;
  padding: 10px 20px;
  font-size: 1.125rem;
  line-height: 1.25;
  transition: background-color var(--wp--custom--mouvement--survol) var(--wp--custom--mouvement--courbe);
}
.lea-v2-categorie__titre a {
  color: inherit;
  text-decoration: none;
}
.lea-v2-categorie__titre a::after {
  content: "";
  position: absolute;
  inset: 0;
}
/* Au survol, la pastille se remplit d'orange, texte noir (5,8:1). */
.lea-v2-categorie:hover .lea-v2-categorie__titre,
.lea-v2-categorie:focus-within .lea-v2-categorie__titre {
  background: var(--wp--preset--color--primary);
}
.lea-v2-categorie:focus-within {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 3px;
}

/* --- 4. Tiers-lieux ----------------------------------------------- */

.lea-v2 .lea-v2-lieu {
  gap: var(--wp--preset--spacing--70);
  align-items: center;
}
.lea-v2 .lea-v2-lieu + .lea-v2-lieu {
  margin-top: var(--wp--preset--spacing--70);
}
@media (min-width: 782px) {
  .lea-v2 .lea-v2-lieu--inverse {
    flex-direction: row-reverse;
  }
}
/* Les logos des lieux dans un cercle cerclé de la couleur du lieu :
   orange pour La Ruche Éco, jaune pour La Maison du Manège. */
/* Pas de marge intérieure en pourcentage : elle se calculerait sur la
   largeur de la colonne et non sur celle du cercle, et écrasait le logo à
   768 px. Le logo prend 64 % du cercle, centré. */
.lea-v2 .lea-v2-rond {
  margin: 0 auto;
  width: min(100%, 340px);
  aspect-ratio: 1;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
  background: var(--wp--preset--color--base);
  border: 12px solid var(--wp--preset--color--primary);
}
.lea-v2-lieu--manege .lea-v2-rond {
  border-color: var(--wp--preset--color--secondary);
}
.lea-v2 .lea-v2-rond img {
  width: 64%;
  height: auto;
  max-height: 64%;
  object-fit: contain;
}
.lea-v2 .lea-v2-lieu__titre {
  font-weight: 800;
  text-transform: uppercase;
  font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  line-height: 1.02;
  margin: var(--wp--preset--spacing--40) 0;
}
.lea-v2-lieu .wp-block-column > * {
  margin-block: 0 var(--wp--preset--spacing--40);
}

/* Étiquettes en pastille jaune, texte noir. */
.lea-v2 p.lea-v2-etiquette,
.lea-v2-termes a {
  display: inline-block;
  margin: 0;
  padding: 4px 14px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-decoration: none;
}
.lea-v2-termes .wp-block-post-terms__separator {
  display: none;
}

/* --- 5. Actualités ------------------------------------------------ */

/* La grille de la boucle est écrite ici plutôt que confiée au bloc, pour
   tenir deux colonnes sur tablette (le bloc en garde trois jusqu'à 600 px). */
.lea-v2-actu .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2-actu .wp-block-post-template > li {
  margin: 0;
}
.lea-v2-carte {
  height: 100%;
  box-sizing: border-box;
  padding: 12px;
  border-radius: var(--wp--custom--rayon--bloc);
  background: var(--wp--preset--color--base);
}
.lea-v2-carte > * {
  margin: 0;
}
.lea-v2-carte .wp-block-post-featured-image img {
  border-radius: 20px;
}
.lea-v2-carte__texte {
  padding: var(--wp--preset--spacing--40) 12px 12px;
}
.lea-v2-carte__texte > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-v2-carte .wp-block-post-title {
  font-size: 1.375rem;
  line-height: 1.2;
}
.lea-v2 .lea-v2-carte .wp-block-post-title a {
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
}
.lea-v2 .lea-v2-carte .wp-block-post-title a:hover,
.lea-v2 .lea-v2-carte .wp-block-post-title a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* --- 6. Adhérer --------------------------------------------------- */

.lea-v2-adherer {
  color: var(--wp--preset--color--contrast);
}
.lea-v2 .lea-v2-pictos {
  gap: var(--wp--preset--spacing--50);
  margin-bottom: var(--wp--preset--spacing--70);
}
.lea-v2-pictos .wp-block-column > * {
  margin: 0;
}
/* Pictogrammes en trait blanc, sans disque. 56 px de rendu, trait de
   0,86 dans le viewBox : 2 px optiques, comme ailleurs sur le site. */
.lea-v2-picto {
  display: block;
  width: 56px;
  height: 56px;
  color: var(--wp--preset--color--base);
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-v2 .lea-v2-pictos h3 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.08;
  margin-bottom: var(--wp--preset--spacing--30);
}
/* L'appel dans un bloc noir arrondi, posé sur l'aplat orange. */
.lea-v2-appel {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
  align-items: center;
  padding: var(--wp--preset--spacing--70);
  border-radius: var(--wp--custom--rayon--photo);
}
.lea-v2-appel > * {
  margin: 0;
  grid-column: 1;
}
.lea-v2 .lea-v2-appel__titre {
  font-weight: 800;
  text-transform: uppercase;
  font-size: clamp(1.75rem, 1.1rem + 2.2vw, 3rem);
  line-height: 1.02;
}
.lea-v2-appel p {
  max-width: 46ch;
}
.lea-v2-appel .wp-block-buttons {
  grid-column: 2;
  grid-row: 1 / span 2;
}

/* --- Mouvement ---------------------------------------------------- */

@keyframes lea-v2-flotte {
  from { translate: 0 0; rotate: -20deg; }
  to   { translate: -22px 30px; rotate: 16deg; }
}
@keyframes lea-v2-cascade {
  from { opacity: 0; translate: 0 56px; scale: 0.92; }
  to   { opacity: 1; translate: 0 0; scale: 1; }
}
@keyframes lea-v2-monte {
  from { opacity: 0; translate: 0 32px; }
  to   { opacity: 1; translate: 0 0; }
}
@keyframes lea-v2-referme-haut {
  from { translate: -64px -48px; opacity: 0.15; }
  to   { translate: 0 0; opacity: 1; }
}
@keyframes lea-v2-referme-bas {
  from { translate: 64px 48px; opacity: 0.15; }
  to   { translate: 0 0; opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  /* L'anneau flotte seul sur le premier écran ; le texte du hero ne bouge pas. */
  .lea-v2-anneau {
    animation: lea-v2-flotte var(--wp--custom--mouvement--flottement) ease-in-out infinite alternate;
  }
  .lea-v2-categorie .wp-block-cover__image-background {
    transition: scale 0.6s var(--wp--custom--mouvement--courbe);
  }
  .lea-v2-categorie:hover .wp-block-cover__image-background {
    scale: 1.06;
  }

  @supports (animation-timeline: view()) {
    .lea-v2-titre,
    .lea-v2-lieu {
      animation: lea-v2-monte linear both;
      animation-timeline: view();
      animation-range: entry 0% cover 28%;
    }
    /* Cascade nette : chaque carte démarre un cran après la précédente. */
    .lea-v2-cascade > *,
    .lea-v2-actu .wp-block-post-template > li {
      animation: lea-v2-cascade linear both;
      animation-timeline: view();
      animation-range: entry 0% cover 24%;
    }
    .lea-v2-cascade > :nth-child(2),
    .lea-v2-actu .wp-block-post-template > li:nth-child(2) { animation-range: entry 6% cover 32%; }
    .lea-v2-cascade > :nth-child(3),
    .lea-v2-actu .wp-block-post-template > li:nth-child(3) { animation-range: entry 12% cover 40%; }
    .lea-v2-cascade > :nth-child(4) { animation-range: entry 18% cover 48%; }
    .lea-v2-cascade > :nth-child(5) { animation-range: entry 24% cover 56%; }
    .lea-v2-cascade > :nth-child(6) { animation-range: entry 30% cover 64%; }
    /* Les deux L se referment sur la mission, pilotés par la position du
       cadre dans la fenêtre. */
    .lea-v2-L--ouvre,
    .lea-v2-L--ferme {
      animation: lea-v2-referme-haut linear both;
      animation-timeline: --lea-mission;
      animation-range: entry 15% cover 55%;
    }
    .lea-v2-L--ferme {
      animation-name: lea-v2-referme-bas;
    }
  }
}

/* --- Tablette et mobile -------------------------------------------- */

@media (max-width: 1024px) {
  .lea-v2-objectifs,
  .lea-v2-grille-categories,
  .lea-v2-actu .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* Entre 782 et 1024 px, les quatre pictogrammes passent sur deux lignes :
   le bloc Colonnes les garderait sur une seule, trop serrée. */
@media (min-width: 782px) and (max-width: 1024px) {
  .lea-v2 .lea-v2-pictos.wp-block-columns {
    flex-wrap: wrap !important;
  }
  .lea-v2 .lea-v2-pictos.wp-block-columns > .wp-block-column {
    flex-basis: calc(50% - var(--wp--preset--spacing--50)) !important;
  }
}
@media (max-width: 781px) {
  .lea-v2-section {
    padding-block: var(--wp--preset--spacing--80);
  }
  .lea-v2-hero {
    padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
  }
  .lea-v2-anneau {
    width: 62%;
    top: -10%;
    left: -8%;
  }
  .lea-v2-L--hero {
    right: -8px;
    bottom: -28px;
  }
  .lea-v2-mission__cadre {
    padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
  }
  .lea-v2 .lea-v2-rond {
    width: min(100%, 260px);
  }
  .lea-v2-appel {
    grid-template-columns: 1fr;
    padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
  }
  .lea-v2-appel .wp-block-buttons {
    grid-column: 1;
    grid-row: auto;
  }
}
@media (max-width: 600px) {
  .lea-v2-objectifs,
  .lea-v2-actu .wp-block-post-template {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .lea-v2-categorie {
    min-height: 200px !important;
    padding: var(--wp--preset--spacing--30);
  }
  .lea-v2 .lea-v2-categorie__titre {
    font-size: 0.9375rem;
    padding: 8px 14px;
    border-radius: 14px;
  }
  .lea-v2 .wp-block-button.lea-v2-btn,
  .lea-v2 .wp-block-button.lea-v2-btn > .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }
}


/* ==================================================================
   Page « À propos de LEA » v2 (2026-09-10), direction C. Un mode d'emploi
   plutôt qu'une vitrine : quatre questions, dans l'ordre où un visiteur
   se les pose. Qui sommes-nous (mission et quatre axes), comment on
   adhère (frise en quatre étapes), ce qu'on y trouve (six équipes), qui
   décide (schéma de gouvernance). Classes lea-ap-*.
   Mouvement en CSS pur, sous @supports et prefers-reduced-motion : la
   frise se remplit, le fil des axes et les liaisons du schéma se tracent.
   ================================================================== */

/* --- Ouverture et sommaire ------------------------------------------ */

.lea-v2 section[id] {
  scroll-margin-top: var(--wp--preset--spacing--50);
}
@media (prefers-reduced-motion: no-preference) {
  html:has(.lea-ap-sommaire) {
    scroll-behavior: smooth;
  }
}
.lea-ap-ouverture__texte > * {
  margin: 0;
}
/* Sans cet écart, le titre de 7rem à l'interligne serré remontait sur le
   surtitre (capture du 2026-09-10). */
.lea-v2 .lea-ap-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-ap-titre {
  font-size: clamp(3rem, 1.8rem + 5.6vw, 7rem);
  line-height: 0.92;
  margin: 0 0 var(--wp--preset--spacing--60);
  hyphens: manual;
}
.lea-v2 .lea-ap-question {
  font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.5rem);
  font-weight: 700;
  line-height: 1.12;
  max-width: 24ch;
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-ap-chapo {
  font-size: 1.25rem;
  line-height: 1.5;
  max-width: 52ch;
}
.lea-v2 .lea-ap-sommaire {
  margin-top: var(--wp--preset--spacing--60);
  gap: 12px;
}
@media (max-width: 480px) {
  .lea-v2 .lea-ap-sommaire .wp-block-button.lea-v2-btn,
  .lea-v2 .lea-ap-sommaire .wp-block-button.lea-v2-btn > .wp-block-button__link {
    width: auto;
  }
}

/* --- Qui sommes-nous : les quatre axes reliés par un fil ------------- */

.lea-ap-qui .lea-v2-mission__cadre {
  margin-bottom: var(--wp--preset--spacing--70);
}
.lea-ap-axes {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-ap-axes > * {
  margin: 0;
}
.lea-ap-axe {
  position: relative;
  z-index: 1;
  text-align: center;
}
.lea-ap-axe > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ap-rond {
  width: min(100%, 200px);
  margin: 0 auto var(--wp--preset--spacing--40);
}
.lea-v2 .lea-ap-rond img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 8px solid var(--wp--preset--color--base);
  box-sizing: border-box;
}
.lea-v2 .lea-ap-axe__titre {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
}
/* Le fil orange passe derrière les quatre cercles, à hauteur de leur
   centre. Il se trace au défilement. Masqué quand les axes s'empilent. */
.lea-ap-fil {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 70px;
  width: 100%;
  height: 60px;
  fill: none;
  stroke: var(--wp--preset--color--primary);
  stroke-width: 4;
  stroke-linecap: round;
  pointer-events: none;
}

/* --- Comment on adhère : la frise ------------------------------------ */

/* Liens posés sur l'aplat orange : noirs et soulignés (5,8:1). */
.lea-ap-parcours a:where(:not(.wp-element-button)),
.lea-ap-instance--ag a:where(:not(.wp-element-button)) {
  color: var(--wp--preset--color--contrast);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 700;
}
.lea-ap-frise {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  view-timeline-name: --lea-frise;
}
.lea-ap-frise > * {
  position: relative;
  z-index: 1;
  margin: 0;
}
/* La piste de la frise, puis son remplissage noir, à hauteur des numéros. */
.lea-ap-frise::before,
.lea-ap-frise::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 33px;
  left: 36px;
  right: 36px;
  height: 6px;
  border-radius: var(--wp--custom--rayon--pastille);
}
.lea-ap-frise::before {
  background: color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}
.lea-ap-frise::after {
  background: var(--wp--preset--color--contrast);
  transform-origin: left center;
}
.lea-ap-etape > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ap-etape__numero {
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 1.5rem;
}
.lea-v2 .lea-ap-etape .lea-ap-etape__numero {
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-v2 .lea-ap-etape__titre {
  font-size: 1.5rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.05;
}
.lea-v2 .lea-ap-parcours__action {
  margin-top: var(--wp--preset--spacing--60);
}

/* --- Ce qu'on y trouve : les six équipes ----------------------------- */

.lea-ap-equipes .lea-v2-entete {
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-ap-soustitre {
  margin-top: var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
}
.lea-ap-grille-equipes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-ap-grille-equipes > * {
  margin: 0;
}
.lea-v2 .lea-ap-equipe {
  padding: var(--wp--preset--spacing--50);
}
.lea-ap-equipe > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ap-picto {
  display: block;
  width: 56px;
  height: 56px;
  color: var(--wp--preset--color--contrast);
  margin-bottom: var(--wp--preset--spacing--40);
}
/* Le point d'accent jaune, toujours au même endroit de la série. */
.lea-ap-picto__point {
  fill: var(--wp--preset--color--secondary);
  stroke: none;
}

/* Accordéons natifs : un rond jaune « + » qui devient « − » à l'ouverture. */
.lea-v2 .wp-block-details {
  margin-top: var(--wp--preset--spacing--40);
  padding-top: var(--wp--preset--spacing--30);
  border-top: 1.5px solid color-mix(in srgb, currentColor 22%, transparent);
}
.lea-v2 .wp-block-details summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.lea-v2 .wp-block-details summary::-webkit-details-marker {
  display: none;
}
.lea-v2 .wp-block-details summary::before {
  content: "+";
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-weight: 800;
  line-height: 1;
}
.lea-v2 .wp-block-details[open] summary::before {
  content: "\2212";
}
.lea-v2 .wp-block-details > :not(summary) {
  margin-top: var(--wp--preset--spacing--30);
}

/* --- Qui décide : le schéma de gouvernance --------------------------- */

/* Trois étages (assemblée, conseil, bureau) reliés par des flèches, et les
   équipes qui font leurs propositions au conseil, à droite. Le texte reste
   du vrai texte : le schéma n'est fait que des liaisons. */
.lea-ap-schema {
  display: grid;
  grid-template-columns: minmax(0, 3fr) 88px minmax(0, 2fr);
  grid-template-areas:
    "ag . ."
    "l1 . ."
    "ca l3 eq"
    "l2 . ."
    "bu . .";
  align-items: center;
}
.lea-ap-schema > * {
  margin: 0;
}
.lea-ap-instance--ag { grid-area: ag; }
.lea-ap-lien--1 { grid-area: l1; }
.lea-ap-instance--ca { grid-area: ca; }
.lea-ap-lien--2 { grid-area: l2; }
.lea-ap-instance--bureau { grid-area: bu; }
.lea-ap-lien--3 { grid-area: l3; }
.lea-ap-instance--equipes { grid-area: eq; }

.lea-v2 .lea-ap-instance {
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
}
.lea-ap-instance > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ap-instance > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-ap-instance h3 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.05;
}
.lea-ap-instance--equipes {
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
}
.lea-ap-instance--equipes a {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}
.lea-ap-lien {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--40);
  min-height: 88px;
  padding-left: var(--wp--preset--spacing--60);
  font-weight: 700;
  font-size: var(--wp--preset--font-size--small);
}
.lea-ap-lien svg {
  flex: none;
  width: 24px;
  height: 72px;
  fill: none;
  stroke: var(--wp--preset--color--contrast);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.lea-ap-lien--3 {
  justify-content: center;
  padding: 0;
}
.lea-ap-lien--3 svg {
  width: 72px;
  height: 24px;
}
.lea-ap-documents {
  margin-top: var(--wp--preset--spacing--70);
}
.lea-ap-documents > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ap-documents h3 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
}

/* --- Appel final ----------------------------------------------------- */

.lea-ap-fin .lea-v2-appel .wp-block-buttons {
  grid-row: 1 / span 3;
}

/* --- Mouvement ------------------------------------------------------- */

@keyframes lea-ap-trace {
  from { stroke-dashoffset: 100; }
  to   { stroke-dashoffset: 0; }
}
@keyframes lea-ap-remplit {
  from { scale: 0 1; }
  to   { scale: 1 1; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .lea-ap-fil path,
    .lea-ap-lien path {
      stroke-dasharray: 100;
      animation: lea-ap-trace linear both;
      animation-timeline: view();
      animation-range: entry 20% cover 55%;
    }
    .lea-ap-frise::after {
      animation: lea-ap-remplit linear both;
      animation-timeline: --lea-frise;
      animation-range: entry 45% cover 75%;
    }
  }
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-ap-axes,
  .lea-ap-grille-equipes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-ap-fil {
    display: none;
  }
  .lea-ap-frise {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-ap-frise::before,
  .lea-ap-frise::after {
    display: none;
  }
}
@media (max-width: 781px) {
  .lea-ap-schema {
    grid-template-columns: 1fr;
    grid-template-areas: "ag" "l1" "ca" "l2" "bu" "eq";
  }
  .lea-ap-lien--3 {
    display: none;
  }
  .lea-v2 .lea-ap-instance--equipes {
    margin-top: var(--wp--preset--spacing--60);
  }
  .lea-ap-fin .lea-v2-appel .wp-block-buttons {
    grid-row: auto;
  }
}
@media (max-width: 600px) {
  .lea-ap-axes,
  .lea-ap-grille-equipes,
  .lea-ap-frise {
    grid-template-columns: 1fr;
  }
}
/* Sur téléphone, les libellés longs des documents passent sur plusieurs
   lignes : une pastille à 999 px de rayon devenait un ovale. 24 px garde un
   bouton franchement arrondi. Le !important répond à celui de lea.css. */
@media (max-width: 480px) {
  .lea-v2 .lea-ap-instance .wp-block-button__link,
  .lea-v2 .lea-ap-documents .wp-block-button__link {
    border-radius: 24px !important;
    text-align: center;
  }
}


/* ==================================================================
   Page « Adhésion » v2 (2026-09-10), direction C. Le chemin le plus court
   entre l'envie et le bouton : on voit combien, on voit comment, on
   clique. Ouverture orange, quatre étapes, barème en escalier, ce que
   l'on rejoint, appel final ; sur mobile, un bouton collé en bas d'écran
   pendant la lecture. Classes lea-ad-* ; la frise est celle d'À propos
   (lea-ap-frise), en version fond blanc.
   ================================================================== */

/* --- Ouverture ------------------------------------------------------ */

.lea-ad-ouverture {
  position: relative;
  overflow-x: clip;
  color: var(--wp--preset--color--contrast);
}
.lea-ad-ouverture__texte {
  position: relative;
  z-index: 1;
}
.lea-ad-ouverture__texte > * {
  margin: 0;
}
.lea-v2 .lea-ad-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
/* Mesuré : « ENTREPRENEUR- », le plus long morceau du titre, tient à 36 px
   dans les 310 px d'un écran de 390. */
/* 17ch et non 14 : plus étroit que « ENTREPRENEUR- » en capitales, le titre
   se faisait couper avant le trait d'union (« ENTREPRENEUR / -ACTEUR »). */
.lea-v2 .lea-ad-titre {
  font-size: clamp(2.25rem, 0.9rem + 5.5vw, 6rem);
  line-height: 0.95;
  max-width: 17ch;
  margin-bottom: var(--wp--preset--spacing--60);
  hyphens: manual;
  overflow-wrap: break-word;
}
.lea-v2 .lea-ad-question {
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem);
  font-weight: 700;
  line-height: 1.15;
  max-width: 30ch;
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-ad-accroche {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  text-transform: uppercase;
}
.lea-v2 .lea-ad-actions {
  margin-top: var(--wp--preset--spacing--60);
  gap: 12px;
}
/* Le grand L noir de la charte, en coin de l'aplat : la seule sortie de
   grille de la page. */
.lea-ad-L {
  position: absolute;
  z-index: 0;
  right: max(-40px, calc((100% - 1200px) / 2 - 80px));
  bottom: -18px;
  height: clamp(160px, 22vw, 340px);
  color: var(--wp--preset--color--contrast);
  transform: scaleX(-1);
}

/* --- Les quatre étapes, frise sur fond blanc ------------------------- */

.lea-v2 .lea-ad-etape {
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--50);
}
.lea-ad-etapes .lea-ap-etape__numero {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}
.lea-ad-etapes .lea-ap-frise::before,
.lea-ad-etapes .lea-ap-frise::after {
  top: calc(var(--wp--preset--spacing--50) + 33px);
}
.lea-ad-etapes .lea-ap-frise::before {
  background: color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}
.lea-ad-etapes .lea-ap-frise::after {
  background: var(--wp--preset--color--primary);
}
.lea-ad-etapes .lea-ap-lien-texte a {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}

/* --- Le barème en escalier ------------------------------------------- */

/* Cinq marches, de 20 à 170 €, qui rendent « progressif » visible d'un
   coup d'œil. Texte noir sur orange (5,8:1) et sur jaune (10,9:1). */
.lea-ad-escalier {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  gap: 12px;
  view-timeline-name: --lea-escalier;
}
.lea-ad-escalier > * {
  margin: 0;
}
.lea-ad-marche {
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
  padding: var(--wp--preset--spacing--50) 18px;
  border-radius: var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) 12px 12px;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}
.lea-ad-marche > * {
  margin: 0;
}
.lea-ad-marche--1 { min-height: 150px; background: var(--wp--preset--color--secondary); }
.lea-ad-marche--2 { min-height: 210px; }
.lea-ad-marche--3 { min-height: 270px; }
.lea-ad-marche--4 { min-height: 330px; }
.lea-ad-marche--5 { min-height: 390px; }
.lea-ad-montant {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(2rem, 1.4rem + 1.6vw, 3rem);
  line-height: 1;
}
.lea-ad-palier {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.3;
}
.lea-v2 .lea-ad-note {
  margin-top: var(--wp--preset--spacing--40);
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
}
.lea-v2 .lea-ad-bareme__action {
  margin-top: var(--wp--preset--spacing--50);
}

/* --- Ce que vous rejoignez ------------------------------------------- */

.lea-ad-grille-atouts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
}
.lea-ad-grille-atouts > * {
  margin: 0;
}
.lea-ad-atout {
  position: relative;
  padding-left: 64px;
}
.lea-ad-atout > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
/* La pastille jaune, repère de chaque phrase. */
.lea-ad-atout::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--wp--preset--color--secondary);
}
.lea-v2 .lea-ad-atout h3 {
  font-size: clamp(1.4rem, 1.1rem + 0.9vw, 1.75rem);
  font-weight: 800;
  line-height: 1.12;
}

/* --- Bouton collant sur mobile --------------------------------------- */

/* Dernier enfant du parcours : il reste collé en bas d'écran tant qu'on
   lit les étapes, le barème et les atouts, puis se range de lui-même à
   l'arrivée sur l'appel final. Aucun JavaScript. */
.lea-v2 .lea-ad-collant {
  display: none;
}

/* --- Mouvement ------------------------------------------------------- */

@keyframes lea-ad-leve {
  from { clip-path: inset(100% 0 0 0 round 28px 28px 12px 12px); }
  to   { clip-path: inset(0 0 0 0 round 28px 28px 12px 12px); }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    /* Les marches montent l'une après l'autre, par révélation depuis le
       bas : le texte n'est jamais déformé. */
    .lea-ad-marche {
      animation: lea-ad-leve linear both;
      animation-timeline: --lea-escalier;
      animation-range: entry 30% cover 45%;
    }
    .lea-ad-marche--2 { animation-range: entry 38% cover 50%; }
    .lea-ad-marche--3 { animation-range: entry 46% cover 55%; }
    .lea-ad-marche--4 { animation-range: entry 54% cover 60%; }
    .lea-ad-marche--5 { animation-range: entry 62% cover 65%; }
  }
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-ad-escalier {
    gap: 8px;
  }
  .lea-ad-marche {
    padding: var(--wp--preset--spacing--40) 12px;
  }
}
@media (max-width: 781px) {
  /* L'escalier se couche : des marches de plus en plus longues. */
  .lea-ad-escalier {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .lea-ad-marche {
    min-height: 0 !important;
    border-radius: 12px var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) 12px;
  }
  .lea-ad-marche--1 { width: 60%; }
  .lea-ad-marche--2 { width: 70%; }
  .lea-ad-marche--3 { width: 80%; }
  .lea-ad-marche--4 { width: 90%; }
  .lea-ad-marche--5 { width: 100%; }
  .lea-ad-grille-atouts {
    grid-template-columns: 1fr;
  }
  .lea-ad-L {
    height: 150px;
    right: -12px;
  }
  .lea-v2 .lea-ad-collant {
    display: flex;
    justify-content: center;
    position: sticky;
    bottom: 12px;
    z-index: 30;
    margin: 0;
    padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
  }
  .lea-v2 .lea-ad-collant .wp-block-button,
  .lea-v2 .lea-ad-collant .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }
}
/* Le bouton collant n'apparaît qu'après une première portion de défilement :
   à l'arrivée, il recouvrait « Voir le barème » dans l'ouverture. Sans prise
   en charge, ou si le visiteur demande moins de mouvement, il reste visible. */
@keyframes lea-ad-montre {
  0%, 70% { opacity: 0; visibility: hidden; translate: 0 24px; }
  100%    { opacity: 1; visibility: visible; translate: 0 0; }
}
@media (max-width: 781px) and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .lea-v2 .lea-ad-collant {
      animation: lea-ad-montre linear both;
      animation-timeline: scroll(root);
      animation-range: 0 70vh;
    }
  }
}
@media (max-width: 781px) and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    @keyframes lea-ad-avance {
      from { clip-path: inset(0 100% 0 0 round 12px 28px 28px 12px); }
      to   { clip-path: inset(0 0 0 0 round 12px 28px 28px 12px); }
    }
    .lea-ad-marche {
      animation-name: lea-ad-avance;
    }
  }
}


/* ==================================================================
   Page « Contact » v2 (2026-09-10), direction C. Une page qui dit
   bonjour avant de demander quoi que ce soit : ouverture orange où deux
   L de la charte encadrent la phrase comme une parole rapportée, le
   formulaire dans un grand bloc blanc qui mord sur l'aplat, les
   coordonnées à côté sur une carte jaune, puis comment ça se passe en
   trois temps. Classes lea-ct-* pour la page, lea-cf-* pour les champs
   du formulaire (Contact Form 7). La frise est celle d'Adhésion.
   ================================================================== */

/* --- Ouverture ------------------------------------------------------ */

.lea-ct-ouverture {
  color: var(--wp--preset--color--contrast);
  overflow-x: clip;
}
.lea-v2 .lea-ct-ouverture {
  padding-bottom: calc(var(--wp--preset--spacing--80) + 72px);
}
.lea-ct-ouverture__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--60);
}
.lea-ct-ouverture__grille > *,
.lea-ct-ouverture__texte > * {
  margin: 0;
}
.lea-v2 .lea-ct-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
/* 4,5 rem au plus : « CONTACTEZ-NOUS » tient alors sur une ligne dans la
   colonne de texte du bureau ; sur téléphone, il se coupe après le trait
   d'union. */
.lea-v2 .lea-ct-titre {
  font-size: clamp(2.5rem, 1rem + 4vw, 4.5rem);
  line-height: 0.95;
  margin-bottom: var(--wp--preset--spacing--60);
}
/* Deux L de la charte en guillemets, usage qu'elle prévoit pour le L seul
   (« en cadre ou en guillemets ») : ┌ avant la phrase, ┘ après. Dessinés en
   CSS, ils ne sont pas du texte et ne se lisent pas. Noir sur orange, 5,8:1. */
.lea-v2 .lea-ct-citation {
  --lea-L: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 37.45'%3E%3Cpath d='M10.66 37.35C4.84 37.32.14 32.61.12 26.79L0 .31C.11.1.21 0 .32 0h6.9c.19.1.28.21.28.31V23.1c0 3.88 3.15 7.03 7.03 7.03h11.13c.21.12.32.23.32.31v6.69c-.11.21-.21.32-.32.32z'/%3E%3C/svg%3E");
  position: relative;
  max-width: 24ch;
  padding: 0.6em 1.05em;
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: clamp(1.5rem, 1.05rem + 1.8vw, 2.5rem);
  line-height: 1.15;
}
.lea-ct-citation::before,
.lea-ct-citation::after {
  content: "";
  position: absolute;
  width: 0.62em;
  height: 0.9em;
  background: currentColor;
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-ct-citation::before {
  top: 0;
  left: 0;
  transform: scaleY(-1);
}
.lea-ct-citation::after {
  right: 0;
  bottom: 0;
  transform: scaleX(-1);
}
/* La bulle « en train d'écrire » : blanche à trait noir, point jaune de la
   série des pictos. Les trois points sautillent trois fois puis s'arrêtent,
   sous les cinq secondes au-delà desquelles un mouvement doit pouvoir se
   mettre en pause. */
.lea-ct-bulle {
  justify-self: end;
  width: 100%;
  max-width: 340px;
  color: var(--wp--preset--color--contrast);
}
.lea-ct-bulle svg {
  display: block;
  width: 100%;
  height: auto;
}
.lea-ct-bulle__fond {
  fill: var(--wp--preset--color--base);
}
@keyframes lea-ct-tape {
  0%, 60%, 100% { transform: translateY(0); }
  30%           { transform: translateY(-12px); }
}
@media (prefers-reduced-motion: no-preference) {
  .lea-ct-bulle__tape {
    animation: lea-ct-tape 1.2s ease-in-out 0.6s 3 both;
  }
  .lea-ct-bulle__tape--2 { animation-delay: 0.75s; }
  .lea-ct-bulle__tape--3 { animation-delay: 0.9s; }
}

/* --- Écrire : le formulaire et les coordonnées ----------------------- */

/* flow-root : sans marge haute, la section laissait la marge négative du
   bloc la traverser (fusion des marges). C'est alors toute la section qui
   remontait, et son fond gris recouvrait l'aplat au lieu du bloc blanc. */
.lea-v2 .lea-ct-ecrire {
  display: flow-root;
  padding-top: 0;
}
/* Le bloc du formulaire mord sur l'aplat orange : on arrive sur la page, le
   formulaire est déjà là. */
.lea-ct-grille {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  align-items: start;
  gap: var(--wp--preset--spacing--50);
}
/* Trois classes et non deux : WordPress remet à zéro la marge haute du
   premier enfant d'un groupe (:root :where(.is-layout-constrained) >
   :first-child), à égalité de poids avec deux classes. */
.lea-v2 .lea-ct-ecrire > .lea-ct-grille {
  margin-block-start: -72px;
}
.lea-ct-grille > * {
  margin: 0;
}
.lea-v2 .lea-ct-formulaire {
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
  padding: clamp(24px, 1rem + 3vw, 56px);
}
.lea-ct-formulaire > * {
  margin: 0;
}
.lea-v2 .lea-ct-formulaire h2 {
  font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ct-note {
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
  margin-bottom: var(--wp--preset--spacing--50);
}
/* Jaune en carte, jamais en texte : texte noir sur jaune, 10,9:1. */
.lea-v2 .lea-ct-coordonnees {
  position: sticky;
  top: var(--wp--preset--spacing--50);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--bloc);
  padding: clamp(24px, 1rem + 2vw, 40px);
}
.lea-ct-coordonnees > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-ct-coordonnees > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-ct-coordonnees h2 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.05;
}
.lea-v2 .lea-ct-coordonnees a:not(.wp-block-button__link) {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}

/* --- Les champs du formulaire (Contact Form 7) ----------------------- */

.lea-cf-grille {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-cf-champ {
  margin: 0 0 var(--wp--preset--spacing--50);
}
/* Le champ est dans son libellé : Contact Form 7 6.1 ne rend pas l'option
   id:, un for= ne désignerait rien. */
.lea-cf-champ label {
  display: block;
}
.lea-cf-libelle {
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
}
.lea-cf-facultatif {
  font-weight: 400;
  color: var(--wp--preset--color--muted);
}
.lea-v2 .wpcf7 .wpcf7-form-control-wrap {
  display: block;
}
/* Filet gris foncé : 5,3:1 sur blanc, au-dessus des 3:1 qu'un champ doit
   tenir pour qu'on en voie les bords. Texte à 17 px, pour que l'iPhone ne
   zoome pas en entrant dans le champ. */
.lea-v2 .wpcf7 input[type="text"],
.lea-v2 .wpcf7 input[type="email"],
.lea-v2 .wpcf7 input[type="tel"],
.lea-v2 .wpcf7 textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  padding: 12px 20px;
  border: 1.5px solid var(--wp--preset--color--muted);
  border-radius: 16px;
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font: inherit;
  font-size: 1.0625rem;
}
.lea-v2 .wpcf7 textarea {
  min-height: 180px;
  resize: vertical;
}
.lea-v2 .wpcf7 input:focus-visible,
.lea-v2 .wpcf7 textarea:focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 2px;
  border-color: var(--wp--preset--color--contrast);
}
.lea-v2 .wpcf7 .wpcf7-not-valid {
  border-color: var(--wp--preset--color--primary-dark);
  border-width: 2px;
}
/* Messages d'erreur en orange foncé : 5,0:1 sur blanc. */
.lea-v2 .wpcf7 .wpcf7-not-valid-tip {
  margin-top: 6px;
  color: var(--wp--preset--color--primary-dark);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
}
.lea-v2 .lea-cf-accord {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--small);
}
.lea-v2 .lea-cf-accord .wpcf7-list-item {
  margin: 0;
}
.lea-cf-accord label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
}
.lea-cf-accord input[type="checkbox"] {
  flex: none;
  width: 22px;
  height: 22px;
  margin: 1px 0 0;
  accent-color: var(--wp--preset--color--contrast);
}
.lea-cf-accord a {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}
.lea-v2 .lea-cf-envoi {
  margin: 0;
}
/* Le bouton d'envoi reprend la pastille noire des boutons primaires. */
.lea-v2 .wpcf7 .lea-cf-envoyer {
  appearance: none;
  min-height: 52px;
  padding: 0 32px;
  border: 0;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  font-family: var(--wp--preset--font-family--corps);
  font-size: 1.0625rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.lea-v2 .wpcf7 .lea-cf-envoyer:hover,
.lea-v2 .wpcf7 .lea-cf-envoyer:focus-visible {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}
.lea-v2 .wpcf7 .lea-cf-envoyer:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 3px;
}
.lea-v2 .wpcf7 form .wpcf7-response-output {
  margin: var(--wp--preset--spacing--50) 0 0;
  padding: 16px 20px;
  border: 2px solid var(--wp--preset--color--primary-dark);
  border-radius: 16px;
  font-weight: 700;
}
.lea-v2 .wpcf7 form.sent .wpcf7-response-output {
  background: var(--wp--preset--color--secondary);
  border-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
}

/* --- Comment ça se passe : la frise d'Adhésion, en trois temps ------- */

.lea-ct-suite .lea-ap-frise {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-ct-suite .lea-ap-frise::before,
  .lea-ct-suite .lea-ap-frise::after {
    display: block;
  }
}
@media (max-width: 781px) {
  .lea-ct-ouverture__grille,
  .lea-ct-grille {
    grid-template-columns: 1fr;
  }
  .lea-ct-bulle {
    display: none;
  }
  .lea-v2 .lea-ct-ouverture {
    padding-bottom: calc(var(--wp--preset--spacing--70) + 48px);
  }
  .lea-v2 .lea-ct-ecrire > .lea-ct-grille {
    margin-block-start: -48px;
  }
  .lea-v2 .lea-ct-coordonnees {
    position: static;
  }
}
@media (max-width: 600px) {
  .lea-cf-grille,
  .lea-ct-suite .lea-ap-frise {
    grid-template-columns: 1fr;
  }
  .lea-ct-suite .lea-ap-frise::before,
  .lea-ct-suite .lea-ap-frise::after {
    display: none;
  }
  .lea-v2 .wpcf7 .lea-cf-envoyer {
    width: 100%;
  }
}


/* ==================================================================
   Annuaire v2 (2026-09-10), direction C. Une vitrine des entrepreneurs
   qui font vivre le Gâtinais : ouverture orange avec le nombre
   d'adhérents et une mosaïque de photos, « Trouver un pro » qui mord sur
   l'aplat, les secteurs en pastilles photo, un coup de projecteur sur
   une carte jaune, la grille, « Près de chez vous », appel final.
   Classes lea-an-* ; les blocs dynamiques viennent de
   mu-plugins/lea-annuaire.php. Gabarits archive-adherent-v2 et
   taxonomy-secteur-v2.
   ================================================================== */

/* --- Cadre : sections bord à bord ------------------------------------ */

.post-type-archive-adherent .wp-site-blocks > *,
.tax-secteur .wp-site-blocks > * {
  margin-block-start: 0;
}
.lea-v2.lea-an > * {
  margin-block: 0;
}

/* Un L de la charte, dessiné en CSS, pour les coins de cadre. */
.lea-an {
  --lea-L: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 37.45'%3E%3Cpath d='M10.66 37.35C4.84 37.32.14 32.61.12 26.79L0 .31C.11.1.21 0 .32 0h6.9c.19.1.28.21.28.31V23.1c0 3.88 3.15 7.03 7.03 7.03h11.13c.21.12.32.23.32.31v6.69c-.11.21-.21.32-.32.32z'/%3E%3C/svg%3E");
  --lea-repere: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.6A2.6 2.6 0 1 1 12 6.4a2.6 2.6 0 0 1 0 5.2z'/%3E%3C/svg%3E");
}

/* --- Ouverture ------------------------------------------------------- */

.lea-an-ouverture {
  color: var(--wp--preset--color--contrast);
  overflow-x: clip;
}
.lea-v2 .lea-an-ouverture {
  padding-bottom: calc(var(--wp--preset--spacing--80) + 64px);
}
.lea-an-ouverture__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-an-ouverture__grille > *,
.lea-an-ouverture__texte > * {
  margin: 0;
}
.lea-v2 .lea-an-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
/* Mesuré sur Adhésion : un morceau de 13 capitales tient à 36 px dans
   310 px. « ENTREPRENEURS- » en compte 14 : 68 px au plus dans la colonne
   du bureau, 30 px sur un téléphone de 390. */
.lea-v2 .lea-an-titre {
  font-size: clamp(1.875rem, 0.8rem + 4.4vw, 4.25rem);
  font-weight: 800;
  line-height: 0.95;
  text-transform: uppercase;
  margin-bottom: var(--wp--preset--spacing--50);
  hyphens: manual;
  overflow-wrap: break-word;
}
/* Le nombre en blanc, grand texte (3,0:1) ; la phrase en noir (5,8:1). */
.lea-v2 .lea-an-chiffre {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  margin-bottom: var(--wp--preset--spacing--50);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  line-height: 1;
}
.lea-an-chiffre__nombre {
  color: var(--wp--preset--color--base);
  font-size: clamp(3.5rem, 2rem + 5vw, 6.5rem);
  letter-spacing: -0.02em;
}
.lea-an-chiffre__texte {
  max-width: 15ch;
  font-size: clamp(1.25rem, 1rem + 0.9vw, 1.75rem);
  line-height: 1.05;
  text-transform: uppercase;
}
.lea-v2 .lea-an-intro,
.lea-v2 .lea-an-intro p {
  max-width: 46ch;
  font-size: 1.125rem;
  line-height: 1.55;
  margin: 0;
}

/* Six photos en quinconce, formes variées : deux ronds, un angle ouvert. */
.lea-an-mosaique {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.lea-an-mosaique__case {
  display: block;
}
.lea-an-mosaique__case:nth-child(3n + 2) {
  translate: 0 40px;
}
.lea-an-mosaique__photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-an-mosaique__case:nth-child(1) .lea-an-mosaique__photo,
.lea-an-mosaique__case:nth-child(5) .lea-an-mosaique__photo {
  border-radius: 50%;
}
.lea-an-mosaique__case:nth-child(3) .lea-an-mosaique__photo {
  border-radius: var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) 72px;
}
@keyframes lea-an-apparait {
  from { opacity: 0; scale: 0.85; }
  to   { opacity: 1; scale: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .lea-an-mosaique__case {
    animation: lea-an-apparait 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }
  .lea-an-mosaique__case:nth-child(2) { animation-delay: 0.08s; }
  .lea-an-mosaique__case:nth-child(3) { animation-delay: 0.16s; }
  .lea-an-mosaique__case:nth-child(4) { animation-delay: 0.24s; }
  .lea-an-mosaique__case:nth-child(5) { animation-delay: 0.32s; }
  .lea-an-mosaique__case:nth-child(6) { animation-delay: 0.4s; }
}

/* --- Trouver un pro -------------------------------------------------- */

/* flow-root : sans lui, la marge négative du formulaire traverserait la
   section, qui remonterait tout entière (voir Contact). Trois classes :
   WordPress remet à zéro la marge haute du premier enfant d'un groupe. */
.lea-v2 .lea-an-explorer {
  display: flow-root;
  padding-top: 0;
  padding-bottom: var(--wp--preset--spacing--70);
}
.lea-v2 .lea-an-explorer > .lea-an-recherche-cadre {
  position: relative;
  z-index: 2;
  margin-block-start: -64px;
}
/* Une grande pastille blanche à filet noir : les bords des champs sont
   ceux de la pastille, 17,3:1. */
.lea-an-recherche {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: stretch;
  padding: 8px;
  background: var(--wp--preset--color--base);
  border: 2px solid var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--pastille);
}
.lea-v2 .lea-an-recherche__champ {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  margin: 0;
  padding: 8px 24px;
  border-radius: var(--wp--custom--rayon--pastille);
}
.lea-an-recherche__champ + .lea-an-recherche__champ::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24%;
  bottom: 24%;
  width: 1.5px;
  background: color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
}
/* L'indicateur de focus est porté par le segment : orange sur blanc, 3,0:1. */
.lea-an-recherche__champ:focus-within {
  background: var(--wp--preset--color--surface);
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: -3px;
}
.lea-an-recherche label {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lea-an-recherche input,
.lea-an-recherche select {
  width: 100%;
  min-height: 34px;
  margin: 0;
  padding: 2px 0;
  border: 0;
  background-color: transparent;
  color: var(--wp--preset--color--contrast);
  font: inherit;
  font-size: 1.0625rem;
  -webkit-appearance: none;
  appearance: none;
}
.lea-an-recherche input:focus,
.lea-an-recherche select:focus {
  outline: none;
}
.lea-an-recherche input::placeholder {
  color: var(--wp--preset--color--muted);
  opacity: 1;
}
.lea-an-recherche input::-webkit-search-decoration {
  -webkit-appearance: none;
}
.lea-an-recherche select {
  padding-right: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 16px;
  cursor: pointer;
  text-overflow: ellipsis;
}
.lea-an-recherche__bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 60px;
  padding: 0 30px;
  border: 0;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  font-family: var(--wp--preset--font-family--corps);
  font-size: 1.0625rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.lea-an-recherche__bouton:hover,
.lea-an-recherche__bouton:focus-visible {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}
.lea-an-recherche__bouton:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 3px;
}

/* Les secteurs en pastilles photo. Survol jaune, texte noir (10,9:1). */
.lea-v2 .lea-an-secteurs {
  margin-top: var(--wp--preset--spacing--60);
}
.lea-an-secteurs ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.lea-v2 a.lea-an-pastille {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 5px 8px 5px 5px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}
.lea-an-pastille__photo,
.lea-an-pastille__icone {
  flex: none;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  object-fit: cover;
}
.lea-an-pastille__icone {
  background: var(--wp--preset--color--secondary);
}
.lea-an-pastille__nombre {
  min-width: 28px;
  padding: 3px 8px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--surface);
  font-size: 0.8125rem;
  text-align: center;
}
.lea-v2 a.lea-an-pastille:hover,
.lea-v2 a.lea-an-pastille:focus-visible {
  background: var(--wp--preset--color--secondary);
}
.lea-v2 a.lea-an-pastille:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 2px;
}
.lea-v2 a.lea-an-pastille.est-actif {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-an-pastille.est-actif .lea-an-pastille__nombre {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}

/* --- Coup de projecteur ---------------------------------------------- */

/* Une carte jaune, texte noir (10,9:1). La photo est cadrée par deux L de
   la charte, comme dans un viseur. */
.lea-v2 .lea-an-projecteur {
  padding-bottom: 0;
}
.lea-an-projecteur__carte {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
  padding: clamp(28px, 1rem + 3vw, 64px);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--photo);
}
.lea-an-projecteur__photo {
  position: relative;
  margin: 12px;
}
.lea-an-projecteur__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-an-projecteur__photo::before,
.lea-an-projecteur__photo::after {
  content: "";
  position: absolute;
  width: 44px;
  height: 64px;
  background: var(--wp--preset--color--contrast);
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-an-projecteur__photo::before {
  top: -26px;
  left: -26px;
  transform: scaleY(-1);
}
.lea-an-projecteur__photo::after {
  right: -26px;
  bottom: -26px;
  transform: scaleX(-1);
}
.lea-an-projecteur__texte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-an-projecteur__texte > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-an-projecteur__nom {
  font-size: clamp(2rem, 1.2rem + 2.6vw, 3.5rem);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  overflow-wrap: break-word;
}
.lea-v2 .lea-an-projecteur__nom a {
  color: inherit;
  text-decoration: none;
}
.lea-v2 .lea-an-projecteur__nom a:hover,
.lea-v2 .lea-an-projecteur__nom a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
.lea-an-projecteur__reperes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.lea-an-projecteur__extrait {
  max-width: 48ch;
  font-size: 1.125rem;
  line-height: 1.55;
}

/* --- Repères communs : secteur en pastille, commune avec un picto ----- */

.lea-an-secteur .wp-block-post-terms__separator {
  display: none;
}
.lea-v2 .lea-an-secteur a,
.lea-v2 a.lea-an-secteur {
  display: inline-block;
  padding: 4px 12px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-decoration: none;
  text-transform: uppercase;
}
/* Sur la carte jaune, la pastille du secteur passe au noir. */
.lea-v2 .lea-an-projecteur a.lea-an-secteur {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-an .lea-commune {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.875rem;
}
.lea-an .lea-commune::before {
  content: "";
  flex: none;
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: var(--lea-repere) no-repeat center / contain;
  mask: var(--lea-repere) no-repeat center / contain;
}
.lea-an-projecteur .lea-commune {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
}

/* --- Résultats ------------------------------------------------------- */

.lea-an-resultats__entete {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-an-resultats__titre {
  margin: 0;
}
.lea-v2 .lea-an-filtres {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.lea-v2 a.lea-an-filtre {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 4px 8px 4px 18px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-decoration: none;
}
.lea-an-filtre__retirer {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  font-size: 1.125rem;
  line-height: 1;
}
.lea-v2 a.lea-an-filtre:hover .lea-an-filtre__retirer,
.lea-v2 a.lea-an-filtre:focus-visible .lea-an-filtre__retirer {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
}
.lea-v2 a.lea-an-filtres__effacer {
  margin-left: 8px;
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}

/* La grille est écrite ici plutôt que confiée au bloc, pour tenir deux
   colonnes sur tablette. */
.lea-an-grille .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lea-an-grille .wp-block-post-template > li {
  margin: 0;
}
.lea-v2 .lea-an-carte {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-v2 .lea-an-carte .lea-an-carte__photo {
  margin: 10px 10px 0;
}
.lea-an-carte__photo a {
  display: block;
  overflow: hidden;
  border-radius: 20px;
}
.lea-an-carte__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--wp--preset--color--base);
  transition: scale 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@media (prefers-reduced-motion: no-preference) {
  .lea-an-carte:hover .lea-an-carte__photo img,
  .lea-an-carte:focus-within .lea-an-carte__photo img {
    scale: 1.04;
  }
}
.lea-v2 .lea-an-carte__corps {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 20px 24px 24px;
}
.lea-an-carte__corps > * {
  margin: 0;
}
.lea-v2 .lea-an-carte__reperes {
  gap: 8px 12px;
}
/* Gris foncé sur gris clair : 4,8:1. */
.lea-an-carte .lea-commune {
  color: var(--wp--preset--color--muted);
}
.lea-v2 .lea-an-carte__nom {
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.lea-v2 .lea-an-carte__nom a {
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
}
.lea-v2 .lea-an-carte__nom a:hover,
.lea-v2 .lea-an-carte__nom a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.lea-an-carte__extrait p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font-size: 1rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.lea-v2 .lea-an-carte__lien {
  align-self: flex-start;
  margin-top: auto;
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.lea-v2 .lea-an-pagination {
  gap: 8px;
  margin-top: var(--wp--preset--spacing--70);
}
.lea-an-pagination a,
.lea-an-pagination .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 16px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--surface);
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-decoration: none;
}
.lea-an-pagination .page-numbers.current {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-an-pagination a:hover,
.lea-an-pagination a:focus-visible {
  background: var(--wp--preset--color--secondary);
}

.lea-v2 .lea-an-vide {
  padding: clamp(24px, 1rem + 3vw, 56px);
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-an-vide > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-an-vide > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-an-vide__titre {
  font-family: var(--wp--preset--font-family--titre);
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}

/* --- Près de chez vous ----------------------------------------------- */

.lea-an-communes__entete {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 24px;
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-an-communes__entete > * {
  margin: 0;
}
.lea-an-communes__liste {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.lea-v2 a.lea-an-commune {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 6px 8px 6px 16px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.lea-v2 a.lea-an-commune::before {
  content: "";
  flex: none;
  width: 0.95em;
  height: 0.95em;
  background: var(--wp--preset--color--primary-dark);
  -webkit-mask: var(--lea-repere) no-repeat center / contain;
  mask: var(--lea-repere) no-repeat center / contain;
}
.lea-v2 a.lea-an-commune--moyenne {
  min-height: 56px;
  font-size: 1.25rem;
}
.lea-v2 a.lea-an-commune--grande {
  min-height: 68px;
  padding-left: 22px;
  font-size: 1.75rem;
}
.lea-an-commune__nombre {
  display: inline-grid;
  place-items: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
  font-size: 0.875rem;
}
.lea-v2 a.lea-an-commune:hover,
.lea-v2 a.lea-an-commune:focus-visible {
  background: var(--wp--preset--color--secondary);
}
.lea-v2 a.lea-an-commune:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 2px;
}
.lea-v2 a.lea-an-commune.est-actif {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-v2 a.lea-an-commune.est-actif::before {
  background: var(--wp--preset--color--base);
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-an-grille .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .lea-an-recherche {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
    border-radius: var(--wp--custom--rayon--bloc);
  }
  .lea-v2 .lea-an-recherche__champ {
    background: var(--wp--preset--color--surface);
    border-radius: 20px;
    padding: 10px 18px;
  }
  .lea-an-recherche__champ--texte,
  .lea-an-recherche__bouton {
    grid-column: 1 / -1;
  }
  .lea-an-recherche__champ + .lea-an-recherche__champ::before {
    display: none;
  }
}
@media (max-width: 781px) {
  .lea-an-ouverture__grille,
  .lea-an-projecteur__carte {
    grid-template-columns: 1fr;
  }
  .lea-v2 .lea-an-ouverture {
    padding-bottom: calc(var(--wp--preset--spacing--70) + 48px);
  }
  .lea-v2 .lea-an-explorer > .lea-an-recherche-cadre {
    margin-block-start: -40px;
  }
  /* La mosaïque devient une rangée de visages qui se chevauchent. */
  .lea-an-mosaique {
    display: flex;
    gap: 0;
    order: 2;
  }
  .lea-an-mosaique__case {
    width: 64px;
    translate: none;
  }
  .lea-an-mosaique__case:nth-child(3n + 2) {
    translate: none;
  }
  .lea-an-mosaique__case + .lea-an-mosaique__case {
    margin-left: -14px;
  }
  .lea-an-mosaique__case:nth-child(n + 6) {
    display: none;
  }
  .lea-an-mosaique .lea-an-mosaique__photo {
    border-radius: 50%;
    box-shadow: 0 0 0 3px var(--wp--preset--color--primary);
  }
  /* Les secteurs défilent de côté plutôt que d'empiler six lignes. */
  .lea-an-secteurs ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }
  .lea-an-secteurs li {
    scroll-snap-align: start;
  }
  .lea-an-projecteur__photo {
    max-width: 420px;
  }
  .lea-v2 a.lea-an-commune--grande {
    font-size: 1.375rem;
    min-height: 60px;
  }
}
@media (max-width: 600px) {
  .lea-an-grille .wp-block-post-template,
  .lea-an-recherche {
    grid-template-columns: 1fr;
  }
}


/* ==================================================================
   Journal v2 (2026-09-11), direction C. Presse d'entreprise : les bons
   conseils, les bonnes infos. Liste des articles et rubriques :
   ouverture orange avec un grand chiffre, rubriques en pastilles
   (celles de l'annuaire), grille de magazine dont la première carte
   fait la une. Article : barre de lecture, en-tête gris, photo qui mord
   sur l'en-tête, colonne de lecture soignée, voisins, appel.
   Classes lea-jn-* ; blocs dans mu-plugins/lea-journal.php.
   ================================================================== */

/* --- Cadre : sections bord à bord ------------------------------------ */

.blog .wp-site-blocks > *,
.category .wp-site-blocks > *,
.single-post .wp-site-blocks > * {
  margin-block-start: 0;
}
.lea-v2.lea-jn > * {
  margin-block: 0;
}
.lea-jn {
  --lea-L: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 37.45'%3E%3Cpath d='M10.66 37.35C4.84 37.32.14 32.61.12 26.79L0 .31C.11.1.21 0 .32 0h6.9c.19.1.28.21.28.31V23.1c0 3.88 3.15 7.03 7.03 7.03h11.13c.21.12.32.23.32.31v6.69c-.11.21-.21.32-.32.32z'/%3E%3C/svg%3E");
}

/* --- Ouverture de la liste et des rubriques --------------------------- */

.lea-jn-ouverture {
  color: var(--wp--preset--color--contrast);
  overflow-x: clip;
}
.lea-jn-ouverture__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  gap: var(--wp--preset--spacing--70);
}
.lea-jn-ouverture__grille > *,
.lea-jn-ouverture__texte > * {
  margin: 0;
}
.lea-v2 .lea-jn-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
/* « ACTUALITÉS » tient à 92 px dans la colonne du bureau et à 44 px dans
   les 310 px d'un téléphone (13 capitales à 36 px, mesuré sur Adhésion). */
.lea-v2 .lea-jn-titre {
  font-size: clamp(2.75rem, 1rem + 5.4vw, 5.75rem);
  font-weight: 800;
  line-height: 0.92;
  text-transform: uppercase;
  margin-bottom: var(--wp--preset--spacing--50);
  hyphens: manual;
  overflow-wrap: break-word;
}
/* Les noms de rubrique sont plus longs (« ENTREPRENEURS ») : l'échelle de
   l'annuaire. */
.lea-v2 .lea-jn-titre--rubrique {
  font-size: clamp(1.875rem, 0.8rem + 4.4vw, 4.25rem);
  line-height: 0.95;
}
.lea-v2 .lea-jn-accroche {
  margin-bottom: var(--wp--preset--spacing--40);
  font-family: var(--wp--preset--font-family--titre);
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem);
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.lea-v2 .lea-jn-intro,
.lea-v2 .lea-jn-intro p {
  max-width: 46ch;
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.55;
}
/* Le grand chiffre, à droite : blanc en très grand (3,0:1, grand texte),
   la phrase en noir (5,8:1). */
.lea-v2 .lea-jn-ouverture .lea-jn-chiffre {
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
}
.lea-jn-ouverture .lea-an-chiffre__nombre {
  font-size: clamp(5rem, 2rem + 9vw, 11rem);
  line-height: 0.82;
}
.lea-jn-ouverture .lea-an-chiffre__texte {
  max-width: 16ch;
}

/* --- Bande des rubriques --------------------------------------------- */

.lea-v2 .lea-jn-bande {
  padding-block: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-an-secteurs.lea-jn-rubriques {
  margin-top: 0;
}

/* --- Grille de magazine ---------------------------------------------- */

/* Neuf par page : la une sur deux colonnes et deux rangs, deux cartes à
   côté, puis six. */
.lea-jn-grille .wp-block-post-template,
.lea-jn-voisins .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lea-jn-grille .wp-block-post-template > li,
.lea-jn-voisins .wp-block-post-template > li {
  margin: 0;
}
.lea-jn-grille .wp-block-post-template > li:first-child {
  grid-column: 1 / span 2;
  grid-row: 1 / span 2;
}

.lea-v2 .lea-jn-carte {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
}
/* Sur fond gris (« Sur le même sujet »), les cartes passent au blanc. */
.lea-jn-lies .lea-jn-carte {
  background: var(--wp--preset--color--base);
}
.lea-v2 .lea-jn-carte .lea-jn-carte__photo {
  margin: 10px 10px 0;
}
.lea-jn-carte__photo a {
  display: block;
  overflow: hidden;
  border-radius: 20px;
}
.lea-jn-carte__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: scale 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@media (prefers-reduced-motion: no-preference) {
  .lea-jn-carte:hover .lea-jn-carte__photo img,
  .lea-jn-carte:focus-within .lea-jn-carte__photo img {
    scale: 1.04;
  }
}
.lea-v2 .lea-jn-carte__corps {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 20px 24px 24px;
}
.lea-jn-carte__corps > * {
  margin: 0;
}
.lea-v2 .lea-jn-carte__reperes {
  gap: 6px 12px;
}
/* La rubrique sur sa propre ligne : la date et le temps de lecture restent
   ensemble dessous, au lieu que « · 7 min » parte seul à la ligne. */
.lea-jn-carte__reperes .lea-jn-rubrique {
  flex-basis: 100%;
}
.lea-jn-grille li:first-child .lea-jn-carte__reperes .lea-jn-rubrique {
  flex-basis: auto;
}
/* Gris foncé sur gris clair : 4,8:1. */
.lea-jn-carte .lea-jn-date,
.lea-jn-carte .lea-temps-lecture {
  color: var(--wp--preset--color--muted);
  font-size: 0.875rem;
}
.lea-jn-carte .lea-temps-lecture::before {
  content: "· ";
}
.lea-v2 .lea-jn-carte__titre {
  font-size: 1.3125rem;
  font-weight: 800;
  line-height: 1.15;
  text-transform: none;
}
.lea-v2 .lea-jn-carte__titre a {
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
}
.lea-v2 .lea-jn-carte__titre a:hover,
.lea-v2 .lea-jn-carte__titre a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.lea-jn-carte__extrait p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font-size: 1rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.lea-v2 .lea-jn-carte__lien {
  align-self: flex-start;
  margin-top: auto;
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* La une : plus grande photo, titre de magazine. */
.lea-jn-grille li:first-child .lea-jn-carte__photo img {
  aspect-ratio: 16 / 10;
}
.lea-v2 .lea-jn-grille li:first-child .lea-jn-carte__corps {
  gap: 14px;
  padding: 28px 32px 32px;
}
.lea-v2 .lea-jn-grille li:first-child .lea-jn-carte__titre {
  font-size: clamp(1.75rem, 1.1rem + 1.8vw, 2.75rem);
  line-height: 1.05;
}
.lea-jn-grille li:first-child .lea-jn-carte__extrait p {
  font-size: 1.125rem;
  -webkit-line-clamp: 4;
}
body:not(.paged) .lea-jn-grille li:first-child .lea-jn-carte__reperes::before {
  content: "À la une";
  padding: 4px 12px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* La rubrique en pastille jaune, texte noir (10,9:1). */
.lea-v2 .lea-jn-rubrique {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.lea-jn-rubrique .wp-block-post-terms__separator {
  display: none;
}
.lea-v2 .lea-jn-rubrique a {
  display: inline-block;
  padding: 4px 12px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-decoration: none;
  text-transform: uppercase;
}

/* --- Article ----------------------------------------------------------- */

/* Barre de lecture : elle se remplit avec le défilement de la page. Sans
   prise en charge, ou si le visiteur demande moins de mouvement, elle ne
   s'affiche pas : c'est un ornement, pas une information. */
.lea-jn-progression {
  display: none;
}
@keyframes lea-jn-lit {
  from { scale: 0 1; }
  to   { scale: 1 1; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .lea-jn-progression {
      display: block;
      position: fixed;
      z-index: 100;
      top: 0;
      left: 0;
      right: 0;
      height: 5px;
      background: var(--wp--preset--color--primary);
      transform-origin: 0 50%;
      animation: lea-jn-lit linear both;
      animation-timeline: scroll(root);
    }
  }
}

.lea-v2 .lea-jn-tete {
  padding-block: var(--wp--preset--spacing--70) calc(var(--wp--preset--spacing--80) + 88px);
}
.lea-v2 .lea-jn-tete .lea-fil-ariane {
  color: var(--wp--preset--color--muted);
}
.lea-v2 .lea-jn-tete .lea-fil-ariane a {
  color: var(--wp--preset--color--contrast);
}
/* Les titres d'articles sont de longues phrases : bas de casse, sans les
   capitales des titres de page. */
.lea-v2 .lea-jn-article__titre {
  hyphens: manual;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.75rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-transform: none;
  overflow-wrap: break-word;
}
.lea-v2 .lea-jn-article__meta {
  gap: 6px 16px;
}
.lea-jn-tete .lea-jn-date,
.lea-jn-tete .lea-temps-lecture {
  color: var(--wp--preset--color--muted);
  font-size: 0.9375rem;
}

/* flow-root et trois classes : voir « Trouver un pro » dans l'annuaire. */
.lea-v2 .lea-jn-corps {
  display: flow-root;
  padding-top: 0;
}
.lea-v2 .lea-jn-corps > .lea-jn-article__photo {
  position: relative;
  z-index: 1;
  margin-block-start: -88px;
}
.lea-jn-article__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--photo);
}

/* La colonne de lecture. */
.lea-v2 .lea-jn-texte {
  margin-top: var(--wp--preset--spacing--70);
  font-size: 1.1875rem;
  line-height: 1.7;
}
.lea-v2 .lea-jn-texte > * {
  margin-block: 0;
}
.lea-v2 .lea-jn-texte > * + * {
  margin-block-start: 1.15em;
}
/* Le premier paragraphe fait chapô, avec une lettrine orange (grand texte,
   3,0:1 sur blanc). */
.lea-v2 .lea-jn-texte > p:first-child {
  font-size: 1.3125rem;
  line-height: 1.55;
}
.lea-v2 .lea-jn-texte > p:first-child::first-letter {
  float: left;
  margin: 0.06em 0.12em 0 0;
  color: var(--wp--preset--color--primary);
  font-family: var(--wp--preset--font-family--titre);
  font-size: 3.6em;
  font-weight: 800;
  line-height: 0.8;
}
.lea-v2 .lea-jn-texte h2 {
  margin-block-start: 1.9em;
  font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem);
  font-weight: 800;
  line-height: 1.15;
  text-transform: none;
}
.lea-v2 .lea-jn-texte h2::before {
  content: "";
  display: block;
  width: 48px;
  height: 6px;
  margin-bottom: 14px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--primary);
}
.lea-v2 .lea-jn-texte h3 {
  margin-block-start: 1.6em;
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: none;
}
.lea-v2 .lea-jn-texte h2 + *,
.lea-v2 .lea-jn-texte h3 + * {
  margin-block-start: 0.6em;
}
.lea-jn-texte ul,
.lea-jn-texte ol {
  padding-left: 1.3em;
}
.lea-jn-texte li + li {
  margin-top: 0.4em;
}
.lea-jn-texte li::marker {
  color: var(--wp--preset--color--primary-dark);
  font-weight: 700;
}
.lea-v2 .lea-jn-texte a:not(.wp-element-button) {
  color: var(--wp--preset--color--primary-dark);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
.lea-jn-texte .wp-block-image img {
  border-radius: 20px;
}
.lea-jn-texte figcaption {
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
  text-align: center;
}
/* Les citations entre deux L de la charte, comme sur Contact. */
.lea-v2 .lea-jn-texte blockquote {
  position: relative;
  margin-inline: 0;
  padding: 0.8em 1.4em;
  border: 0;
  font-family: var(--wp--preset--font-family--titre);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
}
.lea-jn-texte blockquote::before,
.lea-jn-texte blockquote::after {
  content: "";
  position: absolute;
  width: 0.62em;
  height: 0.9em;
  background: var(--wp--preset--color--primary);
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-jn-texte blockquote::before {
  top: 0;
  left: 0;
  transform: scaleY(-1);
}
.lea-jn-texte blockquote::after {
  right: 0;
  bottom: 0;
  transform: scaleX(-1);
}

/* Le partage, en pastilles. Le point médian du bloc est masqué : les
   pastilles se séparent d'elles-mêmes. */
.lea-v2 .lea-jn-partage {
  gap: 12px;
  margin-top: var(--wp--preset--spacing--70);
  padding-top: var(--wp--preset--spacing--50);
  border-top: 1.5px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
}
.lea-v2 .lea-jn-partage p {
  margin: 0;
  font-weight: 700;
}
.lea-jn-partage .lea-partage {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  color: transparent;
}
.lea-v2 .lea-jn-partage .lea-partage a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--surface);
  color: var(--wp--preset--color--contrast);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
}
.lea-v2 .lea-jn-partage .lea-partage a:hover,
.lea-v2 .lea-jn-partage .lea-partage a:focus-visible {
  background: var(--wp--preset--color--secondary);
}

@media (min-width: 1025px) {
  .lea-v2 .lea-jn-grille li:first-child .lea-jn-carte__photo {
    flex: 1 1 auto;
    min-height: 320px;
  }
  .lea-jn-grille li:first-child .lea-jn-carte__photo a {
    height: 100%;
  }
  .lea-jn-grille li:first-child .lea-jn-carte__photo img {
    height: 100%;
    aspect-ratio: auto;
  }
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-jn-grille .wp-block-post-template,
  .lea-jn-voisins .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-jn-grille .wp-block-post-template > li:first-child {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}
@media (max-width: 781px) {
  .lea-jn-ouverture__grille {
    grid-template-columns: 1fr;
  }
  .lea-v2 .lea-jn-ouverture .lea-jn-chiffre {
    flex-direction: row;
    align-items: center;
  }
  .lea-jn-ouverture .lea-an-chiffre__nombre {
    font-size: clamp(3.5rem, 2rem + 5vw, 6.5rem);
  }
  .lea-v2 .lea-jn-tete {
    padding-bottom: calc(var(--wp--preset--spacing--70) + 48px);
  }
  .lea-v2 .lea-jn-corps > .lea-jn-article__photo {
    margin-block-start: -48px;
  }
  .lea-v2 .lea-jn-texte {
    font-size: 1.125rem;
  }
}
@media (max-width: 600px) {
  .lea-jn-grille .wp-block-post-template,
  .lea-jn-voisins .wp-block-post-template {
    grid-template-columns: 1fr;
  }
  .lea-v2 .lea-jn-grille li:first-child .lea-jn-carte__corps {
    padding: 20px 24px 24px;
  }
}


/* ==================================================================
   Fiche adhérent v2 (2026-09-11), direction C, dans la trame de
   l'annuaire v2. Portrait sur l'aplat orange (nom, secteur, commune,
   boutons d'action, photo cadrée par deux L), texte avec la typographie
   des articles (lea-jn-texte), informations pratiques sur une carte jaune
   collante, trois fiches du même secteur, appel. Classes lea-fi-*.
   ================================================================== */

.single-adherent .wp-site-blocks > * {
  margin-block-start: 0;
}
.lea-v2.lea-fi > * {
  margin-block: 0;
}

/* --- Portrait -------------------------------------------------------- */

.lea-fi-portrait {
  color: var(--wp--preset--color--contrast);
  overflow-x: clip;
}
.lea-fi-portrait__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-fi-portrait__grille > *,
.lea-fi-portrait__texte > * {
  margin: 0;
}
.lea-v2 .lea-fi-portrait .lea-fil-ariane {
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-fi-portrait .lea-fil-ariane a {
  color: var(--wp--preset--color--contrast);
}
.lea-v2 .lea-fi-reperes {
  gap: 8px 14px;
  margin-bottom: var(--wp--preset--spacing--40);
}
/* La commune porte la classe has-muted-color, écrite avec !important par
   WordPress : gris sur orange ne se lirait pas (2,1:1). Noir, 5,8:1. */
.lea-fi-portrait .lea-commune.has-muted-color {
  color: var(--wp--preset--color--contrast) !important;
  font-weight: 700;
}
.lea-v2 .lea-fi-nom {
  font-size: clamp(2rem, 0.9rem + 4.4vw, 4.5rem);
  font-weight: 800;
  line-height: 0.95;
  text-transform: uppercase;
  hyphens: manual;
  overflow-wrap: break-word;
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-fi-actions {
  gap: 12px;
}
/* La photo cadrée par deux L, comme le coup de projecteur. */
.lea-v2 .lea-fi-photo {
  position: relative;
  margin: 28px;
}
.lea-fi-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--photo);
}
.lea-fi-photo::before,
.lea-fi-photo::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 52px;
  height: 75px;
  background: var(--wp--preset--color--contrast);
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-fi-photo::before {
  top: -30px;
  left: -30px;
  transform: scaleY(-1);
}
.lea-fi-photo::after {
  right: -30px;
  bottom: -30px;
  transform: scaleX(-1);
}

/* --- Le texte et les informations pratiques ---------------------------- */

.lea-fi-corps__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  align-items: start;
  gap: var(--wp--preset--spacing--70);
}
.lea-fi-corps__grille > *,
.lea-fi-lecture > * {
  margin: 0;
}
.lea-v2 .lea-fi-intertitre {
  margin-bottom: var(--wp--preset--spacing--50);
  font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.lea-v2.lea-fi .lea-jn-texte {
  margin-top: 0;
}
.lea-v2 .lea-fi-encart {
  position: sticky;
  top: var(--wp--preset--spacing--50);
}
/* Carte jaune, texte noir (10,9:1). Le bloc pose son propre padding en
   ligne : le !important l'élargit. */
.lea-v2 .lea-fi-encart .lea-encart-pratique {
  margin: 0;
  padding: clamp(24px, 1rem + 2vw, 40px) !important;
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  border: 0;
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-v2 .lea-fi-encart .lea-encart-pratique h2 {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.lea-v2 .lea-fi-encart .lea-infos {
  display: grid;
  gap: 18px;
  margin: 0 0 var(--wp--preset--spacing--50);
  padding: 0;
  list-style: none;
}
/* Un picto par ligne, dans un disque blanc. */
.lea-fi .lea-info {
  position: relative;
  min-height: 40px;
  padding-left: 54px;
  overflow-wrap: anywhere;
}
.lea-fi .lea-info::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--wp--preset--color--base) var(--lea-picto) no-repeat center / 22px;
}
.lea-v2.lea-fi .lea-libelle {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lea-v2 .lea-fi-encart .lea-encart-pratique a:not(.wp-element-button) {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}
.lea-v2 .lea-fi-encart .lea-encart-pratique p {
  margin: 0;
}
.lea-fi .lea-info--adresse { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-7.1-7-12a7 7 0 0 1 14 0c0 4.9-7 12-7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E"); }
.lea-fi .lea-info--telephone { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 3.5h3l1.5 4-2 1.3a11 11 0 0 0 6.1 6.1l1.3-2 4 1.5v3a2 2 0 0 1-2.2 2A17 17 0 0 1 4.5 5.7a2 2 0 0 1 2.1-2.2z'/%3E%3C/svg%3E"); }
.lea-fi .lea-info--email { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E"); }
.lea-fi .lea-info--site { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.7 3.8 5.7 3.8 9s-1.3 6.3-3.8 9c-2.5-2.7-3.8-5.7-3.8-9S9.5 5.7 12 3z'/%3E%3C/svg%3E"); }
.lea-fi .lea-info--reseaux { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='6' r='2.5'/%3E%3Ccircle cx='18' cy='18' r='2.5'/%3E%3Cpath d='m8.2 10.8 7.6-3.6M8.2 13.2l7.6 3.6'/%3E%3C/svg%3E"); }
.lea-fi .lea-info--horaires { --lea-picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }

/* --- Mobile ------------------------------------------------------------ */

@media (max-width: 781px) {
  .lea-fi-portrait__grille,
  .lea-fi-corps__grille {
    grid-template-columns: 1fr;
  }
  .lea-v2 .lea-fi-photo {
    max-width: 420px;
  }
  /* Wireframe 1c : en mobile, l'encart passe avant le texte. */
  .lea-v2 .lea-fi-encart {
    position: static;
    order: -1;
  }
}


/* ==================================================================
   Tiers-lieux v2 (2026-09-11), direction C. Deux parcours ludiques et
   une page d'ensemble, portes d'entrée vers les lieux et vers Alicia et
   Charlotte. La Ruche Éco épouse son bâtiment : un rail d'ascenseur se
   remplit au défilement, du palier 0 au palier 1, et le rez-de-chaussée
   ouvre trois portes cintrées. La Maison du Manège fait tourner un manège
   de mots au défilement et pose ses vitrines comme des polaroïds. Le filet
   jaune en haut de page signe les tiers-lieux (charte). Classes lea-tl-*.
   ================================================================== */

.lea-tl {
  --lea-L: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 37.45'%3E%3Cpath d='M10.66 37.35C4.84 37.32.14 32.61.12 26.79L0 .31C.11.1.21 0 .32 0h6.9c.19.1.28.21.28.31V23.1c0 3.88 3.15 7.03 7.03 7.03h11.13c.21.12.32.23.32.31v6.69c-.11.21-.21.32-.32.32z'/%3E%3C/svg%3E");
}
.lea-v2 .lea-tl > * {
  margin-block: 0;
}
/* Les grilles sont des groupes en disposition « flux » : WordPress y donne
   une marge haute à chaque enfant sauf le premier, ce qui abaissait la
   deuxième carte de contact, les portes 2 et 3 et la seconde carte de lieu. */
.lea-v2 :is(.lea-tl-portes, .lea-tl-duo, .lea-tl-cartes, .lea-tl-chiffres,
  .lea-tl-souvenir__photos, .lea-tl-principe__grille, .lea-tl-vitrines__grille,
  .lea-tl-mosaique, .lea-tl-lieux__grille, .lea-tl-contacts__grille,
  .lea-tl-venir__grille) > * {
  margin-block: 0;
}
/* Manège : la photo de l'atelier ne colle pas aux deux cartes. */
.lea-v2 .lea-tl-pourquoi .lea-tl-duo {
  margin-top: var(--wp--preset--spacing--70);
}
/* Cartes de contact en mobile : les initiales passent au-dessus et les
   boutons prennent toute la largeur, sinon le numéro et l'adresse se
   coupaient en deux lignes. Spécificité relevée : les règles de base de la
   carte viennent plus bas dans le fichier. */
@media (max-width: 781px) {
  .lea-v2 .lea-tl .lea-tl-contact {
    grid-template-columns: minmax(0, 1fr);
  }
  .lea-v2 .lea-tl-contact > * {
    grid-column: 1;
  }
  .lea-v2 .lea-tl-contact .lea-tl-initiales {
    grid-row: auto;
    width: 56px;
    height: 56px;
    margin-bottom: 16px;
    font-size: 1.25rem;
  }
  .lea-v2 .lea-tl-contact .wp-block-button__link {
    white-space: nowrap;
  }
}

/* --- Ouverture ------------------------------------------------------- */

.lea-tl-ouverture {
  color: var(--wp--preset--color--contrast);
  border-top: 10px solid var(--wp--preset--color--secondary);
  overflow-x: clip;
}
.lea-tl-ouverture__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-tl-ouverture__grille > *,
.lea-tl-ouverture__texte > * {
  margin: 0;
}
.lea-v2 .lea-tl-ouverture__texte .lea-v2-surtitre {
  margin-bottom: var(--wp--preset--spacing--50);
}
/* Les titres des lieux sont des phrases : bas de casse, blanc sur orange
   en grand texte (3,0:1). */
.lea-v2 .lea-tl-titre {
  margin-bottom: var(--wp--preset--spacing--50);
  font-size: clamp(2.25rem, 1.2rem + 3.2vw, 4.25rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.01em;
  text-transform: none;
  hyphens: manual;
  overflow-wrap: break-word;
}
.lea-v2 .lea-tl-sous-titre {
  max-width: 44ch;
  margin-bottom: var(--wp--preset--spacing--60);
  font-size: 1.1875rem;
  line-height: 1.55;
}
.lea-v2 .lea-tl-actions {
  gap: 12px;
}
/* La photo cadrée par deux L de la charte. */
.lea-v2 .lea-tl-cadre {
  position: relative;
  margin: 28px;
}
.lea-tl-cadre img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--photo);
}
.lea-tl-cadre::before,
.lea-tl-cadre::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 52px;
  height: 75px;
  background: var(--wp--preset--color--contrast);
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-tl-cadre::before {
  top: -30px;
  left: -30px;
  transform: scaleY(-1);
}
.lea-tl-cadre::after {
  right: -30px;
  bottom: -30px;
  transform: scaleX(-1);
}

/* Page d'ensemble : deux photos posées l'une sur l'autre, cadre blanc. */
.lea-tl-collage {
  position: relative;
  min-height: 460px;
}
.lea-v2 .lea-tl-collage figure {
  position: absolute;
  margin: 0;
  padding: 10px;
  background: var(--wp--preset--color--base);
  border-radius: 28px;
}
.lea-tl-collage figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 20px;
}
.lea-v2 .lea-tl-collage figure:first-child {
  top: 0;
  left: 0;
  width: 72%;
  rotate: -3deg;
}
.lea-v2 .lea-tl-collage figure:last-child {
  right: 0;
  bottom: 0;
  width: 62%;
  rotate: 4deg;
}

/* --- Introduction et phrases fortes ----------------------------------- */

.lea-v2 .lea-tl-intro__texte {
  max-width: 40ch;
  font-size: clamp(1.25rem, 1rem + 0.9vw, 1.625rem);
  line-height: 1.5;
}
.lea-v2 .lea-tl-chute {
  max-width: 22ch;
  font-family: var(--wp--preset--font-family--titre);
  font-size: clamp(1.75rem, 1.2rem + 2vw, 3rem);
  font-weight: 800;
  line-height: 1.05;
}

/* --- La Ruche : l'immeuble et son rail d'ascenseur --------------------- */

/* Le rail se remplit d'orange à mesure qu'on descend dans la page : on
   monte dans le bâtiment. Sans prise en charge ou si le visiteur demande
   moins de mouvement, il reste plein. */
.lea-tl-immeuble {
  position: relative;
  padding-left: 110px;
  view-timeline-name: --lea-immeuble;
}
.lea-tl-immeuble > * {
  margin-block: 0 var(--wp--preset--spacing--50);
}
.lea-tl-immeuble::before,
.lea-tl-immeuble::after {
  content: "";
  position: absolute;
  top: 36px;
  bottom: 36px;
  left: 33px;
  width: 6px;
  border-radius: var(--wp--custom--rayon--pastille);
}
.lea-tl-immeuble::before {
  background: color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}
.lea-tl-immeuble::after {
  background: var(--wp--preset--color--primary);
  transform-origin: 50% 0;
}
@keyframes lea-tl-monte {
  from { scale: 1 0; }
  to   { scale: 1 1; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .lea-tl-immeuble::after {
      animation: lea-tl-monte linear both;
      animation-timeline: --lea-immeuble;
      animation-range: entry 25% exit 75%;
    }
  }
}
/* Les paliers : 0 et 1, comme les boutons d'un ascenseur. Noir sur orange,
   5,8:1. */
.lea-v2 .lea-tl-palier {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 72px;
  margin-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
  font-family: var(--wp--preset--font-family--titre);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lea-v2 .lea-tl-immeuble > .lea-tl-palier:first-child {
  margin-top: 0;
}
.lea-tl-palier::before {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: -110px;
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
  font-size: 1.875rem;
  letter-spacing: 0;
  translate: 0 -50%;
}
.lea-tl-palier--rdc::before { content: "0"; }
.lea-tl-palier--etage::before { content: "1"; }

/* Trois portes cintrées. */
/* Deux portes depuis le 2026-09-21 : l'office de tourisme, que LEA ne gère
   pas, n'est plus présenté. */
.lea-tl-portes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-tl-porte {
  padding: 56px 28px 32px;
  background: var(--wp--preset--color--surface);
  border-radius: 200px 200px var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc);
  text-align: center;
}
.lea-tl-porte > * {
  margin: 0 0 12px;
}
.lea-tl-porte > :last-child {
  margin-bottom: 0;
}
.lea-tl-porte .lea-ap-picto {
  margin-inline: auto;
}
.lea-v2 .lea-tl-porte h3 {
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.1;
}

/* --- Texte et photo côte à côte ---------------------------------------- */

.lea-tl-duo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-v2 .lea-tl-immeuble > .lea-tl-duo,
.lea-v2 .lea-tl-duo + .lea-tl-duo {
  margin-top: var(--wp--preset--spacing--70);
}
.lea-tl-duo > *,
.lea-v2 .lea-tl-duo .wp-block-image {
  margin: 0;
}
.lea-tl-duo__texte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-tl-duo__texte > :last-child {
  margin-bottom: 0;
}
.lea-tl-duo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--photo);
}
.lea-v2 .lea-tl-duo h2,
.lea-v2 .lea-tl-duo h3 {
  font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.25rem);
  font-weight: 800;
  line-height: 1.1;
  text-transform: none;
}

/* Les grands chiffres : orange sur blanc en très grand (3,0:1). */
.lea-v2 .lea-tl-chiffre {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  line-height: 1;
}
.lea-tl-chiffre strong {
  color: var(--wp--preset--color--primary);
  font-size: clamp(3.5rem, 2rem + 5vw, 6rem);
  font-weight: 800;
}
.lea-tl-chiffre span {
  max-width: 16ch;
  font-size: 1.25rem;
  line-height: 1.1;
  text-transform: uppercase;
}
.lea-tl-chiffres {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

/* Les textes à fournir, bien visibles dans le brouillon. */
.lea-v2 .lea-tl-a-fournir {
  padding: 14px 18px;
  border: 2px dashed var(--wp--preset--color--contrast);
  border-radius: 16px;
  background: color-mix(in srgb, var(--wp--preset--color--secondary) 25%, var(--wp--preset--color--base));
  font-size: 0.9375rem;
  font-weight: 700;
}

/* --- Cartes (projet, pourquoi) -------------------------------------- */

.lea-tl-cartes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-tl-carte {
  padding: clamp(24px, 1rem + 2vw, 40px);
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-tl-carte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-tl-carte > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-tl-carte h3 {
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.lea-v2 .lea-tl-cartes + .wp-block-buttons {
  margin-top: var(--wp--preset--spacing--60);
}

/* --- La Ruche : frise souvenir de l'inauguration ----------------------- */

.lea-tl-souvenir__photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.lea-v2 .lea-tl-souvenir__photos .wp-block-image {
  margin: 0;
}
.lea-tl-souvenir__photos img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 24px;
}
.lea-tl-souvenir__photos .wp-block-image:nth-child(even) {
  translate: 0 28px;
}
.lea-v2 .lea-tl-legende {
  margin-top: var(--wp--preset--spacing--70);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
  text-align: center;
}

/* --- La Maison du Manège : le manège de mots -------------------------- */

/* Les mots tournent autour du manège quand on fait défiler la page, et
   restent à l'endroit (chaque mot annule la rotation qui le porte). Ils
   sont décoratifs : la même liste est écrite dans le texte. */
@property --lea-tour {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0deg;
}
.lea-tl-principe__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-tl-principe__grille > *,
.lea-tl-principe__texte > * {
  margin: 0;
}
.lea-v2 .lea-tl-principe__texte > * + * {
  margin-top: var(--wp--preset--spacing--40);
}
.lea-tl-manege {
  --r: 168px;
  position: relative;
  width: 420px;
  max-width: 100%;
  aspect-ratio: 1;
  margin-inline: auto;
}
.lea-tl-manege::before {
  content: "";
  position: absolute;
  inset: calc(50% - var(--r));
  border: 2px dashed color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
  border-radius: 50%;
}
.lea-tl-manege__centre {
  position: absolute;
  inset: 32%;
  display: grid;
  place-items: center;
  color: var(--wp--preset--color--contrast);
}
.lea-tl-manege__centre svg {
  width: 100%;
  height: auto;
}
.lea-tl-manege__mot {
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 6px 14px;
  border: 2px solid var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-size: 0.9375rem;
  font-weight: 700;
  white-space: nowrap;
  transform:
    translate(-50%, -50%)
    rotate(calc(var(--i) * 30deg + var(--lea-tour)))
    translateY(calc(-1 * var(--r)))
    rotate(calc(-1 * (var(--i) * 30deg + var(--lea-tour))));
}
/* Noir sur orange 5,8:1, noir sur jaune 10,9:1. */
.lea-tl-manege__mot:nth-of-type(3n + 1) {
  background: var(--wp--preset--color--primary);
}
.lea-tl-manege__mot:nth-of-type(3n) {
  background: var(--wp--preset--color--secondary);
}
@keyframes lea-tl-tourne {
  from { --lea-tour: -90deg; }
  to   { --lea-tour: 90deg; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .lea-tl-manege {
      animation: lea-tl-tourne linear both;
      animation-timeline: view();
    }
  }
}

/* --- La Maison du Manège : les vitrines en polaroïds ------------------ */

.lea-tl-vitrines__grille {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-tl-vitrine {
  margin: 0;
  padding: 12px 12px 16px;
  background: var(--wp--preset--color--base);
  border-radius: 20px;
  rotate: -2deg;
  transition: rotate 0.3s ease, scale 0.3s ease;
}
.lea-v2 .lea-tl-vitrine:nth-child(even) {
  rotate: 2deg;
  translate: 0 20px;
}
.lea-tl-vitrine img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 12px;
}
.lea-v2 .lea-tl-vitrine figcaption {
  margin: 12px 0 0;
  color: var(--wp--preset--color--contrast);
  font-size: 0.9375rem;
  font-weight: 700;
  text-align: center;
}
@media (prefers-reduced-motion: no-preference) {
  .lea-v2 .lea-tl-vitrine:hover {
    rotate: 0deg;
    scale: 1.03;
  }
}

/* --- La Maison du Manège : mosaïque d'un samedi matin ------------------ */

.lea-tl-mosaique {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.lea-v2 .lea-tl-mosaique .wp-block-image {
  margin: 0;
}
.lea-tl-mosaique img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-tl-mosaique .wp-block-image:nth-child(1) img {
  border-radius: 50%;
}
.lea-tl-mosaique .wp-block-image:nth-child(4) img {
  border-radius: var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) var(--wp--custom--rayon--bloc) 96px;
}

/* --- Page d'ensemble : les deux lieux ----------------------------------- */

.lea-tl-lieux__grille {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-tl-lieu {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-v2 .lea-tl-lieu .wp-block-image {
  margin: 10px 10px 0;
}
.lea-tl-lieu img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 20px;
}
.lea-tl-lieu__corps {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  padding: 28px 32px 32px;
}
.lea-tl-lieu__corps > * {
  margin: 0;
}
.lea-v2 .lea-tl-lieu h3 {
  font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.lea-v2 .lea-tl-lieu .wp-block-buttons {
  margin-top: auto;
}
.lea-v2 .lea-tl-commune {
  align-self: flex-start;
  padding: 4px 12px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* --- Alicia et Charlotte -------------------------------------------- */

.lea-tl-contacts__grille {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  margin-top: var(--wp--preset--spacing--60);
}
.lea-v2 .lea-tl-contact {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  column-gap: 20px;
  align-items: start;
  padding: clamp(24px, 1rem + 2vw, 36px);
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-tl-contact > * {
  grid-column: 2;
  margin: 0 0 8px;
}
.lea-tl-contact .lea-tl-initiales {
  grid-column: 1;
  grid-row: 1 / span 3;
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin: 0;
  border-radius: 50%;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-size: 1.5rem;
  font-weight: 800;
}
.lea-v2 .lea-tl-contact h3 {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
}
.lea-v2 .lea-tl-contact .lea-tl-role {
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
}
.lea-v2 .lea-tl-contact .wp-block-buttons {
  gap: 10px;
  margin-top: 12px;
}

/* --- Pour venir : carte jaune, texte noir (10,9:1) ---------------------- */

.lea-tl-venir__grille {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--70);
}
.lea-tl-venir__grille > * {
  margin: 0;
}
.lea-v2 .lea-tl-venir__carte {
  padding: clamp(28px, 1rem + 2vw, 48px);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-tl-venir__carte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-tl-venir__carte > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-tl-venir__carte h2 {
  font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.lea-v2 .lea-tl-venir__carte ul {
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
}
.lea-tl-venir__carte li {
  position: relative;
  padding-left: 22px;
}
.lea-tl-venir__carte li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--wp--preset--color--contrast);
}
.lea-v2 .lea-tl-venir__carte a:not(.wp-element-button) {
  color: var(--wp--preset--color--contrast);
  font-weight: 700;
  text-underline-offset: 3px;
}

/* --- La phrase de la fin, entre deux L orange -------------------------- */

.lea-tl-fin {
  text-align: center;
}
.lea-v2 .lea-tl-fin .lea-tl-chute {
  position: relative;
  max-width: 24ch;
  margin: 0 auto var(--wp--preset--spacing--60);
  padding: 0.6em 1.1em;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.75rem);
}
.lea-tl-fin .lea-tl-chute::before,
.lea-tl-fin .lea-tl-chute::after {
  content: "";
  position: absolute;
  width: 0.62em;
  height: 0.9em;
  background: var(--wp--preset--color--primary);
  -webkit-mask: var(--lea-L) no-repeat center / contain;
  mask: var(--lea-L) no-repeat center / contain;
}
.lea-tl-fin .lea-tl-chute::before {
  top: 0;
  left: 0;
  transform: scaleY(-1);
}
.lea-tl-fin .lea-tl-chute::after {
  right: 0;
  bottom: 0;
  transform: scaleX(-1);
}
.lea-v2 .lea-tl-portage,
.lea-v2 .lea-tl-credit {
  max-width: 62ch;
  margin: 8px auto 0;
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-tl-vitrines__grille {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 781px) {
  .lea-tl-ouverture__grille,
  .lea-tl-duo,
  .lea-tl-portes,
  .lea-tl-cartes,
  .lea-tl-principe__grille,
  .lea-tl-lieux__grille,
  .lea-tl-contacts__grille,
  .lea-tl-venir__grille {
    grid-template-columns: 1fr;
  }
  .lea-tl-souvenir__photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-tl-collage {
    min-height: 320px;
  }
  /* Sur téléphone, le rail s'efface ; les paliers gardent leur bouton. */
  .lea-tl-immeuble {
    padding-left: 0;
  }
  .lea-tl-immeuble::before,
  .lea-tl-immeuble::after {
    display: none;
  }
  .lea-v2 .lea-tl-palier {
    gap: 14px;
  }
  .lea-tl-palier::before {
    position: static;
    flex: none;
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
    translate: none;
  }
  .lea-tl-manege {
    --r: 124px;
    width: 320px;
  }
  .lea-tl-manege__mot {
    padding: 4px 10px;
    font-size: 0.8125rem;
  }
}


/* ==================================================================
   Adhésion et À propos, enrichissement (2026-09-21), direction C.
   Contenu tiré de la présentation « LEA Gâtin'Est 2026 » (équipe com) :
   ce que l'adhésion rapporte, ce que fait l'association, avec quels
   outils. Même grammaire que le reste des deux pages : blocs à 28 px,
   pictos au trait avec leur point jaune, pastilles, aucun JavaScript.

   Adhésion (lea-ad-*) : une grille « bento » des bénéfices, dont un grand
   « −50 % » sur noir, et deux tickets de caisse qui font le calcul de
   l'amortissement. Les tickets s'impriment au défilement, et un tampon
   « Cotisation remboursée » vient les frapper.
   À propos (lea-ap-*) : « c'est quoi » en deux colonnes avec un encadré
   jaune, huit missions en cartes décalées, la boîte à outils en tiroirs
   de pastilles qui passent au jaune au survol.

   Contraste : orange sur noir 5,8:1 (le chiffre du −50 %), noir sur jaune
   10,9:1, orange foncé sur blanc 5,0:1 (le tampon), noir sur orange 5,8:1.
   ================================================================== */

/* --- Adhésion : pourquoi adhérer ------------------------------------- */

.lea-ad-avantages .lea-v2-entete {
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-ad-avantages__accroche {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem);
  line-height: 1.15;
  max-width: 30ch;
}
.lea-ad-bento {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: var(--wp--preset--spacing--50);
}
.lea-ad-bento > * {
  margin: 0;
}
.lea-v2 .lea-ad-remise {
  grid-row: span 2;
  display: flex;
  flex-direction: column;
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
}
.lea-ad-remise > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ad-remise__chiffre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(4.5rem, 2.5rem + 7vw, 9rem);
  line-height: 0.85;
  letter-spacing: -0.02em;
  color: var(--wp--preset--color--primary);
  margin-bottom: var(--wp--preset--spacing--40);
  white-space: nowrap;
}
.lea-v2 .lea-ad-remise h3 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.05;
}
.lea-v2 .lea-ad-remise__liste {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.lea-ad-remise__liste li {
  margin: 0;
  padding: 6px 14px;
  border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--base) 35%, transparent);
  border-radius: var(--wp--custom--rayon--pastille);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
}
.lea-v2 .lea-ad-remise__plus {
  margin-top: auto;
  padding-top: var(--wp--preset--spacing--40);
  border-top: 1.5px solid color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent);
  font-weight: 700;
}
.lea-v2 .lea-ad-benefice {
  padding: var(--wp--preset--spacing--50);
}
.lea-ad-benefice > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ad-benefice h3 {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 800;
  line-height: 1.15;
}
.lea-v2 .lea-ad-avantages__actions {
  margin-top: var(--wp--preset--spacing--60);
  gap: 12px;
}

/* --- Adhésion : le calcul, en tickets de caisse ---------------------- */

.lea-v2 .lea-ad-calcul__titre {
  margin-top: calc(var(--wp--preset--spacing--80) * 1.25);
}
.lea-ad-tickets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--70);
  align-items: start;
  padding-inline: var(--wp--preset--spacing--40);
}
.lea-ad-tickets > * {
  margin: 0;
}
/* Le papier : blanc, bords dentelés en haut et en bas (masque), sans
   ombre. Le premier penche à gauche, le second à droite. */
.lea-v2 .lea-ad-ticket {
  --dent: 10px;
  position: relative;
  box-sizing: border-box;
  padding: calc(var(--wp--preset--spacing--50) + var(--dent)) var(--wp--preset--spacing--50);
  background: var(--wp--preset--color--base);
  font-variant-numeric: tabular-nums;
  rotate: -1.5deg;
  -webkit-mask:
    conic-gradient(from 135deg at top, transparent, black 1deg 89deg, transparent 90deg) top / 20px 51% repeat-x,
    conic-gradient(from -45deg at bottom, transparent, black 1deg 89deg, transparent 90deg) bottom / 20px 51% repeat-x;
  mask:
    conic-gradient(from 135deg at top, transparent, black 1deg 89deg, transparent 90deg) top / 20px 51% repeat-x,
    conic-gradient(from -45deg at bottom, transparent, black 1deg 89deg, transparent 90deg) bottom / 20px 51% repeat-x;
}
.lea-v2 .lea-ad-ticket + .lea-ad-ticket {
  rotate: 1.2deg;
  margin-top: var(--wp--preset--spacing--60);
}
.lea-ad-ticket > * {
  margin: 0;
}
.lea-ad-ticket__entete {
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--wp--preset--color--muted);
  padding-bottom: var(--wp--preset--spacing--30);
  border-bottom: 2px dashed color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
}
.lea-v2 .lea-ad-ticket__titre {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.05;
  margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}
.lea-ad-ticket__ligne,
.lea-ad-ticket__total {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--wp--preset--spacing--40);
  align-items: baseline;
}
.lea-ad-ticket__ligne > *,
.lea-ad-ticket__total > * {
  margin: 0;
}
.lea-ad-ticket__ligne {
  padding-block: 10px;
  border-bottom: 1px dotted color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);
}
.lea-ad-ticket__ligne > :last-child {
  font-weight: 700;
  text-align: right;
}
.lea-ad-ticket__ligne--barree > :last-child {
  color: var(--wp--preset--color--muted);
}
.lea-ad-ticket__ligne--barree s {
  text-decoration-thickness: 2px;
  text-decoration-color: var(--wp--preset--color--primary-dark);
}
.lea-ad-ticket__total {
  align-items: center;
  margin-top: var(--wp--preset--spacing--40);
  padding-top: var(--wp--preset--spacing--40);
  border-top: 3px double var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 1.375rem;
  text-transform: uppercase;
}
/* Le montant final en pastille orange, texte noir (5,8:1). */
.lea-ad-ticket__total > :last-child {
  padding: 4px 18px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--primary);
  font-size: 1.75rem;
  white-space: nowrap;
}
.lea-v2 .lea-ad-ticket__note {
  margin-top: var(--wp--preset--spacing--40);
  font-size: var(--wp--preset--font-size--small);
  line-height: 1.5;
  color: var(--wp--preset--color--muted);
}
/* Le tampon : cercle à filet orange foncé, texte orange foncé (5,0:1).
   Posé dans le coin haut du ticket (le masque des dents couperait tout ce
   qui déborde) ; l'en-tête et le titre lui laissent la place, et le
   titre descend assez pour que la première ligne passe dessous. */
.lea-v2 .lea-ad-ticket:has(.lea-ad-tampon) :is(.lea-ad-ticket__entete, .lea-ad-ticket__titre) {
  padding-right: 128px;
}
.lea-v2 .lea-ad-ticket:has(.lea-ad-tampon) .lea-ad-ticket__titre {
  min-height: 2.1em;
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-v2 .lea-ad-tampon {
  position: absolute;
  right: 16px;
  top: calc(var(--dent) + 6px);
  display: grid;
  place-items: center;
  width: 118px;
  height: 118px;
  box-sizing: border-box;
  padding: 12px;
  border: 3px solid var(--wp--preset--color--primary-dark);
  border-radius: 50%;
  outline: 1.5px solid var(--wp--preset--color--primary-dark);
  outline-offset: -9px;
  background: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
  color: var(--wp--preset--color--primary-dark);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 0.9375rem;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  rotate: -14deg;
}

/* --- À propos : c'est quoi ------------------------------------------- */

.lea-ap-bref__grille {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--wp--preset--spacing--70);
  align-items: start;
}
.lea-ap-bref__grille > * {
  margin: 0;
}
.lea-v2 .lea-ap-bref__intro {
  position: sticky;
  top: calc(var(--wp--preset--spacing--80) + 40px);
}
.lea-ap-bref__intro > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-ap-bref__chapo {
  font-size: 1.25rem;
  line-height: 1.5;
}
.lea-v2 .lea-ap-encadre {
  margin-top: var(--wp--preset--spacing--50);
  padding: var(--wp--preset--spacing--50);
  border-radius: var(--wp--custom--rayon--bloc);
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--contrast);
}
.lea-ap-encadre > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ap-encadre > :last-child {
  margin-bottom: 0;
}
.lea-ap-encadre a {
  color: var(--wp--preset--color--contrast);
  text-underline-offset: 3px;
}
.lea-ap-bref__liste > * {
  margin: 0;
}
.lea-ap-point {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: var(--wp--preset--spacing--50);
  padding-block: var(--wp--preset--spacing--50);
  border-top: 1.5px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
}
.lea-ap-point:first-child {
  border-top: 0;
  padding-top: 0;
}
.lea-ap-point > *,
.lea-ap-point__texte > * {
  margin: 0;
}
.lea-v2 .lea-ap-point .lea-ap-picto {
  margin: 0;
}
.lea-v2 .lea-ap-point h3 {
  font-size: var(--wp--preset--font-size--large);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: var(--wp--preset--spacing--20);
}

/* --- À propos : huit missions ---------------------------------------- */

.lea-ap-missions .lea-v2-entete,
.lea-ap-outils .lea-v2-entete {
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-ap-missions__chapo {
  font-size: 1.25rem;
  line-height: 1.5;
  max-width: 52ch;
}
.lea-ap-grille-missions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
  align-items: start;
}
.lea-ap-grille-missions > * {
  margin: 0;
}
/* Une colonne sur deux descend d'un cran : la grille respire en quinconce. */
.lea-ap-grille-missions > :nth-child(even) {
  margin-top: var(--wp--preset--spacing--70);
}
.lea-v2 .lea-ap-mission {
  padding: var(--wp--preset--spacing--50);
  border-radius: var(--wp--custom--rayon--bloc);
  background: var(--wp--preset--color--base);
}
.lea-ap-mission > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ap-mission > :last-child {
  margin-bottom: 0;
}
.lea-ap-mission__numero {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 1.25rem;
  transition: background-color 0.2s, color 0.2s;
}
.lea-ap-mission:hover .lea-ap-mission__numero {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-v2 .lea-ap-mission__titre {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 800;
  line-height: 1.15;
  margin-top: var(--wp--preset--spacing--40);
}
.lea-v2 .lea-ap-mission__liste {
  list-style: none;
  padding: 0;
  font-size: 0.9375rem;
  line-height: 1.4;
}
.lea-ap-mission__liste li {
  position: relative;
  margin: 0 0 8px;
  padding-left: 18px;
}
.lea-ap-mission__liste li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wp--preset--color--primary);
}

/* --- À propos : la boîte à outils ------------------------------------ */

.lea-ap-grille-outils {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-ap-grille-outils > * {
  margin: 0;
}
.lea-v2 .lea-ap-outil {
  padding: var(--wp--preset--spacing--50);
}
.lea-ap-outil > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2 .lea-ap-outil h3 {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 800;
  line-height: 1.15;
}
.lea-v2 .lea-ap-pastilles {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 0;
}
/* Pastille neutre de la charte (fond blanc, filet gris, texte noir), qui
   passe au jaune au survol de son tiroir, l'une après l'autre. */
.lea-ap-pastilles li {
  margin: 0;
  padding: 6px 14px;
  border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
}
.lea-ap-outil:hover .lea-ap-pastilles li {
  background: var(--wp--preset--color--secondary);
  border-color: var(--wp--preset--color--secondary);
}

/* --- Mouvement ------------------------------------------------------- */

@keyframes lea-ad-imprime {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes lea-ad-frappe {
  0%, 60% { opacity: 0; scale: 2.2; }
  85%     { opacity: 1; scale: 0.92; }
  100%    { opacity: 1; scale: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .lea-v2 .lea-ad-ticket {
    transition: rotate 0.3s ease;
  }
  .lea-v2 .lea-ad-ticket:hover {
    rotate: 0deg;
  }
  .lea-ad-benefice .lea-ap-picto__point,
  .lea-ap-outil .lea-ap-picto__point {
    transform-box: fill-box;
    transform-origin: center;
    transition: scale 0.25s ease;
  }
  .lea-ad-benefice:hover .lea-ap-picto__point,
  .lea-ap-outil:hover .lea-ap-picto__point {
    scale: 1.6;
  }
  /* Pas de déplacement de la carte au survol : la cascade la tient déjà
     par son animation. Le numéro pivote, il passe au noir. */
  .lea-ap-mission__numero {
    transition: background-color 0.2s, color 0.2s, rotate 0.25s ease;
  }
  .lea-ap-mission:hover .lea-ap-mission__numero {
    rotate: -10deg;
  }
  .lea-ap-pastilles li {
    transition: background-color 0.2s, border-color 0.2s;
  }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(2) { transition-delay: 40ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(3) { transition-delay: 80ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(4) { transition-delay: 120ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(5) { transition-delay: 160ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(6) { transition-delay: 200ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(7) { transition-delay: 240ms; }
  .lea-ap-outil:hover .lea-ap-pastilles li:nth-child(8) { transition-delay: 280ms; }

  @supports (animation-timeline: view()) {
    /* Les tickets sortent de la caisse, de haut en bas ; le tampon tombe
       quand le premier est presque entier. */
    .lea-ad-ticket {
      animation: lea-ad-imprime linear both;
      animation-timeline: view();
      animation-range: entry 10% cover 40%;
    }
    .lea-ad-tampon {
      animation: lea-ad-frappe linear both;
      animation-timeline: view();
      animation-range: entry 40% cover 55%;
    }
  }
}

/* --- Tablette et mobile ---------------------------------------------- */

@media (max-width: 1024px) {
  .lea-ad-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-v2 .lea-ad-remise {
    grid-row: auto;
    grid-column: 1 / -1;
  }
  .lea-ap-grille-missions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-ap-grille-outils {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-ap-bref__grille {
    grid-template-columns: 1fr;
  }
  .lea-v2 .lea-ap-bref__intro {
    position: static;
  }
}
@media (max-width: 781px) {
  .lea-ad-tickets {
    grid-template-columns: 1fr;
    padding-inline: 0;
  }
  .lea-v2 .lea-ad-ticket + .lea-ad-ticket {
    margin-top: 0;
  }
  .lea-v2 .lea-ad-ticket:has(.lea-ad-tampon) :is(.lea-ad-ticket__entete, .lea-ad-ticket__titre) {
    padding-right: 100px;
  }
  .lea-v2 .lea-ad-tampon {
    right: 14px;
    width: 104px;
    height: 104px;
    padding: 14px;
    font-size: 0.6875rem;
  }
}
@media (max-width: 600px) {
  .lea-ad-bento,
  .lea-ap-grille-missions,
  .lea-ap-grille-outils {
    grid-template-columns: 1fr;
  }
  .lea-ap-grille-missions > :nth-child(even) {
    margin-top: 0;
  }
  .lea-ap-point {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: var(--wp--preset--spacing--40);
  }
  .lea-v2 .lea-ap-point .lea-ap-picto {
    width: 48px;
    height: 48px;
  }
  .lea-v2 .lea-ad-ticket {
    rotate: -0.8deg;
  }
  .lea-v2 .lea-ad-ticket + .lea-ad-ticket {
    rotate: 0.8deg;
  }
}


/* ==================================================================
   Accueil, « Pourquoi adhérer à LEA ? » en bénéfices chiffrés
   (proposition du 2026-09-21). Une grille de cinq blocs sur l'aplat
   orange, qui se lit en trois secondes : −50 %, 1 réseau, 1 fiche, 1 voix,
   et le calcul « déjà remboursée » sur le jaune. Chaque bloc ouvre sur
   un chiffre, le texte ne fait que le préciser.
   Contraste : orange sur noir 5,8:1, noir sur blanc 17,3:1, noir sur
   jaune 10,9:1, noir sur orange 5,8:1 (l'accroche).
   ================================================================== */

.lea-v2-adherer .lea-v2-entete {
  margin-bottom: var(--wp--preset--spacing--60);
}
.lea-v2-adherer .lea-v2-entete > * {
  margin: 0;
}
.lea-v2 .lea-v2-adherer .lea-v2-titre {
  margin-bottom: var(--wp--preset--spacing--30);
}
.lea-v2-benef__accroche {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem);
  line-height: 1.15;
}
.lea-v2-benef {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "remise reseau vitrine"
    "remise voix   calcul";
  gap: var(--wp--preset--spacing--50);
}
.lea-v2-benef > * {
  margin: 0;
}
.lea-v2 .lea-v2-benef__carte {
  display: flex;
  flex-direction: column;
  padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-v2-benef__carte > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-v2-benef__carte > :last-child {
  margin-bottom: 0;
}
.lea-v2-benef__carte--remise  { grid-area: remise; }
.lea-v2-benef__carte--reseau  { grid-area: reseau; }
.lea-v2-benef__carte--vitrine { grid-area: vitrine; }
.lea-v2-benef__carte--voix    { grid-area: voix; }
.lea-v2-benef__carte--calcul  { grid-area: calcul; }

.lea-v2 .lea-v2-benef__chiffre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(2.75rem, 1.9rem + 2.6vw, 4.25rem);
  line-height: 0.9;
  letter-spacing: -0.015em;
  white-space: nowrap;
  margin-bottom: var(--wp--preset--spacing--40);
}
.lea-v2 .lea-v2-benef__carte--remise .lea-v2-benef__chiffre {
  font-size: clamp(4.5rem, 2.6rem + 6.5vw, 9rem);
  color: var(--wp--preset--color--primary);
  margin-bottom: auto;
  padding-bottom: var(--wp--preset--spacing--50);
}
.lea-v2 .lea-v2-benef__carte h3 {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.1;
}
.lea-v2 .lea-v2-benef__carte--remise h3 {
  font-size: var(--wp--preset--font-size--large);
}
.lea-v2-benef__carte p:not([class]) {
  font-size: 1rem;
  line-height: 1.5;
}
.lea-v2 .lea-v2-benef__carte--calcul {
  justify-content: center;
  color: var(--wp--preset--color--contrast);
}
.lea-v2-benef__phrase {
  font-size: 1.125rem;
  line-height: 1.4;
}
.lea-v2-benef__phrase strong {
  font-weight: 700;
}
.lea-v2 .lea-v2-benef__conclusion {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: var(--wp--preset--font-size--large);
  text-transform: uppercase;
  line-height: 1.05;
}
.lea-v2 .lea-v2-benef__actions {
  margin-top: var(--wp--preset--spacing--60);
  gap: 12px;
}

@media (prefers-reduced-motion: no-preference) {
  .lea-v2 .lea-v2-benef__carte--remise .lea-v2-benef__chiffre {
    transition: scale 0.3s ease;
    transform-origin: left bottom;
  }
  .lea-v2-benef__carte--remise:hover .lea-v2-benef__chiffre {
    scale: 1.05;
  }
}

@media (max-width: 1024px) {
  .lea-v2-benef {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "remise  remise"
      "reseau  vitrine"
      "voix    calcul";
  }
}
@media (max-width: 600px) {
  .lea-v2-benef {
    grid-template-columns: 1fr;
    grid-template-areas: "remise" "reseau" "vitrine" "voix" "calcul";
  }
}


/* ==================================================================
   Adhésion, « Questions fréquentes » (2026-09-21). Cinq questions en clair,
   chacune suivie d'un seul paragraphe : c'est la forme que lea-geo.php sait
   lire pour émettre la FAQPage, et celle qu'un moteur de réponse cite telle
   quelle. Cartes blanches sur fond gris clair, deux colonnes.
   ================================================================== */

.lea-ad-faq__grille {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--50);
}
.lea-ad-faq__grille > * {
  margin: 0;
}
.lea-v2 .lea-ad-faq__item {
  padding: var(--wp--preset--spacing--50);
  border-radius: var(--wp--custom--rayon--bloc);
  background: var(--wp--preset--color--base);
}
.lea-ad-faq__item > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-ad-faq__item > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-ad-faq__item h3 {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 800;
  line-height: 1.2;
}
@media (max-width: 781px) {
  .lea-ad-faq__grille {
    grid-template-columns: 1fr;
  }
}

/* ==================================================================
   Rubrique « Entreprendre ici » (2026-09-22).
   Guides et études en téléchargement libre. Trois écrans : le hub, une
   archive par famille, la fiche d'un document.

   Le fil conducteur est le parcours en six étapes que les guides portent
   déjà : je m'informe, je travaille, je teste, je rencontre, je me fais
   accompagner, j'agis. La frise le rend visible sans JavaScript.

   Aucune photo : les cartes portent un cartouche typographique. La page de
   couverture d'un PDF est un aplat peu lisible en vignette, et l'extraire
   demanderait un rasteriseur que le projet n'a pas.
   ================================================================== */

/* --- Ouverture du hub --------------------------------------------- */

.lea-rs-ouverture {
  color: var(--wp--preset--color--contrast);
}
.lea-rs-ouverture__grille {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--wp--preset--spacing--60);
  align-items: center;
}
.lea-rs-ouverture__texte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-rs-ouverture__texte > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-rs-titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  text-transform: uppercase;
  font-size: clamp(2rem, 1.2rem + 3.4vw, 3.5rem);
  line-height: 1.02;
  hyphens: auto;
}
.lea-rs-chapo {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem);
  line-height: 1.25;
  max-width: 34ch;
}
.lea-rs-chiffre {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0;
}
.lea-rs-chiffre__nombre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(2.5rem, 1.6rem + 3vw, 4rem);
  line-height: 1;
}
.lea-rs-chiffre__libelle {
  font-size: var(--wp--preset--font-size--normal);
  max-width: 14ch;
}
.lea-rs-ouverture .lea-v2-L {
  width: clamp(90px, 12vw, 160px);
  height: auto;
  color: var(--wp--preset--color--contrast);
}

/* --- La frise du parcours ----------------------------------------- */

/* Une ligne de temps : six pastilles numérotées posées sur un axe, le libellé
   dessous. Le numéro n'est pas qu'un ornement, il dit l'ordre des guides.
   L'état d'une étape n'est jamais porté par la seule couleur : une pastille
   franchie est pleine, celle qui commence est cerclée et porte une mention. */

.lea-rs-parcours {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--40);
  list-style: none;
  margin: var(--wp--preset--spacing--60) 0 0;
  padding: 0;
}
.lea-rs-parcours__etape {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--wp--preset--spacing--30);
}
/* L'axe : un segment par étape, de sa pastille à la suivante. Tracé segment
   par segment, il peut changer de couleur quand l'étape est franchie. */
.lea-rs-parcours__etape:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 21px;
  left: 52px;
  right: calc(-1 * var(--wp--preset--spacing--40));
  height: 2px;
  background: var(--wp--preset--color--surface);
}
.lea-rs-parcours__rang {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: var(--wp--custom--rayon--pastille);
  border: 2px solid var(--wp--preset--color--contrast);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: var(--wp--preset--font-size--normal);
  line-height: 1;
}
.lea-rs-parcours__libelle {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  font-size: var(--wp--preset--font-size--normal);
  line-height: 1.12;
  text-wrap: balance;
}
/* Étape franchie : pastille orange pleine, numéro noir (5,8:1). Le blanc sur
   orange est proscrit sous 24 px. */
.lea-rs-parcours__etape--franchie .lea-rs-parcours__rang {
  background: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
}
.lea-rs-parcours__etape--franchie:not(:last-child)::after {
  background: var(--wp--preset--color--primary);
}
/* L'étape qui commence : pastille noire, numéro blanc (17,3:1), et une mention
   écrite, pour ne pas s'en remettre à la couleur seule. */
.lea-rs-parcours__etape--courante .lea-rs-parcours__rang {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}
.lea-rs-parcours__etape--courante .lea-rs-parcours__libelle::after {
  content: " · vous y êtes";
  font-family: var(--wp--preset--font-family--corps);
  font-weight: 700;
  font-size: var(--wp--preset--font-size--small);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--wp--preset--color--primary-dark);
}
/* Les étapes à venir s'effacent sans disparaître : filet gris, numéro gris. */
.lea-rs-parcours:has(.lea-rs-parcours__etape--franchie)
  .lea-rs-parcours__etape:not(.lea-rs-parcours__etape--franchie):not(.lea-rs-parcours__etape--courante)
  .lea-rs-parcours__rang {
  border-color: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--muted);
}

@media (max-width: 1024px) {
  .lea-rs-parcours {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: var(--wp--preset--spacing--60);
  }
  /* Sur trois colonnes, l'axe ne relierait plus rien en fin de rangée. */
  .lea-rs-parcours__etape:nth-child(3n)::after {
    display: none;
  }
}

@media (max-width: 600px) {
  .lea-rs-parcours {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-rs-parcours__etape:nth-child(3n)::after {
    display: block;
  }
  .lea-rs-parcours__etape:nth-child(2n)::after {
    display: none;
  }
}

/* --- En-tête d'une fiche ------------------------------------------ */

.lea-rs-entete__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: var(--wp--preset--spacing--70);
  align-items: start;
}
.lea-rs-entete__texte > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-rs-entete .lea-rs-titre {
  text-transform: none;
  font-size: clamp(1.9rem, 1.2rem + 2.6vw, 2.9rem);
}
.lea-rs-resume {
  font-size: var(--wp--preset--font-size--normal);
  max-width: 52ch;
}
.lea-rs-pour-qui > * {
  margin: 0;
}
.lea-rs-pour-qui__texte {
  font-size: var(--wp--preset--font-size--normal);
  font-weight: 700;
}
/* La carte du document reste à l'écran pendant la lecture de l'en-tête. */
.lea-rs-carte-doc {
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
  position: sticky;
  top: var(--wp--preset--spacing--50);
}
.lea-rs-carte-doc > * {
  margin: 0;
}
.lea-rs-carte-doc__suite {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  margin-top: var(--wp--preset--spacing--40);
}
.lea-rs-telechargement__reperes {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  margin: var(--wp--preset--spacing--30) 0 0;
}
.lea-rs-telechargement__gratuit {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  margin: 6px 0 0;
}

/* --- Corps d'une fiche -------------------------------------------- */

/* Colonne de lecture d'environ 65 caractères, comme les articles. */
.lea-rs-corps .lea-rs-lecture {
  max-width: 700px;
  margin-inline: auto;
}
.lea-rs-lecture > * {
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-rs-lecture .lea-v2-titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
  line-height: 1.1;
  margin-top: var(--wp--preset--spacing--70);
}
.lea-rs-lecture .lea-rs-chapo {
  max-width: none;
}
.lea-rs-objectifs,
.lea-rs-sommaire {
  padding-left: 0;
  list-style: none;
}
.lea-rs-objectifs li,
.lea-rs-sommaire li {
  position: relative;
  padding-left: var(--wp--preset--spacing--50);
  margin-bottom: var(--wp--preset--spacing--30);
}
.lea-rs-objectifs li::before,
.lea-rs-sommaire li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 14px;
  height: 3px;
  background: var(--wp--preset--color--primary);
}
.lea-rs-encadre {
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
}
.lea-rs-encadre > * {
  margin-bottom: var(--wp--preset--spacing--30);
}
.lea-rs-encadre > :last-child {
  margin-bottom: 0;
}
.lea-rs-avertissement {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  border-top: 1px solid var(--wp--preset--color--surface);
  padding-top: var(--wp--preset--spacing--40);
}

/* --- Le tableau des communes -------------------------------------- */

/* Neuf colonnes ne tiennent pas sur un téléphone : le tableau défile de
   côté, sans rogner la page ni réduire le texte. */
.lea-rs-tableau {
  overflow-x: auto;
  margin-bottom: var(--wp--preset--spacing--50);
}
.lea-rs-tableau table {
  border-collapse: collapse;
  font-size: var(--wp--preset--font-size--small);
  min-width: 46rem;
}
.lea-rs-tableau th,
.lea-rs-tableau td {
  padding: 10px 12px;
  border: none;
  border-bottom: 1px solid var(--wp--preset--color--surface);
  text-align: right;
  white-space: nowrap;
}
.lea-rs-tableau thead th {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 700;
  text-align: right;
  border-bottom: 2px solid var(--wp--preset--color--contrast);
}
.lea-rs-tableau tbody th,
.lea-rs-tableau tfoot th,
.lea-rs-tableau thead th:first-child {
  text-align: left;
}
.lea-rs-tableau tbody th {
  font-weight: 700;
}
.lea-rs-tableau tbody tr:hover {
  background: var(--wp--preset--color--surface);
}
.lea-rs-tableau tfoot th,
.lea-rs-tableau tfoot td {
  font-weight: 700;
  border-top: 2px solid var(--wp--preset--color--contrast);
  border-bottom: none;
}
.lea-rs-tableau figcaption {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  margin-top: var(--wp--preset--spacing--30);
}

/* --- La grille des documents -------------------------------------- */

.lea-rs-grille__liste {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr));
  gap: var(--wp--preset--spacing--50);
  list-style: none;
  padding: 0;
  margin: var(--wp--preset--spacing--60) 0 0;
}
.lea-rs-carte {
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
}
.lea-rs-carte > * {
  margin: 0;
}
.lea-rs-carte .lea-rs-famille a,
.lea-rs-carte .lea-rs-famille {
  font-family: var(--wp--preset--font-family--corps);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-decoration: none;
  color: var(--wp--preset--color--contrast);
}
.lea-rs-carte .lea-rs-famille {
  background: var(--wp--preset--color--secondary);
  border-radius: var(--wp--custom--rayon--pastille);
  padding: 6px 14px;
  align-self: start;
}
.lea-v2 .lea-rs-carte__titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: var(--wp--preset--font-size--large);
  line-height: 1.1;
}
.lea-rs-carte__titre a {
  text-decoration: none;
  color: inherit;
}
.lea-rs-carte__titre a:hover,
.lea-rs-carte__titre a:focus-visible {
  text-decoration: underline;
}
.lea-rs-carte__resume {
  font-size: var(--wp--preset--font-size--normal);
  color: var(--wp--preset--color--contrast);
}
.lea-rs-carte__lien {
  margin-top: auto;
}
.lea-rs-carte__lien a {
  font-weight: 700;
}
.lea-rs-description {
  max-width: 60ch;
}

/* --- Mobile ------------------------------------------------------- */

@media (max-width: 1024px) {
  .lea-rs-entete__grille {
    grid-template-columns: 1fr;
    gap: var(--wp--preset--spacing--50);
  }
  .lea-rs-carte-doc {
    position: static;
  }
  .lea-rs-parcours {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: var(--wp--preset--spacing--50);
  }
}

@media (max-width: 600px) {
  .lea-rs-ouverture__grille {
    grid-template-columns: 1fr;
  }
  .lea-rs-ouverture .lea-v2-L {
    display: none;
  }
  .lea-rs-parcours {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lea-rs-carte,
  .lea-rs-carte-doc,
  .lea-rs-encadre {
    padding: var(--wp--preset--spacing--50);
  }
}

/* --- Le collage de l'ouverture ------------------------------------ */

/* Le pendant des photos inclinées de l'ouverture des tiers-lieux. Un
   document n'a pas de photo : le cartouche est typographique, au format
   d'une couverture, et la bande de couleur en tient lieu. */
.lea-rs-collage {
  position: relative;
  aspect-ratio: 1 / 0.92;
  min-height: 300px;
}
.lea-rs-cartouche {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 62%;
  aspect-ratio: 1 / 1.35;
  padding: var(--wp--preset--spacing--50);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  /* Rayon du collage des tiers-lieux, et aucune ombre portée : la charte
     n'en veut pas, et le relief vient du blanc sur l'orange. */
  border-radius: var(--wp--custom--rayon--bloc);
  text-decoration: none;
  transition: rotate var(--wp--custom--mouvement--survol) var(--wp--custom--mouvement--courbe),
              translate var(--wp--custom--mouvement--survol) var(--wp--custom--mouvement--courbe);
}
.lea-rs-collage .lea-rs-cartouche:first-child {
  top: 0;
  right: 0;
  rotate: 4deg;
  z-index: 2;
}
.lea-rs-collage .lea-rs-cartouche:nth-child(2) {
  bottom: 0;
  left: 0;
  rotate: -3deg;
  z-index: 1;
}
.lea-rs-cartouche:hover,
.lea-rs-cartouche:focus-visible {
  rotate: 0deg;
  translate: 0 -6px;
}
.lea-rs-cartouche__bande {
  display: block;
  width: 46px;
  height: 8px;
  border-radius: var(--wp--custom--rayon--pastille);
  background: var(--wp--preset--color--primary);
}
/* Le second document reçoit le jaune, en regard de l'orange du premier,
   comme les tuiles de l'accueil. Le jaune ne porte aucun texte. */
.lea-rs-collage .lea-rs-cartouche:nth-child(2) .lea-rs-cartouche__bande {
  background: var(--wp--preset--color--secondary);
}
.lea-rs-cartouche__etiquette {
  font-family: var(--wp--preset--font-family--corps);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--muted);
}
.lea-rs-cartouche__titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(1.1rem, 0.9rem + 0.6vw, 1.5rem);
  line-height: 1.08;
}
.lea-rs-cartouche__mention {
  margin-top: auto;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
}
/* La pastille passe en travers du collage, comme un cachet. Blanc sur noir :
   17,3:1. */
.lea-rs-pastille {
  position: absolute;
  right: 4%;
  bottom: -6%;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 14px 22px;
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--pastille);
  rotate: -2deg;
}
.lea-rs-pastille__nombre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: 2.4rem;
  line-height: 1;
}
.lea-rs-pastille__libelle {
  font-family: var(--wp--preset--font-family--corps);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.15;
  max-width: 13ch;
}

/* Le chapô de l'ouverture est du texte courant, comme sur les tiers-lieux et
   l'annuaire : la graisse des titres y écrasait la page. */
.lea-rs-intro {
  font-size: var(--wp--preset--font-size--normal);
  max-width: 46ch;
}

@media (max-width: 1024px) {
  .lea-rs-collage {
    aspect-ratio: 1 / 0.62;
    min-height: 260px;
  }
  .lea-rs-cartouche {
    width: 46%;
  }
}

@media (max-width: 600px) {
  .lea-rs-collage {
    aspect-ratio: 1 / 0.9;
    margin-top: var(--wp--preset--spacing--60);
  }
  .lea-rs-cartouche {
    width: 58%;
  }
  .lea-rs-pastille {
    right: 0;
    bottom: -4%;
    padding: 10px 16px;
  }
  .lea-rs-pastille__nombre {
    font-size: 1.8rem;
  }
}

/* --- La porte d'entrée : le guide express -------------------------- */

/* « Sans lui, un porteur de projet ouvre le Guide 1 et referme la
   collection » (LISEZ-MOI de la collection) : il est donc présenté seul,
   au-dessus des quinze, et non noyé dans la grille. */
.lea-rs-express {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
  align-items: center;
  padding: var(--wp--preset--spacing--70);
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-rs-express > * {
  margin: 0;
}
.lea-rs-express__texte > * {
  margin: 0 0 var(--wp--preset--spacing--30);
}
.lea-rs-express__texte > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-rs-express__titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
  line-height: 1.05;
}
.lea-rs-express__mention {
  grid-column: 1 / -1;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
}

@media (max-width: 780px) {
  .lea-rs-express {
    grid-template-columns: 1fr;
    padding: var(--wp--preset--spacing--60);
  }
}

/* --- Les figures de l'étude --------------------------------------- */

/* Cartes et graphiques du rapport, dans la colonne de lecture. Fond blanc :
   les figures sont sur fond transparent et se posent aussi bien sur une
   section claire que sur une section grise. */
.lea-v2 .lea-rs-figure {
  margin: var(--wp--preset--spacing--60) 0;
  padding: var(--wp--preset--spacing--40);
  background: var(--wp--preset--color--base);
  border-radius: var(--wp--custom--rayon--bloc);
}
.lea-rs-figure img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}
.lea-v2 .lea-rs-figure figcaption {
  margin-top: var(--wp--preset--spacing--30);
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  text-align: left;
}

/* --- L'encart d'accès aux documents ------------------------------- */

/* Posé dans la carte du document, qui porte déjà son fond et son rayon :
   l'encart ne fait que la mise en forme des champs. */

/* Placé après le corps de la fiche, il a besoin de sa propre carte : le
   visiteur vient de lire, et l'encart doit se détacher sans crier. */
.lea-rs-corps .lea-acces {
  max-width: 700px;
  margin: var(--wp--preset--spacing--70) auto 0;
  padding: var(--wp--preset--spacing--60);
  background: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--rayon--bloc);
  scroll-margin-top: var(--wp--preset--spacing--60);
}
.lea-acces > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-acces > :last-child {
  margin-bottom: 0;
}
.lea-v2 .lea-acces__titre {
  font-family: var(--wp--preset--font-family--titre);
  font-weight: 800;
  font-size: var(--wp--preset--font-size--large);
  line-height: 1.1;
}

/* Le piège à robots : présent dans le balisage, hors de l'écran et hors du
   parcours au clavier. Un piège visible n'en est plus un, et il déroute le
   visiteur qui le lit (signalé par Olivier le 2026-09-22). Sorti du flux
   plutôt que masqué par « display », que certains automates repèrent. */
.lea-acces__piege {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.lea-acces__formulaire > * {
  margin: 0 0 var(--wp--preset--spacing--40);
}
.lea-acces__champ label,
.lea-acces__case {
  font-size: var(--wp--preset--font-size--small);
}
.lea-acces__champ label {
  display: block;
  font-weight: 700;
  margin-bottom: 8px;
}
.lea-acces__champ input[type="email"] {
  display: block;
  width: 100%;
  max-width: 26rem;
  min-height: 48px;
  padding: 10px 16px;
  font-family: var(--wp--preset--font-family--corps);
  font-size: var(--wp--preset--font-size--normal);
  color: var(--wp--preset--color--contrast);
  background: var(--wp--preset--color--base);
  border: 2px solid var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--rayon--pastille);
}
.lea-acces__champ input[type="email"]:focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 2px;
}
/* Cible tactile de 44 px : la case et son libellé forment un seul bloc
   cliquable. */
.lea-acces__case label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  line-height: 1.35;
  cursor: pointer;
}
.lea-acces__case input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: var(--wp--preset--color--primary);
}
.lea-v2 .lea-acces__action {
  margin-top: var(--wp--preset--spacing--50);
}
.lea-acces__mention {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
  line-height: 1.4;
}
/* Un avis d'erreur : filet orange, texte noir. La charte n'a pas de rouge, et
   l'orange ne porte jamais de petit texte. */
.lea-acces__avis {
  padding: 12px 16px;
  border-left: 4px solid var(--wp--preset--color--primary);
  background: var(--wp--preset--color--surface);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
}
