body.elementor-page-26282:not(.elementor-motion-effects-element-type-background), body.elementor-page-26282 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F0E4;}/* Start custom CSS for theme-post-content, class: .elementor-element-496d667 *//* ============================================================
   PAGE CHAPITRE — CSS COMPLET RESTRUCTURÉ

   1. Couleurs
   2. Niveaux de titre
   3. Structure de la page
   4. Comportements (interactions)
   5. Media Queries

   Introduction automatique : main.chapitre > p.
   Conserver les scripts existants pour les interactions.
   ============================================================ */

/* ============================================================
   1. COULEURS
   ============================================================ */

.chapitre-wrapper {
  --ch-accent: var(--Orange-700-Cuivre, #B04E00);
  --ch-tint: var(--Orange-50, #FFF1E6);
  --ch-border: var(--Cendres, #7A7264);
  --ch-separator: var(--Orange-100-Abricot, #FFB87A);
  --ch-text: var(--texte, var(--Noir, #212320));
  --ch-surface: var(--fond, var(--Blanc-casse, #FFFCF4));
  --couleur-titre: var(--ch-accent);
  --fond-titre: var(--ch-tint);
  --bordure-titre: var(--ch-border);
  --separateur: var(--ch-separator);
  --couleur-chapitre: var(--texte-secondaire, var(--ch-text));
}

.chapitre-wrapper.pour-une-bifurcation-ecologique-et-sociale,
.chapitre-wrapper:has(.pour-une-bifurcation-ecologique-et-sociale) {
  --ch-accent: var(--Bleu-Ciel-700-Marine, #1B5FAA);
  --ch-tint: var(--Bleu-Ciel-50, #EAF3FC);
  --ch-border: var(--Bleu-Ciel-700-Cobalt, #16458A);
  --ch-separator: var(--Bleu-Ciel-500-Azur, #7FB5E8);
}

.chapitre-wrapper.une-economie-au-service-des-besoins,
.chapitre-wrapper:has(.une-economie-au-service-des-besoins) {
  --ch-accent: var(--Orange-700-Cuivre, #B04E00);
  --ch-tint: var(--Orange-50, #FFF1E6);
  --ch-border: var(--Orange-500, #D97A2B);
  --ch-separator: var(--Orange-100-Abricot, #FFB87A);
}

.chapitre-wrapper.mettre-en-securite-sociale,
.chapitre-wrapper:has(.mettre-en-securite-sociale) {
  --ch-accent: var(--Vert_500, #2E7D32);
  --ch-tint: var(--Vert_50, #EAF5EA);
  --ch-border: var(--Vert-Alt-500-Base, #256B29);
  --ch-separator: var(--Vert-Alt-50-Fluo, #B7E4B7);
}

.chapitre-wrapper.le-gout-du-futur-aux-nouvelles-frontieres-de-l-humanite,
.chapitre-wrapper:has(
  .le-gout-du-futur-aux-nouvelles-frontieres-de-l-humanite
) {
  --ch-accent: var(--Jaune-900-Ocre, #8B4500);
  --ch-tint: var(--Jaune-50-Citron, #FEF8DC);
  --ch-border: var(--Jaune-700-Miel, #B5651D);
  --ch-separator: var(--Jaune-100-Soleil, #FFE5A0);
}

.chapitre-wrapper.fonder-la-6e-republique,
.chapitre-wrapper:has(.fonder-la-6e-republique) {
  --ch-accent: var(--Rouge-700-Carmin, #B02A2A);
  --ch-tint: var(--Rouge-50-Rosee, #FCEAEA);
  --ch-border: var(--Rouge-700-Carmin, #B02A2A);
  --ch-separator: var(--Rouge-100-Corail, #F5B5B5);
}

.chapitre-wrapper.un-monde-ordonne,
.chapitre-wrapper:has(.un-monde-ordonne) {
  --ch-accent: var(--Violet-700-Pourpre, #6A2E8E);
  --ch-tint: var(--Violet-50-Lavande, #F3ECFA);
  --ch-border: var(--Violet-900-Nuit, #3D1856);
  --ch-separator: var(--Violet-100-Lilas, #DCC8EE);
}

.chapitre-wrapper.introduction,
.chapitre-wrapper:has(main.chapitre.introduction) {
  --ch-accent: var(--Cendres, #7A7264);
  --ch-tint: transparent;
  --ch-border: var(--Cendres, #7A7264);
  --ch-separator: var(--Cendres, #7A7264);
}

/* ============================================================
   2. NIVEAUX DE TITRE
   ============================================================ */

.chapitre-wrapper main.chapitre > header h2 {
  display: flex;
  align-items: flex-start;
  gap: var(--Space1, 8px);

  margin: 0 0 var(--Space-2-5, var(--Space2-5, 20px));
  padding: 0;

  font-family: var(--ch-body-font);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;

  color: var(--ch-accent);
}

.chapitre-wrapper main.chapitre > header h2 .fa-slab {
  margin-top: 0.1em;
}

.chapitre-wrapper main.chapitre > header h1 {
  margin: 0;
  padding: 0;

  font-family: var(--ch-title-font);
  font-weight: 700;
  font-size: clamp(30px, 2.8vw, 40px);
  line-height: 1.1;
  text-transform: none !important;

  color: var(--ch-accent);
}

.chapitre-wrapper .section-title {
  margin: 0 0 var(--Space2, 16px);
  padding: 0;

  font-family: var(--ch-title-font);
  font-weight: 700;
  font-size: var(--Space3, 24px);
  font-stretch: normal;
  line-height: 1.2;
  text-transform: none !important;

  color: var(--ch-accent);
}

.chapitre-wrapper .mesure-cle h6 {
  margin: 0 0 var(--Space1, 8px);

  font-family: var(--ch-title-font);
  font-weight: 700;
  font-size: var(--Space2-5, 20px);
  line-height: 1.2;
  text-transform: uppercase;

  color: var(--ch-accent);
}

.chapitre-wrapper .right-stick h3 {
  margin: 0 0 var(--Space1-5, 12px);
  padding: 0;

  font-family: var(--ch-body-font);
  font-weight: 700;
  font-size: 18px;

  color: var(--ch-accent);
}

.chapitre-wrapper .right-stick h3:first-of-type,
.chapitre-wrapper .right-stick h3:first-of-type a {
  color: var(--Noir, #212320);
}

.chapitre-wrapper .right-stick h3 a {
  display: flex;
  align-items: flex-start;
  gap: var(--Space1, 8px);
  padding: 0;

  font-family: var(--ch-body-font);
  font-weight: 600;
  font-stretch: 100%;
  line-height: 1.15;

  color: inherit;
  text-decoration: none;

  transition: transform 0.15s ease;
}

.chapitre-wrapper .right-stick h3 a .fa-slab {
  margin-top: 0.15em;
}

/* ============================================================
   3. STRUCTURE DE LA PAGE
   ============================================================ */

.chapitre-wrapper {
  --ch-title-font: var(--TITRES, "Union Gothic"), sans-serif;
  --ch-body-font:
    var(--Textes, "Stack Sans Text", "Stack Sans"), sans-serif;
  --ch-icon-duo:
    var(--fa-family-slab-duo, "Font Awesome 7 Slab Duo");
  --ch-icon-press-duo:
    var(--fa-family-slab-press-duo, "Font Awesome 7 Slab Press Duo");
  --ch-icon-secondary-opacity: 0.25;
  --ch-button-icon-size: 1.25em;
  --ch-button-padding-x: var(--Space2, 16px);
  --ch-button-gap: var(--Space1, 8px);
  --ch-copy-button-size: 44px;
  --ch-copy-padding-y: 8px;
  --ch-copy-space: 52px;
  --ch-header-offset: 100px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "sidebar"
    "content";
  gap: var(--Space3, 24px);
  width: 100%;
  max-width: var(--Container-Encadre, 1096px);
  min-width: 0;
  margin-inline: auto;
  color: var(--ch-text);
  font-family: var(--ch-body-font);
  font-size: var(--Body-large, 18px);
  line-height: 1.4;
}

.chapitre-wrapper,
.chapitre-wrapper *,
.chapitre-wrapper *::before,
.chapitre-wrapper *::after {
  box-sizing: border-box;
}

.chapitre-wrapper [id] {
  scroll-margin-top:
    calc(var(--ch-header-offset) + var(--Space2, 16px));
}

.chapitre-wrapper .fa-list {
  --ch-icon: "";
}

.chapitre-wrapper .fa-leaf {
  --ch-icon: "";
}

.chapitre-wrapper .fa-credit-card {
  --ch-icon: "";
}

.chapitre-wrapper .fa-heart {
  --ch-icon: "";
}

.chapitre-wrapper .fa-globe {
  --ch-icon: "";
}

.chapitre-wrapper .fa-landmark {
  --ch-icon: "";
}

.chapitre-wrapper .fa-shield {
  --ch-icon: "";
}

.chapitre-wrapper .fa-arrow-left {
  --ch-icon: "";
}

.chapitre-wrapper .fa-arrow-right {
  --ch-icon: "";
}

.chapitre-wrapper :is(.fa-share-nodes, .fa-share-alt) {
  --ch-icon: "";
}

.chapitre-wrapper .fa-slab {
  --ch-icon-family: var(--ch-icon-press-duo);

  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: auto;

  font-style: normal;
  line-height: 1;
  vertical-align: -0.125em;
}

.chapitre-wrapper :is(a, button) .fa-slab,
.chapitre-wrapper :is(a, button).fa-slab {
  --ch-icon-family: var(--ch-icon-duo);
}

.chapitre-wrapper .fa-slab::before,
.chapitre-wrapper .fa-slab::after {
  content: var(--ch-icon);

  font-family: var(--ch-icon-family) !important;
  font-weight: 400 !important;
  font-style: normal;
  font-size: inherit;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;

  color: currentColor;
  pointer-events: none;
}

.chapitre-wrapper .fa-slab::before {
  position: relative;
  display: inline-block;

  font-feature-settings: normal;
  opacity: 1;
}

.chapitre-wrapper .fa-slab::after {
  position: absolute;
  inset: 0;
  display: block;

  font-feature-settings: "ss01";
  opacity: var(--ch-icon-secondary-opacity);
}

.chapitre-wrapper .left {
  grid-area: content;
  display: flex;
  flex-direction: column;

  width: 100%;
  min-width: 0;
}

.chapitre-wrapper main.chapitre {
  width: 100%;
  min-width: 0;
  padding: 0;
}

.chapitre-wrapper main.chapitre > header {
  margin: 0;
  padding: var(--Space2, 16px);

  color: var(--ch-accent);
  background: var(--ch-tint);
  border: 1px solid var(--ch-border);
  border-radius: 10px 10px 0 0;
}

.chapitre-wrapper .chapitre_sections {
  display: flex;
  flex-direction: column;
  gap: var(--Space3, 24px);
}

.chapitre-wrapper .chapitre_sections > section {
  min-width: 0;
  padding: var(--Space2, 16px);

  background: var(--ch-surface);
  border: 1px solid var(--ch-border);
  border-radius: 10px;
}

.chapitre-wrapper main.chapitre > header
  + .chapitre_sections > section:first-child {
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.chapitre-wrapper main.chapitre p {
  margin: 0 0 var(--Space3, 24px);

  font-family: var(--ch-body-font);
  font-size: var(--Body-large, 18px);
  line-height: 1.4;

  color: var(--ch-text);
  overflow-wrap: break-word;
  word-break: normal;

}

.chapitre-wrapper .chapitre_sections > section > :last-child {
  margin-bottom: 0;
}

.chapitre-wrapper .mesure-cle {
  margin: var(--Space3, 24px) 0;
  padding: var(--Space2, 16px);

  color: var(--ch-accent);
  background: var(--ch-tint);
  border: var(--Bordure, 1px) solid var(--ch-separator);
  border-radius: var(--Radius-10, 10px);
}

.chapitre-wrapper main.chapitre .mesure-cle p {
  margin: 0;

  font-family: var(--ch-body-font);
  font-size: var(--Body-large, 18px);
  line-height: 1.3;

  color: var(--ch-accent);
}

.chapitre-wrapper .chapitre_sections ul,
.chapitre-wrapper .chapitre_sections ol {
  margin: 0 0 var(--Space3, 24px);
  padding-inline-start: var(--Space3, 24px);
}

.chapitre-wrapper .chapitre_sections ul {
  padding-inline-start: 0;
  list-style: none;
}

.chapitre-wrapper .chapitre_sections ol {
  list-style: decimal;
}

.chapitre-wrapper .chapitre_sections li {
  position: relative;
  margin-bottom: var(--Space1, 8px);

  font-family: var(--ch-body-font);
  font-size: var(--Body-large, 18px);
  line-height: 1.4;

  color: var(--ch-text);
}

.chapitre-wrapper .chapitre_sections li p {
  margin-bottom: 0;
}

.chapitre-wrapper .chapitre_sections ul > li {
  --ch-bullet: "";
  --ch-bullet-color: var(--ch-accent);
  --ch-bullet-opacity: 0.85;
  --ch-bullet-size: 0.65em;
  --ch-bullet-font: var(--ch-icon-press-duo);
  --ch-bullet-top: 1ch;

  padding-inline-start: var(--Space3, 24px);
}

.chapitre-wrapper .chapitre_sections ul > li::before,
.chapitre-wrapper .chapitre_sections ul > li::after {
  content: var(--ch-bullet);

  position: absolute;
  inset-inline-start: 0;
  top: var(--ch-bullet-top);

  font-family: var(--ch-bullet-font) !important;
  font-weight: 400;
  font-style: normal;
  font-size: var(--ch-bullet-size);
  line-height: 1;

  pointer-events: none;
}

.chapitre-wrapper .chapitre_sections ul > li::before {
  color: var(--ch-bullet-color);
  font-feature-settings: normal;
  opacity: 1;
}

.chapitre-wrapper .chapitre_sections ul > li::after {
  color: var(--ch-tint);
  font-feature-settings: "ss01";
  opacity: var(--ch-bullet-opacity);
}

.chapitre-wrapper .chapitre_sections li > ul,
.chapitre-wrapper .chapitre_sections li > ol {
  margin-top: var(--Space1, 8px);
  margin-bottom: var(--Space3, 24px);
}

.chapitre-wrapper .chapitre_sections li > ul {
  padding-inline-start: var(--Space1, 8px);
}

.chapitre-wrapper .chapitre_sections li > ul > li {
  --ch-bullet: "";
  --ch-bullet-color: var(--ch-border);
  --ch-bullet-opacity: 0.7;
  --ch-bullet-size: var(--Space1-5, 12px);

  font-size: calc(var(--Body-large, 18px) - 1px);
}

.chapitre-wrapper .chapitre_sections
  li:has(> ul:only-child)::before,
.chapitre-wrapper .chapitre_sections
  li:has(> ul:only-child)::after {
  content: none;
}

.chapitre-wrapper .right-stick {
  grid-area: sidebar;
  position: static;
  align-self: start;
  scroll-padding-top: 120px;

  width: 100%;
  min-width: 0;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
}

.chapitre-wrapper .right-stick .tdm {
  display: flex;
  flex-direction: column;

  margin: var(--Space1, 8px) 0 0;

  background: var(--ch-surface);
  border: 1px solid var(--ch-border);
  border-radius: 10px;
  overflow: hidden;
}

.chapitre-wrapper .right-stick .tdm a {
  display: block;
  padding: var(--Space1, 8px);

  font-family: var(--ch-body-font);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.25;

  color: var(--ch-accent);
  background: transparent;
  text-decoration: none;
  border-bottom: 1px solid var(--ch-separator);

  transition:
    transform 0.15s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

.chapitre-wrapper .right-stick .tdm a:last-child {
  border-bottom: 0;
}

.chapitre-wrapper .right-stick .tdm > div > a:first-child,
.chapitre-wrapper .right-stick .tdm > a:first-child,
.chapitre-wrapper .right-stick .tdm a.chapitre-link {
  font-family: var(--ch-title-font);
  font-weight: 600;
  background-color: var(--ch-tint);
}

.chapitre-wrapper .nav.prev-next {
  display: flex;
  align-items: center;
  gap: var(--Space2, 16px);
}

.chapitre-wrapper .nav.prev-next a,
.chapitre-wrapper .right-stick .share {
  --ch-button-icon-family: var(--ch-icon-duo);

  display: inline-grid;
  grid-template-columns: var(--ch-button-icon-size) auto;
  grid-template-rows: auto;
  align-items: center;
  justify-content: center;
  column-gap: var(--ch-button-gap);

  min-height: 44px;
  padding:
    var(--Space1, 8px)
    var(--ch-button-padding-x);

  font-family: var(--ch-body-font);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
  text-align: center;

  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;

  transition:
    transform 0.15s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.chapitre-wrapper .nav.prev-next .prev {
  --ch-button-icon: "";

  color: var(--ch-accent);
  background: transparent;
  border-color: transparent;
}

.chapitre-wrapper .nav.prev-next .next {
  --ch-button-icon: "";

  grid-template-columns: auto var(--ch-button-icon-size);
}

.chapitre-wrapper .nav.prev-next .next,
.chapitre-wrapper .nav.prev-next .primary {
  color: var(--ch-accent);
  background: transparent;
  border-color: var(--ch-accent);
}

.chapitre-wrapper .right-stick .share {
  --ch-button-icon: "";

  width: 100%;
  min-height: 48px;
  margin-top: var(--Space2, 16px);

  color: var(--ch-surface);
  background: var(--ch-accent);
  border-color: var(--ch-accent);
}

.chapitre-wrapper .nav.prev-next a::before,
.chapitre-wrapper .nav.prev-next a::after,
.chapitre-wrapper .right-stick .share::before,
.chapitre-wrapper .right-stick .share::after {
  content: var(--ch-button-icon);

  grid-row: 1;
  grid-column: 1;
  justify-self: center;
  align-self: center;

  position: static;
  display: block;
  margin: 0;
  padding: 0;

  font-family: var(--ch-button-icon-family) !important;
  font-weight: 400;
  font-style: normal;
  font-size: var(--ch-button-icon-size);
  line-height: 1;

  color: currentColor;
  transform: none;
  pointer-events: none;
}

.chapitre-wrapper .nav.prev-next a::before,
.chapitre-wrapper .right-stick .share::before {
  font-feature-settings: normal;
  opacity: 1;
}

.chapitre-wrapper .nav.prev-next a::after,
.chapitre-wrapper .right-stick .share::after {
  font-feature-settings: "ss01";
  opacity: var(--ch-icon-secondary-opacity);
}

.chapitre-wrapper .nav.prev-next .next::before,
.chapitre-wrapper .nav.prev-next .next::after {
  grid-column: 2;
}

.chapitre-wrapper .left .footer.nav.prev-next {
  justify-content: space-between;
  margin-top: var(--Space2, 16px);
  padding-top: var(--Space2, 16px);
}

.chapitre-wrapper .right-stick .nav.prev-next {
  gap: var(--Space1, 8px);
  margin-top: var(--Space2, 16px);
}

.chapitre-wrapper .right-stick .nav.prev-next a {
  --ch-button-padding-x: var(--Space1, 8px);

  flex: 1 1 0;
  min-width: 0;
}

.chapitre-wrapper .mesure-copy-ready {
  position: relative;
  cursor: pointer;
  user-select: text;

  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.chapitre-wrapper .mesure-copy-ready > p,
.chapitre-wrapper .mesure-copy-ready > h6 {
  cursor: pointer;
}

.chapitre-wrapper .chapitre_sections li.mesure-copy-ready {
  min-height: var(--ch-copy-button-size);

  padding-block: var(--ch-copy-padding-y);
  padding-inline-end: var(--ch-copy-space);

  border-radius: var(--Radius-10, 10px);
}

.chapitre-wrapper .chapitre_sections ul > li.mesure-copy-ready {
  --ch-bullet-font: var(--ch-icon-duo);
  --ch-bullet-top: calc(var(--ch-copy-padding-y) + 1ch);
}

.chapitre-wrapper .chapitre_sections
  li.mesure-copy-ready > p {
  color: inherit;
}

.chapitre-wrapper .mesure-cle.mesure-copy-ready {
  padding-inline-end: 60px;
}

.chapitre-wrapper .mesure-copy-ready
  > button.mesure-copy-button {
  --copy-icon-font: var(--ch-icon-duo);

  position: absolute;
  inset-inline-end: 0;
  top: 0;
  bottom: auto;

  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  place-items: center;

  width: var(--ch-copy-button-size);
  height: var(--ch-copy-button-size);
  min-height: var(--ch-copy-button-size);
  margin: 0;
  padding: 0;

  font: inherit;
  font-size: 20px;
  line-height: 1;

  color: var(--ch-accent);
  background: transparent;
  border: 0;
  border-radius: var(--Radius-10, 10px);
  box-shadow: none;

  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  user-select: none;
  transform: none;

  transition: opacity 0.15s ease;
}

.chapitre-wrapper .mesure-cle.mesure-copy-ready
  > button.mesure-copy-button {
  inset-inline-end: 8px;
  top: 8px;
}

.chapitre-wrapper .mesure-copy-button::before,
.chapitre-wrapper .mesure-copy-button::after {
  content: "";

  grid-area: 1 / 1;
  position: static;
  display: block;
  margin: 0;
  padding: 0;

  font-family: var(--copy-icon-font) !important;
  font-weight: 400;
  font-style: normal;
  font-size: inherit;
  line-height: 1;

  color: currentColor;
  transform: none;
  pointer-events: none;
}

.chapitre-wrapper .mesure-copy-button::before {
  font-feature-settings: normal;
  opacity: 1;
}

.chapitre-wrapper .mesure-copy-button::after {
  font-feature-settings: "ss01";
  opacity: var(--ch-icon-secondary-opacity);
}

.mesure-copy-notice {
  position: fixed;
  inset-inline: 16px;
  bottom: 24px;
  z-index: 10000;

  width: fit-content;
  max-width: calc(100% - 32px);
  margin-inline: auto;
  padding: 12px 18px;

  font-family:
    var(--Textes, "Stack Sans Text", "Stack Sans"), sans-serif;
  font-size: 16px;
  line-height: 1.4;
  text-align: center;

  color: var(--Blanc-casse, #FFFCF4);
  background: var(--Noir, #212320);
  border-radius: var(--Radius-10, 10px);

  opacity: 0;
  pointer-events: none;

  transition: opacity 0.15s ease;
}

.chapitre-wrapper .right-stick .tdm .tdm-mobile-toggle {
  display: none;
}

/* Introduction : paragraphes enfants directs de main.chapitre,
   donc hors de .chapitre_sections. Aucune classe à ajouter. */
.chapitre-wrapper main.chapitre > p {
  margin: 0 0 var(--Space3, 24px);
  padding-inline: var(--Space2, 16px);
  font-family: var(--ch-body-font);
  font-size: var(--Body-large, 18px);
  font-weight: 400;
  line-height: 1.55;
  color: var(--ch-text);
}

/* ============================================================
   CHAPITRE HORS DE .chapitre_sections
   Exclut les .chapitre enfants directs de .chapitre_sections.
   ============================================================ */

.chapitre-wrapper section.chapitre:not(.chapitre_sections > .chapitre) {
  padding: 16px;
  border: 1px solid var(--ch-border);
  background-color: var(--Blanc-casse, #FFFCF4);
  border-top: none;
  border-radius: 0 0 10px 10px;
  margin-bottom: 24px;
}

.chapitre-wrapper main.chapitre > header + p {
  margin-top: var(--Space3, 24px);
}

/* Le bandeau est autonome lorsqu'une introduction le suit. */
.chapitre-wrapper main.chapitre > header:has(+ p) {
  border-radius: 10px;
}


/* ============================================================
   4. COMPORTEMENTS (INTERACTIONS)
   ============================================================ */

.chapitre-wrapper :is(a, button):is(:hover, :focus-visible) .fa-slab,
.chapitre-wrapper :is(a, button).fa-slab:is(:hover, :focus-visible) {
  --ch-icon-family: var(--ch-icon-press-duo);
}

.chapitre-wrapper .right-stick h3 a:hover {
  transform: translateY(2px);
  text-decoration: none !important;
}

.chapitre-wrapper .right-stick .tdm a:hover {
  transform: translateY(2px);
}

.chapitre-wrapper .right-stick .tdm a.active,
.chapitre-wrapper .right-stick .tdm .active > a,
.chapitre-wrapper .right-stick .tdm
  a[aria-current]:not([aria-current="false"]) {
  color: var(--ch-surface);
  background-color: var(--ch-accent);
  font-weight: 700;
}

.chapitre-wrapper .nav.prev-next a:is(:hover, :focus-visible),
.chapitre-wrapper .right-stick .share:is(:hover, :focus-visible) {
  --ch-button-icon-family: var(--ch-icon-press-duo);
}

.chapitre-wrapper .nav.prev-next a:hover,
.chapitre-wrapper .right-stick .share:hover {
  transform: translateY(2px);
  text-decoration: none;
}

.chapitre-wrapper .chapitre_sections
  ul > li.mesure-copy-ready:active:not(
    :has(li:active)
  ) {
  --ch-bullet-font: var(--ch-icon-press-duo);
}

.chapitre-wrapper .chapitre_sections
  ul > li.mesure-copy-ready:has(
    > button.mesure-copy-button.is-copied
  ) {
  --ch-bullet-font: var(--ch-icon-press-duo);
}

.chapitre-wrapper .chapitre_sections
  li.mesure-copy-ready:not(.copy-reset):is(
    .is-copy-open,
    .is-copied,
    :focus-within
  ) {
  color: var(--ch-accent);
  background-color: var(--ch-tint);
  outline: 1px solid var(--ch-border);
  outline-offset: 0;
}

.chapitre-wrapper .chapitre_sections
  li.mesure-copy-ready.copy-reset {
  color: var(--ch-text);
  background-color: transparent;
  outline: none;
}

.chapitre-wrapper .mesure-cle.mesure-copy-ready.copy-reset {
  color: var(--ch-accent);
  background-color: var(--ch-tint);
}

.chapitre-wrapper .mesure-copy-ready
  > button.mesure-copy-button:is(:hover, :active) {
  color: var(--ch-accent);
  background: transparent;
  box-shadow: none;
  transform: none;
}

.chapitre-wrapper .mesure-copy-ready:not(.copy-reset):is(
  .is-copy-open,
  .is-copied,
  :focus-within
) > button.mesure-copy-button {
  opacity: 1;
  pointer-events: auto;
}

.chapitre-wrapper .mesure-copy-ready
  > button.mesure-copy-button:focus-visible {
  opacity: 1;
  pointer-events: auto;

  outline: 2px solid var(--ch-accent);
  outline-offset: -3px;
}

.chapitre-wrapper .mesure-copy-ready:active:not(
  :has(.mesure-copy-ready:active)
) > button.mesure-copy-button {
  --copy-icon-font: var(--ch-icon-press-duo);
}

.chapitre-wrapper .mesure-copy-ready
  > button.mesure-copy-button:is(:active, .is-copied) {
  --copy-icon-font: var(--ch-icon-press-duo);
}

.chapitre-wrapper .mesure-copy-ready.copy-reset
  > button.mesure-copy-button:not(:focus-visible) {
  opacity: 0;
  pointer-events: none;
}

.mesure-copy-notice.is-visible {
  opacity: 1;
}

.chapitre-wrapper a:focus-visible,
.chapitre-wrapper button:focus-visible {
  outline: 2px solid var(--ch-accent);
  outline-offset: 3px;
}

.chapitre-wrapper button.mesure-copy-button:focus-visible {
  outline-offset: -3px;
}

/* ============================================================
   5. MEDIA QUERIES
   ============================================================ */

@media (max-width: 719px) {
  .chapitre-wrapper .right-stick {
    padding: var(--Space2, 16px);
  }

  .chapitre-wrapper .right-stick .tdm a,
  .chapitre-wrapper .right-stick h3 a {
    font-size: var(--Space2, 16px);
  }

  .chapitre-wrapper .chapitre_sections li > ul {
    padding-inline-start: 0;
    margin-inline-start: -16px;
    margin-bottom: var(--Space3, 24px);
  }

  .chapitre-wrapper .chapitre_sections li > ul > li {
    padding-inline-start: var(--Space3, 24px);
  }
}

@media (min-width: 768px) {
  .chapitre-wrapper .right-stick .tdm a {
    font-size: 14px;
  }

  .chapitre-wrapper .mesure-cle {
    padding: var(--Space3, 24px);
  }

  
  .chapitre-wrapper .mesure-cle.mesure-copy-ready {
    padding-inline-end: 60px;
  }
}

@media (min-width: 1025px) {
  .chapitre-wrapper {
    grid-template-columns: minmax(0, 1fr) 280px;
    grid-template-areas: "content sidebar";
    column-gap: var(--Space5, 40px);
    align-items: start;
  }

  .chapitre-wrapper .right-stick {
    position: sticky;
    top: var(--ch-header-offset);
    padding-top: 0;
  }

  .chapitre-wrapper .chapitre_sections > section {
    padding: var(--Space3, 24px);
  }
}

@media (min-width: 1140px) {
  .chapitre-wrapper {
    max-width: 1400px;
  }

  .chapitre-wrapper .chapitre_sections > section {
    padding:
      var(--Space3, 24px)
      var(--Space4, 32px);
  }
}

@media (hover: hover) and (pointer: fine) {
  
  .chapitre-wrapper .chapitre_sections
    li.mesure-copy-ready:not(.copy-reset):hover:not(
      :has(li.mesure-copy-ready:hover)
    ) {
    color: var(--ch-accent);
    background-color: var(--ch-tint);

    outline: 1px solid var(--ch-border);
    outline-offset: 0;
  }

  
  .chapitre-wrapper .chapitre_sections
    li.mesure-copy-ready:not(.copy-reset):hover:not(
      :has(li.mesure-copy-ready:hover)
    ) > button.mesure-copy-button {
    opacity: 1;
    pointer-events: auto;
  }

  
  .chapitre-wrapper .mesure-cle.mesure-copy-ready:not(
    .copy-reset
  ):hover {
    border-color: var(--ch-border);
  }

  .chapitre-wrapper .mesure-cle.mesure-copy-ready:not(
    .copy-reset
  ):hover > button.mesure-copy-button {
    opacity: 1;
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .chapitre-wrapper a,
  .chapitre-wrapper button,
  .chapitre-wrapper .mesure-copy-ready,
  .mesure-copy-notice {
    transition: none !important;
  }

  .chapitre-wrapper .right-stick h3 a:hover,
  .chapitre-wrapper .right-stick .tdm a:hover,
  .chapitre-wrapper .nav.prev-next a:hover,
  .chapitre-wrapper .right-stick .share:hover {
    transform: none;
  }
}

@media print {
  .chapitre-wrapper::before {
    content:
      "L’Avenir en commun"
      "\A "
      "Le programme de la Nouvelle France";

    display: block;
    white-space: pre-line;

    margin: 0 0 6mm;
    padding: 0 0 3mm;

    font-family: Arial, sans-serif;
    font-size: 11pt;
    font-weight: 700;
    line-height: 1.4;

    color: #000;
    border-bottom: 1pt solid #999;

    break-inside: avoid;
    break-after: avoid;
  }
}

@media print {

  
  @page {
    size: A4 portrait;
    margin: 15mm;
  }

  

  html,
  body {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;

    color: #000 !important;
    background: #fff !important;
  }

  body {
    margin: 0 !important;
    padding: 0 !important;
  }

  

  
  .elementor-location-header,
  .elementor-location-footer,

  
  .elementor-popup-modal,
  .dialog-widget-overlay,

  
  .chapitre-wrapper .right-stick,
  .chapitre-wrapper .nav.prev-next,
  .chapitre-wrapper .share,
  .chapitre-wrapper .mesure-copy-button,

  
  .mesure-copy-notice,
  #wpadminbar {
    display: none !important;
  }

  

  .chapitre-wrapper,
  .chapitre-wrapper .left,
  .chapitre-wrapper main.chapitre,
  .chapitre-wrapper .chapitre_sections {
    display: block !important;
    position: static !important;
    float: none !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
    transform: none !important;
  }

  

  .chapitre-wrapper {
    color: #000 !important;
    background: #fff !important;

    font-family: Arial, sans-serif !important;
    font-size: 11pt !important;
    line-height: 1.45 !important;
  }

  .chapitre-wrapper *,
  .chapitre-wrapper *::before,
  .chapitre-wrapper *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  .chapitre-wrapper a {
    color: inherit !important;
    text-decoration: none !important;
    transform: none !important;
  }

  
  .chapitre-wrapper a[href]::after {
    content: none !important;
  }

  
  .chapitre-wrapper .fa-slab {
    display: none !important;
  }

  

  .chapitre-wrapper main.chapitre > header {
    margin: 0 0 8mm !important;
    padding: 0 0 4mm !important;

    color: #000 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1pt solid #777 !important;
    border-radius: 0 !important;

    break-inside: avoid;
    break-after: avoid;
  }

  .chapitre-wrapper main.chapitre > header h2 {
    display: block !important;
    margin: 0 0 3mm !important;
    padding: 0 !important;

    color: #333 !important;
    font-family: Arial, sans-serif !important;
    font-size: 10pt !important;
    line-height: 1.3 !important;
  }

  .chapitre-wrapper main.chapitre > header h1 {
    margin: 0 !important;
    padding: 0 !important;

    color: #000 !important;
    font-family: Arial, sans-serif !important;
    font-size: 22pt !important;
    line-height: 1.15 !important;
    text-transform: none !important;
  }

  

  .chapitre-wrapper .chapitre_sections > section {
    display: block !important;
    margin: 0 0 7mm !important;
    padding: 0 !important;

    color: #000 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;

    
    break-inside: auto;
  }

  .chapitre-wrapper .section-title {
    margin: 0 0 3mm !important;
    padding: 0 !important;

    color: #000 !important;
    font-family: Arial, sans-serif !important;
    font-size: 15pt !important;
    line-height: 1.2 !important;

    break-inside: avoid;
    break-after: avoid;
  }

  .chapitre-wrapper main.chapitre p,
  .chapitre-wrapper .chapitre_sections li {
    color: #000 !important;
    font-family: Arial, sans-serif !important;
    font-size: 11pt !important;
    line-height: 1.45 !important;

    orphans: 3;
    widows: 3;
  }

  .chapitre-wrapper main.chapitre p {
    margin: 0 0 3mm !important;
  }

  

  .chapitre-wrapper .mesure-cle,
  .chapitre-wrapper .mesure-cle.mesure-copy-ready,
  .chapitre-wrapper .mesure-cle.mesure-copy-ready.copy-reset {
    position: static !important;

    margin: 4mm 0 !important;
    padding: 4mm !important;

    color: #000 !important;
    background: transparent !important;
    border: 1pt solid #777 !important;
    border-radius: 0 !important;
    outline: none !important;

    break-inside: avoid;
  }

  .chapitre-wrapper .mesure-cle h6 {
    margin: 0 0 2mm !important;

    color: #000 !important;
    font-family: Arial, sans-serif !important;
    font-size: 10pt !important;
  }

  .chapitre-wrapper main.chapitre .mesure-cle p {
    margin: 0 !important;
    color: #000 !important;
  }

  

  .chapitre-wrapper .chapitre_sections ul,
  .chapitre-wrapper .chapitre_sections ol {
    margin: 3mm 0 !important;
    padding-inline-start: 6mm !important;
  }

  .chapitre-wrapper .chapitre_sections ul {
    list-style: disc outside !important;
  }

  .chapitre-wrapper .chapitre_sections ol {
    list-style: decimal outside !important;
  }

  .chapitre-wrapper .chapitre_sections li > ul {
    margin-inline-start: 0 !important;
    list-style: circle outside !important;
  }

  .chapitre-wrapper .chapitre_sections li,
  .chapitre-wrapper .chapitre_sections li.mesure-copy-ready,
  .chapitre-wrapper .chapitre_sections li.mesure-copy-ready.copy-reset {
    display: list-item !important;
    position: static !important;

    min-height: 0 !important;
    margin-bottom: 2mm !important;
    padding: 0 !important;

    color: #000 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: none !important;

    cursor: auto !important;
  }

  
  .chapitre-wrapper .chapitre_sections ul > li::before,
  .chapitre-wrapper .chapitre_sections ul > li::after {
    content: none !important;
    display: none !important;
  }

  
  .chapitre-wrapper .chapitre_sections li:not(:has(ul, ol)) {
    break-inside: avoid;
  }

  
  .chapitre-wrapper .chapitre_sections li:has(ul, ol) {
    break-inside: auto;
  }

  
  .chapitre-wrapper .chapitre_sections li:has(> ul:only-child) {
    list-style: none !important;
  }

  

  .chapitre-wrapper img {
    max-width: 100% !important;
    height: auto !important;
    break-inside: avoid;
  }
}

@media screen and (max-width: 719px) {

  
  .chapitre-wrapper .right-stick .tdm
    .tdm-mobile-group:not(.is-expanded)
    > a.tdm-mobile-subpart {
    display: none;
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle {
    --tdm-toggle-icon-font: var(--ch-icon-duo);

    display: grid;
    grid-template-columns: minmax(0, 1fr) 20px;
    align-items: center;
    gap: 12px;

    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 12px;

    color: var(--ch-accent);
    background: var(--ch-surface);

    border: 0;
    border-radius: 0;
    box-shadow: none;

    font-family: var(--ch-body-font);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-align: start;
    text-transform: none;
    letter-spacing: normal;

    cursor: pointer;
    transform: none;
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle[aria-expanded="true"] {
    border-bottom: 1px solid var(--ch-separator);
  }

  
  .chapitre-wrapper .tdm-mobile-toggle-label {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle::before,
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle::after {
    content: "";

    grid-column: 2;
    grid-row: 1;
    justify-self: center;

    position: static;
    display: block;
    margin: 0;
    padding: 0;

    color: currentColor;

    font-family: var(--tdm-toggle-icon-font) !important;
    font-size: 18px;
    font-weight: 400 !important;
    font-style: normal;
    line-height: 1;

    pointer-events: none;
    transform: none;
  }

  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle::before {
    font-feature-settings: normal;
    opacity: 1;
  }

  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle::after {
    font-feature-settings: "ss01";
    opacity: var(--ch-icon-secondary-opacity, 0.25);
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle[aria-expanded="true"]::before,
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle[aria-expanded="true"]::after {
    content: "";
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle:is(
      :hover,
      :focus-visible,
      :active
    ) {
    --tdm-toggle-icon-font: var(--ch-icon-press-duo);

    color: var(--ch-accent);
    background: var(--ch-tint);
    transform: none;
  }

  
  .chapitre-wrapper .right-stick .tdm
    button.tdm-mobile-toggle:focus-visible {
    outline: 2px solid var(--ch-accent);
    outline-offset: -4px;
  }
}

@media print {
  .chapitre-wrapper .tdm-mobile-toggle {
    display: none !important;
  }
}

/* Alignement du texte introductif sur le contenu des sections. */
@media (min-width: 1025px) {
  .chapitre-wrapper main.chapitre > p {
    padding-inline: var(--Space3, 24px);
  }
}

@media (min-width: 1140px) {
  .chapitre-wrapper main.chapitre > p {
    padding-inline: var(--Space4, 32px);
  }
}

@media print {
  .chapitre-wrapper main.chapitre > p {
    padding-inline: 0 !important;
  }
}



/* ============================================================
   MODE CONTRASTE ÉLEVÉ (activé par html.contraste-eleve)
   Écran uniquement : l'impression garde ses propres règles.
   ============================================================ */
@media screen {

  html.contraste-eleve body {
    background: #fff !important;
  }

  /* --- Palette : noir sur blanc (21:1), plus de teintes subtiles --- */
  /* !important sur les variables : nécessaire pour passer devant
     les couleurs propres à chaque chapitre (bleu, vert, rouge…) */
  html.contraste-eleve :is(
    .chapitre-wrapper,
    main.introduction,
    main.introduction + .footer,
    /* --- ELEMENTOR : bloc "L'Avenir en commun" --- */
    .elementor-element-d6105ca, 
    .elementor .e-c4c1674-57297fa,
    .elementor .e-ba67901-b707ebc) {
    --ch-accent: #000 !important;
    --ch-text: #000 !important;
    --ch-border: #000 !important;
    --ch-separator: #000 !important;
    --ch-surface: #fff !important;
    --ch-tint: #f0f0f0 !important;
    --texte-secondaire: #000 !important;
    --ch-icon-secondary-opacity: 0.6 !important;

    /* Texte un peu plus grand */
    --Body-large: 20px !important;
  }
  
  media (max-width: 1024px) {
  html.contraste-eleve .elementor .e-c73c25a-ac6ee61 {
    height: var(--Fit-content);
    padding: var(--Zero-0);
    background-color: var(--Parchemin);
    gap: var(--Space1);
  }
}

  /* --- Typographie : plus d'air, pas de césure automatique --- */
  html.contraste-eleve :is(.chapitre-wrapper, main.introduction, .elementor-element-d6105ca) {
    letter-spacing: 0.01em;
    word-spacing: 0.08em;
    -webkit-hyphens: manual;
    -ms-hyphens: manual;
    hyphens: manual;
  }

  html.contraste-eleve .chapitre-wrapper main.chapitre p,
  html.contraste-eleve .chapitre-wrapper .chapitre_sections li,
  html.contraste-eleve main.introduction > section p,
  html.contraste-eleve .elementor-element-d6105ca p {
    line-height: 1.65;
  }

  /* --- Bordures plus épaisses --- */
  html.contraste-eleve .chapitre-wrapper main.chapitre > header,
  html.contraste-eleve .chapitre-wrapper .chapitre_sections > section,
  html.contraste-eleve .chapitre-wrapper .mesure-cle,
  html.contraste-eleve .chapitre-wrapper .right-stick .tdm,
  html.contraste-eleve main.introduction > section {
    border-width: 2px;
  }

  html.contraste-eleve .chapitre-wrapper main.chapitre > header
    + .chapitre_sections > section:first-child {
    border-top-width: 0;
  }

  html.contraste-eleve .chapitre-wrapper
    section.chapitre:not(.chapitre_sections > .chapitre) {
    border-width: 2px;
    border-top-width: 0;
  }

  /* --- Liens dans le texte : toujours soulignés --- */
  html.contraste-eleve .chapitre-wrapper main.chapitre p a,
  html.contraste-eleve .chapitre-wrapper .chapitre_sections li a,
  html.contraste-eleve main.introduction p a,
  html.contraste-eleve .elementor-element-d6105ca p a {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.2em;
  }

    /* ============================================================
     --- ELEMENTOR : bloc "L'Avenir en commun" ---
     On cible le bloc ET tous ses descendants : les fonds crème
     sont posés par les conteneurs enfants, pas par la racine.
     ============================================================ */

  html.contraste-eleve .elementor-element-d6105ca,
  html.contraste-eleve .elementor-element-d6105ca * {
    background-color: #fff !important;
    background-image: none !important;
    color: #000 !important;
    border-color: #000 !important;
  }

  /* On restaure les couleurs de couverture de l'image (sinon
     background-color ne la concerne pas, mais restons prudents) */
  html.contraste-eleve .elementor-element-d6105ca img {
    background: none !important;
  }

  /* Titres : noir plein */
  html.contraste-eleve .elementor-element-d6105ca :is(h5, h6) {
    color: #000 !important;
    line-height: 1.35;
  }

  /* Bouton "Table des matières" : inversion au survol/focus.
     Placé APRÈS la règle générique ci-dessus pour gagner la cascade. */
  html.contraste-eleve .elementor-element-d6105ca .e-button-base {
    border-width: 2px !important;
    border-style: solid !important;
    text-decoration: none;
    padding: 8px;
  }
  html.contraste-eleve .elementor .e-e09f573-8c1d769 {
  & a::after {
       opacity: 0;
  }
}


  html.contraste-eleve .elementor-element-d6105ca .e-button-base:is(:hover, :focus-visible) {
    color: #fff !important;
    background-color: #000 !important;
    padding: 8px;
  }
  
  

  html.contraste-eleve .elementor-element-d6105ca img {
    filter: none !important;
  }

  /* --- Table des matières --- */
  html.contraste-eleve .chapitre-wrapper .right-stick .tdm a:hover {
    background-color: var(--ch-tint);
    text-decoration: underline;
  }

  /* --- Puces pleines --- */
  html.contraste-eleve .chapitre-wrapper .chapitre_sections ul > li {
    --ch-bullet-opacity: 1;
    --ch-bullet-size: 0.8em;
  }

  /* --- Boutons : bordure épaisse, inversion au survol/focus --- */
  html.contraste-eleve .chapitre-wrapper .nav.prev-next a,
  html.contraste-eleve main.introduction + .footer a.next {
    border-width: 2px;
    border-color: #000;
  }

  html.contraste-eleve .chapitre-wrapper .nav.prev-next a:is(:hover, :focus-visible),
  html.contraste-eleve main.introduction + .footer a.next:is(:hover, :focus-visible) {
    color: #fff;
    background: #000;
  }

  /* --- Focus clavier très visible --- */
  html.contraste-eleve :is(
    .chapitre-wrapper,
    main.introduction,
    main.introduction + .footer,
    .elementor-element-d6105ca
  ) :is(a, button):focus-visible {
    outline: 3px solid #000;
    outline-offset: 3px;
  }
}

/* ============================================================
   BOUTON DE BASCULE : icône seule + infobulle
   ============================================================ */
html body button.btn-contraste {
  position: fixed;
  inset-block-end: 16px;
  inset-inline-start: 16px;
  z-index: 9999;

  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;

  font-size: 22px;
  line-height: 1;
  text-transform: none !important;
  letter-spacing: normal;

  color: #000 !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(0, 0, 0, 0.25);
  cursor: pointer;
}

/* Le thème met du rose au survol/focus/clic : on force blanc + noir */
html body button.btn-contraste:is(:hover, :focus, :focus-visible, :active) {
  color: #000 !important;
  background: #fff !important;
  border-color: #000 !important;
}

/* Icône */
html body button.btn-contraste::before {
  content: "\f042";
  font-family: var(--fa-family-slab, "Font Awesome 7 Slab") !important;
  font-weight: 400;
  font-style: normal;
  font-size: 22px;
  line-height: 1;
  color: #000;
}

/* Mode actif : bordure plus épaisse pour le distinguer */
html.contraste-eleve body button.btn-contraste {
  border-width: 4px !important;
}

/* Infobulle (survol souris + focus clavier) */
html body button.btn-contraste::after {
  content: attr(data-tooltip);

  position: absolute;
  inset-inline-start: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);

  padding: 6px 10px;
  font: 600 14px/1.3 "Stack Sans Text", "Stack Sans", sans-serif;
  text-transform: none;
  white-space: nowrap;

  color: #fff;
  background: #000;
  border-radius: 6px;

  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

html body button.btn-contraste:is(:hover, :focus-visible)::after {
  opacity: 1;
}

html body button.btn-contraste:focus-visible {
  outline: 3px solid #000;
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  html body button.btn-contraste::after { transition: none; }
}

@media print {
  .btn-contraste { display: none !important; }
}
  html.contraste-eleve .chapitre-wrapper
    section.chapitre:not(.chapitre_sections > .chapitre) {
    border-width: 2px;
    border-top-width: 0;
    background-color: #fff;   /* ← ligne ajoutée */
  }

@media print {
  .btn-contraste { display: none !important; }
}/* End custom CSS */