:root {
      --bg: #FFFFFF;
      --paper: #F6F7FB;
      --paper-2: #ECEFF7;
      --line: #DDE2EE;
      --line-strong: #B7BFD3;
      --ink: #161A2B;
      --text: #2A3045;
      --muted: #50566C;
      --royal: #1F3FAE;
      --royal-hover: #18338F;
      --royal-deep: #13265F;
      --royal-050: #EEF2FC;
      --royal-100: #D9E1F8;
      --valid: #CFEFDC;
      --valid-050: #EBF8F0;
      --valid-ink: #0F6B3F;
      --on-deep: #E4E9FA;
      --on-deep-muted: #AEB9E0;
      --error: #B42318;
      --font-head: "Brygada 1918", Georgia, "Times New Roman", serif;
      --font-body: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
      --radius: 10px;
      --radius-sm: 6px;
      --shadow: 0 1px 2px rgba(19, 38, 95, .06), 0 8px 24px rgba(19, 38, 95, .08);
      --shadow-form: 0 2px 4px rgba(19, 38, 95, .06), 0 18px 48px rgba(19, 38, 95, .14);
      --container: 1180px;
      --tick: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='1' y='1' width='18' height='18' rx='4' fill='%23CFEFDC' stroke='%230F6B3F' stroke-width='1.6'/%3E%3Cpath d='M5.5 10.4l3 3 6-6.6' fill='none' stroke='%230F6B3F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      --box: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='1' y='1' width='18' height='18' rx='4' fill='%23FFFFFF' stroke='%231F3FAE' stroke-width='1.6'/%3E%3C/svg%3E");
      --slot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 22'%3E%3Cg transform='rotate(-8 24 8)'%3E%3Crect x='15' y='1' width='18' height='12' rx='1.5' fill='%23CFEFDC' stroke='%231F3FAE' stroke-width='1.5'/%3E%3Cpath d='M15.8 2l8.2 6 8.2-6' fill='none' stroke='%231F3FAE' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/g%3E%3Crect x='4' y='13' width='40' height='6' rx='3' fill='%2313265F'/%3E%3C/svg%3E");
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
    @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
    body { margin: 0; font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.65; color: var(--text); background: var(--bg); padding-bottom: 84px; overflow-wrap: break-word; }
    @media (min-width: 960px) { body { padding-bottom: 0; } }
    img, svg { max-width: 100%; }
    img { height: auto; display: block; }
    a { color: var(--royal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
    a:hover { color: var(--royal-hover); text-decoration-thickness: 2px; }
    :focus-visible { outline: 3px solid var(--royal); outline-offset: 2px; border-radius: 3px; }
    [id] { scroll-margin-top: 84px; }
    h1, h2, h3, h4 { font-family: var(--font-head); color: var(--ink); line-height: 1.2; letter-spacing: -.005em; margin: 0 0 .6em; }
    h2 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.15rem); font-weight: 700; }
    h3 { font-size: clamp(1.2rem, 1.1rem + .45vw, 1.4rem); font-weight: 600; }
    p { margin: 0 0 1em; }
    strong { color: var(--ink); font-weight: 700; }
    .contenant { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 16px; }
    @media (min-width: 600px) { .contenant { padding: 0 24px; } }
    .audio-reserve { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

    .action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: var(--radius-sm); background: var(--royal); color: #FFFFFF; font-family: var(--font-body); font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; border: 2px solid var(--royal); cursor: pointer; transition: background .15s, border-color .15s; }
    .action:hover { background: var(--royal-hover); border-color: var(--royal-hover); color: #FFFFFF; text-decoration: none; }
    .action--transparent { background: transparent; color: var(--royal); }
    .action--transparent:hover { background: var(--royal-050); color: var(--royal-hover); }
    .action--pale { background: #FFFFFF; color: var(--royal-deep); border-color: #FFFFFF; }
    .action--pale:hover { background: var(--valid); border-color: var(--valid); color: var(--royal-deep); }

    .domaine-couronne { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--line); backdrop-filter: saturate(1.4) blur(8px); }
    .couronne-noyau { display: flex; align-items: center; gap: 12px; min-height: 64px; flex-wrap: wrap; }
    .blason { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; letter-spacing: -.01em; margin-right: auto; }
    .blason:hover { color: var(--ink); }
    .blason-sigle { width: 30px; height: 30px; flex: none; }
    .blason .tld { color: var(--royal); }
    .menu-levier { position: absolute; opacity: 0; width: 1px; height: 1px; }
    .menu-action { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); font-weight: 600; font-size: .95rem; color: var(--ink); cursor: pointer; user-select: none; }
    .menu-action svg { width: 18px; height: 18px; }
    .menu-levier:focus-visible + .menu-action { outline: 3px solid var(--royal); outline-offset: 2px; }
    .domaine-menu { display: none; flex-basis: 100%; order: 5; padding: 4px 0 14px; }
    .domaine-menu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
    .domaine-menu a { display: flex; align-items: center; min-height: 44px; padding: 8px 4px; color: var(--ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); }
    .domaine-menu a:hover { color: var(--royal); }
    .domaine-menu .menu-incitation { margin-top: 10px; border: 0; justify-content: center; background: var(--royal); color: #FFFFFF; border-radius: var(--radius-sm); }
    .domaine-menu .menu-incitation:hover { color: #FFFFFF; background: var(--royal-hover); }
    .menu-levier:checked ~ .domaine-menu { display: block; }
    .couronne-incitation { display: none; }
    @media (min-width: 560px) { .couronne-incitation { display: inline-flex; min-height: 44px; padding: 8px 16px; font-size: .95rem; } }
    @media (min-width: 900px) {
      .menu-action { display: none; }
      .domaine-menu { display: block; flex-basis: auto; order: 0; padding: 0; margin-right: 8px; }
      .domaine-menu ul { display: flex; gap: 4px; }
      .domaine-menu a { border: 0; padding: 8px 12px; border-radius: var(--radius-sm); }
      .domaine-menu a:hover { background: var(--royal-050); }
      .domaine-menu .menu-incitation { display: none; }
    }

    .fronton { position: relative; padding: 32px 0 44px; background: linear-gradient(180deg, var(--royal-050) 0%, var(--paper) 62%, var(--bg) 100%); border-bottom: 1px solid var(--line); overflow: hidden; }
    .fronton > .contenant { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start; }
    .fronton-discours, .fronton-lateral { min-width: 0; }
    .chapeauteur { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--royal); }
    .chapeauteur::before { content: ""; width: 34px; height: 16px; background: var(--slot) no-repeat center / contain; }
    .fronton h1 { font-size: clamp(2rem, 1.35rem + 2.7vw, 3.15rem); font-weight: 700; line-height: 1.1; letter-spacing: -.015em; margin: 0 0 18px; }
    .fronton h1 em { font-style: italic; font-weight: 500; color: var(--royal); }
    .synthese { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); color: var(--text); max-width: 60ch; margin: 0 0 22px; }
    .gommettes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
    .gommettes li { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 10px; background: #FFFFFF; border: 1px solid var(--line); border-radius: 999px; font-size: .92rem; font-weight: 600; color: var(--ink); line-height: 1.3; }
    .gommettes li::before { content: ""; width: 18px; height: 18px; flex: none; background: var(--tick) no-repeat center / contain; }
    .fronton-urne { display: none; }
    @media (min-width: 960px) {
      .fronton { padding: 48px 0 64px; }
      .fronton > .contenant { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; }
      .fronton-discours { padding-top: 18px; }
      .fronton-urne { display: block; width: 100%; max-width: 420px; height: auto; margin-top: 36px; }
    }

    .bordereau-tuile { position: relative; background: #FFFFFF; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--radius) var(--radius); padding: 30px 18px 22px; box-shadow: var(--shadow-form); }
    .bordereau-tuile::before { content: ""; position: absolute; left: -1px; right: -1px; top: 0; height: 6px; background: var(--royal); border-radius: 4px 4px 0 0; }
    .bordereau-tuile::after { content: ""; position: absolute; left: 18px; right: 18px; top: 16px; border-top: 2px dashed var(--royal-100); }
    @media (min-width: 480px) { .bordereau-tuile { padding: 34px 28px 26px; } .bordereau-tuile::after { left: 28px; right: 28px; } }
    .bordereau-titraille { display: flex; align-items: flex-start; gap: 10px; font-family: var(--font-head); font-size: clamp(1.3rem, 1.18rem + .5vw, 1.55rem); font-weight: 700; color: var(--ink); margin: 6px 0 6px; line-height: 1.2; }
    .bordereau-titraille::before { content: ""; width: 24px; height: 24px; flex: none; margin-top: 2px; background: var(--tick) no-repeat center / contain; }
    .bordereau-synthese { font-size: .95rem; color: var(--muted); margin: 0 0 18px; line-height: 1.55; }
    .bordereau-tuile [data-lead-form] {
      --lf-accent: #1F3FAE;
      --lf-accent-ink: #FFFFFF;
      --lf-ink: #161A2B;
      --lf-muted: #50566C;
      --lf-line: #B7BFD3;
      --lf-bg: #FFFFFF;
      --lf-error: #B42318;
      --lf-radius: 6px;
      --lf-font: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
      font-family: var(--font-body);
      color: var(--ink);
      min-height: 300px;
    }
    .bordereau-tuile .lf-step-title { font-family: var(--font-head); font-weight: 700; color: var(--ink); letter-spacing: 0; }
    .bordereau-tuile .lf-btn { font-family: var(--font-body); font-weight: 700; letter-spacing: .01em; }
    .bordereau-tuile [data-lead-form] a { color: var(--royal); }
    .bordereau-tuile [data-lead-form] :focus-visible { outline: 3px solid var(--royal); outline-offset: 1px; }
    .bordereau-tuile .lf-input:focus { border-color: var(--royal); box-shadow: 0 0 0 3px var(--royal-100); outline: none; }

    .confiance-cordon { padding: 36px 0; background: var(--bg); border-bottom: 1px solid var(--line); }
    .indices-titraille { font-family: var(--font-head); font-weight: 600; font-size: 1.15rem; color: var(--ink); margin: 0 0 18px; }
    .indices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
    @media (min-width: 760px) { .indices { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
    .signal { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 30px 20px 20px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
    .signal::before { content: ""; position: absolute; left: 20px; top: -9px; width: 48px; height: 22px; background: var(--slot) no-repeat center / contain; }
    .signal-fort { font-family: var(--font-head); font-size: 1.55rem; font-weight: 700; line-height: 1.15; color: var(--royal-deep); }
    .signal-libelle { font-weight: 600; color: var(--ink); line-height: 1.4; }
    .signal-remarque { font-size: .93rem; color: var(--muted); line-height: 1.5; }
    .signal-origine { margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--line-strong); font-size: .82rem; font-style: normal; color: var(--muted); }

    main { padding: 16px 0 24px; }
    main > .contenant { max-width: 900px; }
    .module { padding: 40px 0 8px; }
    .module + .module { border-top: 1px solid var(--line); }
    .module > h2 { position: relative; padding-top: 34px; }
    .module > h2::before { content: ""; position: absolute; left: 0; top: 0; width: 48px; height: 22px; background: var(--slot) no-repeat left center / contain; }
    .module h3 { margin-top: 1.5em; }
    .module ul, .module ol { padding-left: 1.4em; margin: 0 0 1.2em; }
    .module li { margin: 0 0 .45em; }
    .module li::marker { color: var(--royal); font-weight: 700; }
    .module ul.coches { list-style: none; padding-left: 0; }
    .module ul.coches > li { position: relative; padding-left: 32px; }
    .module ul.coches > li::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; background: var(--tick) no-repeat center / contain; }
    .entame { font-size: 1.15rem; color: var(--ink); }
    .remarque { font-size: .9rem; color: var(--muted); }

    .apercu { margin: 28px 0 8px; padding: 20px 20px 16px; background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--royal); border-radius: 0 var(--radius) var(--radius) 0; }
    .apercu-titraille { font-family: var(--font-head); font-weight: 700; font-size: 1.1rem; color: var(--ink); margin: 0 0 10px; }
    .apercu ol { list-style: none; counter-reset: som; margin: 0; padding: 0; display: grid; gap: 4px; }
    @media (min-width: 700px) { .apercu ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; } }
    .apercu li { counter-increment: som; display: flex; gap: 10px; align-items: baseline; }
    .apercu li::before { content: counter(som, decimal-leading-zero); font-family: var(--font-head); font-weight: 700; color: var(--royal); font-size: .95rem; min-width: 1.6em; }
    .apercu a { color: var(--ink); text-decoration: none; font-weight: 500; }
    .apercu a:hover { color: var(--royal); text-decoration: underline; }

    .badges { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 1em; padding: 0; }
    .medaille { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border: 1px solid var(--royal-100); background: var(--royal-050); color: var(--royal-deep); border-radius: 4px; font-size: .8rem; font-weight: 700; letter-spacing: .02em; line-height: 1.5; white-space: nowrap; }
    .medaille--valid { background: var(--valid-050); border-color: var(--valid); color: var(--valid-ink); }
    .medaille--valid::before { content: ""; width: 14px; height: 14px; background: var(--tick) no-repeat center / contain; }
    .module ul.badges { padding-left: 0; }
    .module ul.badges > li { margin: 0; }

    .grilledonnees-enveloppe { position: relative; margin: 20px 0 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: var(--radius); background: #FFFFFF; }
    .grilledonnees-enveloppe table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .95rem; line-height: 1.45; }
    .grilledonnees-enveloppe caption { caption-side: top; text-align: left; padding: 14px 16px 10px; font-weight: 600; color: var(--ink); }
    .grilledonnees-enveloppe th, .grilledonnees-enveloppe td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
    .grilledonnees-enveloppe thead th { background: var(--royal-deep); color: #FFFFFF; font-weight: 700; font-size: .88rem; letter-spacing: .01em; white-space: nowrap; }
    .grilledonnees-enveloppe tbody tr:nth-child(even) td, .grilledonnees-enveloppe tbody tr:nth-child(even) th { background: var(--paper); }
    .grilledonnees-enveloppe tbody tr:last-child td, .grilledonnees-enveloppe tbody tr:last-child th { border-bottom: 0; }
    .grilledonnees-enveloppe tbody th { color: var(--ink); font-weight: 700; }
    .grilledonnees-remarque { font-size: .85rem; color: var(--muted); margin: -12px 0 24px; }
    table.confrontation { min-width: 720px; }
    table.confrontation th:first-child, table.confrontation td:first-child { position: sticky; left: 0; z-index: 1; min-width: 132px; max-width: 170px; background: #FFFFFF; box-shadow: 1px 0 0 var(--line), 6px 0 10px -8px rgba(19, 38, 95, .35); }
    table.confrontation thead th:first-child { background: var(--royal-deep); z-index: 2; }
    table.confrontation tbody tr:nth-child(even) th:first-child { background: var(--paper); }
    .oui, .non, .partiel { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; }
    .oui { color: var(--valid-ink); }
    .oui::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--tick) no-repeat center / contain; }
    .non { color: var(--muted); }
    .non::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--box) no-repeat center / contain; opacity: .7; }
    .partiel { color: var(--royal-deep); }
    .partiel::before { content: ""; width: 16px; height: 16px; flex: none; border: 1.6px solid var(--royal); border-radius: 4px; background: linear-gradient(135deg, var(--royal-100) 50%, #FFFFFF 50%); }

    .classement { display: grid; gap: 22px; margin: 24px 0 28px; }
    .rank-tuile { position: relative; background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius) 0 var(--radius) var(--radius); box-shadow: var(--shadow); padding: 20px 18px 20px; }
    .rank-tuile::before { content: ""; position: absolute; top: -1px; right: -1px; width: 26px; height: 26px; background: linear-gradient(225deg, var(--bg) 0 50%, var(--royal-100) 50% 100%); border-bottom-left-radius: 4px; }
    @media (min-width: 600px) { .rank-tuile { padding: 24px 26px; } }
    .rank-sommet { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 16px; align-items: center; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 2px dashed var(--line); }
    .rank-indice { grid-row: span 2; display: grid; place-items: center; width: 52px; height: 52px; border: 2px solid var(--royal); border-radius: 8px; font-family: var(--font-head); font-size: 1.6rem; font-weight: 700; color: var(--royal); background: var(--royal-050); line-height: 1; }
    .classement > .rank-tuile:first-child .rank-indice { background: var(--royal); color: #FFFFFF; }
    .rank-sommet h3 { margin: 0; font-size: clamp(1.3rem, 1.2rem + .5vw, 1.55rem); font-weight: 700; }
    .rank-target { margin: 0; font-size: .92rem; color: var(--muted); line-height: 1.45; }
    .rank-target strong { color: var(--ink); }
    .rank-tuile .badges { margin-bottom: 14px; }
    ul.rank-pros { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
    ul.rank-pros > li { position: relative; margin: 0; padding-left: 30px; line-height: 1.5; }
    ul.rank-pros > li::before { content: ""; position: absolute; left: 0; top: .15em; width: 20px; height: 20px; background: var(--tick) no-repeat center / contain; }
    .rank-price, .rank-limits { margin: 0 0 10px; padding: 10px 14px; border-radius: var(--radius-sm); font-size: .95rem; line-height: 1.5; }
    .rank-price { background: var(--royal-050); color: var(--ink); }
    .rank-limits { background: var(--paper); color: var(--text); border-left: 3px solid var(--line-strong); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
    .rank-libelle { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--royal-deep); margin-bottom: 2px; }
    .rank-limits .rank-libelle { color: var(--muted); }
    .rank-price small { color: var(--muted); font-size: .82rem; }
    a.rank-acces { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; min-height: 44px; padding: 10px 18px; border: 2px solid var(--royal); border-radius: var(--radius-sm); color: var(--royal); font-weight: 700; text-decoration: none; }
    a.rank-acces::after { content: ""; width: 14px; height: 14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3h7v7M13 3L4 12' fill='none' stroke='%231F3FAE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
    a.rank-acces:hover { background: var(--royal-050); color: var(--royal-hover); }

    .verdict { margin: 28px 0; background: #FFFFFF; border: 2px solid var(--royal); border-radius: var(--radius); overflow: hidden; }
    .verdict-libelle { display: flex; align-items: center; gap: 10px; margin: 0; padding: 10px 18px; background: var(--royal); color: #FFFFFF; font-family: var(--font-head); font-weight: 700; font-size: 1.1rem; }
    .verdict-libelle::before { content: ""; width: 20px; height: 20px; background: var(--tick) no-repeat center / contain; }
    .verdict-texte { padding: 16px 18px 6px; }
    @media (min-width: 600px) { .verdict-texte { padding: 18px 24px 8px; } }

    .donnee { margin: 26px 0; padding: 20px; display: grid; gap: 6px 22px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
    @media (min-width: 640px) { .donnee { grid-template-columns: auto minmax(0, 1fr); align-items: center; padding: 22px 26px; } }
    .donnee-valeur { margin: 0; font-family: var(--font-head); font-weight: 700; font-size: clamp(2.2rem, 1.8rem + 1.8vw, 3rem); line-height: 1; color: var(--royal); }
    .donnee-contenu { margin: 0; color: var(--ink); font-weight: 500; }
    .donnee figcaption { grid-column: 1 / -1; font-size: .84rem; color: var(--muted); border-top: 1px dashed var(--line-strong); padding-top: 8px; margin-top: 6px; }
    .verbatim { margin: 26px 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--valid); }
    .verbatim p { font-family: var(--font-head); font-style: italic; font-weight: 500; font-size: 1.2rem; line-height: 1.45; color: var(--ink); margin: 0 0 8px; }
    .verbatim footer { font-size: .88rem; color: var(--muted); }
    .verbatim cite { font-style: normal; font-weight: 600; }

    ol.stades { list-style: none; counter-reset: etape; margin: 20px 0 24px; padding: 0; display: grid; gap: 14px; }
    ol.stades > li { counter-increment: etape; position: relative; margin: 0; padding: 16px 18px 14px 70px; background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius); min-height: 72px; }
    ol.stades > li::before { content: counter(etape); position: absolute; left: 16px; top: 16px; display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid var(--royal); border-radius: 7px; background: var(--royal-050); font-family: var(--font-head); font-weight: 700; font-size: 1.2rem; color: var(--royal); }
    ol.stades > li > strong:first-child { display: block; font-family: var(--font-head); font-size: 1.12rem; margin-bottom: 4px; }
    ol.stades > li > p { margin: 0; }

    .alerte { position: relative; margin: 24px 0; padding: 16px 18px 6px 60px; background: var(--paper-2); border-radius: var(--radius); border-left: 4px solid var(--royal-deep); }
    .alerte::before { content: "!"; position: absolute; left: 16px; top: 16px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--royal-deep); color: #FFFFFF; font-family: var(--font-head); font-weight: 700; font-size: 1.05rem; line-height: 1; }
    .alerte-titraille { font-weight: 700; color: var(--ink); margin: 0 0 4px; }

    .incitation-incise { position: relative; margin: 32px 0; padding: 26px 20px; background: var(--royal-deep); color: var(--on-deep); border-radius: var(--radius); overflow: hidden; }
    .incitation-incise::after { content: ""; position: absolute; right: -18px; bottom: -14px; width: 150px; height: 70px; background: var(--slot) no-repeat center / contain; opacity: .22; }
    @media (min-width: 700px) { .incitation-incise { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 30px 32px; } }
    .incitation-titraille { display: block; font-family: var(--font-head); font-size: 1.35rem; font-weight: 700; color: #FFFFFF; margin: 0 0 6px; line-height: 1.25; }
    .incitation-incise p { margin: 0 0 16px; color: var(--on-deep); }
    @media (min-width: 700px) { .incitation-incise p { margin: 0; } }
    .incitation-incise .action { position: relative; z-index: 1; }
    .incitation-incise :focus-visible { outline-color: #FFFFFF; }

    .scission-visuel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 36px 0 12px; align-items: center; }
    .scission-visuel + .module, .module + .scission-visuel { border-top: 1px solid var(--line); }
    .scission-phrase, .scission-fig { min-width: 0; }
    .scission-phrase > h2 { position: relative; padding-top: 34px; }
    .scission-phrase > h2::before { content: ""; position: absolute; left: 0; top: 0; width: 48px; height: 22px; background: var(--slot) no-repeat left center / contain; }
    .scission-fig { margin: 0; position: relative; }
    .scission-fig img { width: 100%; border-radius: var(--radius); border: 1px solid var(--line); background: var(--paper); }
    .scission-fig figcaption { font-size: .84rem; color: var(--muted); margin-top: 8px; }
    @media (min-width: 860px) {
      .scission-visuel { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 40px; }
      .scission-fig::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 2px solid var(--royal-100); border-radius: var(--radius); z-index: -1; }
      .scission-visuel--inverse { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
      .scission-visuel--inverse .scission-fig { order: -1; }
      .scission-visuel--inverse .scission-fig::before { inset: 14px 14px -14px -14px; }
    }
    .scission-visuel { position: relative; z-index: 0; }

    #a-propos { padding: 48px 0; background: var(--paper); border-top: 1px solid var(--line); }
    .identite { max-width: 900px; }
    .identite-tuile { position: relative; background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 20px 12px; }
    @media (min-width: 600px) { .identite-tuile { padding: 30px 32px 16px; } }
    .identite h2 { margin-bottom: 14px; }

    #faq { padding: 52px 0 56px; }
    #faq > .contenant { max-width: 900px; }
    #faq details { margin: 0 0 10px; background: #FFFFFF; border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .15s; }
    #faq details[open] { border-color: var(--royal); box-shadow: var(--shadow); }
    #faq summary { list-style: none; display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; cursor: pointer; font-family: var(--font-head); font-weight: 600; font-size: 1.1rem; line-height: 1.35; color: var(--ink); }
    #faq summary::-webkit-details-marker { display: none; }
    #faq summary::before { content: ""; width: 22px; height: 22px; flex: none; margin-top: 1px; background: var(--box) no-repeat center / contain; }
    #faq details[open] > summary::before { background-image: var(--tick); }
    #faq summary:hover { color: var(--royal); }
    #faq details > :not(summary) { margin: 0; padding: 0 18px 16px 54px; }
    #faq details > p + p { padding-top: 0; }

    .domaine-socle { background: var(--royal-deep); color: var(--on-deep); padding: 44px 0 28px; font-size: .95rem; }
    .domaine-socle a { color: #FFFFFF; }
    .domaine-socle a:hover { color: var(--valid); }
    .domaine-socle :focus-visible { outline-color: #FFFFFF; }
    .socle-damier { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
    @media (min-width: 760px) { .socle-damier { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px; } }
    .socle-blason { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-head); font-weight: 700; font-size: 1.2rem; color: #FFFFFF; text-decoration: none; margin-bottom: 12px; }
    .socle-blason .tld { color: var(--valid); }
    .socle-description { color: var(--on-deep); max-width: 52ch; }
    .socle-titraille { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--on-deep-muted); margin: 0 0 10px; }
    .domaine-socle ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
    .socle-base { margin-top: 32px; padding-top: 18px; border-top: 1px solid rgba(228, 233, 250, .18); color: var(--on-deep-muted); font-size: .85rem; }
    .socle-base p { margin: 0; }

    .incitation-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(19, 38, 95, .1); }
    .incitation-barre .action { width: 100%; }
    @media (min-width: 960px) { .incitation-barre { display: none; } }

    [data-lead-form] .lf-native-step + .lf-native-step { display: none; }

    [data-lead-form] .lf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
    [data-lead-form] .lf-native-step { margin: 0 0 18px; padding: 0; border: 0; min-width: 0; }
    [data-lead-form] .lf-native .lf-step-title { display: block; margin: 0 0 12px; padding: 0; font-weight: 600; }
    [data-lead-form] .lf-native .lf-grid { display: grid; gap: 12px; }
    [data-lead-form] .lf-native .lf-field { margin: 0; padding: 0; border: 0; min-width: 0; }
    [data-lead-form] .lf-native .lf-label, [data-lead-form] .lf-native .lf-field legend { display: block; margin: 0 0 5px; font-size: .875rem; font-weight: 600; }
    [data-lead-form] .lf-native .lf-input { display: block; width: 100%; box-sizing: border-box; padding: 11px 12px; font: inherit; font-size: 1rem; border: 1px solid var(--lf-line, #d5dae3); border-radius: var(--lf-radius, 6px); background: var(--lf-bg, #fff); color: inherit; }
    [data-lead-form] .lf-native textarea.lf-input { min-height: 96px; }
    [data-lead-form] .lf-native .lf-check { display: flex; gap: 10px; align-items: flex-start; font-size: .8rem; line-height: 1.45; }
    [data-lead-form] .lf-native .lf-check input { margin: 2px 0 0; width: 18px; height: 18px; flex: none; }
    [data-lead-form] .lf-native .lf-btn { display: block; width: 100%; padding: 14px 18px; font: inherit; font-size: 1rem; font-weight: 700; border: 0; border-radius: var(--lf-radius, 6px); cursor: pointer; background: var(--lf-accent, #ff9e24); color: var(--lf-accent-ink, #14213d); }
