/* GENERE par scripts/insidedaweb_maquettes.py depuis design-finale : ne pas editer.
   Pages de la nouvelle version tirees des planches (lots V1.7, V1.8) : une classe par style
   inline distinct, couleurs en jetons (socle.css, sinon ci-dessous), grands corps en clamp(). */
:root {
  --iw-m-2b3024: #2b3024;
  --iw-m-3a4031: #3a4031;
  --iw-m-6b7260: #6b7260;
  --iw-m-9fbf6e: #9fbf6e;
  --iw-m-c9d4b8: #c9d4b8;
  --iw-m-e2f5c4: #e2f5c4;
  --iw-m-fafdf5: #fafdf5;
}
.iw-m--c-404 a { color: var(--iw-encre); }
.iw-m--c-404 a:hover { color: var(--iw-vert-fonce); }
.iw-m--c-auteur a { color: var(--iw-encre); }
.iw-m--c-auteur a:hover { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre2 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre2 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre2 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre2 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre3 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre3 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre3 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre3 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre4 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre4 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre4 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre4 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre5 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre5 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre5 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre5 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre6 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre6 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre6 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre6 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre7 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre7 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre7 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre7 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-chapitre8 a { color: var(--iw-vert-fonce); }
.iw-m--c-chapitre8 a:hover { color: var(--iw-encre); }
.iw-m--c-chapitre8 code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-chapitre8 pre { font-family: 'IBM Plex Mono',monospace; font-size: 13.5px; line-height: 1.65; background: var(--iw-encre); color: var(--iw-code); padding: 20px 22px; border-radius: 18px; overflow-x: auto; margin: 0; }
.iw-m--c-dossier a { color: var(--iw-vert-fonce); }
.iw-m--c-dossier a:hover { color: var(--iw-encre); }
.iw-m--c-dossier code { font-family: 'IBM Plex Mono',monospace; font-size: 0.86em; background: var(--iw-vert-voile); padding: 2px 6px; border-radius: 6px; word-break: break-word; }
.iw-m--c-dossiers a { color: var(--iw-encre); }
.iw-m--c-dossiers a:hover { color: var(--iw-vert-fonce); }
.iw-m--c-labo a { color: var(--iw-encre); }
.iw-m--c-labo a:hover { color: var(--iw-vert-fonce); }
.iw-m--c-sommaire a { color: var(--iw-encre); }
.iw-m--c-sommaire a:hover { color: var(--iw-vert-fonce); }
.iw-m .m-008ebdf { font-weight: 700; color: var(--iw-encre); }
.iw-m .m-015defc { padding: 12px 14px; border-top: 1px solid var(--iw-bord); color: var(--iw-texte-doux); }
.iw-m .m-017e447 { background: rgba(255,255,255,0.55); }
.iw-m .m-0360baf { border-radius: 20px; overflow: hidden; border: 2px solid var(--iw-encre); }
.iw-m .m-03757e2 { margin: 0; align-self: flex-start; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--iw-blanc); background: var(--iw-encre); padding: 7px 14px; border-radius: 999px; }
.iw-m .m-038a53b { font-size: 14px; color: var(--iw-gris); }
.iw-m .m-068b02c { padding: 18px 22px; border-radius: 16px; background: var(--iw-encre); color: var(--iw-blanc); margin-bottom: 24px; font-size: 15px; line-height: 1.6; }
.iw-m .m-06ae85c { position: absolute; inset: 6% 0 0 8%; background: var(--iw-vert); border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.iw-m .m-07bfd4f { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 22px; border: 2px dashed var(--iw-m-9fbf6e); background: var(--iw-m-fafdf5); }
.iw-m .m-08459fd { margin: 0; color: var(--iw-gris-clair); }
.iw-m .m-086a82d { margin: 0 0 44px; }
.iw-m .m-093291d { color: var(--iw-vert); }
.iw-m .m-09bfc4e { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.iw-m .m-09e5fe7 { font-size: 20px; font-weight: 800; }
.iw-m .m-0aeea61 { font-size: 22px; font-weight: 800; line-height: 1.25; }
.iw-m .m-0bb629b { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.iw-m .m-0becf3d { flex: 1 1 300px; min-width: 0; padding: 30px; background: var(--iw-vert); display: flex; flex-direction: column; justify-content: center; gap: 8px; font-size: 15px; font-weight: 600; }
.iw-m .m-0c3ff17 { font-size: clamp(31px, 4.062vw, 52px); line-height: 0.95; font-weight: 800; letter-spacing: -0.05em; }
.iw-m .m-0d39edc { margin: 0; font-size: 17px; line-height: 1.6; }
.iw-m .m-0e49159 { margin: 0 0 14px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert); }
.iw-m .m-0e69809 { margin: -26px 0 44px; font-size: 14px; color: var(--iw-gris); }
.iw-m .m-0f22043 { margin: 0 0 22px; }
.iw-m .m-0f5c849 { margin-top: 10px; font-size: 14px; color: var(--iw-gris); }
.iw-m .m-0faccf9 { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.iw-m .m-100d398 { margin: 0; font-size: clamp(23px, 2.969vw, 38px); line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; color: var(--iw-blanc); }
.iw-m .m-10179d5 { padding: 22px; border-radius: 20px; background: var(--iw-m-e2f5c4); }
.iw-m .m-1060f61 { margin: 0 0 40px; }
.iw-m .m-116087a { margin: 0 0 20px; font-size: clamp(19px, 2.500vw, 32px); font-weight: 800; letter-spacing: -0.02em; }
.iw-m .m-118dd4c { padding: 10px 18px; border-radius: 14px; background: var(--iw-blanc); font-size: 15px; font-weight: 600; white-space: nowrap; }
.iw-m .m-122b766 { width: 12px; height: 12px; border-radius: 50%; background: var(--iw-vert); }
.iw-m .m-135b34f { margin: 0 0 8px; font-size: clamp(24px, 3.125vw, 40px); font-weight: 800; line-height: 1; }
.iw-m .m-1366d4a { max-width: 1180px; margin: 0 auto; padding: 56px 24px 8px; }
.iw-m .m-13fdedd { 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-m .m-1415c9c { flex: 1 1 300px; min-width: 0; padding: 26px; border-radius: 22px; background: var(--iw-vert-pale); border: 2px solid var(--iw-vert); display: flex; flex-direction: column; gap: 10px; }
.iw-m .m-151119e { margin: 0; max-width: 680px; font-size: 19px; line-height: 1.6; font-weight: 500; }
.iw-m .m-163fdc9 { text-align: left; padding: 14px 18px; background: var(--iw-vert-pale); width: 40%; }
.iw-m .m-176e31d { max-width: 1180px; margin: 0 auto; padding: 56px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 28px 56px; }
.iw-m .m-1791010 { flex: 1 1 280px; display: flex; justify-content: center; }
.iw-m .m-18bde50 { max-width: 1180px; margin: 0 auto; padding: 40px 24px 24px; display: flex; flex-wrap: wrap; gap: 40px; }
.iw-m .m-1bf01fb { margin: 0; font-size: 15px; line-height: 1.7; }
.iw-m .m-1cb2a56 { width: 100%; height: auto; border-radius: 16px; border: 2px solid var(--iw-encre); display: block; }
.iw-m .m-1cd2eeb { white-space: nowrap; }
.iw-m .m-1d4ba31 { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--iw-vert); }
.iw-m .m-1e0937a { color: var(--iw-gris-clair); }
.iw-m .m-1e13ed2 { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--iw-vert); }
.iw-m .m-2140d3b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.iw-m .m-21a1be8 { font-weight: 600; }
.iw-m .m-2207acd { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.8; color: var(--iw-texte-doux); }
.iw-m .m-25d0ca4 { padding: 24px 26px; border-radius: 20px; background: var(--iw-encre); color: var(--iw-blanc); margin-bottom: 30px; }
.iw-m .m-267f33b { margin: 0; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert-fonce); }
.iw-m .m-28339f8 { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
.iw-m .m-2a0ca83 { margin: 0; }
.iw-m .m-2a0df24 { max-width: 1180px; margin: 0 auto; padding: 48px 24px 24px; }
.iw-m .m-2ad8e46 { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 22px; border: 2px solid var(--iw-encre); text-decoration: none; }
.iw-m .m-2af7543 { position: relative; width: 280px; height: 280px; }
.iw-m .m-2b404c5 { margin: 0; font-size: 18px; line-height: 1.6; color: var(--iw-texte-doux); }
.iw-m .m-2c086ed { display: flex; flex-wrap: wrap; gap: 14px; }
.iw-m .m-2c8c5f8 { margin: 0 0 16px; }
.iw-m .m-2f00f08 { margin: 0; padding-left: 22px; font-size: 15px; line-height: 1.75; color: var(--iw-code); }
.iw-m .m-31670bd { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--iw-vert); color: var(--iw-encre); font-size: 13px; font-weight: 700; }
.iw-m .m-3178440 { flex: 999 1 280px; display: flex; flex-direction: column; gap: 2px; }
.iw-m .m-327c252 { flex: 999 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.iw-m .m-331f92b { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.iw-m .m-342a1f0 { margin: 8px 0 0; font-size: 14px; }
.iw-m .m-3565a8b { padding: 24px; border-radius: 22px; background: var(--iw-m-e2f5c4); }
.iw-m .m-35e6cd6 { padding: 14px 18px; border-radius: 16px; background: var(--iw-blanc); }
.iw-m .m-3672d97 { padding: 24px; border-radius: 22px; background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-36d3626 { max-width: 1180px; margin: 0 auto; padding: 44px 24px 64px; display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.iw-m .m-3853e9c { padding: 22px; border-radius: 20px; background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-385db40 { flex: 1 1 100%; min-width: 0; overflow: hidden; border-top: 2px solid var(--iw-encre); border-bottom: 2px solid var(--iw-encre); padding: 14px 0; }
.iw-m .m-38c87b2 { flex: 999 1 520px; min-width: 0; }
.iw-m .m-3934a11 { padding: 12px 14px; text-align: left; font-size: 13px; font-weight: 700; vertical-align: bottom; }
.iw-m .m-39e9ff9 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: 14px; font-weight: 500; }
.iw-m .m-3a5803f { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; background: var(--iw-vert); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-3af5b69 { padding: 18px 0; }
.iw-m .m-3bef70e { padding: 12px 14px; border-top: 1px solid var(--iw-bord); text-align: left; font-weight: 600; }
.iw-m .m-3db0c74 { position: absolute; inset: 8% 0 0 6%; background: var(--iw-vert); border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.iw-m .m-3f6b525 { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.iw-m .m-4032a16 { align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: var(--iw-vert); font-size: 12px; font-weight: 700; }
.iw-m .m-4050879 { margin-top: 8px; font-size: 14px; color: var(--iw-gris); }
.iw-m .m-442e685 { display: flex; align-items: center; gap: 14px; }
.iw-m .m-4434234 { text-align: left; padding: 14px 14px 4px; font-size: 14px; font-weight: 700; color: var(--iw-encre); }
.iw-m .m-458f67b { margin: 0; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert-fonce); }
.iw-m .m-483e975 { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--iw-vert); color: var(--iw-encre); font-size: 13px; font-weight: 700; }
.iw-m .m-48b2744 { margin: 0 0 8px; font-size: clamp(18px, 2.344vw, 30px); font-weight: 800; }
.iw-m .m-4a4ea77 { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--iw-encre); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-4a67310 { flex: 999 1 520px; min-width: 0; padding: 34px; display: flex; flex-direction: column; gap: 12px; background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-4cc44c6 { width: 100%; border-collapse: collapse; font-size: 15px; }
.iw-m .m-4ce2139 { flex: 999 1 640px; min-width: 0; }
.iw-m .m-4d565ad { margin: 0 0 12px; font-size: 22px; font-weight: 800; color: var(--iw-encre); }
.iw-m .m-4e9731d { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.45; }
.iw-m .m-535e49e { background: var(--iw-m-2b3024); color: var(--iw-blanc); }
.iw-m .m-538d479 { margin: 0; font-size: clamp(22px, 2.812vw, 36px); font-weight: 800; line-height: 1; }
.iw-m .m-53e3736 { padding: 22px; border-radius: 20px; background: var(--iw-vert); }
.iw-m .m-5503897 { margin: 0; max-width: 720px; font-size: 18px; line-height: 1.6; font-weight: 500; }
.iw-m .m-551db6c { list-style: none; margin: 0; padding: 0; }
.iw-m .m-55b55ec { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 15px; line-height: 1.45; }
.iw-m .m-56ec813 { border-top: 1px solid var(--iw-bord); }
.iw-m .m-5716111 { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: 999px; background: var(--iw-encre); color: var(--iw-blanc); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-5736e27 { background: var(--iw-vert); }
.iw-m .m-57b42d4 { margin: 0 0 18px; font-size: clamp(20px, 2.656vw, 34px); line-height: 1.15; font-weight: 800; letter-spacing: -0.02em; display: flex; align-items: center; gap: 14px; }
.iw-m .m-57e71bc { margin: 0 0 12px; font-size: 22px; font-weight: 700; }
.iw-m .m-587405c { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--iw-encre); color: var(--iw-encre); text-decoration: none; font-weight: 700; font-size: 14px; }
.iw-m .m-5a3848a { padding: 28px 30px; border-radius: 22px; background: var(--iw-vert-pale); border: 2px solid var(--iw-vert); margin-bottom: 44px; }
.iw-m .m-5a8645b { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: 50% 12%; background: var(--iw-blanc); border: 2px solid var(--iw-encre); }
.iw-m .m-5a93a17 { flex: 999 1 520px; min-width: 0; font-size: 17px; line-height: 1.8; }
.iw-m .m-5ab4b7f { font-weight: 700; font-size: 14px; color: var(--iw-vert-fonce); }
.iw-m .m-5abe140 { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 22px; margin: 0 0 44px; }
.iw-m .m-5c35922 { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--iw-encre); color: var(--iw-blanc); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-5cbc1af { margin: 0 0 14px; font-size: clamp(18px, 2.344vw, 30px); font-weight: 800; }
.iw-m .m-5db75d4 { font-weight: 700; }
.iw-m .m-5e3e229 { flex: 1 1 240px; min-height: 52px; padding: 0 20px; border-radius: 999px; border: 2px solid var(--iw-encre); font: inherit; font-size: 16px; background: var(--iw-blanc); }
.iw-m .m-5ee4051 { color: var(--iw-encre); }
.iw-m .m-5f363b9 { padding: 26px; border-radius: 22px; background: var(--iw-vert-pale); border: 2px solid var(--iw-vert); display: flex; flex-direction: column; gap: 10px; }
.iw-m .m-6274af3 { max-width: 1180px; margin: 0 auto; padding: 48px 24px 52px; display: flex; flex-direction: column; gap: 16px; }
.iw-m .m-62dfb81 { margin: 0; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert); }
.iw-m .m-6446483 { padding: 24px; border-radius: 22px; border: 2px solid var(--iw-encre); }
.iw-m .m-64b4cbb { margin: 8px 0 0; font-size: 15px; color: var(--iw-texte-doux); }
.iw-m .m-650c5d5 { flex: 999 1 600px; min-width: 0; max-width: 760px; font-size: 17px; line-height: 1.8; color: var(--iw-texte); }
.iw-m .m-65532da { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 2px solid var(--iw-encre); text-decoration: none; font-weight: 600; font-size: 14px; }
.iw-m .m-65c79a4 { padding: 14px 18px; border-radius: 16px; background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-68b60e3 { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 50% 12%; background: var(--iw-blanc); border: 3px solid var(--iw-vert); }
.iw-m .m-695b9e6 { font-size: 16px; line-height: 1.6; color: var(--iw-gris-clair); }
.iw-m .m-6aac477 { padding: 4px 10px; border-radius: 999px; background: var(--iw-m-e2f5c4); font-size: 12px; font-weight: 700; }
.iw-m .m-6ae550a { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--iw-gris); }
.iw-m .m-6c923df { padding: 10px 18px; border-radius: 14px; background: var(--iw-encre); color: var(--iw-blanc); font-size: 15px; font-weight: 600; white-space: nowrap; }
.iw-m .m-6d40d97 { margin: 0; font-size: 14px; line-height: 1.7; }
.iw-m .m-7211f19 { padding: 12px 14px; border-top: 1px solid var(--iw-bord); vertical-align: top; }
.iw-m .m-725e744 { max-width: 1180px; margin: 0 auto; padding: 24px 24px 40px; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.iw-m .m-73b3677 { margin: 0; padding: 16px 20px; background: var(--iw-vert); font-size: 18px; font-weight: 800; }
.iw-m .m-77582f9 { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.4; }
.iw-m .m-77b50f5 { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; margin: 0 0 12px; }
.iw-m .m-79bbab5 { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; font-weight: 600; }
.iw-m .m-7abffbc { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.iw-m .m-7bd5f33 { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 8px 0 0; padding: 0; }
.iw-m .m-7c1478a { background: var(--iw-vert-pale); }
.iw-m .m-7c7fec4 { margin: 0; font-size: 18px; font-weight: 800; }
.iw-m .m-7d25ab2 { max-width: 1180px; margin: 0 auto; padding: 60px 24px; display: flex; flex-direction: column; gap: 16px; }
.iw-m .m-7d86bd8 { text-align: left; background: var(--iw-neutre); }
.iw-m .m-7f3db55 { padding: 24px 26px; border-radius: 20px; border: 2px solid var(--iw-encre); margin-bottom: 32px; }
.iw-m .m-7f9d466 { margin: 6px 0 0; font-size: 15px; line-height: 1.6; }
.iw-m .m-8051ba7 { padding: 24px 26px; border-radius: 20px; background: var(--iw-encre); color: var(--iw-blanc); margin-bottom: 44px; }
.iw-m .m-805f1a3 { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; font-size: clamp(66px, 8.594vw, 110px); font-weight: 800; letter-spacing: -0.05em; }
.iw-m .m-80f4e02 { margin: 0; font-weight: 800; font-size: 18px; }
.iw-m .m-81016e4 { max-width: 1180px; margin: 0 auto; padding: 36px 24px 48px; display: flex; flex-direction: column; gap: 18px; }
.iw-m .m-81343e0 { margin: 0; font-size: 15px; line-height: 1.6; }
.iw-m .m-82215aa { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.iw-m .m-8299de4 { margin: 0 0 8px; font-size: clamp(24px, 3.125vw, 40px); font-weight: 800; line-height: 1; color: var(--iw-vert); }
.iw-m .m-842a3b9 { max-width: 1180px; margin: 0 auto; padding: 48px 24px 64px; display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.iw-m .m-8469096 { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.iw-m .m-84a3878 { margin: 0 0 4px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert-fonce); }
.iw-m .m-85318f7 { margin: 0; padding-left: 22px; font-size: 16px; line-height: 1.7; }
.iw-m .m-8542889 { padding: 4px 10px; border-radius: 999px; border: 1px solid var(--iw-m-c9d4b8); font-size: 12px; font-weight: 600; }
.iw-m .m-89e34f2 { max-width: 1180px; margin: 0 auto; padding: 24px 24px 64px; }
.iw-m .m-8a5262f { margin: 0 0 10px; font-size: 20px; font-weight: 800; }
.iw-m .m-8eb7c11 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 24px 26px; border-radius: 20px; background: var(--iw-vert); color: var(--iw-encre); text-decoration: none; }
.iw-m .m-8fdc8e6 { position: absolute; inset: 0; background: var(--iw-vert); border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.iw-m .m-908d394 { font-weight: 800; font-size: 18px; }
.iw-m .m-9098ea7 { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.iw-m .m-90aed82 { padding: 18px 0; border-bottom: 1px solid var(--iw-bord); }
.iw-m .m-9104ee4 { font-size: 14px; color: var(--iw-gris-clair); }
.iw-m .m-92baf66 { margin: 0 0 44px; border-radius: 20px; overflow: hidden; border: 2px solid var(--iw-encre); }
.iw-m .m-92d9306 { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--iw-encre); color: var(--iw-blanc); font-size: 13px; font-weight: 700; }
.iw-m .m-9451727 { font-size: 15px; font-weight: 700; }
.iw-m .m-953c879 { margin: 6px 0 0; font-size: 15px; line-height: 1.6; color: var(--iw-gris-clair); }
.iw-m .m-956a122 { background: var(--iw-vert-pale); overflow: hidden; }
.iw-m .m-963a054 { padding: 30px; border-radius: 24px; background: var(--iw-vert-pale); display: flex; flex-wrap: wrap; align-items: center; gap: 24px 32px; margin-bottom: 32px; }
.iw-m .m-968ca80 { margin: 0; font-size: clamp(22px, 2.812vw, 36px); font-weight: 800; color: var(--iw-vert); line-height: 1; }
.iw-m .m-987eb2a { overflow-x: auto; }
.iw-m .m-9884bb8 { font-weight: 700; color: var(--iw-vert-fonce); }
.iw-m .m-98d1235 { font-size: 14px; font-weight: 500; }
.iw-m .m-9931bfc { font-size: 19px; font-weight: 600; text-decoration: none; }
.iw-m .m-9a676ed { min-width: 52px; height: 52px; border-radius: 14px; background: var(--iw-vert); color: var(--iw-encre); display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 800; }
.iw-m .m-9bfa3c7 { position: relative; width: 340px; max-width: 100%; aspect-ratio: 1 / 1; }
.iw-m .m-9c57184 { padding: 12px 16px; }
.iw-m .m-9d2d687 { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--iw-encre); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-9d30fca { padding: 18px 22px; border-radius: 16px; background: var(--iw-neutre); margin-bottom: 24px; font-size: 15px; line-height: 1.6; }
.iw-m .m-9eab697 { max-width: 1180px; margin: 0 auto; padding: 56px 24px 24px; }
.iw-m .m-9edcebf { margin: 0; padding: 14px 20px; border-top: 1px solid var(--iw-bord); font-size: 14px; line-height: 1.6; color: var(--iw-texte-doux); }
.iw-m .m-a2106d2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 6px; }
.iw-m .m-a2152c7 { margin: 0; font-size: clamp(36px, 4.688vw, 60px); line-height: 1.04; font-weight: 800; letter-spacing: -0.035em; }
.iw-m .m-a3877e1 { flex: 999 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.iw-m .m-a5d7a47 { padding: 26px; border-radius: 22px; border: 2px solid var(--iw-encre); display: flex; flex-direction: column; gap: 10px; }
.iw-m .m-a600141 { color: var(--iw-gris); }
.iw-m .m-a6b5eca { margin: 0; font-size: 22px; font-weight: 800; }
.iw-m .m-a6cdef6 { flex: 999 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.iw-m .m-a97570c { font-size: 15px; color: var(--iw-gris-clair); }
.iw-m .m-ab3407e { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-abc3340 { max-width: 1180px; margin: 0 auto; padding: 52px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
.iw-m .m-ac08b24 { min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0; background: var(--iw-encre); color: var(--iw-blanc); font: inherit; font-weight: 700; cursor: pointer; }
.iw-m .m-acab104 { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.iw-m .m-ad6b5f0 { align-self: flex-start; display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; margin-top: 6px; border-radius: 999px; background: var(--iw-blanc); color: var(--iw-encre); font-weight: 700; font-size: 15px; }
.iw-m .m-ad76954 { color: var(--iw-blanc); text-decoration: none; }
.iw-m .m-adbbcfc { margin: 0; flex: 999 1 460px; font-size: clamp(20px, 2.656vw, 34px); line-height: 1.2; font-weight: 800; }
.iw-m .m-ade0f65 { font-size: 22px; font-weight: 800; }
.iw-m .m-ae46ce4 { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 22px 24px; border-radius: 20px; background: var(--iw-encre); color: var(--iw-blanc); text-decoration: none; }
.iw-m .m-aea80b7 { display: flex; gap: 8px; flex-wrap: wrap; }
.iw-m .m-af1366e { margin: 0; font-size: 17px; font-weight: 700; }
.iw-m .m-b030164 { display: inline-flex; align-items: center; justify-content: center; min-width: 56px; height: 44px; padding: 0 10px; border-radius: 12px; background: var(--iw-vert); font-size: 20px; }
.iw-m .m-b105edd { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; padding: 22px 24px; border-radius: 20px; background: var(--iw-vert); color: var(--iw-encre); text-decoration: none; }
.iw-m .m-b1a9199 { display: block; width: 100%; height: 100%; background: var(--iw-vert); }
.iw-m .m-b2136c8 { padding: 22px; border-radius: 20px; border: 2px solid var(--iw-encre); }
.iw-m .m-b2e4161 { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px; border-radius: 999px; background: var(--iw-vert); color: var(--iw-encre); text-decoration: none; font-weight: 800; font-size: 16px; }
.iw-m .m-b454834 { 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%; mix-blend-mode: multiply; }
.iw-m .m-b536ccf { max-width: 1180px; margin: 0 auto; padding: 56px 24px 64px; display: flex; flex-wrap: wrap; align-items: center; gap: 40px 56px; }
.iw-m .m-b54f480 { flex: 1 1 300px; display: flex; justify-content: center; }
.iw-m .m-b583aef { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; background: var(--iw-encre); color: var(--iw-blanc); text-decoration: none; font-weight: 700; font-size: 14px; }
.iw-m .m-b8e09cc { flex: 1 1 300px; min-width: 0; padding: 26px; border-radius: 22px; background: var(--iw-vert); display: flex; flex-direction: column; gap: 10px; }
.iw-m .m-ba20316 { overflow-x: auto; margin: 0 0 12px; border: 2px solid var(--iw-encre); border-radius: 18px; }
.iw-m .m-ba4e7d9 { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.iw-m .m-bc0172c { display: flex; flex-direction: column; gap: 4px; }
.iw-m .m-bc62c1a { margin: 0; font-size: 18px; line-height: 1.65; color: var(--iw-texte-doux); max-width: 56ch; }
.iw-m .m-beafff2 { padding: 24px; border-radius: 22px; background: var(--iw-vert); }
.iw-m .m-c05d909 { color: var(--iw-m-6b7260); }
.iw-m .m-c147a45 { margin: 0; font-weight: 600; }
.iw-m .m-c190721 { flex: 1 1 280px; min-width: 0; padding: 22px 24px; border-radius: 20px; background: var(--iw-encre); color: var(--iw-blanc); display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.iw-m .m-c2f66be { margin: 0; font-size: clamp(34px, 4.375vw, 56px); line-height: 1.05; font-weight: 800; letter-spacing: -0.035em; }
.iw-m .m-c3e7a5f { display: block; height: 10px; border-radius: 999px; background: var(--iw-m-3a4031); overflow: hidden; }
.iw-m .m-c4bf2b0 { margin: 0; flex: 999 1 420px; font-size: 17px; line-height: 1.6; }
.iw-m .m-c718e4e { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--iw-vert); text-decoration: none; font-weight: 700; font-size: 15px; }
.iw-m .m-c82698f { margin: 0; font-size: clamp(36px, 4.688vw, 60px); line-height: 1.02; font-weight: 800; letter-spacing: -0.035em; }
.iw-m .m-c843fd8 { margin: 0 0 12px; font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 10px; }
.iw-m .m-caebd78 { position: relative; width: 150px; height: 150px; flex: 0 0 150px; }
.iw-m .m-cb189a0 { margin: 0; font-size: clamp(20px, 2.656vw, 34px); font-weight: 800; line-height: 1; }
.iw-m .m-cc9860e { margin: 0; font-size: 16px; line-height: 1.6; }
.iw-m .m-cd58762 { margin: 0; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.iw-m .m-cd9b0bb { text-align: left; padding: 14px 18px; background: var(--iw-vert-pale); }
.iw-m .m-cee5c10 { padding: 14px 18px; }
.iw-m .m-cfad934 { margin: 0 0 24px; font-size: 14px; color: var(--iw-gris); }
.iw-m .m-d1dd712 { padding: 12px 16px; text-align: left; }
.iw-m .m-d555845 { font-size: 20px; font-weight: 700; }
.iw-m .m-d5c9be3 { margin: 0; font-size: clamp(28px, 3.594vw, 46px); line-height: 1.08; font-weight: 800; letter-spacing: -0.03em; }
.iw-m .m-d60ac1c { max-width: 1180px; margin: 0 auto; padding: 40px 24px; display: flex; flex-wrap: wrap; gap: 32px; }
.iw-m .m-d7f5053 { margin: 0; font-size: clamp(24px, 3.125vw, 40px); line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
.iw-m .m-da4c843 { flex: 1 1 340px; min-width: 0; min-height: 260px; padding: 30px; background: var(--iw-vert); display: flex; flex-direction: column; justify-content: space-between; gap: 18px; box-sizing: border-box; }
.iw-m .m-db8e5de { margin: 0; max-width: 720px; font-size: 19px; line-height: 1.6; color: var(--iw-code); }
.iw-m .m-dcbbbb0 { margin: 0; max-width: 760px; font-size: 19px; line-height: 1.6; font-weight: 500; }
.iw-m .m-de7bdb0 { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--iw-encre); color: var(--iw-blanc); font-size: 13px; font-weight: 700; }
.iw-m .m-dece3d2 { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; padding: 22px 24px; border-radius: 20px; border: 2px solid var(--iw-encre); color: var(--iw-encre); text-decoration: none; }
.iw-m .m-df04088 { margin-top: 6px; font-weight: 800; }
.iw-m .m-e02942d { padding: 12px 14px; border-top: 1px solid var(--iw-bord); }
.iw-m .m-e21b4d0 { padding: 5px 12px; border-radius: 999px; background: var(--iw-vert); color: var(--iw-encre); font-size: 12px; font-weight: 700; }
.iw-m .m-e32ff44 { font-size: clamp(22px, 2.812vw, 36px); line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
.iw-m .m-e3abbe9 { padding: 28px; border-radius: 22px; background: var(--iw-vert-pale); border: 2px solid var(--iw-vert); display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.iw-m .m-e5a57a0 { padding: 12px 14px; border-top: 1px solid var(--iw-bord); text-align: left; font-weight: 600; vertical-align: top; }
.iw-m .m-e92055a { margin: 0 0 4px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--iw-vert); }
.iw-m .m-e999013 { margin: 0 0 44px; font-size: 14px; color: var(--iw-gris); }
.iw-m .m-eac170f { margin: 0 0 26px; }
.iw-m .m-eac58a9 { display: flex; flex-wrap: wrap; border-radius: 24px; overflow: hidden; border: 2px solid var(--iw-encre); text-decoration: none; }
.iw-m .m-ebea917 { max-width: 1180px; margin: 0 auto; padding: 44px 24px 52px; display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: flex-end; }
.iw-m .m-f03b30a { padding: 24px; border-radius: 22px; background: var(--iw-encre); color: var(--iw-blanc); font-size: 15px; line-height: 1.5; }
.iw-m .m-f1df2db { margin: 0 0 16px; font-size: clamp(19px, 2.500vw, 32px); font-weight: 800; }
.iw-m .m-f23769c { margin: 0 0 20px; font-size: clamp(19px, 2.500vw, 32px); font-weight: 800; }
.iw-m .m-f2a7c3a { margin: 28px 0 14px; font-size: clamp(18px, 2.344vw, 30px); font-weight: 800; }
.iw-m .m-f3da036 { margin: 0 0 20px; }
.iw-m .m-f4279c8 { padding: 10px 18px; border-radius: 14px; border: 2px solid var(--iw-encre); font-size: 15px; font-weight: 600; white-space: nowrap; }
.iw-m .m-f480bf1 { margin: 0; font-size: 20px; font-weight: 800; }
.iw-m .m-f497599 { display: flex; gap: 10px; flex-wrap: wrap; }
.iw-m .m-f4b7bd2 { margin: 0 0 24px; }
.iw-m .m-f528a7b { margin: 0; font-size: clamp(17px, 2.188vw, 28px); font-weight: 800; }
.iw-m .m-f54ddd8 { margin: 0; font-size: 13px; color: var(--iw-vert-fonce); font-weight: 600; }
.iw-m .m-f746cb0 { position: absolute; inset: 0 10% 8% 0; border: 2px solid var(--iw-encre); border-radius: 50%; }
.iw-m .m-f869b21 { margin: 0; max-width: 900px; font-size: clamp(36px, 4.688vw, 60px); line-height: 1.04; font-weight: 800; letter-spacing: -0.035em; }
.iw-m .m-f9fee77 { max-width: 1180px; margin: 0 auto; padding: 32px 24px 64px; }
.iw-m .m-fa744f4 { max-width: 1000px; margin: 0 auto; padding: 72px 24px 88px; display: flex; flex-wrap: wrap; align-items: center; gap: 40px 56px; }
.iw-m .m-fb94ea7 { flex: 999 1 460px; min-width: 0; padding: 34px; display: flex; flex-direction: column; justify-content: center; gap: 14px; background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-fde2cde { display: flex; gap: 12px; width: max-content; list-style: none; margin: 0; padding: 0; }
.iw-m .m-fe852e8 { width: 100%; min-width: 600px; border-collapse: collapse; font-size: 15px; line-height: 1.45; }
/* Filtres de /dossiers/ (C-Dossiers) : boutons radio, sans JS ; sans :has(), tout reste affiche */
.iw-m .m-filtre { cursor: pointer; }
.iw-m .m-filtre:has(:checked) { background: var(--iw-encre); color: var(--iw-blanc); }
.iw-m .m-filtre:has(:focus-visible) { outline: 3px solid var(--iw-vert-fonce); outline-offset: 2px; }
.iw-m:has(#iw-f-wordpress:checked) [data-rubrique]:not([data-rubrique~="wordpress"]) { display: none; }
.iw-m:has(#iw-f-e-commerce:checked) [data-rubrique]:not([data-rubrique~="e-commerce"]) { display: none; }
.iw-m:has(#iw-f-seo:checked) [data-rubrique]:not([data-rubrique~="seo"]) { display: none; }
.iw-m:has(#iw-f-emailing:checked) [data-rubrique]:not([data-rubrique~="emailing"]) { display: none; }
/* Defilement du bandeau du labo (C-Accueil2) : transform seul ; la liste est doublee (aria-hidden)
   pour boucler ; prefers-reduced-motion : immobile, sans le double, sur plusieurs lignes */
@keyframes iw-m-defile { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: no-preference) {
  .iw-m .iw-m-defile { animation: iw-m-defile 28s linear infinite; }
  .iw-m .iw-m-defile-cadre:hover .iw-m-defile { animation-play-state: paused; }
}
@media (prefers-reduced-motion: reduce) {
  .iw-m .iw-m-defile { flex-wrap: wrap; width: auto; }
  .iw-m .iw-m-defile [aria-hidden="true"] { display: none; }
}
