/* riftveil.ai : feuille de style unique (remplace style.css, protocol.css, governance.css, pro.css, verify.css).
   EB Garamond pour les titres, IBM Plex Sans pour le texte, IBM Plex Mono pour le code.
   Relief v1 : rythme par bandes (papier, blanc, bleu profond), bleu en surface (cartes de notions, bandeaux), or pour les filets,
   une seule ombre système, le rapport présenté comme un objet, mises en avant par la taille, la couleur et le serif. */

:root {
  --paper: #F3F2EE; --white: #FFFFFF; --ink: #262626; --text: #4A4A4A; --muted: #6B6B6B; --faint: #9A9A9A;
  --slate: #33506E; --navy: #1F3246; --navy2: #283F57; --amber: #E9A83A; --amber-ink: #9A5F00; --oxblood: #7F1D1D; --cream: #F1EDE3; --tint: #E7ECF2;
  --rule: #D9D6CF; --rule2: #E6E3DC; --onband: #F4EFE4; --onband2: #C2CAD4; --onrule: rgba(244,239,228,.26);
  --shadow: 0 18px 40px -18px rgba(31,50,70,.38), 0 2px 6px rgba(31,50,70,.08);
  --gutter: clamp(16px, 5vw, 72px); --max: 1120px; --measure: 34em;
  --sans: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif; --serif: "EB Garamond", Garamond, "Times New Roman", serif; --mono: "IBM Plex Mono", Menlo, Consolas, monospace;
}
html { color-scheme: light; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--text); font-family: var(--sans); font-size: 16px; line-height: 1.6; overflow-x: hidden; overflow-wrap: anywhere; }
p, ul, ol, figure, blockquote, h1, h2, h3, h4, pre { margin: 0; }
h1, h2, h3, h4, .disp { font-family: var(--serif); font-weight: 400; color: var(--ink); overflow-wrap: normal; }
h1 { font-size: clamp(34px, 4.4vw, 46px); line-height: 1.1; font-weight: 500; letter-spacing: -.005em; color: var(--navy); }
h2 { font-size: clamp(26px, 3vw, 32px); line-height: 1.18; font-weight: 500; }
h3 { font-size: 22px; line-height: 1.25; font-weight: 500; }
h4 { font-size: 18px; line-height: 1.3; font-weight: 500; }
a { color: var(--slate); text-decoration: none; text-underline-offset: .15em; }
a:hover { color: var(--ink); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--slate); outline-offset: 2px; }
img, svg { max-width: 100%; height: auto; }
strong, b { font-weight: inherit; color: inherit; }
[hidden] { display: none !important; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--slate); color: #fff; padding: 8px 12px; z-index: 20; }
.skip:focus { left: 8px; color: #fff; text-decoration: none; }
ul, ol { padding-left: 1.2em; }
p + p, li + li { margin-top: .7em; }
/* longueur de ligne : 60 à 75 caractères pour tout texte courant (tableaux, figures et grilles non concernés) */
main p, main li, main dd, main dt, main blockquote, main figcaption { max-width: var(--measure); }
.pathway li, .prog-list li, .metrics li, .anti li, .inside li, .record p, .record li, .report p, .report li { max-width: none; }
/* liens visibles dans le texte courant */
main p a:not(.btn), main li a:not(.btn), main dd a, main td a { text-decoration: underline; text-decoration-color: rgba(51,80,110,.45); text-decoration-thickness: 1px; }
main p a:not(.btn):hover, main li a:not(.btn):hover { text-decoration-color: currentColor; }
table { border-collapse: collapse; width: 100%; }
code, pre { font-family: var(--mono); font-size: 13.5px; }
pre { white-space: pre-wrap; background: var(--white); border: 1px solid var(--rule); padding: 16px 18px; line-height: 1.55; color: var(--ink); }
.fine, .sub, .note, .lbl { font-size: 14px; line-height: 1.55; color: var(--muted); }
.lbl { display: block; margin-bottom: 6px; }
th.lbl, td.lbl { display: table-cell; margin: 0; }
.lbl.slate { color: var(--slate); }
.lead, .lede { font-size: 19px; line-height: 1.5; color: var(--text); max-width: var(--measure); }
.kicker { font-family: var(--sans); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--slate); margin-bottom: 14px; }
.muted { color: var(--muted); }
.mt { margin-top: 24px; }

/* layout : trois fonds (papier, blanc, bleu profond) */
.band { padding-inline: var(--gutter); padding-block: clamp(48px, 7vw, 84px); border-top: 1px solid var(--rule2); background: var(--paper); }
.band.warm { background: var(--white); border-top-color: var(--rule); }
.band.dark { background: var(--navy); color: var(--onband); border-top: 0; }
.band.dark h1, .band.dark h2, .band.dark h3, .band.dark h4, .band.dark .disp, .band.dark strong, .band.dark b { color: #FFFFFF; }
.band.dark p, .band.dark li, .band.dark dd, .band.dark dt { color: var(--onband); }
.band.dark a:not(.btn) { color: #FFFFFF; text-decoration: underline; text-decoration-color: rgba(244,239,228,.45); }
.band.dark a:not(.btn):hover { text-decoration-color: var(--amber); }
.band.dark .kicker, .band.dark .lbl { color: var(--amber); }
.band.dark .fine, .band.dark .sub, .band.dark .note, .band.dark .muted { color: var(--onband2); }
.band.dark a:focus-visible, .band.dark button:focus-visible { outline-color: var(--amber); }
.band.dark + .band.dark { border-top: 1px solid var(--onrule); }
.wrap { max-width: var(--max); margin-inline: auto; }
.wrap.narrow { max-width: 760px; }
.sect-head { margin-bottom: 32px; max-width: 800px; }
.sect-head .lbl, .sect-head .sub { margin-top: 10px; font-size: 15px; }
/* filet or au-dessus des titres de section */
.sect-head > h2::before, .band > .wrap > h2::before { content: ""; display: block; width: 56px; height: 4px; background: var(--amber); margin-bottom: 18px; }
.page-head { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px 72px; align-items: start; }
.page-head .lead { margin-top: 22px; font-size: 20px; }
.page-head .actions { margin-top: 28px; }
.s-pagehead { padding-bottom: clamp(40px, 5vw, 64px); }
.ph-aside { border-left: 4px solid var(--amber); padding-left: 24px; padding-top: 6px; }
.ph-aside p { font-size: 15px; line-height: 1.55; color: var(--text); }
.ph-aside p + p { margin-top: 12px; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 56px; align-items: start; }
.cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cols4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
/* cartes de notions : blanches à filet bleu sur fond clair, bleues sur fond profond */
.col { background: var(--white); border-top: 4px solid var(--slate); padding: 20px 22px 24px; }
.col h3 { margin-bottom: 10px; color: var(--navy); }
.col p, .col li { font-size: 15px; }
.col { border: 1px solid var(--rule); border-top: 4px solid var(--slate); }
.band.warm .col { background: var(--paper); }
.band.dark .col { background: var(--slate); border-top-color: var(--amber); box-shadow: none; }
.band.dark .col h3 { color: #FFFFFF; }
.prose { max-width: var(--measure); }
.prose.wide { max-width: none; }
.prose h3 { margin-top: 24px; margin-bottom: 8px; }
.prose h3:first-child { margin-top: 0; }
.prose ul, .prose ol { margin-top: 10px; }
.prose p.lbl + h3 { margin-top: 4px; }
.callout { border-left: 4px solid var(--amber); background: var(--cream); padding: 16px 20px; margin: 24px 0; max-width: 40em; }
.callout p { color: var(--ink); font-size: 15px; line-height: 1.6; }
.band.dark .callout { background: var(--slate); }
.band.dark .callout p { color: #FFFFFF; }

/* header */
.site-head { padding-inline: var(--gutter); border-bottom: 1px solid var(--rule); background: var(--paper); overflow-x: clip; }
.site-head .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; padding-block: 18px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); white-space: nowrap; }
.brand svg { flex: 0 0 auto; }
.brand:hover { text-decoration: none; }
.brand svg { width: 24px; height: 24px; }
.brand span { font-family: var(--serif); font-size: 23px; font-weight: 500; line-height: 1; }
.nav-d { display: flex; align-items: center; gap: 28px; }
.nav-d ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px 18px; }
.nav-d li, .nav-m-panel li, .foot li { margin: 0; }
.nav-main a { color: var(--text); font-size: 14px; padding: 6px 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.nav-main a:hover { color: var(--ink); text-decoration: none; border-bottom-color: var(--rule); }
.nav-main a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--amber); }
.nav-fam { border-left: 1px solid var(--rule); padding-left: 18px; gap: 4px 14px; }
.nav-fam a { color: var(--text); font-size: 14px; font-weight: 500; white-space: nowrap; }
.site-head .lang { flex: none; color: var(--muted); border: 1px solid var(--rule); padding: 5px 10px; font-size: 12.5px; line-height: 1.6; letter-spacing: .04em; font-family: var(--mono); white-space: nowrap; }
.site-head .lang:hover { border-color: var(--ink); color: var(--ink); text-decoration: none; }
.nav-m { display: none; }
.nav-m summary { list-style: none; cursor: pointer; font-size: 14.5px; color: var(--ink); border: 1px solid var(--rule); padding: 7px 12px; }
.nav-m summary::-webkit-details-marker { display: none; }
.nav-m-panel { position: absolute; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--rule); padding: 8px var(--gutter) 20px; z-index: 15; }
.nav-m-panel ul { list-style: none; margin: 0; padding: 0; }
.nav-m-panel li { margin: 0; }
.nav-m-panel a { display: block; padding: 11px 0; border-bottom: 1px solid var(--rule2); color: var(--ink); font-size: 16px; }
.nav-m-panel a[aria-current="page"] { color: var(--slate); }
.nm-fam { margin-top: 10px; }
.nm-fam a { color: var(--ink); font-weight: 500; }
@media (max-width: 1100px) { .nav-d { display: none; } .nav-m { display: block; } .site-head { position: relative; } }

/* buttons, forms : plein bleu sur fond clair, plein or sur fond profond, contour pour le secondaire */
.btn { display: inline-block; background: var(--slate); color: #FFFFFF; border: 1px solid var(--slate); padding: 13px 24px; font: inherit; font-size: 15px; line-height: 1.2; cursor: pointer; text-decoration: none; border-radius: 0; }
.btn:hover, .btn:focus-visible { background: var(--navy); border-color: var(--navy); color: #FFFFFF; text-decoration: none; }
.btn.ghost { background: transparent; color: var(--slate); }
.btn.ghost:hover, .btn.ghost:focus-visible { background: var(--slate); color: #FFFFFF; }
.btn.small { font-size: 13.5px; padding: 9px 16px; }
.btn[aria-disabled="true"], .pk-soon { background: transparent; color: var(--muted); border-color: var(--rule); cursor: default; }
.band.dark .btn { background: var(--amber); border-color: var(--amber); color: var(--navy); text-decoration: none; }
.band.dark .btn:hover, .band.dark .btn:focus-visible { background: #FFFFFF; border-color: #FFFFFF; color: var(--navy); }
.band.dark .btn.ghost { background: transparent; color: #FFFFFF; border-color: rgba(244,239,228,.6); }
.band.dark .btn.ghost:hover, .band.dark .btn.ghost:focus-visible { background: #FFFFFF; color: var(--navy); border-color: #FFFFFF; }
.cta { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.cta .free { font-size: 14px; color: var(--text); }
label { display: block; font-size: 14px; color: var(--ink); margin-bottom: 6px; }
label span { color: var(--muted); font-weight: normal; }
.field { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
input[type="email"], input[type="text"], textarea, select { font: inherit; font-size: 15px; padding: 11px 12px; border: 1px solid var(--rule); background: var(--white); color: var(--ink); border-radius: 0; min-width: 0; flex: 1 1 240px; width: 100%; }
textarea { min-height: 180px; resize: vertical; line-height: 1.55; }
textarea.tall { min-height: 300px; }
.field button, form > button { background: var(--slate); color: #FFFFFF; border: 1px solid var(--slate); padding: 11px 20px; font: inherit; font-size: 15px; cursor: pointer; border-radius: 0; }
.field button:hover { background: var(--navy); border-color: var(--navy); }
label.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--text); margin-top: 10px; line-height: 1.5; }
label.consent input { margin-top: 4px; flex: none; }
label.consent span { color: var(--text); }
form .fine { display: block; margin-top: 12px; }
form [role="radiogroup"], form [role="group"] { margin-top: 14px; }
form [role="radiogroup"] .fine, form [role="group"] .fine { margin: 0 0 4px; }
.capture-form { max-width: 640px; background: var(--white); border: 1px solid var(--rule); border-top: 4px solid var(--slate); padding: 26px 28px 24px; }
.band.warm .capture-form { background: var(--paper); }
.capture-form > p { margin-bottom: 16px; }
.capture-form .field { margin-bottom: 10px; }
.loop-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px 72px; align-items: start; }

/* bandeau Position : bleu profond, filet or épais, structure commune aux trois sites */
.stance-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px 72px; align-items: start; }
.stance .lbl { color: var(--amber); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 18px; }
.stance-title { font-size: clamp(34px, 4.4vw, 52px); line-height: 1.08; font-weight: 500; font-family: var(--serif); color: #FFFFFF; letter-spacing: normal; margin-top: .7em; }
.band.dark .stance-title { color: var(--onband); }
.stance-sub { font-family: var(--serif); font-size: 23px; line-height: 1.35; font-style: italic; margin-top: 18px; max-width: 520px; }
.stance-named { font-family: var(--serif); font-size: 18px; line-height: 1.45; margin-top: 16px; max-width: 520px; }
.stance-body { padding-top: 6px; max-width: var(--measure); border-left: 1px solid var(--onrule); padding-left: 32px; }
.stance-body p { font-size: 15.5px; line-height: 1.65; }
.stance-body .close { margin-top: 22px; padding-top: 16px; border-top: 3px solid var(--amber); color: #FFFFFF; font-family: var(--serif); font-size: 20px; line-height: 1.35; }
.stance { border-bottom: 6px solid var(--amber); }

/* home hero and record : le rapport comme un objet */
.hero-grid { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 36px 64px; align-items: start; }
.hero-text { display: flex; flex-direction: column; gap: 24px; }
.hero-text h1 { font-size: clamp(44px, 5.6vw, 72px); line-height: 1.02; letter-spacing: -.01em; }
.hero-text h2 { font-size: clamp(36px, 4.4vw, 56px); line-height: 1.06; letter-spacing: -.01em; color: var(--navy); }
.hero-text .lead { font-size: 17.5px; }
.hero-text .lines { border-top: 3px solid var(--amber); padding-top: 14px; max-width: 360px; font-family: var(--serif); font-size: 17px; color: var(--navy); }
.record { background: var(--white); border: 0; padding: 0 0 18px; font-size: 12.5px; line-height: 1.45; color: var(--ink); min-width: 0; box-shadow: var(--shadow); }
.record .rhead { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 18px; background: var(--navy); color: #FFFFFF; padding: 16px 26px; margin-bottom: 14px; border-bottom: 4px solid var(--amber); }
.record .rhead .disp { font-size: 20px; color: #FFFFFF; }
.record .rhead .lbl { margin: 0; font-size: 12px; color: var(--amber); }
.record .meta { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 16px; margin: 0 26px 14px; }
.record .meta .k { margin: 0; font-size: 12px; }
.record .meta .v { color: var(--ink); }
.record .meta .muted { color: var(--muted); }
.record .sec { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 0 8px; padding: 10px 26px; border-top: 1px solid var(--rule2); }
.record .num { font-family: var(--serif); font-size: 16px; color: var(--slate); }
.record .body { display: flex; flex-direction: column; gap: 6px; }
.record .t { font-family: var(--serif); font-size: 16px; color: var(--navy); }
.record .d { color: var(--text); }
.record .finding { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 0 6px; margin-top: 6px; }
.record .fn { color: var(--slate); }
.record .fb { display: flex; flex-direction: column; gap: 3px; }
.record .ft { color: var(--oxblood); border-left: 3px solid var(--oxblood); padding-left: 8px; }
.record .rtable th { text-align: left; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: normal; padding: 6px 8px 6px 0; border-bottom: 1px solid var(--rule); }
.record .rtable td { padding: 7px 8px 7px 0; border-bottom: 1px solid var(--rule2); vertical-align: top; }
.record .rtable td.ans { min-width: 70px; }
.record .rfoot { border-top: 1px solid var(--rule); padding: 12px 26px 0; margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.record .rfoot .disp { font-size: 16px; font-style: italic; color: var(--navy); }
.record .rfoot .lbl { margin: 0; font-size: 12px; }

/* tool */
.tool-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 48px; align-items: start; }
.tool-form .field { display: block; }
.tool-form .row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 8px; }
.tool-form .note { flex-basis: 100%; margin-top: 8px; font-size: 13px; }
.err { color: var(--oxblood); font-size: 14px; margin-top: 12px; }
.report-region { background: var(--white); border: 0; border-top: 5px solid var(--navy); padding: 20px 24px; min-height: 360px; box-shadow: var(--shadow); }
.band.warm .report-region { border: 1px solid var(--rule); border-top: 5px solid var(--navy); }
.report-head { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; border-bottom: 1px solid var(--rule); padding-bottom: 12px; }
.report-head h3 { font-size: 21px; color: var(--navy); }
.badge { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--rule); padding: 3px 8px; line-height: 1.3; }
.badge.on { color: var(--ink); border-color: var(--ink); }
.badge[data-level="CRITICAL"], .badge[data-level="HIGH"] { color: #FFFFFF; background: var(--oxblood); border-color: var(--oxblood); }
.badge[data-level="MODERATE"] { color: var(--navy); background: var(--tint); border-color: var(--slate); }
.example-tag { font-size: 12.5px; color: var(--amber-ink); flex-basis: 100%; }
.progress { height: 3px; background: var(--rule2); margin: 12px 0; overflow: hidden; }
.progress i { display: block; height: 100%; width: 30%; background: var(--amber); opacity: 0; }
.progress.on i { opacity: 1; animation: slide 1.6s linear infinite; }
@keyframes slide { from { transform: translateX(-100%); } to { transform: translateX(400%); } }
.report { font-size: 15px; line-height: 1.6; color: var(--ink); min-height: 200px; }
.report.dim { opacity: .5; }
.report .thinking { color: var(--muted); font-style: italic; }
.report .fine { margin-bottom: 14px; }
.report h2, .report h3, .report h4 { margin: 20px 0 8px; }
.report h2 { font-size: 22px; } .report h3 { font-size: 20px; } .report h4 { font-size: 17px; }
.report .sec-h { counter-increment: sec; }
.report .sec-h::before { content: counter(sec) ". "; color: var(--slate); }
.report { counter-reset: sec; }
.report .find-h { font-family: var(--sans); font-size: 15px; color: var(--oxblood); margin-top: 16px; }
.report .flabel { color: var(--slate); }
.report p + p { margin-top: 10px; }
.report ul, .report ol { margin: 8px 0 8px 1.2em; padding: 0; }
.report hr { border: 0; border-top: 1px solid var(--rule); margin: 16px 0; }
.report blockquote { border-left: 2px solid var(--rule); padding-left: 14px; color: var(--text); }
.report-foot { border-top: 1px solid var(--rule); padding-top: 10px; margin-top: 16px; }
.report-foot .lbl { margin: 0; font-size: 12.5px; }
.after { margin-top: 20px; border-top: 1px solid var(--rule); padding-top: 16px; }
.after-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.after-item p { font-size: 14px; }
.after-item .btn { margin-top: 10px; }
.after-actions a + a, .after-actions button { margin-left: 12px; }
.after-actions button { font: inherit; font-size: 14px; background: none; border: 0; color: var(--slate); cursor: pointer; padding: 0; text-decoration: underline; }
.after-foot { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px 24px; font-size: 13.5px; color: var(--muted); }

/* how, pillars, lines */
.s-how .cols4 { margin-top: 8px; }
.s-pillars .cols3 .pillar { background: var(--slate); border-top: 4px solid var(--amber); padding: 22px 24px 26px; }
.pillar .ph { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 10px; }
.pillar .ph h3 { font-size: 26px; }
.pillar .ph .lbl { margin: 0; font-size: 13px; }
.band.dark .col .lbl, .band.dark .pillar .lbl { color: var(--onband2); }
.pillar p { font-size: 15px; }
.pillar ul { margin-top: 12px; padding-left: 1.1em; }
.pillar li { font-size: 14.5px; }
.s-how .how-foot { margin-top: 36px; padding-top: 20px; border-top: 3px solid var(--amber); max-width: 40em; }
.s-how .research { font-size: 18px; font-family: var(--serif); color: var(--navy); line-height: 1.4; }
.home-lines { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--onrule); }
.home-lines .prokit { font-size: 15.5px; }
.home-lines .buy { margin-left: 8px; }
.home-lines .fine { margin-top: 6px; }

/* protocol */
.pp-why-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 48px; }
.pp-why-grid p { font-size: 15.5px; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 20px; background: var(--white); border: 1px solid var(--rule); padding: 4px 18px 8px; }
@media (max-width: 640px) { .table-scroll { background-color: var(--white); padding-inline: 12px; } .band.warm .table-scroll { background-color: var(--paper); } }
.band.warm .table-scroll { background: var(--paper); }
table.dt { min-width: 640px; font-size: 14.5px; }
.refer { margin-top: 0; }
table.dt th { text-align: left; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: normal; padding: 10px 12px 8px 0; border-bottom: 2px solid var(--navy); vertical-align: bottom; }
table.dt td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--rule); vertical-align: top; overflow-wrap: normal; }
table.dt td:first-child { color: var(--navy); font-family: var(--serif); font-size: 17px; }
.pp-triage .prose p + p, .pp-report .prose p + p { margin-top: 14px; }
.levels { display: flex; flex-direction: column; gap: 16px; margin-top: 8px; }
.level { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 12px 40px; padding: 26px 28px 28px; background: var(--white); border: 1px solid var(--rule); border-left: 6px solid var(--slate); }
.band.warm .level { background: var(--paper); }
.level .lh { display: flex; flex-direction: column; gap: 6px; }
.level .n { font-family: var(--serif); font-size: 48px; line-height: .9; color: var(--slate); }
.level .lh .lbl { margin: 0; }
.level h3 { margin-bottom: 4px; color: var(--navy); }
.level .when { font-style: italic; color: var(--muted); margin-bottom: 10px; }
.techs { margin: 0; max-width: calc(var(--measure) + 3.2em); }
.tech { display: grid; grid-template-columns: 2.6em minmax(0, 1fr); gap: 2px 10px; padding: 10px 0; border-top: 1px solid var(--rule2); }
.tech:first-child { border-top: 0; padding-top: 0; }
.tech dt { display: contents; }
.tech .tn { color: var(--muted); font-size: 13px; padding-top: 4px; font-family: var(--mono); }
.tech .tname { font-family: var(--serif); font-size: 17px; line-height: 1.3; color: var(--ink); }
.tech dd { grid-column: 2; margin: 0; font-size: 15px; }
.level li + li { margin-top: 8px; }
.pp-report .prose ol { margin-top: 14px; }
.pp-report .prose ol li { font-size: 15.5px; }
.pp-use .cols3 .col p { font-size: 15px; }

/* governance */
p.rule { font-family: var(--serif); font-size: clamp(24px, 2.6vw, 30px); line-height: 1.3; color: var(--navy); border-left: 5px solid var(--amber); padding: 20px 26px; background: var(--white); max-width: 24em; }
.band.warm p.rule { background: var(--cream); }
p.rule + .prose { margin-top: 16px; }
.gv-seal { display: flex; flex-direction: column; gap: 16px; }
.gv-box { border: 1px solid var(--rule); padding: 20px 22px; background: var(--white); }
.band.warm .gv-box { background: var(--paper); }
.gv-box h3 { font-size: 20px; margin-bottom: 10px; color: var(--navy); }
.gv-box ul { padding-left: 1.1em; }
.gv-box li { font-size: 14.5px; }
.gv-box.ok { border-left: 5px solid var(--slate); }
.gv-box.ko { border-left: 5px solid var(--amber); }
.metrics, .anti, .inside { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--navy); }
.metrics li, .anti li, .inside li { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 4px 24px; }
.metrics li { grid-template-columns: minmax(0, 140px) minmax(0, 1fr); }
.metrics li .lbl { margin: 0; grid-row: span 2; color: var(--slate); }
.metrics li h3, .inside li h3 { font-family: var(--serif); font-size: 21px; line-height: 1.3; font-weight: 500; margin: 0; color: var(--navy); }
.anti li { grid-template-columns: 56px minmax(0, 1fr); }
.anti .fn { font-family: var(--serif); font-size: 32px; line-height: 1; color: var(--slate); }
.inside li span, .metrics li span:not(.lbl), .anti li span:not(.fn) { font-size: 15px; max-width: var(--measure); }
.inside li { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); }
.gv-end .prose p { font-size: 15.5px; }

/* pro kit */
.tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.tiers.pk-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tier { border: 1px solid var(--rule); border-top: 0; background: var(--white); padding: 0 26px 26px; display: flex; flex-direction: column; gap: 0; }
.tier > .lbl { max-width: none; margin: 0 -26px 0; padding: 18px 26px 2px; background: var(--navy); color: var(--onband); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; }
.tier > h3 { max-width: none; margin: 0 -26px 0; padding: 0 26px 18px; background: var(--navy); color: #FFFFFF; font-size: 27px; border-bottom: 4px solid var(--amber); }
.tier .who { font-size: 14.5px; color: var(--muted); margin-top: 16px; }
.tier .price { font-size: 16px; line-height: 1.5; color: var(--ink); margin-top: 14px; }
.tier .price small { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; line-height: 1.4; }
.tier ul { padding-left: 1.1em; margin-top: 14px; flex: 1; }
.tier li { font-size: 14.5px; }
.tier .pk-soon, .tier .btn { align-self: flex-start; margin-top: 18px; }
#pricing > p.fine { margin-top: 18px; }
.faq details { border-top: 1px solid var(--rule); padding: 14px 0; }
.faq details:last-child { border-bottom: 1px solid var(--rule); }
.faq summary { cursor: pointer; font-family: var(--serif); font-size: 21px; color: var(--navy); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--slate); font-family: var(--sans); }
.faq details[open] summary::after { content: "–"; }
.faq details p { margin-top: 10px; max-width: var(--measure); font-size: 15.5px; }

/* training : programmes en cartes */
.two > .prose:has(> .lbl.slate) { background: var(--white); border: 1px solid var(--rule); border-top: 5px solid var(--slate); padding: 24px 26px 28px; max-width: none; }
.band.warm .two > .prose:has(> .lbl.slate) { background: var(--paper); }
.two > .prose:has(> .lbl.slate) > h3 { font-size: 26px; color: var(--navy); }
.two > .prose:has(> .lbl.slate) > p, .two > .prose:has(> .lbl.slate) > ul { max-width: var(--measure); }
.prog-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; border-top: 0; }
.prog-list li { padding: 22px 24px 26px; border: 1px solid var(--rule); border-top: 5px solid var(--slate); background: var(--white); display: flex; flex-direction: column; gap: 10px; }
.prog-list li:nth-child(2) { border-top-color: var(--amber); }
.prog-list li:nth-child(3) { border-top-color: var(--navy); }
.band.warm .prog-list li { background: var(--paper); }
.prog-list .lbl { margin: 0; grid-row: auto; color: var(--slate); }
.prog-list a { font-family: var(--serif); font-size: 24px; line-height: 1.2; color: var(--navy); }
.prog-list .pw-sub { font-size: 15px; color: var(--text); }
.pathway { max-width: 640px; }
.pathway ul { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--navy); }
.band.dark .pathway ul { border-top-color: var(--amber); }
.pathway li { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--rule); display: flex; gap: 14px; align-items: baseline; font-size: 17px; }
.band.dark .pathway li { border-bottom-color: var(--onrule); }
.pathway a { color: var(--slate); }
.pathway a:hover { color: var(--ink); text-decoration: underline; }
.pathway [aria-current="page"] { color: var(--ink); font-family: var(--serif); font-size: 20px; }
.band.dark .pathway [aria-current="page"] { color: var(--amber); }
.path-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: start; }
.path-grid .notify { padding-top: 30px; }
.prog-list { list-style: none; padding: 0; margin: 0; }
.next { padding-block: 32px; background: var(--white); border-top: 1px solid var(--rule); }
.next p { font-size: 15px; }
.next-k { color: var(--muted); margin-right: 10px; }
.next a { font-family: var(--serif); font-size: 24px; color: var(--slate); }
.next a:hover { color: var(--navy); }
.prose > p + p { margin-top: 12px; }
.prose > p > .lbl { margin: 0; }
.two .prose > p.lbl { margin-bottom: 4px; }

/* verify, register */
.drop { display: block; border: 2px dashed var(--slate); background: var(--white); padding: 32px 20px; text-align: center; cursor: pointer; margin-top: 24px; color: var(--ink); font-family: var(--serif); font-size: 18px; box-shadow: var(--shadow); }
.drop.over { background: var(--tint); }
.drop u { color: var(--slate); }
.drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.v-result { margin-top: 16px; padding: 14px 16px; border: 1px solid var(--rule); background: var(--white); font-size: 15px; color: var(--ink); }
.v-result.ok { border-color: var(--slate); border-left-width: 5px; }
.v-result.ko { border-color: var(--oxblood); border-left-width: 5px; }
.v-result.warn { border-color: var(--amber); border-left-width: 5px; }
.v-show { margin-top: 24px; }
.v-show h2 { margin: 24px 0 8px; }
.v-meta { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 20px; margin: 16px 0; font-size: 14.5px; }
.v-meta dt { color: var(--muted); } .v-meta dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.v-h { margin-top: 18px; font-size: 18px; }
.v-text { white-space: pre-wrap; font-family: var(--mono); font-size: 13px; background: var(--white); border: 1px solid var(--rule); padding: 14px; max-height: 420px; overflow: auto; }
.v-sig { max-height: 80px; border: 1px solid var(--rule); background: #fff; }
.verify .field, .register .field { display: block; }
.register { max-width: 720px; background: var(--white); border-top: 4px solid var(--slate); padding: 26px 28px 24px; }
.r-check { font-size: 14px; color: var(--muted); }

/* glossary, legal */
.s-pagehead + .band .prose h3 { font-size: 21px; color: var(--navy); }
.band .prose h3 + p { margin-top: 6px; }

/* footer : bleu profond, texte clair */
.foot { padding-inline: var(--gutter); padding-block: 52px 40px; border-top: 6px solid var(--amber); background: var(--navy); color: var(--onband); }
.ft-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 48px; }
.ft-h { font-family: var(--serif); font-size: 20px; color: var(--amber); margin-bottom: 12px; }
.foot ul { list-style: none; padding: 0; margin: 0; }
.foot li { margin: 0; padding: 4px 0; font-size: 15px; }
.foot a { color: var(--onband); }
.foot a:hover { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--amber); }
.foot a:focus-visible { outline-color: var(--amber); }
.ft-line { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--onrule); font-size: 13.5px; color: var(--onband2); }

/* responsive */
@media (max-width: 920px) {
  .stance-grid, .hero-grid, .tool-grid, .loop-grid, .page-head, .two { grid-template-columns: minmax(0, 1fr); }
  .stance-body { border-left: 0; padding-left: 0; border-top: 1px solid var(--onrule); padding-top: 24px; }
  .ph-aside { border-left: 0; border-top: 4px solid var(--amber); padding-left: 0; padding-top: 16px; }
  .cols4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cols3, .tiers, .pp-why-grid, .prog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .band { padding-block: 44px; }
  .cols3, .cols4, .tiers, .tiers.pk-more, .pp-why-grid, .after-grid, .level, .inside li, .metrics li, .prog-list, .ft-cols, .path-grid { grid-template-columns: minmax(0, 1fr); }
  .tier { padding-inline: 18px; }
  .tier > .lbl, .tier > h3 { margin-inline: -18px; padding-inline: 18px; }
  .path-grid .notify { padding-top: 0; }
  .metrics li .lbl, .prog-list .lbl { grid-row: auto; }
  .record .rhead, .record .sec { padding-inline: 16px; }
  .record .meta { grid-template-columns: minmax(0, 1fr); gap: 2px; margin-inline: 16px; }
  .record .rfoot { padding-inline: 16px; }
  .level { padding: 20px 18px; }
  .level .n { font-size: 44px; }
  .site-head .wrap { padding-block: 14px; }
  .capture-form, .register { padding: 20px 16px; }
  .anti li { grid-template-columns: minmax(0, 1fr); }
}

.is-soon { opacity: .55; cursor: default; }

.next-d { margin-top: 8px; font-size: 15px; color: var(--text); max-width: var(--measure); }
.record .tbl { overflow-x: auto; margin: 0; }
.record .rtable td, .record .rtable th, table.dt td, table.dt th { overflow-wrap: normal; }
@media (max-width: 640px) {
  .record .tbl, .table-scroll { background: linear-gradient(to left, rgba(31,50,70,.16), rgba(31,50,70,0) 28px) right / 28px 100% no-repeat; background-attachment: local; border-right: 1px solid var(--rule); }
  .record .tbl::after, .table-scroll::after { content: "Faire glisser pour voir la suite"; display: block; font-size: 12.5px; color: var(--muted); padding: 8px 0 0; font-family: var(--sans); }
  html[lang="en"] .record .tbl::after, html[lang="en"] .table-scroll::after { content: "Swipe to see the rest"; }
}
.record .rtable { overflow-wrap: normal; min-width: 360px; }

.band-self > * { max-width: var(--max); margin-inline: auto; }

.prose > ul + p, .prose > ol + p, .prose > ul + .fine, .prose > p + ul, .prose > p + ol { margin-top: 12px; }
.cols4 + .prose, .cols3 + .prose, .prose + .levels, .prose + .two, .two + .prose, .two + .two, .prose + .cols3, .prose + .cols4, .two + p.fine, .cols3 + p.fine, .prose > .fine + p { margin-top: 28px; }
.band > .wrap > p + p { margin-top: 12px; }

/* Lot 1 (annotations de l'auteur du 20/10/2026) : plus de texte collé à gauche avec un vide à droite.
   (a) pages de texte continu : une colonne de lecture centrée, l'en-tête aligné sur elle ;
   (b) pages de contenu : titre de section à gauche et introduction à droite, listes en grille, formulaires à côté de leur titre ;
   relief du protocole (phrases clés en grand corps, encadrés, cinq niveaux à en-tête bleu profond) ; vérification sans fichier dépliée. */

/* (a) colonne de lecture centrée : Mentions légales, Conditions, Glossaire */
main.doc .band > .wrap { max-width: 38rem; }
main.doc .page-head { grid-template-columns: minmax(0, 1fr); gap: 28px; }
main.doc p, main.doc li, main.doc .lead, main.doc .prose { max-width: none; }
main.doc .sect-head { max-width: none; }
main.doc .two { grid-template-columns: minmax(0, 1fr); gap: 28px; }
main.doc .cols4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
main.doc .callout { max-width: none; }

/* (b) titre de section à gauche, introduction à droite */
.sect-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 20px 72px; align-items: start; margin-bottom: 40px; }
.sect-row > .sect-head { margin-bottom: 0; }
.sect-row > :last-child { padding-top: 22px; }
.sect-row > .prose, .sect-row > p.prose { max-width: none; }
.sect-row p { font-size: 16.5px; line-height: 1.6; max-width: 38em; }
.sect-row > p.fine { font-size: 15.5px; color: var(--text); }
.band.dark .sect-row > p.fine { color: var(--onband); }
.sect-row + .levels, .sect-row + .table-scroll, .sect-row + .two, .sect-row + .pp-items, .sect-row + .tiers { margin-top: 0; }

/* Protocol : « Un protocole, pas une consigne ponctuelle » */
.pp-why-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 28px 72px; align-items: start; }
.pp-why-grid p { max-width: none; }
.pp-why-grid .key { display: block; font-family: var(--serif); font-size: clamp(24px, 2.6vw, 30px); line-height: 1.28; color: var(--navy); margin-bottom: 16px; }
.pp-why .refer { border-left: 4px solid var(--amber); padding: 6px 0 8px 24px; margin-top: 8px; font-size: 15px; color: var(--text); }
.pp-why .refer a { display: block; margin-top: 4px; font-family: var(--serif); font-size: 26px; line-height: 1.2; color: var(--slate); text-decoration: none; }
.pp-why .refer a:hover { color: var(--navy); text-decoration: underline; }

/* Protocol : règle d'indépendance en encadré, sa phrase clé en grand */
.pp-note { margin-top: 28px; }
.pp-note p.pp-key { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 14px 56px; max-width: none; background: var(--slate); border-left: 5px solid var(--amber); padding: 26px 30px 28px; }
.pp-key .k { font-family: var(--serif); font-size: clamp(22px, 2.3vw, 27px); line-height: 1.3; color: #FFFFFF; }
.pp-key .kl { display: block; font-family: var(--sans); font-size: 14px; line-height: 1.5; color: var(--onband2); margin-bottom: 8px; }
.pp-key .r { font-size: 15px; line-height: 1.6; color: var(--onband); }

/* Protocol : triage, les deux paragraphes sous le tableau */
.pp-after { margin-top: 32px; }
.pp-after .prose { max-width: none; }
.pp-after p { max-width: 38em; }

/* Protocol : cinq niveaux, en-tête bleu profond (motif des cartes du Pro Kit), techniques à côté */
.pp-levels .level { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 0; padding: 0; border: 1px solid var(--rule); background: var(--white); }
.band.warm.pp-levels .level { background: var(--paper); }
.level .lh { background: var(--navy); border-right: 4px solid var(--amber); padding: 26px 28px 30px; gap: 8px; }
.level .lh .n { color: var(--amber); }
.level .lh .lbl { color: var(--onband2); }
.level .lh h3 { color: #FFFFFF; font-size: 25px; line-height: 1.2; margin: 12px 0 0; }
.level .lh .when { color: var(--onband); margin: 0; }
.level .lb { padding: 26px 32px 28px; min-width: 0; }
.level .lb .callout { margin-top: 0; }
.pp-levels .techs { max-width: none; }
.pp-levels .tech dd { max-width: 40em; }

/* Protocol : plans d'agents, quatre points en grille ; versions en lignes */
.pp-items { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; border-top: 2px solid var(--navy); }
.pp-items li { margin: 0; padding: 20px 0 22px; border-bottom: 1px solid var(--rule); max-width: none; font-size: 15.5px; }
.pp-items .lead-in, .pp-vlist .lead-in { display: block; font-family: var(--serif); font-size: 20px; line-height: 1.3; color: var(--navy); margin-bottom: 6px; }
.pp-vlist { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--navy); }
.pp-vlist li { display: grid; grid-template-columns: minmax(0, 270px) minmax(0, 1fr); gap: 6px 40px; margin: 0; padding: 18px 0 20px; border-bottom: 1px solid var(--rule); max-width: none; font-size: 15.5px; }
.pp-vlist .lead-in { margin: 0; font-size: 19px; }
.pp-vlist li > span:last-child { max-width: 40em; }
.pp-vlist + p { margin-top: 18px; }

/* Pro Kit : « Ce que contient le kit » sur la largeur, partie licences et prix */
#inside .inside li { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); }
#inside .inside li > span { max-width: 40em; }
.tier .price { font-family: var(--serif); font-size: 26px; line-height: 1.2; color: var(--navy); margin-top: 16px; }
.tier .price small { font-family: var(--sans); font-size: 13px; line-height: 1.4; margin-top: 4px; }
.pk-more .tier .price { font-family: var(--sans); font-size: 16px; line-height: 1.5; color: var(--ink); }
.pk-terms { margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--rule); column-count: 2; column-gap: 56px; }
.pk-terms p.fine { max-width: none; margin: 0 0 12px; break-inside: avoid; }
#pricing .pk-terms > p.fine { margin-top: 0; }

/* Training : encadré latéral de Practitioner, certificats, organisations, formateurs */
.prog-aside { border-left: 4px solid var(--amber); padding-left: 24px; padding-top: 4px; }
.prog-aside .fine { font-size: 15px; color: var(--text); }
.cert-list { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--amber); }
.cert-list li { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--onrule); max-width: none; font-family: var(--serif); font-size: 21px; line-height: 1.3; }
.band.dark .cert-list li { color: #FFFFFF; }
.org-strip { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 32px; align-items: center; background: var(--white); border: 1px solid var(--rule); border-top: 5px solid var(--slate); padding: 22px 26px 24px; }
.org-strip h3 { font-size: 26px; color: var(--navy); }
.org-strip p { margin: 0; }
.org-strip .lbl { margin-bottom: 4px; }
.tr-key, .sect-row p.tr-key { font-family: var(--serif); font-size: clamp(22px, 2.3vw, 27px); line-height: 1.3; max-width: 24em; }
.band.dark .tr-key { color: #FFFFFF; }
.tr-go { margin-top: 22px; }
/* lot 2 : la section formateur reprend le parcours, le kit et les conditions de la page Formateurs */
.sect-row .tr-key + p { margin-top: 16px; }
.tr-detail { gap: 24px 56px; }
.tr-detail h3 { margin-bottom: 12px; }
.tr-detail ol { padding-left: 1.3em; }
.tr-detail ol li { max-width: 38em; }
.tr-detail .col { padding: 22px 24px 24px; }
.tr-detail .col h3 { margin: 4px 0 10px; }
.tr-end { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 40px; align-items: center; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--onrule); }
.tr-end p { max-width: 44em; }
.tr-end .tr-go { margin-top: 0; }
@media (max-width: 640px) { .tr-end { grid-template-columns: minmax(0, 1fr); } }

/* pages de programme : liste « Dans le parcours », l'étiquette « Ce programme » passe à la ligne plutôt que d'être coupée */
.pathway li { flex-wrap: wrap; row-gap: 2px; }
.pathway li > .fine { white-space: nowrap; }

/* lot 4 : spécimens des certificats de réussite (pages de programme : figure en grand ; page Formation : voir lot 5) */
.cert-card { display: block; line-height: 0; box-shadow: 0 18px 40px -18px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.18); transition: transform .15s ease; }
.cert-card img, .cert-fig img { display: block; width: 100%; height: auto; }
.cert-card:hover { transform: translateY(-2px); }
.band.dark .cert-card:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }
/* lot 5 : ouverture de la page Formation et certificats : spécimen Practitioner en grand à côté du titre, phrase sous le chapeau */
.page-head.ph-cert { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 56px; }
.ph-side { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.ph-cert-img { box-shadow: var(--shadow); }
.page-head .cert-line { margin-top: 20px; max-width: 32em; padding-left: 16px; border-left: 3px solid var(--amber); font-family: var(--serif); font-size: 20px; line-height: 1.4; color: var(--navy); }
/* lot 5 : chaque certificat dans la section de son programme (page Formation) ; sur téléphone, sous le texte de sa section */
.prog-cert { box-shadow: var(--shadow); align-self: start; }
.prog-cert.pc-small { width: 300px; max-width: 100%; }
@media (min-width: 921px) {
  .prog-grid { grid-template-rows: auto 1fr; }
  .prog-grid-p > .prose:first-child { grid-column: 1; grid-row: 1 / span 2; }
  .prog-grid-p > .pc-p { grid-column: 2; grid-row: 1; }
  .prog-grid-p > .prog-aside { grid-column: 2; grid-row: 2; }
  .prog-grid-w { grid-template-rows: auto auto; align-items: stretch; }
  .prog-grid-w > .pc-j { grid-column: 1; grid-row: 1; }
  .prog-grid-w > .pc-o { grid-column: 2; grid-row: 1; }
  .prog-grid-w > .prose:nth-child(1) { grid-column: 1; grid-row: 2; }
  .prog-grid-w > .prose:nth-child(3) { grid-column: 2; grid-row: 2; }
  .prog-grid-a > .prose:nth-child(1) { grid-column: 1; grid-row: 1; }
  .prog-grid-a > .prose:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
  .prog-grid-a > .pc-a { grid-column: 1; grid-row: 2; }
}
.cert-fig { max-width: 880px; margin: 44px auto 0; line-height: 0; box-shadow: var(--shadow); }
@media (max-width: 640px) {
  .cert-fig { margin-top: 32px; }
}
@media (prefers-reduced-motion: reduce) { .cert-card { transition: none; } .cert-card:hover { transform: none; } }

/* lot 3 : liens vers « Enregistrer un rapport » (Protocol, Verify) */
.col .col-go { margin-top: 14px; font-size: 15px; }
.ph-aside .v-reg a { font-family: var(--serif); font-size: 20px; }

/* lot 3 : page « Enregistrer un rapport » : en-tête en deux colonnes, trois encadrés à côté du formulaire, formulaire en objet */
.page-head.ph-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.ph-split .ph-lead { padding-top: 26px; }
.ph-split .lead { margin-top: 0; max-width: none; }
.lead .hl { color: var(--navy); background: linear-gradient(transparent 58%, rgba(233,168,58,.42) 58%); padding: 0 1px; }
.reg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr); gap: 32px 56px; align-items: start; }
.reg-notes { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }
.reg-note { background: var(--paper); border: 1px solid var(--rule); border-top: 5px solid var(--slate); padding: 20px 22px 22px; }
.reg-note:nth-child(2) { border-top-color: var(--amber); }
.reg-note:nth-child(3) { border-top-color: var(--navy); }
.reg-note p { font-size: 15px; line-height: 1.6; color: var(--text); max-width: none; }
.reg-note .lead-in { display: block; font-family: var(--serif); font-size: 21px; line-height: 1.25; color: var(--navy); margin-bottom: 8px; }
.reg-grid .register { max-width: none; background: var(--white); border: 1px solid var(--rule); border-top: 5px solid var(--navy); padding: 30px 32px 32px; box-shadow: var(--shadow); }
.register .field { margin-bottom: 20px; }
.register label { font-size: 15px; color: var(--ink); margin-bottom: 8px; }
.register input[type="text"], .register textarea, .register select { border-color: #8A867E; background: var(--white); font-size: 15px; }
.register input[type="text"]:hover, .register textarea:hover, .register select:hover { border-color: var(--slate); }
.register .btn { padding: 14px 28px; font-size: 15.5px; }
.register .r-check { margin: 0 0 16px; max-width: none; }
.register .v-result { max-width: none; }

/* Verify : « OR » sous la zone de dépôt, puis la vérification sans le fichier, dépliée */
.v-or { display: flex; align-items: center; gap: 16px; margin: 28px 0 22px; max-width: none; font-size: 15px; letter-spacing: .12em; color: var(--muted); }
.v-or::before, .v-or::after { content: ""; flex: 1 1 0; height: 1px; background: var(--rule); }
.v-alt { background: var(--white); border: 1px solid var(--rule); padding: 22px 24px 24px; }
.v-alt h2 { font-size: 22px; line-height: 1.25; color: var(--navy); margin-bottom: 8px; }
.v-alt .fine { margin: 0 0 16px; max-width: none; }
.v-alt .verify .field { margin-bottom: 12px; }
.v-alt .v-result { margin-top: 14px; max-width: none; }

@media (max-width: 920px) {
  .sect-row, .pp-why-grid, .pp-note p.pp-key, .pp-levels .level, .pp-vlist li, .reg-grid, .page-head.ph-split, .page-head.ph-cert { grid-template-columns: minmax(0, 1fr); }
  .reg-notes { position: static; }
  .ph-split .ph-lead { padding-top: 0; }
  .sect-row { margin-bottom: 32px; }
  .sect-row > :last-child { padding-top: 0; }
  .level .lh { border-right: 0; border-bottom: 4px solid var(--amber); }
  .pk-terms { column-count: 1; }
}
@media (max-width: 640px) {
  .pp-items, main.doc .cols4, #inside .inside li { grid-template-columns: minmax(0, 1fr); }
  .level .lh, .level .lb { padding: 20px 18px 22px; }
  .pp-note p.pp-key { padding: 20px 18px 22px; }
  .org-strip { grid-template-columns: minmax(0, 1fr); padding: 20px 18px; }
  .v-alt { padding: 20px 16px; }
  .reg-grid .register { padding: 22px 16px 24px; }
}

/* 23/10/2026 (demande de l'auteur, 17 h 30) : le code présenté comme du code, pour un lecteur non informaticien.
   Modèle : les extraits de code d'attestscope.ai (libellé en chasse fixe au-dessus, panneau sombre, ombre), aux couleurs de riftveil.ai.
   - .code-doc : un document à copier (figure, libellé dans le figcaption, panneau bleu profond, éléments à remplacer en or) ;
   - .tech-box : un petit encadré à part pour les équipes techniques, le code en blocs (retour à la ligne permis) ;
   - le code en ligne : une puce discrète qui le distingue du texte. */
.code-lbl { display: block; font-family: var(--mono); font-size: 12.5px; line-height: 1.5; letter-spacing: .02em; color: var(--slate); margin: 0 0 8px; max-width: none; }
figure.code-doc { margin: 0; }
.code-doc pre { background: var(--navy); color: var(--onband); border: 0; border-top: 4px solid var(--amber); padding: 18px 20px 20px; font-size: 12.5px; line-height: 1.7; white-space: pre-wrap; box-shadow: var(--shadow); }
.code-doc .ph { color: var(--amber); }
.tech-box { background: var(--white); border: 1px solid var(--rule); border-top: 4px solid var(--navy); padding: 14px 18px 18px; }
.band.warm .tech-box { background: var(--paper); }
.tech-box p { max-width: none; }
.tech-box code.blk { display: block; margin: 6px 0 10px; padding: 8px 12px; background: var(--navy); color: var(--onband); border: 0; font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.tech-box code.blk:last-child { margin-bottom: 0; }
main :not(pre) > code:not(.blk) { background: var(--tint); color: var(--navy); border: 1px solid #CDD6E1; padding: .05em .35em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.band.dark :not(pre) > code:not(.blk) { background: rgba(244,239,228,.14); color: #FFFFFF; border-color: rgba(244,239,228,.3); }

/* 23/10/2026 : le menu du haut et les deux autres sites.
   17 h 30 (demande de l'auteur) : les deux autres sites se distinguent des pages du site : filet vertical et espace, pastille carrée
   à la couleur de marque du site visé (une pastille = une couleur), flèche de lien externe après le nom ; sur téléphone, filet et
   légende « Les trois sites ».
   19 h 45 (décision de l'auteur, variante A) : les deux autres sites à la taille des liens du menu (plus petits seulement entre
   1 101 et 1 279 px, faute de place), graisse 500, couleur pleine du texte, pastille de 9 px ; au survol et au focus clavier, le nom
   prend la couleur de marque du site visé. Le lien de langue sort du groupe : sur ordinateur, à l'extrême droite de l'en-tête, après
   son propre espace ; sur téléphone, à côté du bouton « Menu », visible sans ouvrir le menu (il n'est plus dans le panneau).
   Couleurs de marque : un seul endroit, les variables --fam-… (pastilles) et --fam-…-t (texte au survol et au focus : la nuance
   lisible sur le fond de l'en-tête, contraste d'au moins 4,5:1 ; AttestScope : son laiton foncé). */
.site-head { --fam-hf: #2F6B4F; --fam-rv: #33506E; --fam-as: #9C7A2E; --fam-hf-t: #2F6B4F; --fam-rv-t: #33506E; --fam-as-t: #7A5C1E; }
.site-head .wrap { column-gap: 24px; }
.nav-d { margin-left: auto; }
.site-head .wrap > .lang { margin-left: 4px; }
.nav-d .nav-fam { padding-left: 22px; gap: 4px 18px; }
.nav-fam a { display: inline-flex; align-items: center; gap: 7px; }
.nm-fam a { display: flex; align-items: center; gap: 10px; }
.nav-fam a::before, .nm-fam a::before { content: ""; flex: none; width: 9px; height: 9px; background: var(--fam-c, var(--muted)); }
/* la flèche de lien externe (↗), dessinée en CSS : les polices des sites n'ont pas ce caractère */
.nav-fam a::after, .nm-fam a::after { content: ""; flex: none; width: .66em; height: .66em; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.2 7.8 7.6 2.4M3.4 2.4h4.2v4.2' fill='none' stroke='%23000' stroke-width='1.25'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.2 7.8 7.6 2.4M3.4 2.4h4.2v4.2' fill='none' stroke='%23000' stroke-width='1.25'/%3E%3C/svg%3E") center / contain no-repeat; }
:is(.nav-fam, .nm-fam) a[href*="humanfrontier.ai"] { --fam-c: var(--fam-hf); --fam-t: var(--fam-hf-t); }
:is(.nav-fam, .nm-fam) a[href*="riftveil.ai"] { --fam-c: var(--fam-rv); --fam-t: var(--fam-rv-t); }
:is(.nav-fam, .nm-fam) a[href*="attestscope.ai"] { --fam-c: var(--fam-as); --fam-t: var(--fam-as-t); }
:is(.nav-fam, .nm-fam) a:is(:hover, :focus-visible) { color: var(--fam-t, var(--ink)); text-decoration: none; }
.nav-m-panel .nm-main li:last-child a, .nav-m-panel .nm-fam li:last-child a { border-bottom: 0; }
.nav-m-panel .nm-fam { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--rule); }
.nm-fam::before { content: "Les trois sites"; content: "Les trois sites" / ""; display: block; font-size: 11.5px; line-height: 1.4; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-bottom: 2px; }
html[lang="en"] .nm-fam::before { content: "The three sites"; content: "The three sites" / ""; }
/* entre 1 101 et 1 279 px, espacements resserrés (et, sous 1 180 px, les deux autres sites un peu plus petits)
   pour que le menu reste sur une ligne, dans la largeur de l'en-tête */
@media (max-width: 1279px) {
  .site-head .wrap { column-gap: 20px; }
  .nav-d { gap: 18px; }
  .nav-d .nav-main { column-gap: 12px; }
  .nav-d .nav-fam { padding-left: 16px; column-gap: 14px; }
}
@media (max-width: 1179px) {
  .site-head .wrap { column-gap: 16px; }
  .nav-d { gap: 14px; }
  .nav-d .nav-main { column-gap: 10px; }
  .nav-d .nav-fam { padding-left: 12px; column-gap: 12px; }
  .nav-fam a { font-size: 13px; gap: 6px; }
}
/* téléphone et tablette : le lien de langue à côté du bouton « Menu », à la même hauteur que lui */
@media (max-width: 1100px) {
  .site-head .wrap { column-gap: 10px; }
  .site-head .wrap > .lang { margin-left: auto; align-self: stretch; display: inline-flex; align-items: center; }
  .nav-m { flex: none; }
  .nav-m summary { white-space: nowrap; }
}

/* impression : fonds clairs, texte encre, sans ombre */
@media print {
  .code-doc pre, .tech-box code.blk, main :not(pre) > code { border: 1px solid #999 !important; }
  main *, footer *, .site-head * { color: #000 !important; background: transparent !important; box-shadow: none !important; }
  body, .band, .foot { background: #fff !important; color: #000 !important; }
  .site-head, .nav-m, .skip, .cta, .actions, .tool-form, .capture-form, .progress { display: none !important; }
  .band { border-top: 1px solid #999; padding-block: 24px; }
  .col, .pillar, .level, .tier, .gv-box, p.rule, .callout, .record, .report-region, .prog-list li, .two > .prose:has(> .lbl.slate), .badge { border: 1px solid #999 !important; }
  .col, .pillar, .level, .tier, .gv-box, .callout, .prog-list li, .two > .prose:has(> .lbl.slate), .metrics li, .anti li, .inside li, .faq details { break-inside: avoid; }
  a { text-decoration: underline; }
}
.report .thinking .elapsed { font-style: normal; font-variant-numeric: tabular-nums; font-size: 13px; }

/* Traçabilité AttestScope (accueil, 30/10/2026) : figure de l’enveloppe, reprise d’attestscope.ai */
/* 30/10/2026, 21 h 24 (décision 7 a, rapport visuel B4 option A) : section standard (.sect-row) en bande blanche après « Comment fonctionne… »,
   l’enveloppe présentée comme un objet blanc à ombre, aux couleurs du site */
.s-record .rec-env { margin: 28px 0 0; background: var(--white); border: 1px solid var(--rule); box-shadow: var(--shadow); padding: 18px 18px 14px; }
.s-record .rec-env svg { display: block; width: 100%; height: auto; }
.s-record .rec-env figcaption { margin-top: 10px; }
.s-record .sect-row .lead { font-size: 19px; max-width: none; }
.s-record .sect-row .fine { font-size: 14px; color: var(--muted); }
.s-record .sect-row .actions { margin-top: 22px; }
.s-record .cols3 { margin-top: 8px; }
/* Pro Kit : la traçabilité AttestScope, en option payante, hors de la liste de ce qui est compris (30/10/2026) */
.pk-opt { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rule2); font-size: 14px; line-height: 1.5; color: var(--muted); }
/* Pro Kit : section #tracabilite sur le modèle de la bande de fin de Gouvernance, trois cartes sous le texte et les boutons (30/10/2026, décision 5 a) */
.pk-trace-cols { margin-top: 36px; }
/* 30/10/2026, contrôle visuel final (mineur 5) : la note de statut à la largeur du paragraphe au-dessus */
#tracabilite .prose > .fine, #traceability .prose > .fine { max-width: none; }
