/* ==========================================================================
   insidedaweb.com, nouvelle version : socle (lot V1.2)
   D'apres les maquettes finales (design-finale/, toile 29 du 13/10/2026), C-Accueil2 en reference.
   Branche au lot V1.3 (en-tete, pied, fil d'Ariane) ; le contenu des pages garde style.css (base ISO).
   Regles : couleurs et polices en jetons sur :root seulement ; aucune requete externe ; mouvement en
   transform et opacity (C-Regles:163, la forme verte exceptee) ; prefers-reduced-motion coupe tout ;
   aucun style inline dans les gabarits, ces classes en tiennent lieu.
   ========================================================================== */

/* -- Polices locales : sous-ensemble latin de Google Fonts, plus O et o macron (Koeki) ------------ */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: optional;
  src: url("/assets/fonts/poppins-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+014C-014D, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: optional;
  src: url("/assets/fonts/poppins-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+014C-014D, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: optional;
  src: url("/assets/fonts/poppins-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+014C-014D, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* optional sur les quatre graisses (decision du 15/10) : jamais de bascule tardive, donc aucun decalage ;
   400 et 800 prechargees (texte et grands titres du premier ecran) */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 800; font-display: optional;
  src: url("/assets/fonts/poppins-800.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+014C-014D, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Repli aux metriques de Poppins : Arial ajuste graisse par graisse (largeurs mesurees sur les TTF, sur un
   texte du site), pour que le texte garde sa largeur quand la vraie police arrive (swap). */
@font-face { font-family: "Poppins repli"; font-weight: 400; src: local("Arial"), local("ArialMT"), local("Liberation Sans");
  size-adjust: 109.7%; ascent-override: 95.7%; descent-override: 31.9%; line-gap-override: 9.1%; }
@font-face { font-family: "Poppins repli"; font-weight: 600; src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold");
  size-adjust: 104.9%; ascent-override: 100.1%; descent-override: 33.4%; line-gap-override: 9.5%; }
@font-face { font-family: "Poppins repli"; font-weight: 700; src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold");
  size-adjust: 105.9%; ascent-override: 99.2%; descent-override: 33.1%; line-gap-override: 9.4%; }
@font-face { font-family: "Poppins repli"; font-weight: 800; src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold");
  size-adjust: 106.7%; ascent-override: 98.4%; descent-override: 32.8%; line-gap-override: 9.4%; }

/* -- Jetons ------------------------------------------------------------------------------------- */
:root {
  /* couleurs des maquettes */
  --iw-vert: #87d01e;            /* couleur d'identite : fonds, surlignage, puces */
  --iw-vert-fonce: #2f5a05;      /* texte vert sur fond clair (surtitres, survol des liens) */
  --iw-vert-moyen: #437a08;      /* point final des titres de section */
  --iw-vert-pale: #f3fbe6;       /* fond des tetes de page */
  --iw-vert-voile: #eef6e2;      /* fond du code en ligne */
  --iw-vert-surligne: #d9f2ad;   /* <mark> */
  --iw-encre: #16181d;           /* texte, filets forts, fonds sombres */
  --iw-nuit: #0f110c;            /* pied de page */
  --iw-texte: #23271d;           /* corps des articles */
  --iw-texte-doux: #2c3125;      /* chapeaux */
  --iw-gris: #4a5040;            /* metadonnees, legendes */
  --iw-gris-clair: #d7dccf;      /* texte secondaire sur fond sombre */
  --iw-code: #e6eadf;            /* texte des blocs de code */
  --iw-bord: #e3ead8;            /* filets clairs */
  --iw-bord-fort: #d3dec4;       /* contour des boutons ronds */
  --iw-neutre: #f4f5f1;          /* fond des emplacements publicitaires */
  --iw-blanc: #ffffff;
  /* polices */
  --iw-police: "Poppins", "Poppins repli", system-ui, sans-serif;
  --iw-police-code: "IBM Plex Mono", ui-monospace, "Consolas", monospace;
  /* tailles : du mobile (390 px) au bureau (1440 px) */
  --iw-t-geant: clamp(2.25rem, 1.35rem + 3.8vw, 3.5rem);    /* 36 a 56 px : titre de tete */
  --iw-t-titre: clamp(1.75rem, 1.35rem + 1.7vw, 2.5rem);    /* 28 a 40 px : titre de section */
  --iw-t-sous: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem);     /* 24 a 30 px : intertitre d'article */
  --iw-t-carte: 1.125rem;                                   /* 18 px : titre de carte */
  --iw-t-corps: 1.0625rem;                                  /* 17 px : texte d'article */
  --iw-t-petit: 0.875rem;                                   /* 14 px */
  --iw-t-mini: 0.8125rem;                                   /* 13 px */
  /* mise en page */
  --iw-largeur: 1180px;
  --iw-largeur-texte: 720px;
  --iw-largeur-tete: 860px;
  --iw-gouttiere: 24px;
  --iw-rayon: 18px;
  --iw-rayon-grand: 24px;
  --iw-trait: 2px solid var(--iw-encre);
  /* mouvement : une seule courbe (C-Regles) */
  --iw-courbe: cubic-bezier(.2, .8, .2, 1);
}

/* -- Base --------------------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.iw-page { margin: 0; background: var(--iw-blanc); color: var(--iw-encre); font-family: var(--iw-police);
  font-size: 1rem; line-height: 1.6; }
/* :where() : specificite d'un simple element, pour que les regles du contenu ISO (style.css) l'emportent */
:where(.iw-page) a { color: var(--iw-encre); }
:where(.iw-page) a:hover { color: var(--iw-vert-fonce); }
.iw-page :focus-visible { outline: 3px solid var(--iw-vert-fonce); outline-offset: 2px; }
:where(.iw-page) img { max-width: 100%; height: auto; }
.iw-masque { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.iw-evitement { position: absolute; left: 12px; top: -60px; z-index: 10; padding: 10px 18px; border-radius: 999px;
  background: var(--iw-encre); color: var(--iw-blanc); font-weight: 700; text-decoration: none; }
.iw-evitement:focus { top: 12px; color: var(--iw-blanc); }
.iw-conteneur { max-width: var(--iw-largeur); margin: 0 auto; padding: 0 var(--iw-gouttiere); }
.iw-conteneur--tete { max-width: var(--iw-largeur-tete); }
.iw-conteneur--texte { max-width: var(--iw-largeur-texte); }

/* -- Boutons et pastilles ---------------------------------------------------------------------- */
.iw-bouton { display: inline-flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 22px;
  border-radius: 999px; border: 2px solid transparent; font-weight: 700; font-size: 0.9375rem; text-decoration: none; }
.iw-page .iw-bouton--encre { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-page .iw-bouton--vert { background: var(--iw-vert); color: var(--iw-encre); }
.iw-page .iw-bouton--blanc { background: var(--iw-blanc); color: var(--iw-encre); }
.iw-page .iw-bouton--contour { border-color: var(--iw-vert); color: var(--iw-blanc); }
.iw-bouton--grand { min-height: 52px; padding: 0 26px; }
.iw-rond { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
  border: 1.5px solid var(--iw-bord-fort); }
.iw-pastille { display: inline-block; padding: 5px 14px; border-radius: 999px; font-size: var(--iw-t-mini); font-weight: 600; }
.iw-pastille--encre { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-pastille--vert { background: var(--iw-vert); color: var(--iw-encre); }
.iw-fleche svg { transition: transform .25s var(--iw-courbe); }
.iw-fleche:hover svg, .iw-fleche:focus-visible svg { transform: translateX(5px); }

/* -- Textes communs ----------------------------------------------------------------------------- */
.iw-surtitre { margin: 0; font-size: var(--iw-t-petit); font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--iw-vert-fonce); }
.iw-titre-geant { margin: 0; font-size: var(--iw-t-geant); line-height: 1.08; font-weight: 800; letter-spacing: -0.03em; }
.iw-titre-section { margin: 0; font-size: var(--iw-t-titre); line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
.iw-point { color: var(--iw-vert-moyen); }
.iw-chapo { margin: 0; font-size: 1.125rem; line-height: 1.65; color: var(--iw-texte-doux); max-width: 52ch; }
.iw-meta { font-size: var(--iw-t-petit); color: var(--iw-gris); }
/* surlignage d'un mot cle du titre : fixe (l'animation de background-size des maquettes est abandonnee) */
.iw-surligne { background: var(--iw-vert); padding: 0 0.12em; border-radius: 0.12em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* -- En-tete (reference C-Accueil2) ---------------------------------------------------------------- */
/* La disposition depend de la largeur d'ecran, jamais du retour a la ligne du texte : l'arrivee de la
   police ne la change pas (CLS 0). Large : une rangee ; moyen : la navigation dessous ; petit : le menu. */
.iw-entete { position: relative; border-top: 6px solid var(--iw-vert); border-bottom: 1px solid var(--iw-bord); }
.iw-entete__rangee { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "marque nav actions";
  align-items: center; gap: 16px 24px; padding-top: 20px; padding-bottom: 20px; }
.iw-marque { grid-area: marque; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-width: 0; }
.iw-nav--bureau { grid-area: nav; justify-self: center; }
.iw-nav--bureau .iw-nav__liste { flex-wrap: nowrap; }   /* une rangee : marque 294 + nav 583 + actions 181 px, mesure */
.iw-entete__actions { grid-area: actions; }
.iw-menu { grid-area: menu; }
@media (max-width: 1239px) {
  .iw-entete__rangee { grid-template-columns: 1fr auto; grid-template-areas: "marque actions" "nav nav"; }
  .iw-nav--bureau { justify-self: start; }
  .iw-nav--bureau .iw-nav__liste { flex-wrap: wrap; }
}
@media (max-width: 899px) {
  .iw-entete__rangee { grid-template-areas: "marque marque" "menu actions"; }
}
.iw-marque__lien { display: flex; align-items: center; gap: 12px; text-decoration: none; }
/* tailles des logos en CSS : le build pose width/height d'apres le fichier servi (2x pour les ecrans denses) */
.iw-marque__logo { display: block; width: 44px; height: 44px; border-radius: 10px; }
.iw-marque__par img { display: block; width: 86px; height: auto; }
.iw-marque__nom { margin: 0; font-size: 1.625rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.iw-marque__point { color: var(--iw-vert); }
/* accueil : le H1 porte le nom du site et sa ligne de presentation, en bureau comme en mobile */
.iw-marque__ligne { display: block; max-width: 30ch; margin-top: 6px; font-size: var(--iw-t-mini); font-weight: 400;
  color: var(--iw-gris); letter-spacing: 0; line-height: 1.3; }
.iw-page .iw-marque__par { display: inline-flex; align-items: center; gap: 8px; font-size: var(--iw-t-mini);
  color: var(--iw-gris); text-decoration: none; }
.iw-nav__liste { display: flex; flex-wrap: wrap; gap: 6px 22px; list-style: none; margin: 0; padding: 0;
  font-size: 0.9375rem; font-weight: 600; white-space: nowrap; }
.iw-nav__liste a { text-decoration: none; }
.iw-nav__liste .iw-nav__fort { font-weight: 800; }
.iw-entete__actions { display: flex; align-items: center; gap: 12px; }
/* menu mobile : <details>, zero JS. Bureau : la navigation en ligne ; mobile : le menu repliable. */
.iw-menu { display: none; }
.iw-menu > summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px;
  border-radius: 999px; border: 1.5px solid var(--iw-bord-fort); font-weight: 700; cursor: pointer; list-style: none; }
.iw-menu > summary::-webkit-details-marker { display: none; }
.iw-menu[open] > summary { background: var(--iw-encre); color: var(--iw-blanc); border-color: var(--iw-encre); }
/* le panneau ouvert passe par-dessus le contenu : rien ne se decale sous l'en-tete */
.iw-menu > nav { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; padding: 4px var(--iw-gouttiere) 16px;
  background: var(--iw-blanc); border-bottom: 1px solid var(--iw-bord); }
.iw-menu .iw-nav__liste { flex-direction: column; gap: 0; font-size: 1.0625rem; }
.iw-menu .iw-nav__liste a { display: block; padding: 12px 4px; border-bottom: 1px solid var(--iw-bord); }
/* recherche : <details> comme le menu (meme name : un seul ouvert), formulaire GET vers /?s= */
.iw-recherche > summary { cursor: pointer; list-style: none; }
.iw-recherche > summary::-webkit-details-marker { display: none; }
.iw-recherche[open] > summary { background: var(--iw-encre); color: var(--iw-blanc); border-color: var(--iw-encre); }
.iw-recherche__panneau { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; display: flex; justify-content: center;
  gap: 12px; padding: 12px var(--iw-gouttiere) 16px; background: var(--iw-blanc); border-bottom: 1px solid var(--iw-bord); }
.iw-recherche__champ { flex: 0 1 420px; min-width: 0; min-height: 46px; padding: 0 18px; border: 1.5px solid var(--iw-bord-fort);
  border-radius: 999px; background: var(--iw-blanc); color: var(--iw-encre); font: inherit; }
@media (max-width: 899px) {
  .iw-nav--bureau { display: none; }
  .iw-menu { display: block; justify-self: start; }
}

/* -- Fil d'Ariane ---------------------------------------------------------------------------------- */
.iw-fil { font-family: var(--iw-police); }
.iw-fil ol { display: flex; flex-wrap: wrap; gap: 4px 8px; list-style: none; margin: 0; padding: 0;
  font-size: var(--iw-t-petit); color: var(--iw-gris); }
.iw-fil li + li::before { content: "\203A"; margin-right: 8px; }
.iw-page .iw-fil a { color: var(--iw-gris); text-decoration: underline; }

/* -- Tetes de page ------------------------------------------------------------------------------- */
.iw-tete { background: var(--iw-vert-pale); overflow: hidden; }
.iw-tete__rangee { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 48px; padding-top: 56px; padding-bottom: 64px; }
.iw-tete__texte { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.iw-tete__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 4px; }
.iw-tete--centree .iw-tete__texte { align-items: center; text-align: center; }
/* portrait sur la forme verte (accueil, auteur) */
.iw-portrait { flex: 1 1 320px; min-width: 0; display: flex; justify-content: center; }
.iw-portrait__cadre { position: relative; width: 360px; max-width: 100%; aspect-ratio: 1 / 1; }
.iw-forme { position: absolute; inset: 6% 0 0 8%; background: var(--iw-vert);
  border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.iw-orbite { position: absolute; inset: 0 10% 8% 0; border: var(--iw-trait); border-radius: 50%; }
.iw-orbite::before { content: ""; position: absolute; left: 50%; top: -7px; width: 12px; height: 12px; margin-left: -6px;
  border-radius: 50%; background: var(--iw-encre); }
.iw-portrait__photo { position: absolute; left: 12%; bottom: 0; width: 76%; height: 100%; object-fit: cover;
  object-position: 50% 8%; border-radius: 0 0 46% 46% / 0 0 30% 30%; mix-blend-mode: multiply; }
.iw-portrait__legende { position: absolute; right: -4px; bottom: 18px; margin: 0; padding: 10px 14px; border-radius: 14px;
  background: var(--iw-encre); color: var(--iw-blanc); font-size: var(--iw-t-mini); line-height: 1.35; font-weight: 600; }
.iw-portrait__legende span { color: var(--iw-vert); }

/* -- Sections ------------------------------------------------------------------------------------ */
.iw-section { padding-top: 56px; padding-bottom: 16px; }
.iw-section__entete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px;
  margin-bottom: 26px; }
.iw-bande { padding-top: 56px; padding-bottom: 56px; }
.iw-bande--sombre { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-bande--sombre .iw-surtitre, .iw-bande--sombre .iw-carte__surtitre { color: var(--iw-vert); }
.iw-bande--sombre p { color: var(--iw-gris-clair); }
.iw-page .iw-bande--sombre a { color: var(--iw-blanc); }
.iw-bande--vert { background: var(--iw-vert); color: var(--iw-encre); }
.iw-bande--vert .iw-surtitre { color: var(--iw-encre); }
.iw-colonnes { display: flex; flex-wrap: wrap; gap: 48px; }
.iw-colonnes__principale { flex: 999 1 560px; min-width: 0; }
.iw-colonnes__laterale { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.iw-encart { padding: 28px; border-radius: 22px; background: var(--iw-encre); color: var(--iw-blanc);
  display: flex; flex-direction: column; gap: 12px; }
.iw-encart p { margin: 0; color: var(--iw-gris-clair); }
.iw-encart .iw-surtitre { color: var(--iw-vert); }

/* -- Cartes -------------------------------------------------------------------------------------- */
.iw-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 26px; }
.iw-cartes--larges { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 28px 24px; }
.iw-carte { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 12px; text-decoration: none; }
/* min-height 0 : sans lui, la boite a aspect-ratio grandit jusqu'a la hauteur de l'image */
.iw-carte__visuel { position: relative; display: block; aspect-ratio: 2 / 1; min-height: 0; border-radius: var(--iw-rayon);
  border: var(--iw-trait); transition: transform .25s var(--iw-courbe); }
/* ombre decalee au survol (6 px sous le visuel souleve de 4 px) : posee d'avance derriere la carte et
   revelee par l'opacite, sans animer box-shadow */
.iw-carte::before { content: ""; position: absolute; left: 0; top: 0; z-index: -1; width: 100%; aspect-ratio: 2 / 1;
  border-radius: var(--iw-rayon); background: var(--iw-encre); transform: translate(2px, 2px); opacity: 0;
  transition: opacity .25s var(--iw-courbe); }
.iw-carte:hover .iw-carte__visuel, .iw-carte:focus-visible .iw-carte__visuel { transform: translate(-4px, -4px); }
.iw-carte:hover::before, .iw-carte:focus-visible::before { opacity: 1; }
.iw-carte__cadre { display: block; width: 100%; height: 100%; border-radius: calc(var(--iw-rayon) - 2px); overflow: hidden; }
.iw-carte__visuel--typo { display: flex; flex-direction: column; justify-content: flex-end; padding: 16px 18px;
  background: var(--iw-encre); color: var(--iw-blanc); }
.iw-carte__visuel--vert { display: flex; flex-direction: column; justify-content: flex-end; padding: 16px 18px;
  background: var(--iw-vert); }
.iw-carte__mots { font-size: 1.75rem; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.iw-carte__visuel--typo .iw-carte__mots span { color: var(--iw-vert); }
.iw-carte__rang { position: absolute; left: 10px; top: 10px; z-index: 1; padding: 3px 9px; border-radius: 999px;
  background: var(--iw-encre); color: var(--iw-blanc); font-size: 0.75rem; font-weight: 700; }
.iw-carte__visuel--typo .iw-carte__rang { background: var(--iw-vert); color: var(--iw-encre); }
.iw-carte__surtitre { font-size: var(--iw-t-mini); font-weight: 700; color: var(--iw-vert-fonce); }
.iw-carte__titre { font-size: var(--iw-t-carte); font-weight: 600; line-height: 1.35; }
.iw-carte__meta { font-size: var(--iw-t-petit); color: var(--iw-gris); }
.iw-bande--sombre .iw-carte { color: var(--iw-blanc); }
.iw-bande--sombre .iw-carte__visuel { border-color: transparent; }

/* -- Bichromie des images d'archive (C-Accueil2:115, :294) : niveaux de gris multiplies sur le vert ;
      la couleur revient au survol, sans animer le filtre (seul le zoom est anime) ------------------ */
.iw-une { display: block; background: var(--iw-vert); overflow: hidden; }
.iw-une img { display: block; width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(1) contrast(1.15); mix-blend-mode: multiply; transition: transform .6s var(--iw-courbe); }
.iw-carte:hover .iw-une img, .iw-carte:focus-visible .iw-une img, a.iw-une:hover img, a.iw-une:focus-visible img {
  filter: none; mix-blend-mode: normal; transform: scale(1.04); }

/* -- Listes (actus) ------------------------------------------------------------------------------- */
.iw-liste { list-style: none; margin: 0; padding: 0; }
.iw-liste__item { display: flex; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--iw-bord); }
.iw-liste__item:last-child { border-bottom: 0; }
.iw-vignette { flex: 0 0 120px; height: 60px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  font-size: 1.625rem; font-weight: 800; letter-spacing: -0.03em; overflow: hidden; background: var(--iw-vert); }
.iw-vignette--encre { background: var(--iw-encre); color: var(--iw-vert); font-size: var(--iw-t-mini); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em; }
.iw-liste__texte { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.iw-liste__titre { font-size: 1.1875rem; font-weight: 600; line-height: 1.35; text-decoration: none; }

/* -- Defile du labo : translateX seulement ; les doublons portent aria-hidden ---------------------- */
.iw-defile { overflow: hidden; border-top: var(--iw-trait); border-bottom: var(--iw-trait); padding: 14px 0; }
.iw-defile__piste { display: flex; gap: 12px; width: max-content; list-style: none; margin: 0; padding: 0;
  animation: iw-defile 28s linear infinite; }
.iw-defile:hover .iw-defile__piste { animation-play-state: paused; }
.iw-defile__item { padding: 10px 18px; border-radius: 14px; border: var(--iw-trait); font-size: 0.9375rem; font-weight: 600;
  white-space: nowrap; }
.iw-defile__item--encre { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-defile__item--blanc { background: var(--iw-blanc); border-color: var(--iw-blanc); }

/* -- Pied de page --------------------------------------------------------------------------------- */
.iw-pied { background: var(--iw-nuit); color: var(--iw-gris-clair); }
.iw-pied__rangee { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px;
  padding-top: 36px; padding-bottom: 36px; font-size: var(--iw-t-petit); }
.iw-pied__marque { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.iw-pied__nom { font-size: 1.125rem; font-weight: 700; color: var(--iw-blanc); }
.iw-pied__logo { width: 32px; height: 32px; border-radius: 8px; }
.iw-page .iw-pied .iw-pied__koeki { color: var(--iw-blanc); font-weight: 600; }
.iw-pied__liens { display: flex; flex-wrap: wrap; gap: 8px 22px; list-style: none; margin: 0; padding: 0; }
.iw-page .iw-pied a { color: var(--iw-gris-clair); }
.iw-page .iw-pied a:hover { color: var(--iw-blanc); }

/* -- Article -------------------------------------------------------------------------------------- */
.iw-signature { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 16px;
  font-size: 0.9375rem; color: var(--iw-texte-doux); }
.iw-signature__photo { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: 50% 12%;
  background: var(--iw-blanc); border: 2px solid var(--iw-vert); }
.iw-une-article { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover;
  border-radius: var(--iw-rayon-grand); border: var(--iw-trait); }   /* en couleurs, jamais en bichromie */
.iw-avertissement { margin: 0 0 28px; padding: 18px 22px; border-radius: var(--iw-rayon); background: var(--iw-encre);
  color: var(--iw-blanc); font-size: 0.9375rem; line-height: 1.6; }
.iw-avertissement strong { color: var(--iw-vert); }
.iw-mentions .iw-article { padding-top: 0; }
.iw-article { font-size: var(--iw-t-corps); line-height: 1.8; color: var(--iw-texte); padding-top: 40px; }
.iw-article p, .iw-article ul, .iw-article ol, .iw-article figure, .iw-article table, .iw-article blockquote { margin: 0 0 24px; }
.iw-article h2 { margin: 48px 0 18px; padding-bottom: 8px; display: inline-block; border-bottom: 6px solid var(--iw-vert);
  font-size: var(--iw-t-sous); line-height: 1.25; font-weight: 800; letter-spacing: -0.01em; color: var(--iw-encre); }
.iw-article h3 { margin: 36px 0 12px; font-size: 1.375rem; line-height: 1.3; font-weight: 700; color: var(--iw-encre); }
.iw-article h4 { margin: 28px 0 10px; font-size: 1.125rem; font-weight: 700; color: var(--iw-encre); }
.iw-article figcaption, .iw-article .wp-caption-text { margin-top: 8px; font-size: var(--iw-t-petit); color: var(--iw-gris); line-height: 1.5; }
.iw-article img { border-radius: 12px; }
.iw-article .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.iw-article .alignleft { float: left; margin: 6px 24px 12px 0; }
.iw-article .alignright { float: right; margin: 6px 0 12px 24px; }
.iw-article blockquote { padding: 4px 0 4px 22px; border-left: 6px solid var(--iw-vert); color: var(--iw-texte-doux); }
.iw-article blockquote.text-big { font-size: 1.1875rem; }
.iw-article code { font-family: var(--iw-police-code); font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px;
  border-radius: 6px; word-break: break-word; }
.iw-article pre { font-family: var(--iw-police-code); font-size: 0.84375rem; line-height: 1.65; background: var(--iw-encre);
  color: var(--iw-code); padding: 20px 22px; border-radius: var(--iw-rayon); overflow-x: auto; }
.iw-article pre code { background: none; padding: 0; color: inherit; font-size: inherit; }
.iw-article mark { background: var(--iw-vert-surligne); color: inherit; padding: 0 2px; }
.iw-article table { width: 100%; border-collapse: collapse; font-size: var(--iw-t-petit); line-height: 1.5; }
.iw-article th, .iw-article td { padding: 12px 16px; border-bottom: 1px solid var(--iw-bord); text-align: left; vertical-align: top; }
.iw-tableau-cadre { overflow-x: auto; }
/* bouton d'epoque des billets (a.sc-button de SmartMag, lot The7) */
.iw-article .sc-button { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px;
  background: var(--iw-encre); color: var(--iw-blanc); font-weight: 700; text-decoration: none; }
.iw-article .sc-button:hover { background: var(--iw-vert); color: var(--iw-encre); }

/* -- Emplacements publicitaires : vides, fond neutre, mention « Publicite », dimensions fixes par point
      de rupture (CLS 0). Aucun script en V1. ------------------------------------------------------- */
.iw-pub { position: relative; display: block; margin: 36px auto; background: var(--iw-neutre); border-radius: 14px;
  overflow: hidden; }
.iw-pub__mention { position: absolute; left: 12px; top: 8px; font-size: 0.6875rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--iw-gris); }
.iw-pub--pave { width: 300px; height: 250px; }                 /* colonne, et partout sur mobile */
.iw-pub--article { width: 300px; height: 250px; }              /* dans le texte : 300 x 250 sous 400 px... */
@media (min-width: 400px) { .iw-pub--article { width: 336px; height: 280px; } }   /* ... 336 x 280 au-dessus */
.iw-colonnes__laterale .iw-pub { margin: 0; }

/* -- Apparition au defilement : opacite et translation, seulement ou c'est pris en charge ; sinon tout
      est affiche d'emblee (C-Regles:154) ------------------------------------------------------------ */
/* jamais au premier ecran (en-tete, H1, premiere rangee, image LCP) : la classe ne s'y pose pas */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .iw-apparait { animation: iw-apparait linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  }
}

/* -- Animations ------------------------------------------------------------------------------------ */
/* la forme verte : la seule animation permanente du site (C-Regles:112), sa forme comprise (C-Regles:163) */
.iw-forme { animation: iw-forme 14s ease-in-out infinite; }
.iw-orbite { animation: iw-orbite 36s linear infinite; }
@keyframes iw-forme {
  0%, 100% { border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; transform: rotate(0); }
  33% { border-radius: 44% 56% 40% 60% / 58% 42% 58% 42%; transform: rotate(5deg); }
  66% { border-radius: 52% 48% 62% 38% / 40% 60% 46% 54%; transform: rotate(-4deg); }
}
@keyframes iw-orbite { to { transform: rotate(360deg); } }
@keyframes iw-defile { to { transform: translateX(-50%); } }
@keyframes iw-apparait { from { opacity: 0.2; transform: translateY(32px); } to { opacity: 1; transform: none; } }

/* -- Accueil (lot V1.4, C-Accueil2 et C-Mobile) ------------------------------------------------- */
.iw-cartes { list-style: none; margin: 0; padding: 0; }
.iw-lien-fort { font-size: 0.9375rem; font-weight: 600; }
.iw-encart__titre { margin: 0; font-size: 1.625rem; font-weight: 700; line-height: 1.2; }
.iw-encart__bouton { align-self: flex-start; }
.iw-colonnes__laterale .iw-pub { align-self: center; }
.iw-bande--sombre .iw-carte__meta { color: var(--iw-gris-clair); }
.iw-archives__entete { align-items: flex-end; margin-bottom: 28px; }
.iw-archives__texte { display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.iw-archives__texte p { margin: 0; }
.iw-chiffres { display: flex; flex-wrap: wrap; gap: 12px 36px; list-style: none; margin: 0; padding: 0; }
.iw-chiffres li { display: flex; flex-direction: column; }
.iw-chiffres__nombre { font-size: 2.75rem; font-weight: 800; line-height: 1; color: var(--iw-vert); }
.iw-chiffres__libelle { font-size: var(--iw-t-mini); color: var(--iw-gris-clair); }
.iw-appel { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px;
  padding-bottom: 60px; }
.iw-appel__texte { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.iw-appel__surtitre { display: flex; align-items: center; gap: 10px; }
.iw-appel__surtitre img { width: 86px; height: auto; }
.iw-mentions { margin-top: 28px; }
/* mobile (C-Mobile) : tete resserree, portrait de 84 px avec sa legende a cote, trois « plus lus » en
   liste numerotee, la publicite avant l'encart */
@media (max-width: 599px) {
  .iw-tete__rangee { gap: 20px; padding-top: 32px; padding-bottom: 36px; }
  .iw-portrait { justify-content: flex-start; }
  .iw-portrait__cadre { width: 84px; }
  .iw-orbite { display: none; }
  .iw-portrait__legende { left: 100%; right: auto; top: 50%; bottom: auto; margin-left: 14px; padding: 0;
    transform: translateY(-50%); white-space: nowrap; background: none; color: var(--iw-encre); font-size: var(--iw-t-petit); }
  .iw-portrait__legende span { color: var(--iw-gris); }
  .iw-pluslus { grid-template-columns: 1fr; gap: 12px; }
  .iw-pluslus > li:nth-child(n+4) { display: none; }
  .iw-pluslus .iw-carte { display: grid; grid-template-columns: 64px 1fr; column-gap: 14px; row-gap: 2px; align-items: center; }
  .iw-pluslus .iw-carte::before, .iw-pluslus .iw-carte__cadre, .iw-pluslus .iw-carte__mots,
  .iw-pluslus .iw-carte__surtitre { display: none; }
  .iw-pluslus .iw-carte__visuel { grid-row: span 2; display: flex; align-items: center; justify-content: center;
    width: 64px; height: 64px; aspect-ratio: auto; padding: 0; border: 0; border-radius: 16px; background: var(--iw-vert);
    color: var(--iw-encre); }
  .iw-pluslus > li:nth-child(even) .iw-carte__visuel { background: var(--iw-encre); color: var(--iw-vert); }
  .iw-pluslus .iw-carte__rang { position: static; padding: 0; background: none; color: inherit; font-size: 1.375rem; font-weight: 800; }
  .iw-pluslus .iw-carte__titre { font-size: 1rem; }
  .iw-colonnes--pub .iw-colonnes__laterale { order: -1; }
}

/* -- Article d'archive (lot V1.5, C-Article) ------------------------------------------------------ */
.iw-tete--article .iw-tete__rangee { padding-top: 48px; padding-bottom: 56px; }
.iw-tete--article .iw-tete__texte { gap: 18px; }
.iw-pastilles { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.iw-titre-article { margin: 0; font-size: var(--iw-t-geant); line-height: 1.08; font-weight: 800; letter-spacing: -0.03em; }
.iw-tete--article .iw-signature { margin: 0; }
.iw-une-cadre { margin-top: -10px; }
/* l'emporte sur la taille d'epoque idw__t-LxH que le texte d'origine peut lui donner (style.css) */
.iw-une-cadre .iw-une-article { width: 100%; aspect-ratio: 2 / 1; }
/* le texte d'epoque sous la typographie du socle : ce que style.css faisait pour .idw__texte */
.iw-article a { color: var(--iw-vert-fonce); }
.iw-article a:hover { color: var(--iw-encre); }
.iw-article::after { content: ""; display: table; clear: both; }
.iw-article .wp-caption { max-width: 100%; }
.iw-article .dt-before-after img { display: block; margin-bottom: 7px; }
.iw-article img[class*="idw__t-"] { max-width: 100%; height: auto; object-fit: cover; }
.iw-page .iw-bouton--trait { border-color: var(--iw-encre); color: var(--iw-encre); }
.iw-bouton--petit { min-height: 44px; padding: 0 18px; font-size: var(--iw-t-petit); font-weight: 600; }
.iw-partage { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 44px 0 0; }
.iw-partage__titre { margin-right: 6px; font-size: 0.9375rem; font-weight: 700; }
.iw-voisins { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.iw-voisin { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; border-radius: var(--iw-rayon);
  border: 1.5px solid var(--iw-bord-fort); text-decoration: none; }
.iw-voisin--suiv { text-align: right; }
.iw-voisin__sens { font-size: var(--iw-t-mini); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert-fonce); }
.iw-voisin__titre { font-weight: 600; line-height: 1.35; }
.iw-auteur { max-width: 1000px; margin-top: 64px; }
.iw-auteur__boite { display: flex; flex-wrap: wrap; align-items: center; gap: 32px 48px; padding: 40px; border-radius: 28px;
  background: var(--iw-vert); }
.iw-auteur__portrait { flex: 1 1 200px; display: flex; justify-content: center; }
.iw-auteur__cadre { position: relative; width: 200px; height: 200px; }
.iw-auteur__forme { position: absolute; inset: 8% 0 0 6%; background: var(--iw-blanc);
  border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.iw-auteur__photo { position: absolute; left: 10%; bottom: 0; width: 78%; height: 100%; object-fit: cover; object-position: 50% 8%;
  border-radius: 0 0 46% 46% / 0 0 30% 30%; }
.iw-auteur__avatar { width: 100px; height: 100px; border-radius: 50%; }
.iw-auteur__texte { flex: 999 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.iw-auteur__texte p { margin: 0; line-height: 1.7; }
.iw-auteur__role { font-size: var(--iw-t-mini); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.iw-auteur__nom { margin: 0; font-size: 2.125rem; font-weight: 800; letter-spacing: -0.02em; }
.iw-auteur__texte .iw-auteur__liens { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.iw-commentaires { padding-top: 48px; padding-bottom: 72px; }
.iw-commentaires__tete { display: flex; flex-direction: column; gap: 4px; margin-bottom: 28px; padding: 26px 28px; border-radius: 22px;
  border: var(--iw-trait); }
.iw-commentaires__titre { margin: 0; font-size: 1.5rem; font-weight: 800; }
.iw-commentaires__tete p { margin: 0; font-size: 0.9375rem; color: var(--iw-gris); }
.iw-commentaires ol, .iw-commentaires ul { list-style: none; margin: 0; padding: 0; }
@media (max-width: 599px) {
  .iw-tete--article .iw-tete__rangee { padding-top: 32px; padding-bottom: 40px; }
  .iw-auteur__boite { padding: 28px; }
  .iw-voisin--suiv { text-align: left; }
}

/* -- Listes, recherche, 404 (lot V1.6, C-Rubrique, C-Recherche, C-404) ----------------------------- */
.iw-tete--liste .iw-tete__rangee { padding-top: 40px; padding-bottom: 48px; }
.iw-tete--liste .iw-pastilles { justify-content: flex-start; }
.iw-description p { margin: 0 0 12px; }
.iw-description p:last-child { margin-bottom: 0; }
.iw-description a { color: var(--iw-vert-fonce); }
.iw-liste-cartes .iw-pub { margin: 40px auto; }
.iw-vide { margin: 0; padding: 24px 28px; border-radius: var(--iw-rayon); background: var(--iw-neutre); }
.iw-recherche-page { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; max-width: 560px; }
.iw-recherche-page .iw-recherche__champ { flex: 1 1 240px; }
.iw-tete--centree .iw-recherche-page { justify-content: center; }
.iw-erreur-code { margin: 0; font-size: clamp(4.5rem, 3rem + 6vw, 7.5rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em;
  color: var(--iw-vert-moyen); }
.iw-erreur-titre { margin: 12px 0 0; font-size: 1.125rem; font-weight: 700; }
.iw-erreur-rubriques { justify-content: center; }
/* texte justifie par le style d'origine (attribut du texte stocke, intact) : a gauche sur petit ecran */
@media (max-width: 599px) {
  .iw-article [style*="justify"] { text-align: left !important; }
}

/* -- Reduire les animations : tout s'arrete, tout reste affiche ------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .iw-forme, .iw-orbite, .iw-defile__piste, .iw-apparait { animation: none !important; }
  .iw-carte__visuel, .iw-carte::before, .iw-une img, .iw-fleche svg { transition: none !important; }
  .iw-defile__piste { width: auto; flex-wrap: wrap; }
  .iw-defile__item[aria-hidden="true"] { display: none; }
}
