/* ============================================================================
   Pages front v4 — Se financer (front_financer_projet.html) et CGP.
   Refonte 2026-10-01, handoff Refonte options/03-Chantiers/Handoff-financer-cgp.

   S'appuie sur home-v4.css (hero, encart de repères, bandeau de réassurance,
   titres de section, sections encre). N'ajoute que les classes du handoff §3.
   Tokens uniquement, échelle typographique δ, pas de filet d'accent, pas de serif.
   Écart de nom : le bloc formulaire s'appelle .mo-dossier (.mo-lead-form existe
   déjà dans lead-page.css).
   ============================================================================ */

/* Pas de césure automatique (règle legacy hyphens: auto de base.css), ni dans
   les titres ni dans les textes : « ob-tenir » coupé, retour de Lucile 01/10/2026. */
.mo-front, .mo-front * { hyphens: manual; }
.mo-front__card-title { text-wrap: balance; }

/* Eyebrows des maquettes : bronze 700 sur fond clair. */
.mo-front__eyebrow { color: var(--bronze-700); }

/* Hero : fil d'Ariane au-dessus, encart aligné en bas comme la maquette. */
.mo-front__hero { padding-top: var(--space-12); }
.mo-front__hero .mo-breadcrumb { margin-bottom: var(--space-12); }
.mo-front__hero-grid { align-items: end; }

/* =========================== Deux solutions =========================== */
.mo-front__solutions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }

.mo-solution-card {
  display: flex; flex-direction: column; gap: var(--space-5);
  padding: var(--space-10);
  background: var(--ink-900); border-radius: var(--radius-lg);
}
.mo-solution-card__pill {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background: var(--cream-50); color: var(--ink-900);
  font-size: var(--font-eyebrow); line-height: var(--lh-caption);
  letter-spacing: var(--ls-eyebrow); text-transform: uppercase; font-weight: var(--weight-semibold);
}
.mo-solution-card__title {
  font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2); font-weight: var(--weight-medium); color: var(--cream-50);
}
.mo-solution-card__text {
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-200);
}
.mo-solution-card__tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mo-solution-card__tags li.mo-solution-card__tags-label { border: 0; padding-left: 0; padding-right: 0; color: var(--ink-300); }
.mo-solution-card__tags li {
  padding: var(--space-1) var(--space-3);
  border: 1px solid var(--ink-700); border-radius: var(--radius-full);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--neutre-200);
}
.mo-solution-card__facts {
  margin: auto 0 0; padding-top: var(--space-5);
  border-top: 1px solid var(--ink-700);
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4);
}
.mo-solution-card__facts dt {
  font-size: var(--font-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
  font-weight: var(--weight-medium); color: var(--ink-300);
}
.mo-solution-card__facts dd {
  margin: var(--space-1) 0 0;
  font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-medium); color: var(--cream-50);
}

.mo-front__other {
  margin-top: var(--space-6);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4);
  padding: var(--space-4) var(--space-6);
  background: var(--neutre-100); border-radius: var(--radius-lg);
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body);
}

/* ======================= Étapes sur fond encre ======================= */
.mo-steps-dark { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.mo-steps-dark--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mo-steps-dark--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mo-steps-dark__item {
  display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-8) var(--space-6);
  border: 1px solid var(--ink-700); border-radius: var(--radius-lg);
}
.mo-steps-dark__num {
  font-family: var(--font-headline); font-size: var(--font-caption); line-height: var(--lh-caption);
  font-weight: var(--weight-medium); color: var(--bleuet); font-variant-numeric: tabular-nums;
}
.mo-steps-dark__title {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  letter-spacing: var(--ls-h3); font-weight: var(--weight-medium); color: var(--cream-50);
}
.mo-steps-dark__text { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-300); }

/* ===================== Préparer votre dossier ===================== */
.mo-front__prepare { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); }
.mo-front__side { display: flex; flex-direction: column; gap: var(--space-6); }
.mo-front__card {
  display: flex; flex-direction: column; gap: var(--space-4);
  padding: var(--space-8);
  background: var(--surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}
.mo-front__card--lg { padding: var(--space-10); gap: var(--space-5); }
.mo-front__card .mo-eyebrow, .mo-front__group .mo-eyebrow { margin: 0; }
.mo-front__card-title {
  margin: 0;
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  letter-spacing: var(--ls-h3); font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-front__card-text { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-front__group { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-8); border-radius: var(--radius-lg); flex-grow: 1; }
.mo-front__group-link {
  align-self: flex-start;
  font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--bronze-700);
  text-decoration: underline; text-underline-offset: 3px;
}

.mo-checklist { list-style: none; margin: 0; padding: 0; }
.mo-checklist li {
  display: flex; gap: var(--space-3); align-items: flex-start;
  padding: var(--space-3) 0; border-top: 1px solid var(--neutre-200);
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-900);
}
.mo-checklist li:last-child { border-bottom: 1px solid var(--neutre-200); }
.mo-checklist svg { flex-shrink: 0; margin-top: 0.3em; color: var(--celadon-dark); }

/* ============================ Formulaire ============================ */
.mo-front__form-wrap { padding-bottom: var(--space-24); }
/* Formulaire sombre juste après une section encre : sinon les deux blocs se touchent. */
.mo-home__section--ink + .mo-front__form-wrap { padding-top: var(--space-16); }
/* Ancres : marge sous l'en-tête fixe (≈ 68 px) ; recalage après chargement : front-anchor.js. */
.mo-front [id] { scroll-margin-top: calc(var(--space-20) + var(--space-4)); }
.mo-dossier {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-16);
  padding: var(--space-12);
  background: var(--neutre-100); border-radius: var(--radius-lg);
}
.mo-dossier__aside { display: flex; flex-direction: column; gap: var(--space-4); }
.mo-dossier__reassure {
  display: flex; flex-direction: column; gap: var(--space-2);
  margin-top: var(--space-4); padding-top: var(--space-5); border-top: 1px solid var(--ink-100);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500);
}
.mo-dossier__reassure strong { font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-dossier__tel { color: var(--ink-900); white-space: nowrap; text-decoration: none; }
.mo-dossier__form { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.mo-dossier__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-6); }
.mo-dossier .mo-form__field { margin: 0; }
/* Bloc clair (fond neutre-100) : champs et cartes en surface blanche, par le jeton. */
.mo-dossier:not(.mo-dossier--ink) { --field-bg: var(--surface-card); }
.mo-dossier__submit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-6); padding-top: var(--space-2); }
.mo-dossier__legal { max-width: 440px; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-dossier__legal a { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }

/* Variante encre (« moment signature », maquette CGP) — demandée par Lucile
   le 01/10/2026 pour le formulaire Se financer ; reprise sur la page CGP. */
.mo-dossier--ink { background: var(--ink-900); }
.mo-dossier--ink .mo-home__h2 { color: var(--cream-50); }
.mo-dossier--ink .mo-home__intro { color: var(--ink-200); }
.mo-dossier--ink .mo-dossier__reassure { border-top-color: var(--ink-700); color: var(--ink-300); }
.mo-dossier--ink .mo-dossier__reassure strong,
.mo-dossier--ink .mo-dossier__tel { color: var(--cream-50); }
/* Champs, cartes de choix et erreurs du formulaire sombre : jetons .mo-surface-dark
   (tokens.css, formulaires « Doux » du 05/10/2026). Anciennes règles trait bas retirées. */
.mo-dossier--ink .mo-dossier__legal { color: var(--ink-300); }
.mo-dossier--ink .mo-dossier__legal a { color: var(--bronze-200); }
/* Champs au repos sur fond encre (B10, 13/10/2026) : contour 1 px ink-500, le fond
   ink-700 seul ne se distingue pas assez du fond ink-900. */
.mo-dossier--ink .mo-form__field :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(:focus):not([aria-invalid="true"]),
.mo-surface-dark .mo-form__field :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not(:focus):not([aria-invalid="true"]) {
  box-shadow: inset 0 0 0 1px var(--ink-500);
}
/* Bouton d'envoi inversé sur fond encre (maquette). */
.mo-dossier--ink .mo-btn--primary,
.mo-dossier--ink .mo-btn--primary:hover,
.mo-dossier--ink .mo-btn--primary:focus-visible { background-color: var(--cream-50); border-color: var(--cream-50); color: var(--ink-900); }

/* ===================== Conditions tarifaires ===================== */
/* Maquette validée le 01/10/2026 (front_conditions_tarifaires.html, pricing-simulator.js). */

.mo-pricing { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: start; }
.mo-pricing__inputs { gap: var(--space-8); }
.mo-pricing__field { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding: 0; border: 0; min-width: 0; }
.mo-pricing__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); }
.mo-pricing__label { padding: 0; margin: 0; font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-pricing__value {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mo-pricing__ends { display: flex; justify-content: space-between; font-size: var(--font-caption); color: var(--ink-500); }
.mo-pricing input[type="range"] { width: 100%; accent-color: var(--ink-900); }
.mo-pricing__families .mo-form__radio-card-title { display: inline-flex; align-items: center; gap: var(--space-2); }

.mo-pricing__result {
  position: sticky; top: calc(var(--space-20) + var(--space-4));
  display: flex; flex-direction: column; gap: var(--space-5);
  padding: var(--space-8); background: var(--ink-900); border-radius: var(--radius-lg);
}
.mo-pricing__result .mo-eyebrow { margin: 0; }
.mo-pricing__rows { margin: 0; }
.mo-pricing__rows > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); padding: var(--space-3) 0; }
.mo-pricing__rows > div + div { border-top: 1px solid var(--ink-700); }
.mo-pricing__rows dt { font-size: var(--font-caption); line-height: var(--lh-caption); font-weight: var(--weight-regular); color: var(--ink-300); }
.mo-pricing__rows dd {
  margin: 0; font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--cream-50);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mo-pricing__row--sub dt { padding-left: var(--space-4); }
.mo-pricing__row--sub dd { font-weight: var(--weight-regular); color: var(--ink-200); }
.mo-pricing__row--key dd { font-family: var(--font-headline); font-size: var(--font-h3); color: var(--bleuet); }
.mo-pricing__schedule {
  padding: var(--space-4) var(--space-5); background: var(--ink-800); border-radius: var(--radius-md);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-200);
}
.mo-pricing__schedule strong { color: var(--cream-50); font-weight: var(--weight-medium); }
.mo-pricing__legal { font-size: var(--font-caption); line-height: var(--lh-caption); font-style: italic; color: var(--ink-300); }
.mo-btn.mo-pricing__cta,
.mo-btn.mo-pricing__cta:hover,
.mo-btn.mo-pricing__cta:focus-visible { align-self: flex-start; background-color: var(--cream-50); border-color: var(--cream-50); color: var(--ink-900); }

/* Frise des flux */
.mo-timeline-wrap { display: flex; flex-direction: column; gap: var(--space-8); padding: var(--space-24) 0; }
.mo-timeline-wrap__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-8); }
.mo-timeline-wrap__legend { display: flex; gap: var(--space-5); font-size: var(--font-caption); color: var(--ink-500); white-space: nowrap; }
.mo-timeline__key { display: inline-block; width: 10px; height: 10px; margin-right: var(--space-2); border-radius: var(--radius-full); vertical-align: -1px; }
.mo-timeline__key--in, .mo-timeline__node--in { background: var(--bleuet); }
.mo-timeline__key--out, .mo-timeline__node--out { background: var(--ink-900); }
.mo-timeline-scroll {
  overflow-x: auto; padding: var(--space-8) var(--space-6);
  background: var(--surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}
.mo-timeline { list-style: none; margin: 0; padding: 0; display: flex; min-width: 100%; width: max-content; position: relative; }
.mo-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 92px; height: 1px; background: var(--neutre-200); }
.mo-timeline__item { flex: 1 0 92px; display: grid; grid-template-rows: 64px 56px auto; justify-items: center; text-align: center; }
.mo-timeline__item--major { flex: 1.6 0 140px; }
.mo-timeline__amount {
  align-self: end; padding-bottom: var(--space-3);
  font-size: var(--font-body); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mo-timeline__amount--in { color: var(--bleuet-dark); }
.mo-timeline__amount--out { color: var(--ink-900); }
.mo-timeline__amount small { display: block; max-width: 140px; margin: 0 auto; white-space: normal; font-size: var(--font-eyebrow); font-weight: var(--weight-regular); color: var(--ink-500); }
.mo-timeline__node {
  align-self: center; position: relative; z-index: 1;
  width: 14px; height: 14px; border-radius: var(--radius-full); box-shadow: 0 0 0 4px var(--surface-card);
}
.mo-timeline__item--major .mo-timeline__node { width: 18px; height: 18px; }
/* Jalon groupé (coupons intermédiaires, durées > 24 mois) : point cerclé. */
.mo-timeline__node--group { background: var(--surface-card); border: 2px solid var(--ink-900); box-sizing: border-box; }
.mo-timeline__when {
  display: block; font-size: var(--font-eyebrow); font-weight: var(--weight-medium);
  letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--bronze-700);
}
.mo-timeline__label { max-width: 150px; }
.mo-timeline__what { display: block; margin-top: var(--space-1); padding: 0 var(--space-2); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-timeline-totals { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.mo-timeline-totals > div { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4) var(--space-5); background: var(--cream-100); border-radius: var(--radius-md); }
.mo-timeline-totals dt { font-size: var(--font-caption); font-weight: var(--weight-regular); color: var(--ink-500); }
.mo-timeline-totals dd {
  margin: 0; font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900); font-variant-numeric: tabular-nums;
}

/* Barèmes par famille (maquette v2, 02/10/2026) */
.mo-pricing-bareme {
  margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4);
  padding: var(--space-4) 0; border-top: 1px solid var(--neutre-200); border-bottom: 1px solid var(--neutre-200);
}
.mo-pricing-bareme dt { font-size: var(--font-caption); line-height: var(--lh-caption); font-weight: var(--weight-regular); color: var(--ink-500); }
.mo-pricing-bareme dd {
  margin: var(--space-1) 0 0; font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900); font-variant-numeric: tabular-nums;
}
.mo-front__card .mo-eyebrow .mo-home__family-dot { display: inline-block; vertical-align: 1px; margin-right: var(--space-1); }
/* Simulateur placé après les barèmes et les jalons. */
.mo-pricing-wrap { padding-top: var(--space-24); }
.mo-pricing-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); }
.mo-pricing-steps li {
  display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--ink-100);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body);
}
.mo-pricing-steps h3 {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-pricing-steps__num { font-family: var(--font-headline); font-weight: var(--weight-medium); color: var(--bronze-600); }
.mo-pricing-faq { max-width: 860px; }
.mo-pricing-faq details { padding: var(--space-5) 0; border-top: 1px solid var(--neutre-200); }
.mo-pricing-faq details:last-child { border-bottom: 1px solid var(--neutre-200); }
.mo-pricing-faq summary {
  display: flex; justify-content: space-between; gap: var(--space-4); cursor: pointer; list-style: none;
  font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-pricing-faq summary::-webkit-details-marker { display: none; }
/* Pas de cadre au clic ; contour réservé à la navigation clavier. */
.mo-pricing-faq summary:focus:not(:focus-visible) { outline: none; }
.mo-pricing-faq summary:focus-visible { outline: 2px solid var(--ink-900); outline-offset: 4px; border-radius: var(--radius-sm, 4px); }
.mo-pricing-faq summary::after { content: "+"; color: var(--ink-500); }
.mo-pricing-faq details[open] summary::after { content: "−"; }
.mo-pricing-faq details > div { margin-top: var(--space-3); max-width: 72ch; font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-pricing-cta {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-6);
  margin: var(--space-24) 0; padding: var(--space-10) var(--space-12);
  background: var(--ink-900); border-radius: var(--radius-lg);
}
.mo-pricing-cta .mo-home__h2 { color: var(--cream-50); }

/* =========================== Nos obligations =========================== */
/* Bloc « Deux horizons, un même cadre » (maquette de Lucile, 02/10/2026) :
   remplace les cartes familles et le tableau comparatif. */
.mo-horizons__head { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; max-width: 720px; margin: 0 auto var(--space-12); }
.mo-horizons__head .mo-eyebrow { margin: 0; }
.mo-horizons {
  /* Rangées partagées (subgrid) : libellé, titre, texte, étiquettes et chiffres
     alignés d'une famille à l'autre. */
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(6, auto); row-gap: var(--space-4);
  padding: var(--space-12); background: var(--ink-900); border-radius: var(--radius-lg);
}
.mo-horizons__family { display: grid; grid-row: span 6; grid-template-rows: subgrid; align-content: start; min-width: 0; }
.mo-horizons__family .mo-solution-card__tags { margin-bottom: var(--space-2); align-self: start; }
.mo-horizons__family + .mo-horizons__family { border-left: 1px solid var(--ink-700); padding-left: var(--space-12); margin-left: var(--space-12); }
.mo-horizons__label {
  margin: 0; display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--font-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
  font-weight: var(--weight-semibold); color: var(--cream-50);
}
.mo-horizons__dot--croissance { background: var(--celadon-light); }
.mo-horizons__title {
  font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2); font-weight: var(--weight-medium); color: var(--cream-50);
}
.mo-horizons__text { font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-200); }
.mo-horizons__facts {
  margin: 0; padding-top: var(--space-6); border-top: 1px solid var(--ink-700); align-self: start;
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-6) var(--space-10);
}
.mo-horizons__facts dt { font-size: var(--font-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; font-weight: var(--weight-medium); color: var(--ink-300); }
.mo-horizons__facts dd {
  margin: var(--space-2) 0 0; font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2); /* réduit (retour Lucile 02/10/2026) */
  letter-spacing: var(--ls-h2); font-weight: var(--weight-medium); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mo-horizons__family--serenite .mo-horizons__facts dd { color: var(--bleuet); }
.mo-horizons__family--croissance .mo-horizons__facts dd { color: var(--celadon-light); }
.mo-horizons__facts dd.mo-horizons__sub {
  margin-top: var(--space-1); font-family: var(--font-primary); font-size: var(--font-caption); line-height: var(--lh-caption);
  letter-spacing: normal; white-space: normal; color: var(--ink-300);
}
.mo-horizons__family--serenite .mo-horizons__facts dd.mo-horizons__sub,
.mo-horizons__family--croissance .mo-horizons__facts dd.mo-horizons__sub { color: var(--ink-300); }
/* Ce qui est commun aux deux familles */
.mo-horizons__common {
  display: grid; grid-template-columns: minmax(0, 0.8fr) repeat(4, minmax(0, 1fr));
  margin-top: var(--space-12);
}
.mo-horizons__common .mo-eyebrow { margin: 0; padding-right: var(--space-6); }
.mo-horizons__common > div { padding: 0 var(--space-6); border-left: 1px solid var(--ink-100); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-horizons__common h3 { margin-bottom: var(--space-2); font-family: var(--font-headline); font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-compare-foot {
  margin-top: var(--space-10); padding-top: var(--space-6); border-top: 1px solid var(--ink-100);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4);
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body);
}

/* Étapes du compte (partiel partagé) : sur une section crème 100, les cartes
   passent en crème 50 pour ne pas se fondre dans le fond (retour 02/10/2026). */
.mo-home__section--cream-100 .mo-home__step { background: var(--cream-50); }

/* ================ Particuliers · Trésoreries d'entreprise ================ */
/* Repère « Fonds non investis » : valeur textuelle en corps, pas en chiffre H3. */
.mo-home__mark--text dd { font-family: var(--font-primary); font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-semibold); text-align: right; white-space: nowrap; }
/* _front_audience_page.html, handoff Handoff-particuliers-tresorerie (02/10/2026). */
.mo-feature-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.mo-feature-card {
  display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-8); background: var(--surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}
.mo-feature-card__num { font-family: var(--font-headline); font-size: var(--font-caption); font-weight: var(--weight-medium); color: var(--bronze-700); font-variant-numeric: tabular-nums; }
.mo-feature-card__title {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-feature-card__text { font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
/* Une ligne par produit dans la carte 01 (remplace les pastilles, 02/10/2026). */
.mo-feature-card__products {
  list-style: none; margin: auto 0 0; padding: var(--space-4) 0 0; border-top: 1px solid var(--neutre-200);
  display: flex; flex-direction: column; gap: var(--space-2);
}
.mo-feature-card__products li { display: flex; gap: var(--space-2); align-items: baseline; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-feature-card__products .mo-home__family-dot { flex-shrink: 0; transform: translateY(-1px); }
.mo-feature-card__products strong { font-weight: var(--weight-semibold); color: var(--ink-900); white-space: nowrap; }

/* Bon à savoir : encart léger, positif d'abord */
.mo-know-wrap { padding-bottom: var(--space-24); }
.mo-know {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-12);
  padding: var(--space-10) var(--space-12); background: var(--neutre-100); border-radius: var(--radius-lg);
}
.mo-know__head { display: flex; flex-direction: column; gap: var(--space-3); }
.mo-know__head .mo-eyebrow { margin: 0; }
.mo-know__title {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-know__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); }
.mo-know__item { display: flex; flex-direction: column; gap: var(--space-2); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-know__item h3 { font-family: var(--font-primary); font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-semibold); color: var(--ink-900); }

/* Pied des étapes sur fond encre : note réglementaire + bouton clair */
.mo-steps-dark__foot {
  margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--ink-700);
  display: flex; justify-content: space-between; align-items: center; gap: var(--space-8);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-300);
}
.mo-steps-dark__foot > div { max-width: 760px; }
.mo-steps-dark__foot .mo-btn { flex-shrink: 0; }

/* Bloc de fin */
.mo-aud-end { flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-10); }
.mo-aud-end__text { display: flex; flex-direction: column; gap: var(--space-3); max-width: 680px; }
.mo-aud-end__text .mo-eyebrow { margin: 0; }
.mo-aud-end__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); flex-shrink: 0; }
.mo-aud-end-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-6); }
.mo-aud-end-grid .mo-front__card-title { margin: 0; }

/* ================================ CGP ================================ */
/* front_cgp.html, handoff Handoff-financer-cgp (02/10/2026). */
.mo-cgp-selection { padding-bottom: var(--space-24); }
.mo-selection-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--font-body); line-height: var(--lh-body); }
.mo-selection-table th, .mo-selection-table td {
  padding: var(--space-4) var(--space-6); text-align: left; vertical-align: middle;
  border-top: 1px solid var(--neutre-200); color: var(--ink-body);
  font-family: var(--font-primary); font-size: var(--font-body); font-weight: var(--weight-regular);
  text-transform: none; letter-spacing: normal; background: transparent;
}
.mo-selection-table thead > tr > th {
  border-top: 0; background: var(--neutre-100);
  font-size: var(--font-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
  font-weight: var(--weight-medium); color: var(--ink-500);
}
.mo-selection-table__title { font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-selection-table__num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mo-selection-table__family { display: inline-flex; align-items: center; gap: var(--space-2); }
.mo-selection-table__locked { font-size: var(--font-caption) !important; color: var(--bronze-700) !important; }
.mo-selection-table .mo-home__link { font-size: var(--font-caption); }

/* Étape « bientôt disponible » et encart réglementaire sur fond encre */
.mo-steps-dark__soon {
  display: inline-block; margin-left: var(--space-2); padding: 0 var(--space-2);
  border: 1px solid var(--ink-500); border-radius: var(--radius-full);
  font-family: var(--font-primary); font-size: var(--font-eyebrow); line-height: 1.8;
  letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--ink-200); vertical-align: 1px;
}
.mo-cgp-reg {
  display: flex; gap: var(--space-4); align-items: flex-start;
  margin-top: var(--space-6); padding: var(--space-6) var(--space-8);
  background: var(--ink-800); border-radius: var(--radius-lg);
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--neutre-200);
}
.mo-cgp-reg svg { flex-shrink: 0; margin-top: 3px; color: var(--bronze-200); }

/* ============ Notre approche du risque · Qui sommes-nous · Manifeste ============ */
/* risk.html, about.html, manifeste.html (handoffs Handoff-risques et
   Handoff-about-manifeste-contact, 02/10/2026). */

/* Sommaire « Sur cette page » (hero) */
.mo-onpage { gap: var(--space-3); }
.mo-onpage .mo-eyebrow { margin: 0; }
.mo-onpage ul { list-style: none; margin: 0; padding: 0; }
.mo-onpage li + li { border-top: 1px solid var(--neutre-200); }
.mo-onpage a {
  display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0;
  font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: none;
}
.mo-onpage a:hover { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }

.mo-feature-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mo-home__section--cream-100 .mo-feature-card { box-shadow: none; }
.mo-risk-note { margin-top: var(--space-6); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }

/* Étapes sombres avec puces */
.mo-steps-dark__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.mo-steps-dark__list li {
  position: relative; padding-left: var(--space-4);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-200);
}
.mo-steps-dark__list li::before {
  content: ""; position: absolute; left: 0; top: calc((1lh - 5px) / 2);
  width: 5px; height: 5px; border-radius: var(--radius-full); background: var(--bronze-200);
}

/* Lignes du cadre : titre | texte | lien */
.mo-frame-rows { margin: 0; }
.mo-frame-rows > div {
  display: grid; grid-template-columns: 280px minmax(0, 1fr) 260px; gap: var(--space-8); align-items: baseline;
  padding: var(--space-6) 0; border-top: 1px solid var(--neutre-200);
}
.mo-frame-rows > div:last-child { border-bottom: 1px solid var(--neutre-200); }
.mo-frame-rows dt { font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-frame-rows dd { margin: 0; font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-frame-rows__link { text-align: right; }

/* FAQ en deux colonnes */
.mo-faq-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-16); align-items: start; }
.mo-faq-split__head { display: flex; flex-direction: column; gap: var(--space-4); }
.mo-faq-split__head .mo-eyebrow { margin: 0; }

/* Qui sommes-nous */
.mo-idcard { gap: var(--space-3); align-self: center; }
.mo-idcard .mo-eyebrow { margin: 0; }
.mo-idcard dl { margin: 0; }
.mo-idcard dl > div { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-top: 1px solid var(--neutre-200); }
.mo-idcard dt { font-size: var(--font-caption); color: var(--ink-500); font-weight: var(--weight-regular); }
.mo-idcard dd { margin: 0; text-align: right; font-size: var(--font-body); font-weight: var(--weight-regular); color: var(--ink-900); white-space: nowrap; }
/* Fiche allégée (retour 02/10/2026) : valeurs en corps régulier, une ligne chacune. */
.mo-idcard dl > div { align-items: baseline; }
.mo-know--flat { margin-top: var(--space-8); grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: var(--space-8) var(--space-10); }
/* Encart « Ce que nous ne faisons pas » : eyebrow au-dessus, trois colonnes
   égales (retours de Lucile du 02/10/2026). */
.mo-know--flat .mo-know__items { gap: var(--space-10); }
/* Titre court sur une ligne, texte dessous (2e retour du 02/10/2026). */
.mo-know--flat .mo-know__item { font-size: var(--font-body); line-height: var(--lh-body); }
.mo-know--flat .mo-know__item h3 { white-space: nowrap; }
.mo-know--flat .mo-know__item + .mo-know__item { border-left: 1px solid var(--ink-100); padding-left: var(--space-10); }
.mo-product-card { color: var(--ink-body); text-decoration: none; transition: box-shadow var(--duration-base) var(--ease); }
.mo-product-card:hover, .mo-product-card:focus-visible { color: var(--ink-body); text-decoration: none; box-shadow: var(--shadow-modal); }
.mo-product-card .mo-eyebrow { margin: 0; }
.mo-product-card__title { font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-front__card .mo-eyebrow .mo-home__family-dot { display: inline-block; vertical-align: 1px; }
.mo-ruled-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mo-ruled-cols > div { display: flex; flex-direction: column; gap: var(--space-3); padding: 0 var(--space-8); font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-ruled-cols > div:first-child { padding-left: 0; }
.mo-ruled-cols > div + div { border-left: 1px solid var(--ink-100); }
.mo-ruled-cols h3 { font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-ruled-cols .mo-home__link { margin-top: auto; align-self: flex-start; }
.mo-team { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-16); align-items: start; }
.mo-team__head { display: flex; flex-direction: column; gap: var(--space-4); align-items: flex-start; }
.mo-team__head .mo-eyebrow { margin: 0; }
.mo-team__list { margin: 0; }
.mo-team__list > div { padding: var(--space-5) 0; border-top: 1px solid var(--ink-100); }
.mo-team__list > div:last-child { border-bottom: 1px solid var(--ink-100); }
.mo-team__list dt { font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-team__list dd { margin: var(--space-2) 0 0; font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-manifeste-teaser {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-12);
  padding: var(--space-12); background: var(--neutre-100); border-radius: var(--radius-lg);
}
.mo-manifeste-teaser__head { display: flex; flex-direction: column; gap: var(--space-5); align-items: flex-start; }
.mo-manifeste-teaser__head .mo-eyebrow { margin: 0; }
.mo-manifeste-teaser__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: column; grid-template-rows: repeat(4, auto); column-gap: var(--space-8); }
/* Rangées de même hauteur dans les deux colonnes (retour 02/10/2026) : le lien
   occupe toute la cellule de grille, le trait suit la rangée la plus haute. */
.mo-manifeste-teaser__list li { display: flex; }
.mo-manifeste-teaser__list a {
  flex: 1; align-items: center; display: flex; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--ink-100);
  font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: none;
}
.mo-manifeste-teaser__list a:hover { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }
.mo-manifeste-teaser__list span { font-family: var(--font-headline); color: var(--bronze-600); font-variant-numeric: tabular-nums; }
.mo-group-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.mo-group-card {
  display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-8);
  background: var(--ink-800); border-radius: var(--radius-lg);
  font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-200);
}
.mo-group-card h3 { font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--cream-50); }
.mo-group-card .mo-home__link { margin-top: auto; align-self: flex-start; }
.mo-group-foot {
  margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--ink-700);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4);
  font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-300);
}

/* Manifeste */
.mo-manifeste-hero { max-width: 980px; }
.mo-manifeste { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--space-16); padding-top: var(--space-8); padding-bottom: var(--space-24); }
.mo-manifeste__toc ol { position: sticky; top: calc(var(--space-20) + var(--space-4)); list-style: none; margin: 0; padding: 0; }
.mo-manifeste__toc a {
  display: flex; gap: var(--space-3); padding: var(--space-2) 0;
  font-size: var(--font-caption); line-height: var(--lh-caption); font-weight: var(--weight-medium); color: var(--ink-500); text-decoration: none;
}
.mo-manifeste__toc a span { font-family: var(--font-headline); color: var(--bronze-600); font-variant-numeric: tabular-nums; }
.mo-manifeste__toc a:hover, .mo-manifeste__toc a.is-active { color: var(--ink-900); }
.mo-manifeste__list { display: flex; flex-direction: column; }
.mo-manifeste__item {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--space-10); align-items: start;
  padding: var(--space-12) 0; border-top: 1px solid var(--neutre-200);
}
.mo-manifeste__item:first-child { border-top: 0; padding-top: 0; }
.mo-manifeste__main { display: flex; flex-direction: column; gap: var(--space-4); }
.mo-manifeste__num { font-family: var(--font-headline); font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--bronze-600); font-variant-numeric: tabular-nums; }
.mo-manifeste__title {
  font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2); font-weight: var(--weight-medium); color: var(--ink-900); text-wrap: balance;
}
.mo-manifeste__text { font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-manifeste__proof { gap: var(--space-4); }
.mo-manifeste__proof .mo-eyebrow { margin: 0; }
.mo-manifeste__proof .mo-checklist li { font-size: var(--font-caption); line-height: var(--lh-caption); }
.mo-manifeste__proof .mo-home__link { align-self: flex-start; font-size: var(--font-caption); }
.mo-manifeste-sign { align-items: flex-end; }
.mo-manifeste-sign .mo-eyebrow { margin: 0 0 var(--space-3); }
.mo-manifeste-sign .mo-home__intro { margin-top: var(--space-3); color: var(--ink-200); }

/* Sous-pages produit (front_bond_product.html, 02/10/2026) */
.mo-prod__dot { display: inline-block; margin-right: var(--space-2); vertical-align: 1px; }
.mo-steps-dark__money { margin-top: auto; padding-top: var(--space-2); font-size: var(--font-caption); font-weight: var(--weight-medium); color: var(--cream-50); }
.mo-horizons__more { align-self: start; font-size: var(--font-caption); }
/* Carte « L'autre produit » (2e version, 02/10/2026) */
.mo-next-product-wrap { padding-block: var(--space-16) var(--space-20); }
.mo-next-product {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) auto; gap: var(--space-10); align-items: center;
  padding: var(--space-10) var(--space-12);
  background: var(--surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}
.mo-next-product__main { display: flex; flex-direction: column; gap: var(--space-3); }
.mo-next-product__main .mo-eyebrow { margin: 0; }
.mo-next-product__title {
  display: flex; align-items: center; gap: var(--space-3);
  font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2); font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-next-product__title .mo-home__family-dot { width: 10px; height: 10px; }
.mo-next-product__facts {
  margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6);
  padding-left: var(--space-10); border-left: 1px solid var(--neutre-200);
}
.mo-next-product__facts dt { font-size: var(--font-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; font-weight: var(--weight-medium); color: var(--ink-500); }
.mo-next-product__facts dd {
  margin: var(--space-2) 0 0; font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--ink-900); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mo-next-product__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.mo-next-product__actions .mo-home__link { font-size: var(--font-caption); }
@media (max-width: 1024px) {
  .mo-next-product { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding: var(--space-8); }
  .mo-next-product__facts { padding-left: 0; border-left: 0; padding-top: var(--space-6); border-top: 1px solid var(--neutre-200); }
}

/* ============================== Contact ============================== */
/* Handoff Qui sommes-nous · Manifeste · Contact, 02/10/2026 (contact_form.html). */
.mo-front__hero-grid--7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }

.mo-contact-aside {
  display: flex; flex-direction: column;
  padding: var(--space-8); background: var(--ink-900); border-radius: var(--radius-lg);
}
.mo-contact-aside__phone {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding-bottom: var(--space-5); border-bottom: 1px solid var(--ink-700);
}
.mo-contact-aside__row {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4);
  padding: var(--space-4) 0;
}
.mo-contact-aside__row + .mo-contact-aside__row { border-top: 1px solid var(--ink-700); padding-bottom: 0; }
/* Tailles alignées sur l'encart des repères de la home (retour Lucile 02/10/2026). */
.mo-contact-aside__label { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-300); }
.mo-contact-aside__tel {
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3);
  font-weight: var(--weight-medium); color: var(--bleuet); text-decoration: none; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.mo-contact-aside__value {
  font-size: var(--font-body); line-height: var(--lh-body);
  font-weight: var(--weight-medium); color: var(--cream-50); text-decoration: none; text-align: right;
  overflow-wrap: anywhere;
}
.mo-contact-aside a:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Aiguillage « Avant d'écrire » */
.mo-route-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-4); }
.mo-route-card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-6);
  background: var(--surface-card); border: 1px solid var(--neutre-200); border-radius: var(--radius-lg);
  color: var(--ink-body); text-decoration: none;
  transition: border-color var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease);
}
.mo-route-card:hover, .mo-route-card:focus-visible { border-color: var(--ink-300); box-shadow: var(--shadow-card); color: var(--ink-body); text-decoration: none; }
.mo-route-card__icon {
  width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--radius-full); background: var(--neutre-100); color: var(--bronze-600);
}
.mo-route-card__icon { margin-bottom: var(--space-2); }
/* Tailles réduites (retour Lucile 02/10/2026) : titre en corps semi-gras, texte en
   légende, sans le gras hérité des liens legacy. */
.mo-route-card__title {
  font-family: var(--font-primary); font-size: var(--font-body); line-height: var(--lh-body);
  font-weight: var(--weight-semibold); color: var(--ink-900);
}
.mo-route-card__text { flex-grow: 1; font-size: var(--font-caption); line-height: var(--lh-caption); font-weight: var(--weight-regular); color: var(--ink-500); }
.mo-route-card__link { margin-top: var(--space-1); font-size: var(--font-caption); font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }
.mo-contact-routes { padding-top: var(--space-8); }

/* Formulaire : profil en pastilles radio (fond encre) */
.mo-pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mo-pills__item, .mo-pills__item span { margin-bottom: 0; }
.mo-pills__item { position: relative; margin: 0; cursor: pointer; }
.mo-pills__item input {
  position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; border: 0;
  opacity: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden;
}
/* Taille réduite (retour Lucile 02/10/2026) : légende, hauteur 32 px, une ligne. */
.mo-pills__item span {
  display: inline-flex; align-items: center; height: 32px; padding: 0 var(--space-4);
  border: 1px solid var(--ink-500); border-radius: var(--radius-full);
  font-family: var(--font-primary); font-size: var(--font-caption); line-height: 1;
  font-weight: var(--weight-medium); color: var(--neutre-200);
  transition: background-color var(--duration-base) var(--ease), color var(--duration-base) var(--ease);
}
.mo-pills__item:hover span { border-color: var(--ink-300); }
.mo-pills__item input:checked + span { background: var(--neutre-50); border-color: var(--neutre-50); color: var(--ink-900); }
.mo-pills__item input:focus-visible + span { outline: 2px solid var(--cream-50); outline-offset: 3px; }
.mo-pills__help { margin-top: var(--space-3); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-300); }
.mo-pills__help a { color: var(--bronze-200); text-decoration: underline; text-underline-offset: 3px; }
.mo-dossier--ink .mo-form__fieldset { margin: 0; padding: 0; border: 0; }
.mo-contact-optional { font-weight: var(--weight-regular); color: var(--ink-300); }
.mo-contact-login { align-self: flex-start; font-size: var(--font-caption); color: var(--bronze-200); text-decoration: underline; text-underline-offset: 3px; }
.mo-contact-login:hover { color: var(--bronze-200); }
/* Badge d'erreur « À corriger » adapté au fond encre */
.mo-dossier__badge {
  display: inline-block; margin-left: var(--space-2); padding: 0 var(--space-2);
  border: 1px solid var(--terracotta-light); border-radius: var(--radius-full);
  font-size: var(--font-eyebrow); line-height: 1.7; font-weight: var(--weight-medium);
  letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--terracotta-light);
  vertical-align: 1px;
}
.mo-contact-success { display: flex; flex-direction: column; gap: var(--space-4); align-self: center; }
.mo-contact-success__title {
  font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2);
  font-weight: var(--weight-medium); color: var(--cream-50);
}

/* ============================ Responsive ============================ */
@media (max-width: 1024px) {
  .mo-front__hero-grid--7-5 { grid-template-columns: minmax(0, 1fr); }
  .mo-feature-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mo-frame-rows > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .mo-frame-rows__link { text-align: left; }
  .mo-faq-split, .mo-team, .mo-manifeste-teaser, .mo-manifeste, .mo-manifeste__item { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .mo-manifeste__toc { display: none; }
  .mo-ruled-cols { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-8); }
  .mo-ruled-cols > div { padding: 0; }
  .mo-ruled-cols > div + div { border-left: 0; border-top: 1px solid var(--ink-100); padding-top: var(--space-8); }
  .mo-horizons { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; padding: var(--space-8); }
  .mo-horizons__family { grid-row: auto; grid-template-rows: none; row-gap: var(--space-4); }
  .mo-horizons__family + .mo-horizons__family { border-left: 0; padding-left: 0; margin-left: 0; border-top: 1px solid var(--ink-700); padding-top: var(--space-8); margin-top: var(--space-8); }
  .mo-horizons__common { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-6); }
  .mo-horizons__common .mo-eyebrow { grid-column: 1 / -1; }
  .mo-feature-cards, .mo-know { grid-template-columns: minmax(0, 1fr); }
  .mo-know { gap: var(--space-6); padding: var(--space-8); }
  .mo-aud-end { flex-direction: column; align-items: flex-start; }
  .mo-pricing { grid-template-columns: minmax(0, 1fr); }
  .mo-pricing__result { position: static; }
  .mo-timeline-totals, .mo-pricing-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .mo-pricing-bareme { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .mo-pricing-wrap { padding-top: var(--space-16); }
  .mo-timeline-wrap { padding: var(--space-16) 0; }
  .mo-timeline-wrap__head { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
  .mo-pricing-cta { padding: var(--space-8) var(--space-6); margin: var(--space-16) 0; }
}
/* Mobile : la frise devient verticale (une ligne par jalon). */
@media (max-width: 640px) {
  .mo-timeline-totals, .mo-pricing-steps { grid-template-columns: minmax(0, 1fr); }
  .mo-know--flat .mo-know__item + .mo-know__item { border-left: 0; padding-left: 0; }
  .mo-feature-cards--4, .mo-group-cards, .mo-manifeste-teaser__list { grid-template-columns: minmax(0, 1fr); }
  .mo-manifeste-teaser__list { grid-auto-flow: row; grid-template-rows: none; }
  .mo-manifeste-teaser { padding: var(--space-8) var(--space-6); }
  .mo-cgp-reg { padding: var(--space-5); }
  .mo-horizons__common { grid-template-columns: minmax(0, 1fr); }
  .mo-horizons__common > div { border-left: 0; padding: 0; }
  .mo-know__items, .mo-aud-end-grid { grid-template-columns: minmax(0, 1fr); }
  .mo-steps-dark__foot { flex-direction: column; align-items: flex-start; }
  .mo-timeline-scroll { padding: var(--space-6) var(--space-5); }
  .mo-timeline { flex-direction: column; width: 100%; }
  .mo-timeline::before { top: 0; bottom: 0; left: 8px; right: auto; width: 1px; height: auto; }
  .mo-timeline__item, .mo-timeline__item--major {
    flex: none; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; grid-template-rows: auto;
    align-items: start; gap: var(--space-3); padding: var(--space-3) 0; text-align: left; justify-items: start;
  }
  .mo-timeline__node { grid-column: 1; grid-row: 1; margin-top: var(--space-1); justify-self: center; }
  .mo-timeline__label { grid-column: 2; grid-row: 1; }
  .mo-timeline__what { padding: 0; }
  .mo-timeline__amount { grid-column: 3; grid-row: 1; align-self: start; padding: 0; text-align: right; }
}
@media (max-width: 1100px) {
  .mo-steps-dark--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .mo-front__solutions, .mo-front__prepare, .mo-dossier { grid-template-columns: minmax(0, 1fr); }
  .mo-dossier { gap: var(--space-8); }
}
@media (max-width: 900px) {
  .mo-steps-dark--3 { grid-template-columns: minmax(0, 1fr); }
  .mo-solution-card, .mo-front__card--lg, .mo-dossier { padding: var(--space-8) var(--space-6); }
}
@media (max-width: 640px) {
  .mo-steps-dark--4, .mo-dossier__grid { grid-template-columns: minmax(0, 1fr); }
  .mo-solution-card__facts { grid-template-columns: minmax(0, 1fr); }
  .mo-dossier .mo-form__radio-cards--3 { grid-template-columns: minmax(0, 1fr); }
}

/* ================== Demande de financement (16/10/2026) ================== */
/* Handoff Demande de financement : « Demande reçue » (company_contact_form.html,
   état success) et questionnaire complémentaire (lead_form2.html). Grille 8/4
   avec le bloc contact de la page Contact (_front_contact_aside.html). */
.mo-front__hero-grid--8-4 { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.mo-front__hero-grid--top { align-items: start; }
.mo-front__hero-grid--sticky > .mo-contact-aside { position: sticky; top: var(--space-6); }

/* Bouton contour (Retour à l'accueil, Enregistrer le brouillon) : variante des
   boutons du site public, fond transparent, filet encre. */
.mo-front .mo-btn--outline { background: transparent; color: var(--ink-900); border: 1px solid var(--ink-900); border-radius: 999px; }
.mo-front .mo-btn--outline:hover, .mo-front .mo-btn--outline:focus-visible { background: transparent; color: var(--ink-900); box-shadow: inset 0 0 0 1px var(--ink-900); }

/* Demande reçue : eyebrow coché, trois étapes numérotées (seule numérotation des pages). */
.mo-lead-done { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.mo-lead-done .mo-home__hero-title, .mo-dossier2 .mo-home__hero-title { font-weight: var(--weight-medium); }
.mo-lead-done__eyebrow { display: inline-flex; align-items: center; gap: var(--space-2); margin: 0; }
.mo-lead-done__check {
  display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
  border-radius: var(--radius-full); background: var(--celadon-50); color: var(--celadon-700);
}
.mo-lead-done__hint { max-width: none; margin: 0; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-lead-done__hint a { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }
.mo-lead-done .mo-home__actions { margin-top: 0; }
.mo-lead-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.mo-lead-steps__item {
  display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5);
  background: var(--surface-card); border: 1px solid var(--neutre-200); border-radius: var(--radius-lg);
}
.mo-lead-steps__item.is-active { background: var(--ink-900); border-color: var(--ink-900); }
.mo-lead-steps__num {
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-bottom: var(--space-1);
  border-radius: var(--radius-full); background: var(--bronze-100); color: var(--bronze-700);
  font-size: var(--font-caption); font-weight: var(--weight-semibold);
}
.mo-lead-steps__item.is-active .mo-lead-steps__num { background: var(--cream-50); color: var(--ink-900); }
.mo-lead-steps__title { font-size: var(--font-body); font-weight: var(--weight-semibold); color: var(--ink-900); }
.mo-lead-steps__text { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-lead-steps__item.is-active .mo-lead-steps__title { color: var(--cream-50); }
.mo-lead-steps__item.is-active .mo-lead-steps__text { color: var(--ink-100); }

/* Questionnaire : carte unique, sections à filet neutre, titres sans numéro. */
.mo-dossier2 { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }
.mo-dossier2 .mo-front__eyebrow { margin: 0; }
.mo-dossier2__card {
  display: flex; flex-direction: column; margin: var(--space-2) 0 0; padding: var(--space-8);
  background: var(--surface-card); border: 1px solid var(--neutre-200); border-radius: var(--radius-lg);
}
.mo-dossier2__section { display: flex; flex-direction: column; gap: var(--space-5); }
.mo-dossier2__section + .mo-dossier2__section { margin-top: var(--space-8); padding-top: var(--space-8); border-top: 1px solid var(--neutre-200); }
.mo-dossier2__title {
  display: flex; align-items: baseline; gap: var(--space-2); margin: 0;
  font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-dossier2 .mo-form__optional { margin-left: var(--space-2); font-family: var(--font-primary); }
.mo-dossier2__recap { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--cream-100); }
.mo-dossier2__recap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4) var(--space-6); margin: 0; }
.mo-dossier2__recap-grid dt { font-size: var(--font-caption); color: var(--ink-500); }
.mo-dossier2__recap-grid dd { margin: 2px 0 0; font-size: 13.5px; color: var(--ink-900); overflow-wrap: anywhere; }
.mo-dossier2__recap-note { max-width: none; margin: var(--space-4) 0 0; font-size: var(--font-caption); color: var(--ink-500); }
.mo-dossier2__recap-note a { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }
.mo-dossier2__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-5) var(--space-6); align-items: start; }
.mo-dossier2__grid[hidden] { display: none; }
.mo-dossier2__grid > .mo-form__field { margin: 0; min-width: 0; }
.mo-dossier2__span-2 { grid-column: span 2; }
.mo-dossier2__span-3 { grid-column: span 3; }
.mo-dossier2__span-4 { grid-column: span 4; }
.mo-dossier2__span-6 { grid-column: 1 / -1; }
.mo-dossier2__label { display: block; margin: 0 0 8px; font-size: 13px; font-weight: var(--weight-medium); color: var(--label-fg); }
.mo-dossier2 .mo-form__input-wrap { position: relative; display: flex; align-items: center; }
.mo-dossier2 .mo-form__input-wrap > input, .mo-dossier2 .mo-form__input-wrap > select, .mo-dossier2 .mo-form__input-wrap > textarea { flex: 1; min-width: 0; }
.mo-dossier2 textarea {
  width: 100%; min-height: 112px; padding: 14px 16px; box-sizing: border-box; border: 0; border-radius: var(--field-radius);
  background: var(--field-bg); color: var(--field-fg); font: inherit; font-size: var(--field-font-size); resize: vertical;
}
.mo-dossier2 textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--field-ring); }
.mo-dossier2 .mo-form__suffix { position: absolute; right: 16px; pointer-events: none; color: var(--help-fg); }
.mo-dossier2__count { position: absolute; right: 14px; bottom: 10px; font-size: var(--font-caption); color: var(--ink-300); pointer-events: none; }
.mo-dossier2 .mo-form__fieldset { margin: 0; padding: 0; border: 0; }
.mo-dossier2 .mo-form__legend { margin: 0 0 8px; padding: 0; font-size: 13px; font-weight: var(--weight-medium); color: var(--label-fg); }
/* Compléter depuis le SIRET : ligne crème en tête de « Votre entreprise ». */
.mo-dossier2__siret {
  display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg); background: var(--cream-100);
}
.mo-dossier2__siret-text { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mo-dossier2__siret-title { margin: 0; font-size: 13.5px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-dossier2__siret-sub { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-dossier2__siret.is-done .mo-dossier2__siret-sub { color: var(--celadon-700); }
.mo-dossier2__siret.is-error .mo-dossier2__siret-sub { color: var(--terracotta-600); }
.mo-dossier2__siret-input {
  flex: 0 1 190px; height: 40px; padding: 0 14px; box-sizing: border-box; border: 0; border-radius: var(--field-radius);
  background: var(--surface-card); color: var(--field-fg); font: inherit; font-size: 14px;
}
.mo-dossier2__siret-input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--field-ring); }
.mo-dossier2__siret-btn {
  padding: 0; border: 0; background: none; cursor: pointer; font: inherit; font-size: 13px; font-weight: var(--weight-medium);
  color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap;
}
.mo-dossier2__siret-btn:disabled { color: var(--ink-300); cursor: wait; }

/* Zone de dépôt de la pièce, à la hauteur des champs. */
.mo-dossier2__drop, .mo-dossier2 .mo-form__field > label.mo-dossier2__drop {
  position: relative; display: flex; align-items: center; gap: var(--space-3); min-height: 56px; padding: var(--space-3) var(--space-4);
  border: 1px solid var(--neutre-200); border-radius: var(--radius-lg); background: var(--cream-50); color: var(--ink-700); cursor: pointer;
}
.mo-dossier2__drop:hover { border-color: var(--ink-300); }
.mo-dossier2__drop:focus-within { outline: 2px solid var(--field-ring); outline-offset: 2px; }
.mo-dossier2__drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.mo-dossier2__drop-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--ink-900); }
.mo-dossier2__drop-hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--font-caption); color: var(--ink-500); }
.mo-dossier2__drop-link { font-size: 13px; font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
/* Bas de carte : phrase brouillon, boutons, mention des champs facultatifs. */
.mo-dossier2__footer {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap;
  margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--neutre-200);
}
.mo-dossier2__footer-text { flex: 1 1 220px; max-width: 320px; margin: 0; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-dossier2__footer-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.mo-dossier2__legal { max-width: none; margin: var(--space-4) 0 0; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }

@media (max-width: 1024px) {
  .mo-front__hero-grid--8-4 { grid-template-columns: minmax(0, 1fr); }
  .mo-front__hero-grid--sticky > .mo-contact-aside { position: static; }
}
@media (max-width: 720px) {
  .mo-lead-steps, .mo-dossier2__recap-grid { grid-template-columns: minmax(0, 1fr); }
  .mo-dossier2__grid { grid-template-columns: minmax(0, 1fr); }
  .mo-dossier2__span-2, .mo-dossier2__span-3, .mo-dossier2__span-4 { grid-column: 1 / -1; }
  .mo-dossier2__card { padding: var(--space-5); }
  .mo-dossier2__footer-actions, .mo-dossier2__footer-actions .mo-btn { width: 100%; }
  .mo-dossier2__footer-actions .mo-btn { justify-content: center; }
}

/* ====================== Devenir actionnaire (16/10/2026) ====================== */
/* Handoff Devenir actionnaire : cartes d'offre (gabarit des cartes atouts) et
   atouts sur le panneau crème (_front_audience_page.html, clés offers / know_*). */
.mo-feature-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Encart des repères propre à la page : valeurs sur une ligne (« 2 à 5 ans »). */
.mo-home__marks--page .mo-home__mark dd { white-space: nowrap; }
.mo-feature-card__facts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4);
  margin: auto 0 0; padding: var(--space-4) 0 0; border-top: 1px solid var(--neutre-200);
}
.mo-feature-card__facts dt { font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-feature-card__facts dd { margin: 2px 0 0; font-size: var(--font-body); font-weight: var(--weight-medium); color: var(--ink-900); white-space: nowrap; font-variant-numeric: tabular-nums; }
.mo-feature-cards__note { max-width: none; margin: var(--space-6) 0 0; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-500); }
.mo-know--atouts .mo-know__title { font-size: var(--font-h2); line-height: var(--lh-h2); }
.mo-know__intro { font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-know--atouts .mo-know__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--space-8); }
.mo-know--atouts .mo-know__item { padding-top: var(--space-4); border-top: 1px solid var(--ink-100); }
@media (max-width: 720px) {
  .mo-feature-cards--2, .mo-know--atouts .mo-know__items { grid-template-columns: minmax(0, 1fr); }
}

/* ==================== Pièces à transmettre (16/10/2026) ==================== */
/* Handoff Pièces à transmettre : lead_documents_porteur.html et
   _lead_doc_upload_row.html. Cartes blanches, lignes à filet neutre, zone de
   dépôt 48 px pilotée par mo-upload.js (surcharge locale des styles .mo-upload). */
.mo-pieces { display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.mo-pieces .mo-front__eyebrow { margin: 0; }
.mo-pieces .mo-home__hero-title { font-weight: var(--weight-medium); }
.mo-pieces__promise { max-width: none; margin: 0; font-size: 13.5px; color: var(--ink-500); }
/* Messages au-dessus de la première carte. */
.mo-pieces__messages { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-2); }
.mo-pieces__msg {
  display: flex; align-items: center; gap: var(--space-2); max-width: none; margin: 0; padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-lg); background: var(--neutre-100); color: var(--ink-900); font-size: 13.5px;
}
.mo-pieces__msg--success { background: var(--celadon-50); color: var(--celadon-700); }
.mo-pieces__msg--error { background: var(--terracotta-50); color: var(--terracotta-600); }
/* Cartes. */
.mo-pieces__card {
  display: flex; flex-direction: column; gap: var(--space-4); padding: 28px var(--space-8);
  background: var(--surface-card); border-radius: 16px; box-shadow: inset 0 0 0 1px var(--neutre-200);
}
.mo-pieces__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.mo-pieces__eyebrow { margin: 0 0 var(--space-1); font-size: 10.5px; font-weight: var(--weight-medium); letter-spacing: .14em; text-transform: uppercase; color: var(--bronze-700); }
.mo-pieces__title { margin: 0; font-family: var(--font-headline); font-size: 24px; line-height: 1.25; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-pieces__count {
  flex-shrink: 0; display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 9999px;
  background: var(--neutre-200); color: var(--ink-500); font-size: 12px; font-weight: var(--weight-medium); white-space: nowrap;
}
.mo-pieces__intro, .mo-pieces__text { max-width: none; margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-500); }
.mo-pieces__text { font-size: 14px; }
/* Lignes. */
.mo-pieces__list { margin: 0; padding: 0; list-style: none; }
.mo-pieces__row { display: flex; align-items: flex-start; gap: var(--space-4); padding: var(--space-5) 0; }
.mo-pieces__row + .mo-pieces__row { border-top: 1px solid var(--neutre-200); }
.mo-pieces__row:first-child { padding-top: var(--space-2); }
.mo-pieces__row:last-child { padding-bottom: 0; }
.mo-pieces__icon {
  flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: var(--radius-lg); background: var(--cream-100); color: var(--bronze-700);
}
.mo-pieces__icon--done { background: var(--celadon-50); color: var(--celadon-700); }
.mo-pieces__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--space-1); }
.mo-pieces__name { margin: 0; font-size: 15px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-pieces__row--done { align-items: center; }
.mo-pieces__row--done .mo-pieces__name { flex: 1; min-width: 0; }
.mo-pieces__message { max-width: none; margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-700); white-space: pre-line; }
.mo-pieces__date { flex-shrink: 0; font-size: 12.5px; color: var(--ink-500); }
.mo-pieces__form { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-3); }
/* Zone de dépôt 48 px (surcharge des styles génériques .mo-upload). */
.mo-pieces .mo-upload.mo-pieces__drop {
  flex: 1; min-width: 0; min-height: 48px; padding: 0 var(--space-3); display: flex; align-items: center;
  border: 0; border-radius: var(--radius-lg); background: var(--cream-50); box-shadow: inset 0 0 0 1px var(--bronze-200);
  color: var(--ink-900); font-size: 13px;
}
.mo-pieces .mo-upload.mo-pieces__drop:hover, .mo-pieces .mo-upload.mo-pieces__drop.is-dragover { background: var(--cream-100); box-shadow: inset 0 0 0 1px var(--bronze-600); }
.mo-pieces .mo-upload.mo-pieces__drop:focus-within { outline: 2px solid var(--ink-900); outline-offset: 2px; }
.mo-pieces .mo-upload.mo-pieces__drop.is-selected { background: var(--neutre-100); box-shadow: none; padding: 0 var(--space-4); border: 0; }
.mo-pieces .mo-pieces__drop .mo-upload__inner,
.mo-pieces .mo-pieces__drop .mo-upload__preview { flex-direction: row; align-items: center; justify-content: flex-start; gap: var(--space-2); text-align: left; }
.mo-pieces .mo-pieces__drop.is-selected .mo-upload__inner { display: none; }
.mo-pieces .mo-pieces__drop.is-selected .mo-upload__preview { display: flex; }
.mo-pieces__drop-cta { font-size: 12.5px; font-weight: var(--weight-medium); white-space: nowrap; }
.mo-pieces__drop-formats { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; color: var(--ink-500); }
.mo-pieces__drop-link { margin-left: auto; font-size: 12px; font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.mo-pieces .mo-pieces__drop .mo-upload__preview-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-pieces .mo-pieces__drop .mo-upload__preview-size { flex-shrink: 0; font-size: 12px; color: var(--ink-500); }
/* Bouton « Envoyer » : grisé tant qu'aucun fichier n'est choisi. */
.mo-pieces__send {
  flex-shrink: 0; height: 44px; padding: 0 var(--space-5); border: 0; border-radius: 9999px; cursor: pointer;
  background: var(--ink-900); color: var(--cream-50); font: inherit; font-size: 13.5px; font-weight: var(--weight-medium);
}
.mo-pieces__send:disabled { background: var(--neutre-200); color: var(--ink-500); cursor: not-allowed; }
.mo-pieces__send:focus-visible { outline: 2px solid var(--ink-900); outline-offset: 2px; }
@media (max-width: 720px) {
  .mo-pieces__card { padding: var(--space-5); }
  .mo-pieces__head { flex-direction: column; gap: var(--space-2); }
  .mo-pieces__form { flex-direction: column; align-items: stretch; }
  .mo-pieces__drop-formats { display: none; }
  .mo-pieces__send { width: 100%; }
}

/* ====================== Trésoreries d'entreprise ====================== */
/* Maquette v2 validée le 22/10/2026 : focus produit sur encre (5 étapes), frise
   d'échéances en SVG, deux cartes équilibrées. */
.mo-steps-dark--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.mo-ladder { margin-top: var(--space-8); padding: var(--space-8); border-radius: var(--radius-lg); background: var(--surface-card); }
.mo-ladder__scroll { overflow-x: auto; }
.mo-ladder__svg { display: block; width: 100%; min-width: 640px; height: auto; }
.mo-ladder__axis, .mo-ladder__axis-title { font-family: var(--font-primary); font-size: 13px; fill: var(--text-tertiary); }
.mo-ladder__grid { stroke: var(--ink-900-06); stroke-width: 1; }
.mo-ladder__name { font-family: var(--font-primary); font-size: 15px; font-weight: var(--weight-medium); fill: var(--ink-900); }
.mo-ladder__sub { font-family: var(--font-primary); font-size: 12px; fill: var(--text-tertiary); }
.mo-ladder__row--serenite { --mo-ladder-color: var(--bleuet); }
.mo-ladder__row--croissance { --mo-ladder-color: var(--celadon-dark); }
.mo-ladder__bar { stroke: var(--mo-ladder-color); stroke-width: 6; stroke-linecap: round; stroke-opacity: 0.3; }
.mo-ladder__coupon { fill: var(--mo-ladder-color); }
/* Handoff TresorerieV2 (22/10/2026) : souscription = cercle blanc à contour épais ;
   réinvestissement = cercle plein clair à contour ; coupons petits ; « € » en graisse normale. */
.mo-ladder__start { fill: var(--surface-card); stroke: var(--mo-ladder-color); stroke-width: 3.5; }
.mo-ladder__start--recycled { fill: var(--bleuet-50); stroke: var(--mo-ladder-color); stroke-width: 2; }
.mo-ladder__start-mark { font-size: 12px; fill: var(--mo-ladder-color); }
.mo-ladder__end { fill: var(--mo-ladder-color); }
.mo-ladder__end-mark { font-family: var(--font-primary); font-size: 13px; font-weight: var(--weight-regular); fill: var(--surface-card); }
.mo-ladder__legend { list-style: none; margin: var(--space-5) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-12); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--ink-body); }
.mo-ladder__legend li { display: flex; align-items: center; gap: var(--space-2); }
.mo-ladder__key { width: 28px; height: 28px; flex-shrink: 0; overflow: visible; }
.mo-ladder__note { max-width: none; margin: var(--space-5) 0 0; padding-top: var(--space-5); border-top: 1px solid var(--neutre-200); font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--text-tertiary); }

.mo-aud-end-grid--duo .mo-btn { margin-top: auto; align-self: flex-start; min-height: 48px; padding: 0 var(--space-6); }


@media (max-width: 1100px) {
  .mo-steps-dark--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .mo-steps-dark--5 { grid-template-columns: minmax(0, 1fr); }
  .mo-ladder { padding: var(--space-5); }
}

/* ========================= Ressources publiques ========================= */
/* Centre de ressources /ressources/… (22/10/2026) : FAQ, glossaire, cadre, fiscalité.
   Mise en page mo-faq-split des pages produit, une rangée par thème. */
.mo-res-group + .mo-res-group { margin-top: var(--space-12); }
.mo-home__head + .mo-res-group, .mo-home__inner + .mo-res-group { margin-top: var(--space-10); }
/* Thèmes, lettres et glossaire en liste : remplacés par la refonte du 23/10/2026 (fin de feuille).
   .mo-res-prose reste utilisé par about.html. */
.mo-res-prose { max-width: 860px; font-size: var(--font-body); line-height: var(--lh-body); color: var(--ink-body); }
.mo-res-prose > * + * { margin-top: var(--space-4); }
.mo-res-prose p, .mo-res-prose ul { margin-bottom: 0; }
.mo-res-prose ul { padding-left: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); }
.mo-res-prose h4 { font-family: var(--font-headline); font-size: var(--font-body); line-height: var(--lh-body); font-weight: var(--weight-semibold); color: var(--ink-900); }
.mo-res-prose h4:not(:first-child) { margin-top: var(--space-8); }
.mo-res-note { margin: var(--space-5) 0 0; font-size: var(--font-caption); line-height: var(--lh-caption); color: var(--text-tertiary); }

/* Handoff TresorerieV2 (22/10/2026) : fond encre clair (une section par page), pastilles
   produit, Bon à savoir sur encre clair, titre du hero Trésoreries. */
.mo-home__section--ink-blue { background: var(--ink-blue-50); }
.mo-know--ink { background: var(--ink-blue-50); }
.mo-front__hero--company .mo-home__hero-title { font-size: clamp(2.25rem, 1.5rem + 2.4vw, 3.5rem); line-height: 1.04; }
.mo-product-pills { list-style: none; margin: auto 0 0; padding-top: var(--space-4); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mo-product-pill {
  display: inline-flex; align-items: center; gap: var(--space-2); height: 26px; padding: 0 var(--space-3);
  border-radius: var(--radius-full); background: var(--cream-100);
  font-size: 11px; font-weight: var(--weight-semibold); color: var(--ink-900); white-space: nowrap;
}
.mo-product-pill .mo-home__family-dot { width: 7px; height: 7px; }
.mo-home__marks--plain-note .mo-home__marks-note { font-style: normal; }
.mo-home__mark--text dt { white-space: nowrap; }
.mo-home__marks .mo-home__mark--text dd { font-family: var(--font-headline); font-size: 18px; font-weight: var(--weight-medium); color: var(--bleuet); }
@media (max-width: 640px) {
  .mo-aud-end-grid--duo .mo-btn { align-self: stretch; justify-content: center; }
}

/* Focus Sérénité : pied sans filet, note resserrée (retour Lucile, 22/10/2026). */
.mo-steps-dark__foot--plain { border-top: 0; padding-top: 0; margin-top: var(--space-10); }
.mo-steps-dark__foot--plain > div { max-width: 620px; }

/* Bon à savoir : titres équilibrés (retour Lucile, 22/10/2026). */
.mo-know__title, .mo-know__item h3 { text-wrap: balance; }

/* Tableau comparatif des guides (22/10/2026) : composant mo-selection-table, en-têtes de ligne. */
.mo-res-table th[scope="row"] { font-weight: var(--weight-medium); color: var(--ink-900); white-space: nowrap; }
.mo-res-table th[scope="row"], .mo-res-table td { vertical-align: top; }
.mo-res-prose .mo-compare-wrap { overflow-x: auto; }

/* ================= Ressources publiques · refonte du 23/10/2026 ================= */
/* Handoff Ressources (maquettes RessourcesHub, RessourcesFaq, RessourcesGlossaire,
   RessourcesArticle) : front_resources_*.html, _front_resources_section.html.
   Couleurs : bleuet, bleu soutenu et encre seulement ; eyebrows bronze ; une seule teinte
   par série de pictos ; pas de filet d'accent en tête de carte. Règles préfixées .mo-res
   (racine des pages Ressources) pour primer sur les styles hérités des titres et paragraphes.
   Valeurs sans jeton, déclarées ici : */
.mo-res {
  --mo-res-blue-100: #D9E4F6;      /* bleu soutenu : aperçus et icônes des références, étapes */
  --mo-res-ink-card: #262A31;      /* cartes des guides sur la bande encre */
  --mo-res-on-ink-blue: #C9DBFF;   /* texte de l'étiquette « Placer » sur encre */
  --mo-res-header: 64px;           /* hauteur de l'en-tête collant (header.css) */
  --mo-res-line: color-mix(in srgb, var(--ink-900) 8%, transparent);        /* contour des cartes */
  --mo-res-blue-line: color-mix(in srgb, var(--bleuet-dark) 15%, transparent); /* filets sur bleu */
  --mo-res-float: 0 1px 2px color-mix(in srgb, var(--ink-900) 4%, transparent),
                  0 12px 32px color-mix(in srgb, var(--ink-900) 6%, transparent); /* cartes du hero */
}
.mo-res a:focus-visible { outline: 2px solid var(--ink-900); outline-offset: 3px; }
.mo-res .is-filtered { display: none; }
.mo-res .mo-res-scope.is-searching .mo-res-tiles,
.mo-res .mo-res-scope.is-searching .mo-res-band { display: none; }

/* Pictos : une teinte (bleuet foncé) sur bleuet-50, ou sur bleu soutenu pour les références. */
.mo-res .mo-res-icon {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--radius-lg); background: var(--bleuet-50);
}
.mo-res .mo-res-icon--strong { background: var(--mo-res-blue-100); }
.mo-res .mo-res-icon svg { fill: none; stroke: var(--bleuet-dark); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mo-res .mo-res-dot { flex: none; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--bleuet); }

/* Hero commun : H1 64 px (56 px pour un guide), chapeau 18 px, variantes de grille. */
.mo-res .mo-res-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-20); align-items: start; }
.mo-res .mo-res-hero--split .mo-res-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.mo-res .mo-res-hero--duo .mo-res-hero__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: end; }
.mo-res .mo-res-hero--narrow .mo-home__hero-main { max-width: 900px; }
.mo-res .mo-res-hero .mo-eyebrow { margin: 0; }
.mo-res .mo-res-hero .mo-home__hero-title { max-width: none; font-size: clamp(2.5rem, 1.6rem + 3vw, 4rem); line-height: 1.02; letter-spacing: -0.03em; }
.mo-res .mo-res-hero--guide .mo-home__hero-title { font-size: clamp(2.25rem, 1.5rem + 2.4vw, 3.5rem); line-height: 1.04; letter-spacing: var(--ls-display); }
.mo-res .mo-res-hero .mo-home__hero-lead { max-width: 640px; font-size: var(--text-body-lg); line-height: 1.6; }
.mo-res .mo-res-hero__date { margin: 0; font-size: var(--text-md); color: var(--ink-500); }

/* Recherche dans la page (pilule 56 px) : absente sans JS. */
.mo-res .mo-res-search { display: flex; flex-direction: column; gap: var(--space-2); width: 100%; max-width: 720px; margin: var(--space-2) 0 0; }
.mo-res .mo-res-search[hidden] { display: none; }
.mo-res .mo-res-hero--duo .mo-res-search { justify-self: end; max-width: 620px; margin: 0; }
.mo-res .mo-res-search__pill {
  display: flex; align-items: center; gap: var(--space-3); height: 56px; padding: 0 var(--space-2) 0 var(--space-5);
  border-radius: var(--radius-full); background: var(--surface-card);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ink-900) 12%, transparent);
}
.mo-res .mo-res-search__pill:focus-within { box-shadow: inset 0 0 0 2px var(--ink-900); }
.mo-res .mo-res-search__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--space-3); margin: 0; font-weight: var(--weight-regular); }
.mo-res .mo-res-search__icon { flex: none; fill: none; stroke: var(--ink-500); stroke-width: 1.8; stroke-linecap: round; }
.mo-res .mo-res-search input {
  flex: 1; min-width: 0; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent;
  box-shadow: none; -webkit-appearance: none; appearance: none; outline: none;
  font-family: var(--font-text); font-size: var(--text-lg); color: var(--ink-900);
}
.mo-res .mo-res-search input::placeholder { color: var(--ink-300); opacity: 1; }
.mo-res .mo-res-search__btn {
  flex: none; height: 40px; padding: 0 18px; border: 0; border-radius: var(--radius-full); cursor: pointer;
  background: var(--ink-900); color: var(--neutre-50); font-family: var(--font-text); font-size: var(--text-base); font-weight: var(--weight-medium);
}
.mo-res .mo-res-search__btn:focus-visible { outline: 2px solid var(--ink-900); outline-offset: 3px; }
.mo-res .mo-res-search__status { margin: 0 0 0 var(--space-5); max-width: none; font-size: var(--text-md); color: var(--ink-500); }
.mo-res .mo-res-search__status:empty { display: none; }

/* Accueil : recherches fréquentes */
.mo-res .mo-res-frequent { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.mo-res .mo-res-frequent__label { margin-right: var(--space-1); font-size: var(--text-md); color: var(--ink-500); }
.mo-res .mo-res-frequent__chip {
  display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: var(--radius-full);
  background: var(--neutre-200); color: var(--ink-body); font-size: var(--text-md); text-decoration: none;
}
.mo-res .mo-res-frequent__chip:hover { background: var(--bleuet-50); color: var(--bleuet-dark); }

/* Accueil : carte « Par où commencer ? » (un seul repère pour les trois profils) */
.mo-res .mo-res-start { padding: 28px 32px 12px; background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); box-shadow: var(--mo-res-float); }
.mo-res .mo-res-start__title { margin: 0 0 14px; font-family: var(--font-headline); font-size: var(--text-3xl); line-height: 1.2; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-start__profile { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-top: 1px solid var(--neutre-200); }
.mo-res .mo-res-start__mark { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; background: var(--bleuet-50); }
.mo-res .mo-res-start__mark::after { content: ""; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--bleuet); }
.mo-res .mo-res-start__who { margin: 6px 0; font-family: var(--font-text); font-size: 15.5px; line-height: 1.4; font-weight: var(--weight-semibold); color: var(--ink-900); }
.mo-res .mo-res-start__links { list-style: none; margin: 0; padding: 0; }
.mo-res .mo-res-start__links a { display: flex; justify-content: space-between; gap: var(--space-4); padding: 7px 0; font-size: var(--text-base); color: var(--ink-body); text-decoration: none; }
.mo-res .mo-res-start__links a span { color: var(--ink-300); }
.mo-res .mo-res-start__links a:hover { color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }

/* Accueil : quatre références (carte entière cliquable, aperçu sur bleu soutenu) */
.mo-res .mo-res-refs-section { padding-top: var(--space-8); }
.mo-res .mo-res-refs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.mo-res .mo-res-refs > li { display: flex; }
.mo-res .mo-res-ref {
  flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-8); padding: var(--space-8);
  background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg);
  color: var(--ink-body); text-decoration: none; transition: box-shadow var(--duration-base, .2s) var(--ease, ease);
}
.mo-res .mo-res-ref:hover { color: var(--ink-body); box-shadow: var(--mo-res-float); }
.mo-res .mo-res-ref__main { display: flex; flex-direction: column; gap: var(--space-3); }
.mo-res .mo-res-ref__top { display: flex; justify-content: space-between; align-items: center; }
.mo-res .mo-res-ref__num { font-family: var(--font-headline); font-size: var(--text-base); color: var(--bleuet-dark); }
.mo-res .mo-res-ref__title { font-family: var(--font-headline); font-size: 24px; line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-ref__text { flex: 1; font-size: 14.5px; line-height: 1.6; color: var(--ink-body); }
.mo-res .mo-res-ref__more { font-size: 14.5px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-ref:hover .mo-res-ref__more { text-decoration: underline; text-underline-offset: 3px; }
.mo-res .mo-res-ref__preview { display: flex; flex-direction: column; gap: var(--space-2); padding: 18px 20px; border-radius: var(--radius-lg); background: var(--mo-res-blue-100); }
.mo-res .mo-res-ref__row { display: flex; justify-content: space-between; gap: var(--space-3); padding: 9px 0; font-size: 13.5px; line-height: 1.45; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-ref__row > span:last-child { color: var(--ink-500); }
.mo-res .mo-res-ref__fact { display: flex; flex-direction: column; gap: 2px; padding: 9px 0; }
.mo-res .mo-res-ref__row + .mo-res-ref__row, .mo-res .mo-res-ref__fact + .mo-res-ref__fact { border-top: 1px solid var(--mo-res-blue-line); }
.mo-res .mo-res-ref__fact-label { font-size: var(--text-sm); color: var(--ink-500); }
.mo-res .mo-res-ref__fact-value { font-size: var(--text-base); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.mo-res .mo-res-pill {
  display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: var(--radius-full);
  background: var(--surface-card); color: var(--ink-body); font-size: var(--text-md); white-space: nowrap;
}

/* Accueil : guides sur bande encre (grille 7/5, cartes #262A31) */
.mo-res .mo-res-guides { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); }
.mo-res .mo-res-guides > li { display: flex; }
.mo-res .mo-res-guides__main { grid-row: span 2; }
.mo-res .mo-res-guide {
  flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 14px;
  background: var(--mo-res-ink-card); color: var(--neutre-50); text-decoration: none;
}
.mo-res .mo-res-guide:hover { color: var(--neutre-50); }
.mo-res .mo-res-guide--lg { padding: var(--space-10); }
.mo-res .mo-res-guide__title { font-family: var(--font-headline); font-size: 21px; line-height: 1.2; letter-spacing: -0.015em; font-weight: var(--weight-medium); color: var(--neutre-50); }
.mo-res .mo-res-guide--lg .mo-res-guide__title { font-size: clamp(1.5rem, 1.1rem + 1vw, 1.875rem); }
.mo-res .mo-res-guide__text { flex: 1; font-size: 14.5px; line-height: 1.6; color: var(--ink-200); }
.mo-res .mo-res-guide--lg .mo-res-guide__text { flex: none; font-size: 15.5px; }
.mo-res .mo-res-guide__frise {
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  margin: var(--space-3) 0 var(--space-1); padding: 20px 20px 8px; border-radius: 10px; background: var(--ink-900);
}
.mo-res .mo-res-guide__frise svg { display: block; }
.mo-res .mo-res-guide__more { font-size: 14.5px; font-weight: var(--weight-medium); color: var(--neutre-50); }
.mo-res .mo-res-guide:hover .mo-res-guide__more { text-decoration: underline; text-underline-offset: 3px; }
.mo-res .mo-res-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mo-res .mo-res-tag {
  display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--neutre-50) 12%, transparent); color: var(--neutre-50);
  font-size: var(--text-sm); font-weight: var(--weight-medium);
}
.mo-res .mo-res-tag--placer { background: color-mix(in srgb, var(--bleuet) 22%, transparent); color: var(--mo-res-on-ink-blue); }
.mo-res .mo-res-section--white { background: var(--surface-card); }

/* Frises sur encre (accueil, figure « Le mécanisme ») : bleuet pour l'émission et la
   progression, encre claire pour les coupons et la durée (pas de bronze clair). */
.mo-res .mo-res-svg__track { stroke: var(--ink-500); stroke-width: 2; }
.mo-res .mo-res-svg__progress { stroke: var(--bleuet); stroke-width: 2.5; }
.mo-res .mo-res-svg__brace { fill: none; stroke: var(--ink-500); stroke-width: 1; }
.mo-res .mo-res-svg__span { fill: var(--ink-200); font-family: var(--font-text); font-size: 12px; }
.mo-res .mo-res-svg__start { fill: var(--ink-900); stroke: var(--ink-200); stroke-width: 2; }
.mo-res .mo-res-svg__key { fill: var(--bleuet); }
.mo-res .mo-res-svg__coupon { fill: var(--ink-200); }
.mo-res .mo-res-svg__end { fill: var(--neutre-50); }
.mo-res .mo-res-svg__euro { fill: var(--ink-900); font-family: var(--font-text); font-size: 14px; }
.mo-res .mo-res-svg__label { fill: var(--ink-300); font-family: var(--font-text); font-size: 12px; }
.mo-res .mo-res-svg__label--strong { fill: var(--neutre-50); font-size: 13px; }
.mo-res .mo-res-guide__frise .mo-res-svg__span,
.mo-res .mo-res-guide__frise .mo-res-svg__label { font-size: 11px; }
.mo-res .mo-res-guide__frise .mo-res-svg__label--strong { fill: var(--ink-200); }
.mo-res .mo-res-guide__frise .mo-res-svg__euro { font-size: 12px; }

/* FAQ : onglets de public, tuiles de thèmes, groupes numérotés */
.mo-res .mo-res-faq { padding-bottom: var(--space-16); }
.mo-res .mo-res-tabs {
  display: inline-flex; gap: var(--space-1); padding: 5px; border-radius: var(--radius-full);
  background: var(--surface-card); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ink-900) 10%, transparent);
}
.mo-res .mo-res-tabs__tab {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 var(--space-6);
  border-radius: var(--radius-full); color: var(--ink-body); font-size: var(--text-lg); font-weight: var(--weight-medium); text-decoration: none;
}
.mo-res .mo-res-tabs__tab:hover { color: var(--ink-900); }
.mo-res .mo-res-tabs__tab.is-active { background: var(--ink-900); color: var(--neutre-50); }
.mo-res .mo-res-tabs__hint {
  display: inline-flex; align-items: center; height: 22px; padding: 0 var(--space-2); border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--ink-900) 6%, transparent); font-size: var(--text-sm); font-weight: var(--weight-regular);
}
.mo-res .mo-res-tabs__tab.is-active .mo-res-tabs__hint { background: color-mix(in srgb, var(--neutre-50) 16%, transparent); }
.mo-res .mo-res-panel { padding-top: 28px; }
.mo-res .mo-res-panel[hidden] { display: none; }
.mo-res .mo-res-panel + .mo-res-panel { margin-top: var(--space-16); }
.mo-res .mo-res-panel__title { margin: 0 0 var(--space-6); font-family: var(--font-headline); font-size: var(--font-h2); line-height: var(--lh-h2); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .is-tabs .mo-res-panel__title {
  position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.mo-res .mo-res-tiles { list-style: none; margin: 0 0 var(--space-10); padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.mo-res .mo-res-tile {
  display: flex; align-items: center; gap: var(--space-4); height: 100%; padding: 18px 20px;
  background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg);
  color: var(--ink-body); text-decoration: none;
}
.mo-res .mo-res-tile:hover { color: var(--ink-body); box-shadow: var(--shadow-card); }
.mo-res .mo-res-tile__text { flex: 1; display: flex; flex-direction: column; gap: var(--space-1); }
.mo-res .mo-res-tile__title { font-size: 15.5px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-tile__count { font-size: var(--text-md); color: var(--ink-500); }
.mo-res .mo-res-tile__arrow { color: var(--ink-500); font-size: var(--text-base); }
.mo-res .mo-res-faq .mo-res-group { margin: 0; padding: var(--space-12) 0; }
.mo-res .mo-res-faq .mo-res-group + .mo-res-group { margin: 0; border-top: 1px solid var(--neutre-200); }
.mo-res .mo-res-faq .mo-faq-split__head { gap: 10px; }
.mo-res .mo-res-badge {
  align-self: flex-start; display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: var(--radius-full);
  background: var(--bleuet-50); color: var(--bleuet-dark); font-size: var(--text-md); font-weight: var(--weight-semibold);
}
.mo-res .mo-res-group__title { margin: var(--space-1) 0 0; font-family: var(--font-headline); font-size: clamp(1.375rem, 1rem + 1vw, 1.75rem); line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-group__count { font-size: 13.5px; color: var(--ink-500); }
.mo-res .mo-res-band {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-8);
  margin-top: var(--space-6); padding: 36px var(--space-10); border-radius: 14px; background: var(--ink-blue-50);
}
.mo-res .mo-res-band__text { display: flex; flex-direction: column; gap: var(--space-2); }
.mo-res .mo-res-band .mo-eyebrow { margin: 0; }
.mo-res .mo-res-band__title { margin: 0; max-width: none; font-family: var(--font-headline); font-size: var(--text-5xl); line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-band__lead { margin: 0; max-width: none; font-size: var(--text-lg); line-height: 1.6; color: var(--ink-body); }
.mo-res .mo-res-band__btn { flex: none; min-height: 48px; padding: 0 var(--space-6); font-size: var(--text-lg); }

/* Glossaire : « Pour commencer », alphabet collant, lettres et termes en cartes */
.mo-res .mo-res-featured { padding-bottom: 72px; }
.mo-res .mo-res-featured .mo-eyebrow { margin: 0 0 var(--space-5); }
.mo-res .mo-res-featured__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.mo-res .mo-res-featured__list > li { display: flex; }
.mo-res .mo-res-featured__card { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: var(--space-6); border-radius: 14px; background: var(--bleuet-50); color: var(--ink-body); text-decoration: none; }
.mo-res .mo-res-featured__card:hover { color: var(--ink-body); }
.mo-res .mo-res-featured__term { font-family: var(--font-headline); font-size: var(--text-3xl); line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-featured__text { flex: 1; font-size: var(--text-base); line-height: 1.55; color: var(--ink-body); }
.mo-res .mo-res-featured__more { font-size: 13.5px; font-weight: var(--weight-medium); color: var(--bleuet-dark); }
.mo-res .mo-res-featured__card:hover .mo-res-featured__more { text-decoration: underline; text-underline-offset: 3px; }
.mo-res .mo-res-alphabet {
  position: sticky; top: var(--mo-res-header); z-index: 5; padding: var(--space-3) 0;
  background: color-mix(in srgb, var(--neutre-50) 96%, transparent);
  border-top: 1px solid var(--neutre-200); border-bottom: 1px solid var(--neutre-200);
}
.mo-res .mo-res-alphabet__list { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; gap: 2px; }
.mo-res .mo-res-alphabet__link {
  display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: var(--radius-full);
  font-size: var(--text-lg); font-weight: var(--weight-medium); color: var(--ink-900); text-decoration: none;
}
.mo-res a.mo-res-alphabet__link:hover { background: var(--bleuet-50); color: var(--bleuet-dark); }
.mo-res .mo-res-alphabet__link.is-active { background: var(--bleuet-dark); color: var(--neutre-50); }
.mo-res .mo-res-alphabet__link.is-empty { font-weight: var(--weight-regular); color: var(--ink-200); }
.mo-res .mo-res-glossary-section { padding: var(--space-2) 0 var(--space-24); }
.mo-res .mo-res-letter { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-10); align-items: start; padding: var(--space-10) 0; }
.mo-res .mo-res-letter + .mo-res-letter { border-top: 1px solid var(--neutre-200); }
.mo-res .mo-res-letter,
.mo-res .mo-res-term { scroll-margin-top: calc(var(--mo-res-header) + 80px); }
.mo-res .mo-res-letter__mark {
  position: sticky; top: calc(var(--mo-res-header) + 80px); display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; margin: 0; border-radius: 16px; background: var(--bleuet-dark);
  font-family: var(--font-headline); font-size: 36px; line-height: 1; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--neutre-50);
}
.mo-res .mo-res-terms { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.mo-res .mo-res-term { display: flex; flex-direction: column; gap: var(--space-2); padding: 24px 26px; background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); }
.mo-res .mo-res-term:target { background: var(--bleuet-50); }
.mo-res .mo-res-term dt { font-family: var(--font-headline); font-size: 19px; line-height: 1.3; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-term dd { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ink-body); }

/* Gabarit guide : carte « En bref » */
.mo-res .mo-res-facts { padding: 28px 32px; background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); box-shadow: var(--mo-res-float); }
.mo-res .mo-res-facts__title { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-family: var(--font-headline); font-size: 19px; line-height: 1.3; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-facts__list { margin: 0; }
.mo-res .mo-res-facts__list > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: var(--space-4); padding: 13px 0; border-top: 1px solid var(--neutre-200); }
.mo-res .mo-res-facts__list dt { font-size: var(--text-md); font-weight: var(--weight-regular); color: var(--ink-500); }
.mo-res .mo-res-facts__list dd { margin: 0; font-size: 14.5px; line-height: 1.5; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-facts__note { margin: 14px 0 0; max-width: none; font-size: 12.5px; line-height: 1.5; color: var(--ink-500); }

/* Gabarit guide : sommaire collant (260 px) et colonne de lecture (800 px) */
.mo-res .mo-res-article-section { padding-bottom: var(--space-24); }
.mo-res .mo-res-article { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--space-24); align-items: start; }
.mo-res .mo-res-toc { position: sticky; top: calc(var(--mo-res-header) + var(--space-6)); display: flex; flex-direction: column; gap: var(--space-3); }
.mo-res .mo-res-toc__summary { display: none; }
.mo-res .mo-res-toc__eyebrow { margin: 0 0 14px; }
.mo-res .mo-res-toc__bar { height: 3px; margin-bottom: var(--space-2); overflow: hidden; border-radius: var(--radius-full); background: var(--neutre-200); }
.mo-res .mo-res-toc__bar span { display: block; height: 100%; background: var(--bleuet); transform-origin: left center; transform: scaleX(var(--mo-res-progress, 0)); }
.mo-res .mo-res-toc__list { list-style: none; margin: 0; padding: 0; }
.mo-res .mo-res-toc__list a {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 6px; padding: 11px 0; border-top: 1px solid var(--neutre-200);
  font-size: var(--text-base); line-height: 1.4; color: var(--ink-body); text-decoration: none;
}
.mo-res .mo-res-toc__list a:hover { color: var(--ink-900); }
.mo-res .mo-res-toc__list a.is-active { font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-toc__num { font-weight: var(--weight-semibold); color: var(--bleuet-dark); }
.mo-res .mo-res-toc__cta { display: flex; flex-direction: column; gap: 10px; margin-top: var(--space-3); padding: 18px; border-radius: var(--radius-lg); background: var(--ink-blue-50); }
.mo-res .mo-res-toc__cta p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-900); }
.mo-res .mo-res-toc__cta .mo-btn { align-self: flex-start; min-height: 40px; padding: 0 var(--space-6); }
.mo-res .mo-res-article__body { max-width: 800px; display: flex; flex-direction: column; gap: 56px; min-width: 0; }
.mo-res .mo-res-sec { display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.mo-res .mo-res-sec__head { display: flex; flex-direction: column; gap: var(--space-2); }
.mo-res .mo-res-sec__num { font-family: var(--font-headline); font-size: var(--text-base); font-weight: var(--weight-semibold); color: var(--bleuet-dark); }
.mo-res .mo-res-sec__title { font-family: var(--font-headline); font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem); line-height: 1.18; letter-spacing: -0.018em; font-weight: var(--weight-medium); color: var(--ink-900); text-wrap: balance; }
.mo-res .mo-res-p, .mo-res .mo-res-ul { margin: 0; max-width: none; font-size: 17px; line-height: 1.72; color: var(--ink-body); }
.mo-res .mo-res-ul { padding-left: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); }
.mo-res .mo-res-q { margin: var(--space-3) 0 0; font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-aud { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-6); border-top: 1px solid var(--neutre-200); }
.mo-res .mo-res-aud .mo-eyebrow { margin: 0; }
.mo-res .mo-res-aud__title { margin: 0; max-width: none; font-family: var(--font-headline); font-size: var(--font-h3); line-height: var(--lh-h3); font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-res .mo-res-aud + .mo-res-sec { margin-top: calc(var(--space-6) - 56px); }
.mo-res .mo-res-table-wrap { overflow-x: auto; }

/* Blocs du guide : figure, tuiles, étapes, pastilles, deux cartes */
.mo-res .mo-res-figure { display: flex; flex-direction: column; gap: var(--space-5); margin: var(--space-2) 0 0; padding: 32px 36px 28px; border-radius: 14px; background: var(--ink-900); }
.mo-res .mo-res-figure figcaption { margin: 0; }
.mo-res .mo-res-figure__svg { display: block; }
.mo-res .mo-res-figure__list { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.mo-res .mo-res-figure__note { margin: 0; max-width: none; font-size: 13.5px; line-height: 1.55; color: var(--ink-200); }
.mo-res .mo-res-cardtiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mo-res .mo-res-cardtile { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px; background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); }
.mo-res .mo-res-cardtile__title { margin: 6px 0 0; font-family: var(--font-text); font-size: var(--text-xl); line-height: 1.4; font-weight: var(--weight-semibold); color: var(--ink-900); }
.mo-res .mo-res-cardtile__text { margin: 0; max-width: none; font-size: 14.5px; line-height: 1.6; color: var(--ink-body); }
.mo-res .mo-res-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); }
.mo-res .mo-res-steps li { display: flex; flex-direction: column; gap: 10px; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--mo-res-blue-100); font-size: 14.5px; line-height: 1.55; color: var(--ink-900); }
.mo-res .mo-res-steps__num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--radius-full); background: var(--bleuet-dark); color: var(--neutre-50); font-size: 12.5px; font-weight: var(--weight-semibold); }
.mo-res .mo-res-chips__title { margin: var(--space-3) 0 0; max-width: none; font-size: var(--text-lg); font-weight: var(--weight-semibold); color: var(--ink-900); }
.mo-res .mo-res-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mo-res .mo-res-chips li { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: var(--radius-full); background: var(--bleuet-50); color: var(--bleuet-dark); font-size: var(--text-md); }
.mo-res .mo-res-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); align-items: stretch; }
.mo-res .mo-res-duo__card { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-8); background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); }
.mo-res .mo-res-duo__title { margin: 0; font-family: var(--font-headline); font-size: 24px; line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); text-wrap: balance; }
.mo-res .mo-res-duo__intro { margin: 0; max-width: none; font-size: 15.5px; line-height: 1.6; color: var(--ink-body); }
.mo-res .mo-res-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.mo-res .mo-res-checks li { display: flex; gap: var(--space-3); font-size: var(--text-lg); line-height: 1.55; color: var(--ink-900); }
.mo-res .mo-res-checks svg { flex: none; margin-top: 2px; fill: none; stroke: var(--bleuet-dark); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mo-res .mo-res-know { margin-top: auto; padding: 16px 18px; border-radius: 10px; background: var(--ink-blue-50); }
.mo-res .mo-res-know__label { margin: 0 0 6px; max-width: none; font-size: 11px; font-weight: var(--weight-medium); letter-spacing: 0.16em; text-transform: uppercase; color: var(--bleuet-dark); }
.mo-res .mo-res-know__text { margin: 0; max-width: none; font-size: var(--text-base); line-height: 1.6; color: var(--ink-body); }

/* Gabarit guide : deux suites (bloc unique, moitié encre, moitié encre claire) */
.mo-res .mo-res-next { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border-radius: 16px; }
.mo-res .mo-res-next__item { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-12); background: var(--ink-blue-50); }
.mo-res .mo-res-next__item--ink { background: var(--ink-900); }
.mo-res .mo-res-next__item .mo-eyebrow { margin: 0; }
.mo-res .mo-res-next__title { margin: 0; font-family: var(--font-headline); font-size: clamp(1.5rem, 1.1rem + 1vw, 1.875rem); line-height: 1.15; font-weight: var(--weight-medium); color: var(--ink-900); text-wrap: balance; }
.mo-res .mo-res-next__item--ink .mo-res-next__title { color: var(--neutre-50); }
.mo-res .mo-res-next__text { margin-bottom: var(--space-2); font-size: var(--text-lg); line-height: 1.6; color: var(--ink-body); }
.mo-res .mo-res-next__item--ink .mo-res-next__text { color: var(--ink-200); }
.mo-res .mo-res-next__btn,
.mo-res .mo-res-next__btn:hover,
.mo-res .mo-res-next__btn:focus-visible { align-self: flex-start; margin-top: auto; min-height: 48px; padding: 0 var(--space-6); font-size: var(--text-lg); background: var(--surface-card); color: var(--bleuet-dark); }
.mo-res .mo-res-next__item--ink .mo-res-next__btn,
.mo-res .mo-res-next__item--ink .mo-res-next__btn:hover,
.mo-res .mo-res-next__item--ink .mo-res-next__btn:focus-visible { background: var(--neutre-50); color: var(--ink-900); }
.mo-res .mo-res-next__btn:hover { box-shadow: inset 0 0 0 1px currentColor; }
.mo-res .mo-res-next__item--ink .mo-res-next__btn:focus-visible { outline-color: var(--neutre-50); }

@media (max-width: 1100px) {
  .mo-res .mo-res-alphabet__list { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .mo-res .mo-res-alphabet__list::-webkit-scrollbar { display: none; }
  .mo-res .mo-res-alphabet__list > li { flex: none; }
  .mo-res .mo-res-featured__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mo-res .mo-res-refs { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1024px) {
  .mo-res .mo-res-hero--split .mo-res-hero__grid,
  .mo-res .mo-res-hero--duo .mo-res-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); }
  .mo-res .mo-res-hero--duo .mo-res-search { justify-self: stretch; max-width: 720px; }
  .mo-res .mo-res-guides { grid-template-columns: minmax(0, 1fr); }
  .mo-res .mo-res-guides__main { grid-row: auto; }
  .mo-res .mo-res-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mo-res .mo-res-article { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .mo-res .mo-res-toc { position: static; padding: var(--space-4) var(--space-5); background: var(--surface-card); border: 1px solid var(--mo-res-line); border-radius: var(--radius-lg); }
  .mo-res .mo-res-toc__summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; font-size: var(--text-lg); font-weight: var(--weight-medium); color: var(--ink-900); }
  .mo-res .mo-res-toc__summary::-webkit-details-marker { display: none; }
  .mo-res .mo-res-toc__summary::after { content: "+"; color: var(--ink-500); }
  .mo-res .mo-res-toc__fold[open] .mo-res-toc__summary { margin-bottom: var(--space-3); }
  .mo-res .mo-res-toc__fold[open] .mo-res-toc__summary::after { content: "−"; }
  .mo-res .mo-res-toc__eyebrow { display: none; }
  .mo-res .mo-res-article__body { max-width: none; }
  .mo-res .mo-res-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mo-res .mo-res-band { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .mo-res .mo-res-letter { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .mo-res .mo-res-letter__mark { position: static; width: 56px; height: 56px; font-size: 28px; border-radius: 14px; }
  .mo-res .mo-res-terms { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .mo-res .mo-res-ref { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: var(--space-6); }
  .mo-res .mo-res-guide__frise { display: none; }
  .mo-res .mo-res-guide--lg { padding: 28px; }
  .mo-res .mo-res-tabs { display: flex; width: 100%; border-radius: var(--radius-lg); }
  .mo-res .mo-res-tabs__tab { flex: 1; flex-direction: column; justify-content: center; gap: var(--space-1); padding: var(--space-2) var(--space-3); border-radius: 10px; text-align: center; font-size: var(--text-base); }
  .mo-res .mo-res-tiles, .mo-res .mo-res-featured__list, .mo-res .mo-res-cardtiles,
  .mo-res .mo-res-steps, .mo-res .mo-res-duo, .mo-res .mo-res-next { grid-template-columns: minmax(0, 1fr); }
  .mo-res .mo-res-figure { padding: var(--space-6); }
  .mo-res .mo-res-figure__svg { display: none; }
  .mo-res .mo-res-figure__list {
    position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; white-space: normal;
    list-style: none; display: flex; flex-direction: column; gap: var(--space-2); font-size: var(--text-base); color: var(--ink-200);
  }
  .mo-res .mo-res-figure__list strong { font-weight: var(--weight-medium); color: var(--neutre-50); }
  .mo-res .mo-res-figure__span { color: var(--bleuet); }
  .mo-res .mo-res-duo__card, .mo-res .mo-res-next__item { padding: var(--space-6); }
  .mo-res .mo-res-band { padding: var(--space-6); }
  .mo-res .mo-res-band__btn { align-self: stretch; justify-content: center; white-space: normal; }
  .mo-res .mo-res-facts, .mo-res .mo-res-start { padding-left: var(--space-5); padding-right: var(--space-5); }
  .mo-res .mo-res-facts__list > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .mo-res .mo-res-search__pill { padding-left: var(--space-4); }
  .mo-res .mo-res-search__btn { padding: 0 14px; }
}

/* ===================== Pages d'erreur 404 et 500 · 23/10/2026 ===================== */
/* Handoff Pages d'erreur (maquettes Erreur404, Erreur500) : 404.html, 500.html,
   500_minimal.html, _error_500_body.html, _error_illustration.html. Boutons mo-btn,
   eyebrows mo-eyebrow, conteneur mo-home__inner. Valeurs sans jeton, déclarées ici : */
.mo-error {
  --mo-error-blue-100: #D9E4F6;   /* fond du panneau d'illustration, pastilles de numéro */
  --mo-error-blue-900: #1F3A66;   /* code, chemin et points de l'illustration */
  --mo-error-line: color-mix(in srgb, var(--ink-900) 8%, transparent);   /* contour des cartes */
  background: var(--neutre-50);
  color: var(--ink-body);
  font-family: var(--font-text);
}
.mo-error a:focus-visible { outline: 2px solid var(--ink-900); outline-offset: 3px; }
.mo-error__hero { padding: 72px 0 104px; }
.mo-error__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-20); align-items: center; }
.mo-error__text { display: flex; flex-direction: column; gap: var(--space-6); }
.mo-error .mo-error__eyebrow { margin: 0; color: var(--bronze-700); }
.mo-error .mo-error__title {
  margin: 0; font-family: var(--font-headline); font-size: clamp(2.5rem, 1.6rem + 2.8vw, 4rem);
  line-height: 1.02; letter-spacing: -0.03em; font-weight: var(--weight-medium); color: var(--ink-900); text-wrap: balance;
}
.mo-error .mo-error__lead { margin: 0; max-width: 560px; font-size: 18px; line-height: 1.6; color: var(--ink-body); }
.mo-error__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); padding-top: var(--space-2); }
.mo-error .mo-error__btn { height: 52px; padding: 0 26px; font-size: 15px; gap: 10px; }
.mo-error .mo-error__note { margin: var(--space-2) 0 0; font-size: 14px; line-height: 1.6; color: var(--ink-500); }
.mo-error .mo-error__note a,
.mo-error .mo-error__tel { font-weight: var(--weight-regular); color: var(--ink-900); text-decoration: underline; text-underline-offset: 3px; }

/* Illustration : points, chemin en pointillés, code */
.mo-error__art { position: relative; height: 460px; border-radius: 16px; background: var(--mo-error-blue-100); overflow: hidden; color: var(--mo-error-blue-900); }
.mo-error__svg { display: block; width: 100%; height: 100%; }
.mo-error__path { fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 12; }
.mo-error__mark-q { fill: var(--mo-error-blue-100); font-family: var(--font-headline); font-size: 26px; font-weight: var(--weight-medium); }
.mo-error__code {
  position: absolute; left: 36px; top: 28px; font-family: var(--font-headline); font-size: 120px;
  line-height: 1; letter-spacing: -0.05em; font-weight: var(--weight-medium); color: var(--mo-error-blue-900);
}

/* 404 : « Vous cherchiez peut-être » */
.mo-error__more { padding: 0 0 104px; }
.mo-error__more-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: var(--space-8); }
.mo-error .mo-error__more-eyebrow { margin: 0; color: var(--bronze-600); }
.mo-error .mo-error__h2 {
  margin: 0; font-family: var(--font-headline); font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  line-height: 1.12; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-error__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.mo-error__cards > li { display: flex; }
.mo-error .mo-error__card {
  flex: 1; display: flex; flex-direction: column; gap: var(--space-3); padding: 28px;
  background: var(--surface-card); border: 1px solid var(--mo-error-line); border-radius: var(--radius-lg);
  font-weight: var(--weight-regular); color: var(--ink-body); text-decoration: none; transition: box-shadow var(--duration-base) var(--ease);
}
.mo-error .mo-error__card:hover { color: var(--ink-body); text-decoration: none; box-shadow: 0 12px 32px color-mix(in srgb, var(--ink-900) 6%, transparent); }
.mo-error__num {
  align-self: flex-start; display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: var(--radius-full);
  background: var(--mo-error-blue-100); color: var(--mo-error-blue-900); font-family: var(--font-headline); font-size: 13px; font-weight: var(--weight-medium);
}
.mo-error__card-title { margin-top: var(--space-1); font-family: var(--font-headline); font-size: 22px; line-height: 1.15; letter-spacing: -0.02em; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-error__card-text { flex: 1; font-size: 14.5px; line-height: 1.6; color: var(--ink-body); }
.mo-error__card-more { font-size: 14.5px; font-weight: var(--weight-medium); color: var(--ink-900); }
.mo-error .mo-error__card:hover .mo-error__card-more { text-decoration: underline; text-underline-offset: 3px; }

/* 500 : encart contact */
.mo-error__contact {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-16); align-items: center;
  padding: var(--space-10); border-radius: var(--radius-lg); background: var(--bleuet-50);
}
.mo-error__contact-text { display: flex; flex-direction: column; gap: var(--space-3); }
.mo-error .mo-error__contact-eyebrow { margin: 0; color: var(--bleuet-dark); }
.mo-error .mo-error__contact-title {
  margin: 0; font-family: var(--font-headline); font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem);
  line-height: 1.1; letter-spacing: -0.022em; font-weight: var(--weight-medium); color: var(--ink-900);
}
.mo-error .mo-error__contact-body { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ink-body); }
.mo-error__contact-actions { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-3); }
.mo-error .mo-error__tel { font-size: 14px; }

/* Repli 500 sans base.html (500_minimal.html) */
.mo-error-page { margin: 0; background: var(--neutre-50); }
.mo-error-page__header { display: flex; align-items: center; height: 72px; }
.mo-error-page__logo { font-family: var(--font-headline); font-size: 24px; font-weight: var(--weight-medium); letter-spacing: -0.02em; color: var(--ink-900); text-decoration: none; }

@media (max-width: 1024px) {
  .mo-error__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .mo-error__hero { padding: var(--space-12) 0 var(--space-16); }
  .mo-error__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); }
  .mo-error__art { height: 280px; }
  .mo-error__code { left: 24px; top: 20px; font-size: 72px; }
  .mo-error__contact { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding: var(--space-6); }
  .mo-error__contact-actions { align-items: stretch; }
}
@media (max-width: 640px) {
  .mo-error__actions { flex-direction: column; }
  .mo-error .mo-error__btn { width: 100%; }
  .mo-error__cards { grid-template-columns: minmax(0, 1fr); }
  .mo-error__more { padding-bottom: var(--space-16); }
}
