{"id":12251,"date":"2025-08-16T13:01:53","date_gmt":"2025-08-16T12:01:53","guid":{"rendered":"https:\/\/diligence-consulting.fr\/arche-score-your-structuring-index\/"},"modified":"2026-04-22T15:46:10","modified_gmt":"2026-04-22T14:46:10","slug":"arche-a-prior-institutional-reading","status":"publish","type":"page","link":"https:\/\/diligence-consulting.fr\/en\/arche-a-prior-institutional-reading\/","title":{"rendered":"Arch\u00e9 : A Prior Institutional Reading"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignwide stk-block-columns stk-block stk-f5554c3 stk-block-background stk--has-background-overlay\" data-block-id=\"f5554c3\"><style>.stk-f5554c3 {background-color:#3c2204 !important;background-image:url(https:\/\/diligence-consulting.fr\/wp-content\/uploads\/2026\/04\/3F391A1F-6B26-4F69-8DA8-CE1257E43241.jpg) !important;background-position:center center !important;background-repeat:no-repeat !important;background-size:cover !important;border-top-left-radius:25px !important;border-top-right-radius:25px !important;border-bottom-right-radius:25px !important;border-bottom-left-radius:25px !important;overflow:hidden !important;padding-top:180px !important;padding-right:80px !important;padding-bottom:103px !important;padding-left:80px !important;margin-bottom:39px !important;}.stk-f5554c3:before{background-color:#3c2204 !important;opacity:0.3 !important;}@media screen and (max-width:689px){.stk-f5554c3 {padding-top:100px !important;padding-right:25px !important;padding-bottom:60px !important;padding-left:25px !important;}}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center-tablet has-text-align-center-mobile stk-block-content stk-content-align stk-f5554c3-column alignwide\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-3f739b8\" data-v=\"4\" data-block-id=\"3f739b8\"><style>.stk-3f739b8-container{margin-top:0px !important;margin-right:0px !important;margin-bottom:0px !important;margin-left:0px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-3f739b8-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-3f739b8-inner-blocks\">\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-ba93f5b\" id=\"strong-votre-score-arche-strong\" data-block-id=\"ba93f5b\"><style>.stk-ba93f5b {max-width:57% !important;min-width:auto !important;margin-bottom:0px !important;}.stk-ba93f5b .stk-block-heading__text{font-size:60px !important;color:var(--theme-palette-color-8, #ffffff) !important;line-height:1.1em !important;}@media screen and (max-width:999px){.stk-ba93f5b {max-width:100% !important;min-width:auto !important;}.stk-ba93f5b .stk-block-heading__text{font-size:40px !important;}}@media screen and (max-width:689px){.stk-ba93f5b .stk-block-heading__text{font-size:30px !important;}}<\/style><h1 class=\"stk-block-heading__text has-text-color has-palette-color-8-color\">Arch\u00e9 : A Prior Institutional Reading<br><\/h1><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Arche Platform &middot; Preliminary Institutional Reading &middot; Diligence Consulting<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800&family=Montserrat:wght@700;800;900&display=swap\" rel=\"stylesheet\">\r\n\r\n<!-- ============================================================\r\nDC_Arche_Platform v2 \u2014 HOUSE OF EDUCATIONAL DIPLOMACY\r\nOPTION C : POSTURE MAISON INT\u00c9GRALE\r\n\r\nChangements vs v1 :\r\n- Gate email SUPPRIM\u00c9 (plus de collecte obligatoire)\r\n- Verdict affich\u00e9 DIRECTEMENT apr\u00e8s les 7 questions\r\n- Bloc personnalisation OPTIONNEL APR\u00c8S verdict (nom + institution)\r\n- Ces donn\u00e9es restent en LOCAL (navigateur) \u2014 JAMAIS transmises\r\n- T\u00e9l\u00e9chargement PDF Maison via jsPDF (offline-generated)\r\n- READABLE \u2192 Calendly direct\r\n- CRITICAL \/ NOTYET \/ REMEDIATION \u2192 mailto Sandrine (avec verdict + nom\/institution SI renseign\u00e9s)\r\n- Aucun POST WPForms\r\n- Conforme RGPD par construction (aucune collecte)\r\n- Int\u00e9gr\u00e9 dans WP Code (bloc HTML unique)\r\n============================================================ -->\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n\r\n<style>\r\n:root {\r\n  --noir: #111111;\r\n  --noir-chaud: #181512;\r\n  --mordore: #B9965F;\r\n  --mordore-light: #FDF5E6;\r\n  --rouge: #F84346;\r\n  --gris: #5F6368;\r\n  --ivoire: #FCFBF8;\r\n  --ivoire-dense: #F0EDE6;\r\n  --grislt: #E8E6E0;\r\n  --blanc: #FFFFFF;\r\n  --vert: #1A6B3C;\r\n  --orange: #C05800;\r\n  --crit: #C00000;\r\n  --bleu: #2E5FA3;\r\n  --radius: 20px;\r\n  --radius-sm: 12px;\r\n  --shadow: 0 2px 16px rgba(17,17,17,0.07);\r\n  --shadow-lg: 0 8px 40px rgba(17,17,17,0.13);\r\n}\r\n* { box-sizing: border-box; margin: 0; padding: 0; }\r\nhtml { scroll-behavior: smooth; }\r\nbody {\r\n  font-family: \"Inter\", sans-serif;\r\n  background: var(--ivoire);\r\n  color: var(--noir);\r\n  font-size: 14px;\r\n  line-height: 1.65;\r\n  -webkit-font-smoothing: antialiased;\r\n}\r\n.topbar { display: none; }\r\n.wrap { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 280px; min-height: 100vh; }\r\n.main { padding: 36px 48px 80px; }\r\n.side { background: var(--blanc); border-left: 1px solid var(--grislt); padding: 36px 24px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }\r\n.screen { display: none; }\r\n.screen.on { display: block; animation: rise 0.3s ease; }\r\n@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\r\n.arch { display: inline-block; width: 52px; height: 26px; border: 3px solid var(--rouge); border-bottom: none; border-radius: 26px 26px 0 0; margin-bottom: 22px; }\r\n.arch-sm { display: inline-block; width: 36px; height: 18px; border: 2px solid var(--rouge); border-bottom: none; border-radius: 18px 18px 0 0; margin-bottom: 16px; }\r\n.pg-title { font-family: \"Montserrat\", sans-serif; font-size: 58px; font-weight: 900; color: var(--noir); letter-spacing: -2px; line-height: 0.92; margin-bottom: 4px; }\r\n.pg-accent { color: var(--mordore); }\r\n.pg-sub { font-size: 14px; color: var(--gris); line-height: 1.65; margin-bottom: 28px; }\r\n.sec-label { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 14px; display: block; }\r\n.card { background: var(--blanc); border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px 32px; margin-bottom: 20px; }\r\n.card-ivoire { background: var(--ivoire); border-radius: var(--radius-sm); padding: 18px 22px; margin-bottom: 16px; border: 1px solid var(--grislt); }\r\n.doctrine { background: var(--noir-chaud); border-radius: var(--radius-sm); padding: 24px 28px; margin-bottom: 28px; border-left: 3px solid var(--rouge); }\r\n.doctrine p { font-size: 14px; color: #CCBBAA; line-height: 1.8; font-style: italic; }\r\n.doctrine p strong { color: var(--blanc); font-style: normal; }\r\n.verdicts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 28px; }\r\n.verdict-preview { background: var(--blanc); border-radius: var(--radius-sm); box-shadow: var(--shadow); padding: 16px 18px; border-left: 3px solid var(--grislt); transition: all 0.2s; }\r\n.verdict-preview:hover { box-shadow: var(--shadow-lg); transform: translateY(-1px); }\r\n.vp-crit { border-left-color: var(--crit); }\r\n.vp-notyet { border-left-color: var(--orange); }\r\n.vp-readable { border-left-color: var(--mordore); }\r\n.vp-remed { border-left-color: var(--crit); }\r\n.vp-label { font-family: \"Montserrat\", sans-serif; font-size: 10px; font-weight: 900; letter-spacing: 1px; margin-bottom: 6px; }\r\n.vp-def { font-size: 11px; color: var(--gris); line-height: 1.5; }\r\n.verdicts-intro { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; display: block; }\r\n.feat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 28px; }\r\n.feat { background: var(--blanc); border-radius: var(--radius-sm); box-shadow: var(--shadow); padding: 18px 20px; }\r\n.feat-label { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 6px; }\r\n.feat-text { font-size: 11.5px; color: var(--gris); line-height: 1.5; }\r\n.prog-wrap { margin-bottom: 36px; }\r\n.prog-meta { display: flex; justify-content: space-between; font-size: 11px; color: var(--gris); margin-bottom: 8px; }\r\n.prog-meta span:last-child { font-weight: 700; color: var(--mordore); }\r\n.prog-track { height: 2px; background: var(--grislt); border-radius: 2px; }\r\n.prog-fill { height: 100%; background: var(--mordore); border-radius: 2px; transition: width 0.5s ease; }\r\n.q-card { background: var(--blanc); border-radius: var(--radius); box-shadow: var(--shadow); padding: 36px 36px 28px; margin-bottom: 20px; }\r\n.q-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; align-items: center; }\r\n.dim-badge { font-size: 8px; font-weight: 700; letter-spacing: 1.5px; padding: 4px 12px; color: var(--blanc); text-transform: uppercase; border-radius: 20px; }\r\n.dim-G { background: var(--noir); }\r\n.dim-R { background: var(--rouge); }\r\n.dim-O { background: var(--bleu); }\r\n.dim-C { background: var(--mordore); }\r\n.law-btn { font-size: 8px; font-weight: 600; letter-spacing: 0.5px; padding: 4px 10px; background: var(--ivoire-dense); color: var(--mordore); border: 1px solid #D9C9A8; border-radius: 20px; cursor: pointer; transition: all 0.15s; font-family: \"Inter\", sans-serif; }\r\n.law-btn:hover { background: var(--mordore); color: var(--blanc); border-color: var(--mordore); }\r\n.law-pop { display: none; background: var(--ivoire-dense); border-radius: var(--radius-sm); padding: 16px 20px; margin: 10px 0 6px; border-left: 3px solid var(--mordore); }\r\n.law-pop.open { display: block; animation: rise 0.2s ease; }\r\n.law-pop-ref { font-size: 8.5px; font-weight: 700; color: var(--mordore); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px; }\r\n.law-pop-text { font-size: 11.5px; color: var(--noir); line-height: 1.75; font-weight: 500; }\r\n.q-text { font-size: 17px; font-weight: 700; color: var(--noir); line-height: 1.4; margin-bottom: 8px; }\r\n.q-sub { font-size: 12px; color: var(--gris); font-style: italic; margin-bottom: 24px; line-height: 1.55; padding-left: 14px; border-left: 2px solid var(--grislt); }\r\n.opt { display: flex; align-items: flex-start; gap: 14px; padding: 14px 18px; border: 1.5px solid var(--grislt); border-radius: var(--radius-sm); margin-bottom: 9px; cursor: pointer; background: var(--blanc); transition: all 0.18s; }\r\n.opt:hover { border-color: var(--mordore); background: var(--mordore-light); }\r\n.opt.sel { border-color: var(--mordore); background: var(--mordore-light); box-shadow: 0 2px 12px rgba(185,150,95,0.12); }\r\n.opt-circle { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--grislt); flex-shrink: 0; margin-top: 1px; transition: all 0.18s; display: flex; align-items: center; justify-content: center; }\r\n.opt.sel .opt-circle { border-color: var(--mordore); background: var(--mordore); }\r\n.opt-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blanc); display: none; }\r\n.opt.sel .opt-dot { display: block; }\r\n.opt-sq { width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--grislt); flex-shrink: 0; margin-top: 1px; transition: all 0.18s; display: flex; align-items: center; justify-content: center; }\r\n.opt.sel .opt-sq { border-color: var(--mordore); background: var(--mordore); }\r\n.opt-tick { width: 10px; height: 8px; display: none; }\r\n.opt.sel .opt-tick { display: block; }\r\n.opt-lbl { font-size: 13.5px; color: var(--noir); line-height: 1.4; flex: 1; }\r\n.rp { font-size: 8.5px; font-weight: 700; padding: 3px 8px; border-radius: 20px; flex-shrink: 0; margin-top: 2px; white-space: nowrap; }\r\n.rp-h { background: #FDECEA; color: var(--crit); }\r\n.rp-m { background: #FFF3E0; color: var(--orange); }\r\n.rp-n { background: var(--ivoire); color: var(--gris); }\r\n.multi-hint { font-size: 11px; color: var(--gris); font-style: italic; margin-bottom: 16px; }\r\n.btn-back { background: transparent; border: 1.5px solid var(--grislt); border-radius: var(--radius-sm); padding: 12px 22px; font-size: 12px; font-family: \"Inter\", sans-serif; color: var(--gris); cursor: pointer; font-weight: 600; transition: all 0.18s; }\r\n.btn-back:hover { border-color: var(--noir); color: var(--noir); }\r\n.btn-next { background: var(--noir); border: none; border-radius: var(--radius-sm); padding: 14px 32px; font-size: 12px; font-family: \"Montserrat\", sans-serif; color: var(--blanc); cursor: pointer; font-weight: 700; letter-spacing: 1px; transition: all 0.18s; margin-left: auto; }\r\n.btn-next:hover:not(:disabled) { background: var(--mordore); }\r\n.btn-next:disabled { opacity: 0.35; cursor: not-allowed; }\r\n.btn-cta { background: var(--mordore); border: none; border-radius: var(--radius-sm); padding: 16px 36px; font-size: 13px; font-family: \"Montserrat\", sans-serif; color: var(--blanc); cursor: pointer; font-weight: 700; letter-spacing: 1px; transition: all 0.18s; display: inline-block; }\r\n.btn-cta:hover { background: var(--blanc); color: var(--noir-chaud); box-shadow: var(--shadow-lg); }\r\n.btn-cta-full { width: 100%; }\r\n.btn-pdf { background: var(--noir); border: none; border-radius: var(--radius-sm); padding: 16px 36px; font-size: 13px; font-family: \"Montserrat\", sans-serif; color: var(--blanc); cursor: pointer; font-weight: 700; letter-spacing: 1px; transition: all 0.18s; display: inline-flex; align-items: center; gap: 10px; }\r\n.btn-pdf:hover { background: var(--mordore); }\r\n.btn-pdf svg { width: 14px; height: 14px; fill: currentColor; }\r\n.btn-reset { background: transparent; border: 1.5px solid var(--grislt); border-radius: var(--radius-sm); padding: 12px 24px; font-size: 12px; font-family: \"Inter\", sans-serif; color: var(--gris); cursor: pointer; font-weight: 600; transition: all 0.18s; margin-top: 8px; }\r\n.btn-reset:hover { border-color: var(--mordore); color: var(--mordore); }\r\n.nav-row { display: flex; gap: 12px; align-items: center; margin-top: 8px; }\r\n.side-title { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 24px; }\r\n.dim-row { margin-bottom: 20px; }\r\n.dim-hdr { display: flex; justify-content: space-between; align-items: center; font-size: 11.5px; margin-bottom: 7px; }\r\n.dim-lbl { font-weight: 600; }\r\n.dim-sc { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 20px; }\r\n.dim-bar { height: 5px; background: var(--grislt); border-radius: 5px; overflow: hidden; }\r\n.dim-fill { height: 100%; border-radius: 5px; transition: width 0.6s ease; }\r\n.overall-sep { border-top: 1px solid var(--grislt); padding-top: 20px; margin-top: 12px; }\r\n.overall-lbl { font-size: 9px; font-weight: 700; color: var(--gris); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 10px; }\r\n.overall-bar { height: 10px; background: var(--grislt); border-radius: 10px; overflow: hidden; }\r\n.overall-fill { height: 100%; border-radius: 10px; transition: width 0.6s ease; }\r\n.overall-sc { text-align: right; font-size: 12px; font-weight: 800; margin-top: 6px; }\r\n.side-note { font-size: 10.5px; color: var(--gris); font-style: italic; line-height: 1.6; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--grislt); }\r\n.verdict-card { background: var(--blanc); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 36px 40px; margin-bottom: 24px; position: relative; overflow: hidden; }\r\n.verdict-stripe { position: absolute; top: 0; left: 0; right: 0; height: 4px; }\r\n.verdict-eyebrow { font-size: 9px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 10px; opacity: 0.65; }\r\n.verdict-main { font-family: \"Montserrat\", sans-serif; font-size: 38px; font-weight: 900; letter-spacing: -1px; line-height: 1; margin-bottom: 14px; }\r\n.verdict-def { font-size: 13.5px; line-height: 1.7; color: var(--gris); }\r\n.rdims { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 8px; }\r\n.rdim { background: var(--blanc); border-radius: var(--radius-sm); box-shadow: var(--shadow); padding: 18px 20px; }\r\n.rdim-lbl { font-size: 9.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; }\r\n.rdim-bar { height: 6px; background: var(--grislt); border-radius: 6px; overflow: hidden; margin-bottom: 7px; }\r\n.rdim-fill { height: 100%; border-radius: 6px; }\r\n.rdim-sc { font-size: 11.5px; font-weight: 700; }\r\n.flag-item { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--grislt); }\r\n.flag-item:last-child { border-bottom: none; }\r\n.fi-wrap { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; margin-top: 2px; }\r\n.fi-red { background: #FDECEA; }\r\n.fi-orange { background: #FFF3E0; }\r\n.flag-body { flex: 1; }\r\n.flag-title { font-size: 13px; font-weight: 700; color: var(--noir); margin-bottom: 3px; }\r\n.flag-ref { font-size: 9.5px; color: var(--mordore); font-weight: 600; margin-bottom: 5px; }\r\n.flag-desc { font-size: 12px; color: var(--gris); line-height: 1.55; }\r\n.flag-fin { font-size: 11px; font-weight: 700; color: var(--crit); margin-top: 5px; }\r\n.seq-block { border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 12px; }\r\n.seq-hdr { padding: 12px 18px; }\r\n.seq-hdr-txt { font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--blanc); }\r\n.seq-body { padding: 14px 18px; background: var(--blanc); border: 1px solid var(--grislt); border-top: none; border-radius: 0 0 var(--radius-sm) var(--radius-sm); }\r\n.seq-item { font-size: 12.5px; color: var(--noir); line-height: 1.5; padding: 7px 0; border-bottom: 1px solid var(--grislt); display: flex; gap: 10px; }\r\n.seq-item:last-child { border-bottom: none; }\r\n.seq-bul { font-size: 10px; font-weight: 700; margin-top: 3px; flex-shrink: 0; }\r\n.reading-block { margin-bottom: 24px; }\r\n.reading-ttl { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--grislt); }\r\n.reading-body { font-size: 13.5px; line-height: 1.85; color: var(--noir); }\r\n\r\n\/* PERSONALISATION BLOCK (optional, AFTER verdict) *\/\r\n.perso-block { background: var(--blanc); border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px 32px; margin-bottom: 20px; border-left: 3px solid var(--mordore); }\r\n.perso-ttl { font-family: \"Montserrat\", sans-serif; font-size: 15px; font-weight: 800; color: var(--noir); margin-bottom: 6px; letter-spacing: -0.3px; }\r\n.perso-sub { font-size: 12px; color: var(--gris); font-style: italic; margin-bottom: 20px; line-height: 1.6; }\r\n.perso-sub strong { color: var(--mordore); font-style: normal; font-weight: 700; }\r\n.perso-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 4px; }\r\n.perso-input { width: 100%; padding: 13px 16px; border: 1.5px solid var(--grislt); border-radius: var(--radius-sm); font-family: \"Inter\", sans-serif; font-size: 13.5px; outline: none; transition: all 0.18s; background: var(--ivoire); color: var(--noir); }\r\n.perso-input:focus { border-color: var(--mordore); background: var(--blanc); box-shadow: 0 0 0 3px rgba(185,150,95,0.1); }\r\n.perso-input::placeholder { color: var(--gris); }\r\n.perso-foot { font-size: 10.5px; color: var(--gris); margin-top: 14px; line-height: 1.55; font-style: italic; display: flex; align-items: center; gap: 8px; }\r\n.perso-foot::before { content: \"\"; display: inline-block; width: 6px; height: 6px; background: var(--vert); border-radius: 50%; flex-shrink: 0; }\r\n\r\n\/* RESULT ACTIONS *\/\r\n.result-actions { background: var(--noir-chaud); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 32px 36px; margin-bottom: 24px; border: 1px solid #2A2420; }\r\n.ra-eyebrow { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; }\r\n.ra-title { font-size: 19px; font-weight: 700; color: #F0E8DE; margin-bottom: 10px; line-height: 1.3; font-family: \"Montserrat\", sans-serif; }\r\n.ra-desc { font-size: 12.5px; color: #CCBBAA; line-height: 1.65; margin-bottom: 20px; }\r\n.ra-desc strong { color: var(--mordore); }\r\n.ra-buttons { display: flex; gap: 12px; flex-wrap: wrap; }\r\n\r\n.cta-block { background: var(--noir-chaud); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 36px 40px; margin-bottom: 24px; border: 1px solid #2A2420; }\r\n.cta-eyebrow { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; }\r\n.cta-heading { font-size: 20px; font-weight: 700; color: #F0E8DE; margin-bottom: 8px; line-height: 1.3; font-family: \"Montserrat\", sans-serif; }\r\n.cta-feats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; margin-top: 16px; }\r\n.cta-feat { background: rgba(255,255,255,0.05); border-radius: var(--radius-sm); padding: 14px 16px; border: 1px solid rgba(185,150,95,0.2); }\r\n.cta-feat-lbl { font-size: 9px; font-weight: 700; color: var(--mordore); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 4px; }\r\n.cta-feat-txt { font-size: 11.5px; color: #BBAA99; line-height: 1.4; }\r\n.cta-price { font-size: 13px; color: #CCBBAA; margin-bottom: 22px; display: block; line-height: 1.6; }\r\n.cta-price strong { color: var(--mordore); }\r\n.disclaimer { background: var(--blanc); border-radius: var(--radius-sm); border-left: 3px solid var(--grislt); padding: 18px 24px; margin-bottom: 24px; }\r\n.disclaimer p { font-size: 11px; color: var(--gris); font-style: italic; line-height: 1.65; }\r\n.pg-footer { text-align: center; padding: 32px 20px; border-top: 1px solid var(--grislt); margin-top: 40px; font-size: 11px; color: var(--gris); }\r\n.pg-footer strong { color: var(--mordore); }\r\n.pg-footer a { color: var(--gris); text-decoration: underline; }\r\n@media (max-width: 768px) {\r\n  .wrap { grid-template-columns: 1fr; }\r\n  .side { display: none; }\r\n  .main { padding: 28px 20px 60px; }\r\n  .pg-title { font-size: 38px; }\r\n  .feat-grid, .verdicts-grid, .rdims, .cta-feats, .perso-grid { grid-template-columns: 1fr; }\r\n  .q-card { padding: 24px 20px 20px; }\r\n  .ra-buttons { flex-direction: column; }\r\n  .btn-cta, .btn-pdf { width: 100%; justify-content: center; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"wrap\">\r\n  <div class=\"main\">\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN INTRO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <div class=\"screen on\" id=\"s-intro\">\r\n      <div class=\"arch\"><\/div>\r\n      <h1 class=\"pg-title\">ARCHE<br><span class=\"pg-accent\">PRELIMINARY<br>INSTITUTIONAL<br>READING<\/span><\/h1>\r\n      <p class=\"pg-sub\" style=\"margin-top:18px;\"><strong style=\"color:var(--noir);\">7 questions &middot; 4 minutes &middot; Preliminary institutional exposure test<\/strong><\/p>\r\n      <div class=\"doctrine\">\r\n        <p>This test does not determine whether your institution is credible in principle.<br>\r\n        It determines whether your current project appears <strong>structurally readable<\/strong> before exposure in France.<br>\r\n        If your structure cannot yet be read, it should not yet be exposed.<\/p>\r\n      <\/div>\r\n      <span class=\"verdicts-intro\">Possible outcomes of this reading<\/span>\r\n      <div class=\"verdicts-grid\">\r\n        <div class=\"verdict-preview vp-crit\">\r\n          <div class=\"vp-label\" style=\"color:var(--crit);\">CRITICAL EXPOSURE<\/div>\r\n          <div class=\"vp-def\">One or more conditions indicate active regulatory exposure before sequencing was secured.<\/div>\r\n        <\/div>\r\n        <div class=\"verdict-preview vp-notyet\">\r\n          <div class=\"vp-label\" style=\"color:var(--orange);\">NOT YET READABLE<\/div>\r\n          <div class=\"vp-def\">Legitimate intent &mdash; but the current structure is not yet institutionally defensible.<\/div>\r\n        <\/div>\r\n        <div class=\"verdict-preview vp-readable\">\r\n          <div class=\"vp-label\" style=\"color:var(--mordore);\">POTENTIALLY READABLE<\/div>\r\n          <div class=\"vp-def\">The project profile appears structurally readable. Documentary verification still required.<\/div>\r\n        <\/div>\r\n        <div class=\"verdict-preview vp-remed\">\r\n          <div class=\"vp-label\" style=\"color:var(--crit);\">REMEDIATION REQUIRED<\/div>\r\n          <div class=\"vp-def\">Structural reconstruction needed before any institutional reading becomes possible.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <button class=\"btn-cta btn-cta-full\" onclick=\"startTest()\">BEGIN THE PRELIMINARY READING<\/button>\r\n      <p style=\"font-size:11px;color:var(--gris);font-style:italic;margin-top:14px;text-align:center;\">No registration required. Your answers remain on your device.<\/p>\r\n    <\/div>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN QUESTIONS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <div class=\"screen\" id=\"s-q\">\r\n      <div class=\"prog-wrap\">\r\n        <div class=\"prog-meta\">\r\n          <span id=\"prog-step\">Question 1 of 7<\/span>\r\n          <span id=\"prog-pct\">14%<\/span>\r\n        <\/div>\r\n        <div class=\"prog-track\"><div class=\"prog-fill\" id=\"prog-fill\" style=\"width:14%;\"><\/div><\/div>\r\n      <\/div>\r\n      <div class=\"q-card\" id=\"q-card\"><\/div>\r\n      <div class=\"nav-row\">\r\n        <button class=\"btn-back\" id=\"btn-back\" onclick=\"goBack()\" style=\"display:none;\">&larr; Back<\/button>\r\n        <button class=\"btn-next\" id=\"btn-next\" onclick=\"goNext()\" disabled>Continue<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN RESULT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <div class=\"screen\" id=\"s-result\">\r\n      <div id=\"result\"><\/div>\r\n      <button class=\"btn-reset\" onclick=\"resetAll()\">&larr; Restart the preliminary reading<\/button>\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SIDE (progress) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n  <div class=\"side\">\r\n    <div class=\"side-title\">Live exposure profile<\/div>\r\n    <div id=\"side-dims\">\r\n      <div class=\"dim-row\">\r\n        <div class=\"dim-hdr\"><span class=\"dim-lbl\">Governance<\/span><span class=\"dim-sc\" id=\"sc-G\" style=\"background:var(--ivoire);color:var(--gris);\">--<\/span><\/div>\r\n        <div class=\"dim-bar\"><div class=\"dim-fill\" id=\"bar-G\" style=\"width:0;background:var(--vert);\"><\/div><\/div>\r\n      <\/div>\r\n      <div class=\"dim-row\">\r\n        <div class=\"dim-hdr\"><span class=\"dim-lbl\">Regulatory<\/span><span class=\"dim-sc\" id=\"sc-R\" style=\"background:var(--ivoire);color:var(--gris);\">--<\/span><\/div>\r\n        <div class=\"dim-bar\"><div class=\"dim-fill\" id=\"bar-R\" style=\"width:0;background:var(--vert);\"><\/div><\/div>\r\n      <\/div>\r\n      <div class=\"dim-row\">\r\n        <div class=\"dim-hdr\"><span class=\"dim-lbl\">Operational<\/span><span class=\"dim-sc\" id=\"sc-O\" style=\"background:var(--ivoire);color:var(--gris);\">--<\/span><\/div>\r\n        <div class=\"dim-bar\"><div class=\"dim-fill\" id=\"bar-O\" style=\"width:0;background:var(--vert);\"><\/div><\/div>\r\n      <\/div>\r\n      <div class=\"dim-row\">\r\n        <div class=\"dim-hdr\"><span class=\"dim-lbl\">Communication<\/span><span class=\"dim-sc\" id=\"sc-C\" style=\"background:var(--ivoire);color:var(--gris);\">--<\/span><\/div>\r\n        <div class=\"dim-bar\"><div class=\"dim-fill\" id=\"bar-C\" style=\"width:0;background:var(--vert);\"><\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"overall-sep\">\r\n      <div class=\"overall-lbl\">Overall readability risk<\/div>\r\n      <div class=\"overall-bar\"><div class=\"overall-fill\" id=\"bar-total\" style=\"width:0;background:var(--vert);\"><\/div><\/div>\r\n      <div class=\"overall-sc\" id=\"sc-total\" style=\"color:var(--gris);\">--<\/div>\r\n    <\/div>\r\n    <div class=\"side-note\">Profile updates as you answer. No project is readable without documentary verification. This instrument creates tension &mdash; not clearance.<\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"pg-footer\">\r\n  <strong>Arche Platform<\/strong> &middot; Diligence Consulting &middot; House of Educational Diplomacy<br>\r\n  This reading is yours alone. No data has been transmitted or retained. &middot; <a href=\"https:\/\/diligence-consulting.fr\/politique-de-confidentialite\/\" target=\"_blank\">Privacy policy<\/a>\r\n<\/div>\r\n\r\n<script>\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 DATA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nvar QS = [\r\n  {\r\n    id: 'Q1', dim: 'R',\r\n    q: 'What are you trying to expose in France first?',\r\n    sub: 'Each exposure route triggers distinct regulatory obligations. Public communication or enrolment before regulatory sequencing creates immediate legal exposure under Art. L731-3.',\r\n    law: [\r\n      { ref: \"Art. L731-1 Code de l'education\", text: \"Tout etablissement d'enseignement superieur prive doit, avant d'ouvrir, en faire la declaration au recteur de l'academie dans le ressort de laquelle il est situe.\" },\r\n      { ref: \"Art. L6351-1 Code du travail\", text: \"Toute personne qui realise des actions de formation professionnelle doit proceder a une declaration d'activite aupres du prefet de region des la conclusion de la premiere convention ou du premier contrat de formation.\" }\r\n    ],\r\n    type: 'multi',\r\n    opts: [\r\n      { l: 'Programme delivery -- diplomas or certificates issued to learners', r: 3, rp: 'h' },\r\n      { l: 'Learner recruitment or enrolment in France', r: 3, rp: 'h' },\r\n      { l: 'Public communication announcing French operations, programmes or campus', r: 4, rp: 'h' },\r\n      { l: 'Physical campus or premises secured in France', r: 3, rp: 'h' },\r\n      { l: 'Access to CPF, OPCO or other public training funding', r: 3, rp: 'h' },\r\n      { l: 'None yet -- still in exploratory or planning phase', r: 0, rp: 'n' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q2', dim: 'R',\r\n    q: 'Are any protected or high-risk titles already used in your diplomas, website, brochures or contracts?',\r\n    sub: 'Art. L731-14 prohibits these terms on institutional diplomas without State recognition. Penalty: up to 30,000 EUR fine and personal criminal liability of all directors.',\r\n    law: [\r\n      { ref: \"Art. L731-14 Code de l'education\", text: \"Le fait, pour le responsable d'un etablissement, de faire decerner des certificats portant le titre de baccalaureat, de licence ou de doctorat, est puni de 30 000 euros d'amende. Tous les administrateurs sont civilement et solidairement responsables.\" },\r\n      { ref: \"Art. L613-1 Code de l'education\", text: \"Les grades et titres universitaires sont crees par decret. Nul ne peut conferer de grades ou titres universitaires sans y etre autorise par les dispositions legislatives ou reglementaires.\" }\r\n    ],\r\n    type: 'multi',\r\n    opts: [\r\n      { l: 'Doctorat \/ Doctorate \/ PhD \/ DPhil -- on diplomas or any communication', r: 7, rp: 'h' },\r\n      { l: 'Master \/ MSc \/ MBA -- as a State-grade denomination on the diploma', r: 6, rp: 'h' },\r\n      { l: 'Licence \/ Bachelor -- used as a State-grade title without authorisation', r: 5, rp: 'h' },\r\n      { l: 'None of the above -- only non-protected terms used', r: 0, rp: 'n' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q3', dim: 'G',\r\n    q: 'Is there a clearly identified institutional director or academic authority for the French entity?',\r\n    sub: 'Art. R731-1 requires a clearly identified director meeting specific academic and professional conditions. Absence of this figure is a first-order structural block.',\r\n    law: [\r\n      { ref: \"Art. R731-1 Code de l'education\", text: \"Le directeur d'un etablissement d'enseignement superieur prive doit etre titulaire d'un diplome sanctionnant au moins cinq annees d'etudes apres le baccalaureat ou pouvoir justifier d'une experience equivalente.\" }\r\n    ],\r\n    type: 'single',\r\n    opts: [\r\n      { l: 'Yes -- a qualified director is identified and committed to assume the role', r: 0, rp: 'n' },\r\n      { l: 'Partial -- we have a candidate but status is unclear or not formalised', r: 5, rp: 'm' },\r\n      { l: 'Not yet -- we have not identified a director meeting the criteria', r: 8, rp: 'h' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q4', dim: 'R',\r\n    q: 'What public, contractual or financial steps have already been taken before regulatory sequencing was secured?',\r\n    sub: 'Every public or contractual signal that precedes regulatory validation creates exposure. Art. L731-3 and Art. L231-1 prohibit communication that could mislead on institutional status.',\r\n    law: [\r\n      { ref: \"Art. L731-3 Code de l'education\", text: \"Nul ne peut ouvrir un etablissement d'enseignement superieur prive qu'a la condition d'etre francais, de justifier d'un diplome et de faire la declaration prevue a l'article L. 731-1.\" },\r\n      { ref: \"Art. L231-1 Code de la consommation\", text: \"Constitue une pratique commerciale trompeuse le fait de creer une confusion sur la nature, la qualite ou l'origine d'un service de formation.\" }\r\n    ],\r\n    type: 'multi',\r\n    opts: [\r\n      { l: 'Public announcement of French operations (press release, social media, events)', r: 4, rp: 'h' },\r\n      { l: 'Lease signed or premises secured in France', r: 4, rp: 'h' },\r\n      { l: 'Recruitment of French staff or academic directors publicly announced', r: 3, rp: 'h' },\r\n      { l: 'Enrolment or pre-enrolment of learners contacted in France', r: 5, rp: 'h' },\r\n      { l: 'Commercial partnerships or MoUs signed with French entities', r: 3, rp: 'm' },\r\n      { l: 'Capital committed or transferred to a French vehicle', r: 3, rp: 'm' },\r\n      { l: 'None yet -- no public, contractual or financial step taken', r: 0, rp: 'n' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q5', dim: 'G',\r\n    q: 'Is the legal perimeter of the French entity clearly structured and distinct from the home institution?',\r\n    sub: 'A lack of legal separation between home entity and French operations creates governance ambiguity under French institutional readability standards.',\r\n    law: [\r\n      { ref: \"Art. L731-2 Code de l'education\", text: \"L'etablissement prive doit etre constitue sous une forme juridique francaise permettant d'identifier clairement la responsabilite institutionnelle.\" }\r\n    ],\r\n    type: 'single',\r\n    opts: [\r\n      { l: 'Yes -- a dedicated French legal entity is incorporated and active', r: 0, rp: 'n' },\r\n      { l: 'In progress -- structure is being formalised with advisors', r: 3, rp: 'm' },\r\n      { l: 'No -- we operate through the home entity without French vehicle', r: 6, rp: 'h' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q6', dim: 'C',\r\n    q: 'Have CPF, OPCO or other public training funding channels been approached or referenced in communications?',\r\n    sub: 'Access to CPF or OPCO requires Qualiopi certification (Phase 2, typically 12-24 months post-L731 declaration). Premature reference creates misleading communication risk.',\r\n    law: [\r\n      { ref: \"Decret 2019-565 -- Qualiopi\", text: \"Les prestataires d'actions de formation souhaitant beneficier des fonds publics ou mutualises doivent etre certifies selon le referentiel national qualite Qualiopi.\" }\r\n    ],\r\n    type: 'single',\r\n    opts: [\r\n      { l: 'No -- we have not mentioned or approached CPF, OPCO or similar channels', r: 0, rp: 'n' },\r\n      { l: 'Yes -- we have referenced these channels in communications or materials', r: 6, rp: 'h' }\r\n    ]\r\n  },\r\n  {\r\n    id: 'Q7', dim: 'O',\r\n    q: 'How documented is your operational infrastructure for French delivery (premises, team, processes)?',\r\n    sub: 'Self-declared capacity must be matched by documentable operational readiness. Documentary verification is the only measurable basis for institutional reading.',\r\n    type: 'single',\r\n    opts: [\r\n      { l: 'Fully documented -- premises, team, processes all evidenced', r: 0, rp: 'n' },\r\n      { l: 'Partially -- some elements are documented, others in progress', r: 3, rp: 'm' },\r\n      { l: 'Mostly narrative -- operational readiness is described but not yet evidenced', r: 6, rp: 'h' }\r\n    ]\r\n  }\r\n];\r\n\r\nvar VDICT = {\r\n  CRITICAL:    { label: 'CRITICAL EXPOSURE',    color: 'var(--crit)',    stripe: 'var(--crit)',    def: 'One or more conditions indicate active regulatory exposure before sequencing was secured. Immediate structural and legal review is required before any further step.' },\r\n  REMEDIATION: { label: 'REMEDIATION REQUIRED', color: 'var(--crit)',    stripe: 'var(--crit)',    def: 'Structural reconstruction is needed before any institutional reading becomes possible. A direct conversation is recommended to scope the remediation path.' },\r\n  NOTYET:      { label: 'NOT YET READABLE',     color: 'var(--orange)',  stripe: 'var(--orange)',  def: 'Legitimate institutional intent is identifiable -- but the current structure is not yet defensible under French regulatory examination. Sequencing must be corrected before exposure.' },\r\n  READABLE:    { label: 'POTENTIALLY READABLE', color: 'var(--mordore)', stripe: 'var(--mordore)', def: 'The project profile appears structurally readable. Documentary verification is still required before any institutional entry can be defended.' }\r\n};\r\n\r\nvar DC   = { G: '#111', R: '#F84346', O: '#2E5FA3', C: '#B9965F' };\r\nvar DLBL = { G: 'Governance', R: 'Regulatory', O: 'Operational', C: 'Communication' };\r\nvar DMAX = { G: 14, R: 29, O: 6, C: 6 };\r\n\r\nvar ans  = {};\r\nvar usr  = { name: '', inst: '' };\r\nvar step = 0;\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 UTILS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction rc(p)    { return p >= 60 ? 'var(--crit)' : p >= 35 ? 'var(--orange)' : 'var(--vert)'; }\r\nfunction rcHex(p) { return p >= 60 ? '#C00000'     : p >= 35 ? '#C05800'       : '#1A6B3C';    }\r\nfunction rl(p)    { return p >= 60 ? 'High'        : p >= 35 ? 'Moderate'      : 'Low'; }\r\nfunction rpCls(r) { return r === 'h' ? 'rp-h' : r === 'm' ? 'rp-m' : 'rp-n'; }\r\nfunction rpTxt(r) { return r === 'h' ? 'High exposure' : r === 'm' ? 'Moderate' : '--'; }\r\n\r\nfunction scores() {\r\n  var raw = { G: 0, R: 0, O: 0, C: 0 };\r\n  for (var i = 0; i < QS.length; i++) {\r\n    var q = QS[i], a = ans[q.id];\r\n    if (!a) continue;\r\n    if (Array.isArray(a)) {\r\n      for (var j = 0; j < a.length; j++) {\r\n        for (var k = 0; k < q.opts.length; k++) if (q.opts[k].l === a[j]) raw[q.dim] += q.opts[k].r;\r\n      }\r\n    } else {\r\n      for (var k = 0; k < q.opts.length; k++) if (q.opts[k].l === a) raw[q.dim] += q.opts[k].r;\r\n    }\r\n  }\r\n  var pct   = {};\r\n  var total = 0, tmax = 0;\r\n  for (var d in raw) {\r\n    pct[d] = Math.min(100, Math.round((raw[d] \/ DMAX[d]) * 100));\r\n    total += raw[d]; tmax += DMAX[d];\r\n  }\r\n  return { raw: raw, pct: pct, total: Math.min(100, Math.round((total \/ tmax) * 100)) };\r\n}\r\n\r\nfunction updateSide() {\r\n  var s = scores();\r\n  ['G','R','O','C'].forEach(function(d) {\r\n    var p = s.pct[d] || 0, c = rc(p);\r\n    document.getElementById('bar-' + d).style.width = p + '%';\r\n    document.getElementById('bar-' + d).style.background = c;\r\n    var sc = document.getElementById('sc-' + d);\r\n    sc.textContent = p + '% (' + rl(p) + ')';\r\n    sc.style.color = c;\r\n    sc.style.background = p >= 60 ? '#FDECEA' : p >= 35 ? '#FFF3E0' : 'var(--ivoire)';\r\n  });\r\n  document.getElementById('bar-total').style.width = s.total + '%';\r\n  document.getElementById('bar-total').style.background = rc(s.total);\r\n  var sct = document.getElementById('sc-total');\r\n  sct.textContent = s.total + '% (' + rl(s.total) + ' risk)';\r\n  sct.style.color = rc(s.total);\r\n}\r\n\r\nfunction esc(s) {\r\n  return String(s || '').replace(\/[&<>\"']\/g, function(c) { return { '&':'&amp;', '<':'&lt;', '>':'&gt;', '\"':'&quot;', \"'\":'&#39;' }[c]; });\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RENDER QUESTION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction renderQ(i) {\r\n  var q = QS[i];\r\n  var c = document.getElementById('q-card');\r\n  document.getElementById('prog-step').textContent = 'Question ' + (i + 1) + ' of ' + QS.length;\r\n  var pct = Math.round(((i + 1) \/ QS.length) * 100);\r\n  document.getElementById('prog-pct').textContent = pct + '%';\r\n  document.getElementById('prog-fill').style.width = pct + '%';\r\n\r\n  var html = '<div class=\"q-meta\">';\r\n  html += '<span class=\"dim-badge dim-' + q.dim + '\">' + DLBL[q.dim] + '<\/span>';\r\n  if (q.law) {\r\n    for (var j = 0; j < q.law.length; j++) {\r\n      html += '<button class=\"law-btn\" onclick=\"toggleLaw(\\'law-' + i + '-' + j + '\\')\">' + esc(q.law[j].ref) + '<\/button>';\r\n    }\r\n  }\r\n  html += '<\/div>';\r\n  html += '<div class=\"q-text\">' + esc(q.q) + '<\/div>';\r\n  html += '<div class=\"q-sub\">' + esc(q.sub) + '<\/div>';\r\n  if (q.law) {\r\n    for (var j = 0; j < q.law.length; j++) {\r\n      html += '<div class=\"law-pop\" id=\"law-' + i + '-' + j + '\">';\r\n      html += '<div class=\"law-pop-ref\">' + esc(q.law[j].ref) + '<\/div>';\r\n      html += '<div class=\"law-pop-text\">\"' + esc(q.law[j].text) + '\"<\/div>';\r\n      html += '<\/div>';\r\n    }\r\n  }\r\n  if (q.type === 'multi') html += '<p class=\"multi-hint\">Select all that apply.<\/p>';\r\n  var sel = ans[q.id] || (q.type === 'multi' ? [] : null);\r\n  for (var j = 0; j < q.opts.length; j++) {\r\n    var o = q.opts[j];\r\n    var isSel = q.type === 'multi' ? sel.indexOf(o.l) >= 0 : sel === o.l;\r\n    html += '<div class=\"opt' + (isSel ? ' sel' : '') + '\" onclick=\"' + (q.type === 'multi' ? 'onMulti' : 'onChoice') + '(' + j + ')\">';\r\n    if (q.type === 'multi') {\r\n      html += '<div class=\"opt-sq\"><svg class=\"opt-tick\" viewBox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"2\"\/><\/svg><\/div>';\r\n    } else {\r\n      html += '<div class=\"opt-circle\"><div class=\"opt-dot\"><\/div><\/div>';\r\n    }\r\n    html += '<div class=\"opt-lbl\">' + esc(o.l) + '<\/div>';\r\n    if (o.rp && o.rp !== 'n') html += '<span class=\"rp ' + rpCls(o.rp) + '\">' + rpTxt(o.rp) + '<\/span>';\r\n    html += '<\/div>';\r\n  }\r\n  c.innerHTML = html;\r\n  document.getElementById('btn-back').style.display = (i > 0) ? 'inline-block' : 'none';\r\n  checkOk();\r\n  updateSide();\r\n}\r\n\r\nfunction toggleLaw(id) {\r\n  var el = document.getElementById(id);\r\n  if (el) el.classList.toggle('open');\r\n}\r\n\r\nfunction checkOk() {\r\n  var q   = QS[step];\r\n  var a   = ans[q.id];\r\n  var ok  = q.type === 'multi' ? Array.isArray(a) && a.length > 0 : !!a;\r\n  var btn = document.getElementById('btn-next');\r\n  btn.disabled    = !ok;\r\n  btn.textContent = (step === QS.length - 1) ? 'GENERATE READING' : 'Continue';\r\n}\r\n\r\nfunction onChoice(oi) {\r\n  ans[QS[step].id] = QS[step].opts[oi].l;\r\n  renderQ(step);\r\n}\r\n\r\nfunction onMulti(oi) {\r\n  var q      = QS[step];\r\n  var label  = q.opts[oi].l;\r\n  var none   = label.indexOf('None') >= 0;\r\n  var cur    = Array.isArray(ans[q.id]) ? ans[q.id] : [];\r\n  if (none) {\r\n    cur = (cur.indexOf(label) >= 0) ? [] : [label];\r\n  } else {\r\n    var noneLabel = null;\r\n    for (var k = 0; k < q.opts.length; k++) if (q.opts[k].l.indexOf('None') >= 0) noneLabel = q.opts[k].l;\r\n    if (noneLabel) cur = cur.filter(function(x) { return x !== noneLabel; });\r\n    var idx = cur.indexOf(label);\r\n    if (idx >= 0) cur.splice(idx, 1); else cur.push(label);\r\n  }\r\n  ans[q.id] = cur;\r\n  renderQ(step);\r\n}\r\n\r\nfunction showScreen(id) {\r\n  var screens = document.querySelectorAll('.screen');\r\n  for (var i = 0; i < screens.length; i++) screens[i].classList.remove('on');\r\n  document.getElementById(id).classList.add('on');\r\n  window.scrollTo({ top: 0, behavior: 'smooth' });\r\n}\r\n\r\nfunction startTest() { showScreen('s-q'); renderQ(0); }\r\nfunction goNext()    { if (step < QS.length - 1) { step++; renderQ(step); } else { buildResult(); } }\r\nfunction goBack()    { if (step > 0) { step--; renderQ(step); } }\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 VERDICT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction getVerdict(s, a) {\r\n  var critTitle = false;\r\n  if (Array.isArray(a.Q2)) {\r\n    for (var i = 0; i < a.Q2.length; i++) {\r\n      if (a.Q2[i].indexOf('None') < 0) { critTitle = true; break; }\r\n    }\r\n  }\r\n  if (critTitle || s.total >= 65) return 'CRITICAL';\r\n  if (s.pct.G >= 60 || s.pct.R >= 50) return 'REMEDIATION';\r\n  if (s.total >= 32 || s.pct.R >= 25 || s.pct.G >= 30) return 'NOTYET';\r\n  return 'READABLE';\r\n}\r\n\r\nfunction buildFlags() {\r\n  var flags = [], s = scores();\r\n  if (Array.isArray(ans.Q2)) {\r\n    for (var i = 0; i < ans.Q2.length; i++) {\r\n      var o = ans.Q2[i];\r\n      if (o.indexOf('None') < 0) {\r\n        flags.push({\r\n          title:  'Use of protected academic title: ' + o.split(' --')[0],\r\n          ref:    'Art. L731-14 Code de l\\'education',\r\n          desc:   'Title used on institutional materials without State recognition authorisation. Exposes the institution and its directors to regulatory sanction and personal liability.',\r\n          fin:    'Fine up to 30,000 EUR | Personal liability of all directors',\r\n          bg:     'fi-red',\r\n          icon:   '!'\r\n        });\r\n      }\r\n    }\r\n  }\r\n  if (Array.isArray(ans.Q4)) {\r\n    for (var i = 0; i < ans.Q4.length; i++) {\r\n      var o = ans.Q4[i];\r\n      if (o.indexOf('None') < 0) {\r\n        flags.push({\r\n          title:  'Pre-filing exposure: ' + o.split(' (')[0],\r\n          ref:    'Art. L731-3 \/ Art. L231-1 Code de la consommation',\r\n          desc:   'Public or contractual step taken before regulatory sequencing was secured. Creates documented exposure that complicates subsequent institutional reading.',\r\n          fin:    '',\r\n          bg:     'fi-orange',\r\n          icon:   '!'\r\n        });\r\n      }\r\n    }\r\n  }\r\n  if (ans.Q3 && ans.Q3.indexOf('Not yet') >= 0) {\r\n    flags.push({\r\n      title:  'No qualified institutional director identified',\r\n      ref:    'Art. R731-1 Code de l\\'education',\r\n      desc:   'Absence of a clearly identified, qualified director blocks institutional readability under French higher education law.',\r\n      fin:    '',\r\n      bg:     'fi-red',\r\n      icon:   '!'\r\n    });\r\n  }\r\n  if (ans.Q5 && ans.Q5.indexOf('No --') >= 0) {\r\n    flags.push({\r\n      title:  'No dedicated French legal perimeter',\r\n      ref:    'Art. L731-2 Code de l\\'education',\r\n      desc:   'Operating through the home entity without a French legal vehicle creates structural ambiguity in governance and responsibility assignment.',\r\n      fin:    '',\r\n      bg:     'fi-orange',\r\n      icon:   '!'\r\n    });\r\n  }\r\n  if (ans.Q6 && ans.Q6.indexOf('Yes') >= 0) {\r\n    flags.push({\r\n      title:  'CPF \/ OPCO channels referenced before Qualiopi readiness',\r\n      ref:    'Decret 2019-565 (Qualiopi)',\r\n      desc:   'Communication referencing public training funds requires prior Qualiopi certification. Premature reference creates misleading communication risk.',\r\n      fin:    '',\r\n      bg:     'fi-orange',\r\n      icon:   '!'\r\n    });\r\n  }\r\n  return flags;\r\n}\r\n\r\nfunction seqBlock(title, items, color) {\r\n  var h = '<div class=\"seq-block\"><div class=\"seq-hdr\" style=\"background:' + color + ';\"><div class=\"seq-hdr-txt\">' + title + '<\/div><\/div><div class=\"seq-body\">';\r\n  for (var i = 0; i < items.length; i++) h += '<div class=\"seq-item\"><span class=\"seq-bul\" style=\"color:' + color + ';\">&#9632;<\/span><span>' + esc(items[i]) + '<\/span><\/div>';\r\n  h += '<\/div><\/div>';\r\n  return h;\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 BUILD RESULT \u2014 NO GATE, DIRECT RENDER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction buildResult() {\r\n  showScreen('s-result');\r\n  var s = scores();\r\n  var v = getVerdict(s, ans);\r\n  var vc = VDICT[v];\r\n  var flags = buildFlags();\r\n  var first = [], wait = [], notyet = [];\r\n  if (s.pct.R >= 40) first.push('Resolve all protected title exposure before any public communication or programme announcement');\r\n  if (s.pct.G >= 35) first.push('Document and formalise academic authority -- identifiable director with demonstrable R731-1 qualifications');\r\n  if (Array.isArray(ans.Q4) && ans.Q4.some(function(x) { return x.indexOf('None yet') < 0; }))\r\n    first.push('Obtain legal opinion on pre-filing exposure already created and define remediation sequence');\r\n  if (s.pct.R >= 20) first.push('Complete L731 declaration and\/or DREETS Declaration d\\'Activite before any learner enrolment or public communication');\r\n  if (!first.length) first.push('Verify all regulatory declarations are in place before any public or commercial step');\r\n  if (ans.Q6 && ans.Q6.indexOf('Yes') >= 0) wait.push('CPF and OPCO funding access -- requires Qualiopi certification first (Phase 2, 12 to 24 months post-L731)');\r\n  wait.push('RNCP or RS registration -- requires at least one documented graduate cohort and tracked outcomes data');\r\n  wait.push('EESPIG qualification -- Phase 3, requires established track record and confirmed non-profit governance');\r\n  notyet.push('No institutional entry should be announced or assumed on the basis of this preliminary reading alone');\r\n  if (v === 'CRITICAL') notyet.push('No further public, contractual or financial commitment before formal Arche International Audit and legal review');\r\n  if (v === 'NOTYET')   notyet.push('No learner enrolment or programme launch before governance and documentary conditions are confirmed');\r\n\r\n  var dimsHtml = '';\r\n  var dkeys = ['G', 'R', 'O', 'C'];\r\n  for (var i = 0; i < dkeys.length; i++) {\r\n    var k = dkeys[i], p = s.pct[k] || 0, c = rc(p);\r\n    dimsHtml += '<div class=\"rdim\">';\r\n    dimsHtml += '<div class=\"rdim-lbl\" style=\"color:' + DC[k] + ';\">' + DLBL[k] + '<\/div>';\r\n    dimsHtml += '<div class=\"rdim-bar\"><div class=\"rdim-fill\" style=\"width:' + p + '%;background:' + c + ';\"><\/div><\/div>';\r\n    dimsHtml += '<div class=\"rdim-sc\" style=\"color:' + c + ';\">' + rl(p) + ' risk -- ' + p + '%<\/div>';\r\n    dimsHtml += '<\/div>';\r\n  }\r\n\r\n  var flagsHtml = '';\r\n  if (flags.length) {\r\n    for (var i = 0; i < flags.length; i++) {\r\n      var fl = flags[i];\r\n      flagsHtml += '<div class=\"flag-item\"><div class=\"fi-wrap ' + fl.bg + '\">' + fl.icon + '<\/div><div class=\"flag-body\">';\r\n      flagsHtml += '<div class=\"flag-title\">' + esc(fl.title) + '<\/div>';\r\n      flagsHtml += '<div class=\"flag-ref\">' + esc(fl.ref) + '<\/div>';\r\n      flagsHtml += '<div class=\"flag-desc\">' + esc(fl.desc) + '<\/div>';\r\n      if (fl.fin) flagsHtml += '<div class=\"flag-fin\">' + esc(fl.fin) + '<\/div>';\r\n      flagsHtml += '<\/div><\/div>';\r\n    }\r\n  } else {\r\n    flagsHtml = '<p style=\"font-size:13px;color:var(--gris);font-style:italic;\">No critical flags identified from self-declared answers. Documentary verification required before any conclusion can be drawn.<\/p>';\r\n  }\r\n\r\n  var expList = [];\r\n  if (Array.isArray(ans.Q1)) {\r\n    for (var i = 0; i < ans.Q1.length; i++) {\r\n      if (ans.Q1[i].indexOf('None') < 0) expList.push(ans.Q1[i].split(' --')[0].toLowerCase());\r\n    }\r\n  }\r\n  var expRoute = expList.length ? expList.join(', ') : 'exposure routes not yet fully defined';\r\n\r\n  var readingBody = 'This project indicates an intention to enter France through ' + expRoute + '. At this stage, the principal question is not ambition. It is structural readability. ';\r\n  if (s.total >= 60)      readingBody += 'Several elements identified indicate that exposure may currently precede structural defensibility. Immediate regulatory review is required before any further step is taken.';\r\n  else if (s.total >= 32) readingBody += 'Certain structural conditions require resolution before the project becomes institutionally readable for a credible entry in France.';\r\n  else                    readingBody += 'The project profile shows lower immediate exposure -- but self-declared readability must be verified against actual documentation before any entry is assumed viable.';\r\n\r\n  var html = '';\r\n  html += '<div class=\"arch\"><\/div>';\r\n  html += '<div class=\"verdict-card\"><div class=\"verdict-stripe\" style=\"background:' + vc.stripe + ';\"><\/div>';\r\n  html += '<div class=\"verdict-eyebrow\" style=\"color:' + vc.color + ';\">ARCHE PRELIMINARY INSTITUTIONAL READING | EXPOSURE VERDICT<\/div>';\r\n  html += '<div class=\"verdict-main\" style=\"color:' + vc.color + ';\">' + vc.label + '<\/div>';\r\n  html += '<div class=\"verdict-def\">' + vc.def + '<\/div><\/div>';\r\n  html += '<div class=\"card\"><span class=\"sec-label\">Readability Exposure Profile<\/span><div class=\"rdims\">' + dimsHtml + '<\/div>';\r\n  html += '<div style=\"border-top:1px solid var(--grislt);padding-top:18px;margin-top:8px;\">';\r\n  html += '<div style=\"display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px;\"><span style=\"font-weight:600;\">Overall readability risk<\/span><span style=\"font-weight:800;color:' + rc(s.total) + ';\">' + s.total + '% | ' + rl(s.total) + ' risk<\/span><\/div>';\r\n  html += '<div style=\"height:10px;background:var(--grislt);border-radius:10px;overflow:hidden;\"><div style=\"height:100%;width:' + s.total + '%;background:' + rc(s.total) + ';border-radius:10px;transition:width .6s;\"><\/div><\/div>';\r\n  html += '<\/div><\/div>';\r\n  html += '<div class=\"card\"><span class=\"sec-label\">Key Flags Identified<\/span>' + flagsHtml + '<\/div>';\r\n  html += '<div class=\"card\"><span class=\"sec-label\">Preliminary Reading<\/span>';\r\n  html += '<div class=\"reading-block\"><div class=\"reading-ttl\">INSTITUTIONAL READABILITY<\/div><div class=\"reading-body\">' + esc(readingBody) + '<\/div><\/div>';\r\n  html += '<div class=\"reading-block\"><div class=\"reading-ttl\">WHAT THIS READING CANNOT DETERMINE<\/div>';\r\n  html += '<div class=\"reading-body\">This preliminary reading cannot assess the content of your statutes, the exact wording of your programme titles, the clauses in your existing learner contracts, or the nature of any prior regulatory contact. These are precisely the elements that determine whether institutional entry is viable -- and they require documentary analysis, not self-declaration.<\/div>';\r\n  html += '<\/div><\/div>';\r\n  html += '<div class=\"card\"><span class=\"sec-label\">Sequencing Clarity<\/span>';\r\n  html += seqBlock('MUST COME FIRST',           first,  '#111111');\r\n  html += seqBlock('MUST WAIT',                 wait,   '#C05800');\r\n  html += seqBlock('MUST NOT YET BE ASSUMED',   notyet, '#C00000');\r\n  html += '<\/div>';\r\n\r\n  \/* \u2550\u2550\u2550 PERSONALISATION BLOCK (optional \u2014 local only, never transmitted) \u2550\u2550\u2550 *\/\r\n  html += '<div class=\"perso-block\">';\r\n  html += '<div class=\"perso-ttl\">Personalise your downloaded reading (optional)<\/div>';\r\n  html += '<div class=\"perso-sub\">These fields personalise <strong>your PDF only<\/strong>. They remain on your device and are never transmitted or retained by Diligence Consulting.<\/div>';\r\n  html += '<div class=\"perso-grid\">';\r\n  html += '<input class=\"perso-input\" type=\"text\" id=\"p-name\" placeholder=\"First name &middot; Last name\" autocomplete=\"name\" value=\"' + esc(usr.name) + '\">';\r\n  html += '<input class=\"perso-input\" type=\"text\" id=\"p-inst\" placeholder=\"Institution or organisation\" value=\"' + esc(usr.inst) + '\">';\r\n  html += '<\/div>';\r\n  html += '<div class=\"perso-foot\">Your answers, verdict and personal details never leave your browser.<\/div>';\r\n  html += '<\/div>';\r\n\r\n  \/* \u2550\u2550\u2550 ACTIONS BLOCK \u2550\u2550\u2550 *\/\r\n  html += '<div class=\"result-actions\">';\r\n  html += '<div class=\"ra-eyebrow\">Next step<\/div>';\r\n  if (v === 'READABLE') {\r\n    html += '<div class=\"ra-title\">The preliminary reading suggests your project may be structurally readable.<\/div>';\r\n    html += '<div class=\"ra-desc\">Documentary verification is still required before any institutional entry can be defended. The <strong>Arche International Audit<\/strong> is the only threshold that produces a defensible institutional reading. <strong>1,500 EUR excl. VAT.<\/strong><\/div>';\r\n    html += '<div class=\"ra-buttons\">';\r\n    html += '<button class=\"btn-pdf\" onclick=\"downloadPDF()\"><svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"\/><\/svg>Download the PDF of your reading<\/button>';\r\n    html += '<button class=\"btn-cta\" onclick=\"bookAudit()\">BOOK THE ARCHE INTERNATIONAL AUDIT &rarr;<\/button>';\r\n    html += '<\/div>';\r\n  } else {\r\n    html += '<div class=\"ra-title\">' + (v === 'CRITICAL' ? 'Immediate regulatory review is required.' : v === 'REMEDIATION' ? 'A direct conversation is recommended before any audit engagement.' : 'Sequencing correction is required before institutional entry can be defended.') + '<\/div>';\r\n    html += '<div class=\"ra-desc\">' + (v === 'REMEDIATION' ? 'Your situation requires a direct conversation to define the appropriate next step. Diligence Consulting will respond within 48 hours.' : 'Share your verdict with Diligence Consulting to define the appropriate next step. No commercial discovery. No commitment.') + '<\/div>';\r\n    html += '<div class=\"ra-buttons\">';\r\n    html += '<button class=\"btn-pdf\" onclick=\"downloadPDF()\"><svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"\/><\/svg>Download the PDF of your reading<\/button>';\r\n    html += '<button class=\"btn-cta\" onclick=\"bookAudit()\">CONTACT DILIGENCE CONSULTING &rarr;<\/button>';\r\n    html += '<\/div>';\r\n  }\r\n  html += '<\/div>';\r\n\r\n  html += '<div class=\"disclaimer\"><p>This preliminary reading is a self-service tension instrument based on self-declared answers. It does not constitute a legal opinion, a regulatory clearance, or an institutional reading in the Arche doctrine sense. No institutional entry should be initiated on the basis of this reading alone.<\/p><\/div>';\r\n\r\n  document.getElementById('result').innerHTML = html;\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PDF GENERATION \u2014 jsPDF, local only \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction downloadPDF() {\r\n  var nameInput = document.getElementById('p-name');\r\n  var instInput = document.getElementById('p-inst');\r\n  if (nameInput) usr.name = nameInput.value.trim();\r\n  if (instInput) usr.inst = instInput.value.trim();\r\n\r\n  var s = scores();\r\n  var v = getVerdict(s, ans);\r\n  var vc = VDICT[v];\r\n  var flags = buildFlags();\r\n\r\n  var jsPDF = window.jspdf.jsPDF;\r\n  var doc = new jsPDF({ unit: 'mm', format: 'a4' });\r\n  var W = 210, H = 297;\r\n  var mx = 18, y = 0;\r\n\r\n  \/* \u2500\u2500\u2500 HEADER \u2500\u2500\u2500 *\/\r\n  doc.setFillColor(17, 17, 17);\r\n  doc.rect(0, 0, W, 18, 'F');\r\n  doc.setFillColor(248, 67, 70);\r\n  doc.rect(0, 18, W, 2, 'F');\r\n  doc.setTextColor(255, 255, 255);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(10);\r\n  doc.text('DILIGENCE CONSULTING', mx, 11);\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFontSize(8);\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.text('HOUSE OF EDUCATIONAL DIPLOMACY', W - mx, 11, { align: 'right' });\r\n  y = 30;\r\n\r\n  \/* \u2500\u2500\u2500 TITLE \u2500\u2500\u2500 *\/\r\n  doc.setTextColor(17, 17, 17);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(22);\r\n  doc.text('ARCHE', mx, y);\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.text('PRELIMINARY INSTITUTIONAL READING', mx, y + 8);\r\n  y += 18;\r\n\r\n  \/* \u2500\u2500\u2500 PREPARED FOR (if provided) \u2500\u2500\u2500 *\/\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setFontSize(9);\r\n  doc.setTextColor(95, 99, 104);\r\n  if (usr.name || usr.inst) {\r\n    var preparedFor = 'Prepared for: ' + (usr.name || '') + (usr.inst ? ' | ' + usr.inst : '');\r\n    doc.text(preparedFor, mx, y);\r\n    y += 5;\r\n  }\r\n  var today = new Date();\r\n  var dateStr = today.toLocaleDateString('en-GB', { day: '2-digit', month: 'long', year: 'numeric' });\r\n  doc.text('Date: ' + dateStr, mx, y);\r\n  y += 10;\r\n\r\n  \/* \u2500\u2500\u2500 VERDICT CARD \u2500\u2500\u2500 *\/\r\n  var stripeRGB = v === 'CRITICAL' ? [192, 0, 0] : v === 'REMEDIATION' ? [192, 0, 0] : v === 'NOTYET' ? [192, 88, 0] : [185, 150, 95];\r\n  doc.setFillColor(stripeRGB[0], stripeRGB[1], stripeRGB[2]);\r\n  doc.rect(mx, y, W - 2 * mx, 1.5, 'F');\r\n  doc.setFillColor(255, 255, 255);\r\n  doc.setDrawColor(232, 230, 224);\r\n  doc.roundedRect(mx, y + 1.5, W - 2 * mx, 28, 2, 2, 'FD');\r\n  doc.setTextColor(stripeRGB[0], stripeRGB[1], stripeRGB[2]);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(8);\r\n  doc.text('EXPOSURE VERDICT', mx + 5, y + 8);\r\n  doc.setFontSize(18);\r\n  doc.text(vc.label, mx + 5, y + 17);\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setFontSize(9);\r\n  doc.setTextColor(95, 99, 104);\r\n  var defLines = doc.splitTextToSize(vc.def, W - 2 * mx - 10);\r\n  doc.text(defLines, mx + 5, y + 23);\r\n  y += 38;\r\n\r\n  \/* \u2500\u2500\u2500 OVERALL RISK \u2500\u2500\u2500 *\/\r\n  doc.setTextColor(17, 17, 17);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(10);\r\n  doc.text('Overall readability risk', mx, y);\r\n  var totalRGB = s.total >= 60 ? [192, 0, 0] : s.total >= 35 ? [192, 88, 0] : [26, 107, 60];\r\n  doc.setTextColor(totalRGB[0], totalRGB[1], totalRGB[2]);\r\n  doc.text(s.total + '%  |  ' + rl(s.total) + ' risk', W - mx, y, { align: 'right' });\r\n  y += 4;\r\n  doc.setFillColor(232, 230, 224);\r\n  doc.roundedRect(mx, y, W - 2 * mx, 3, 1.5, 1.5, 'F');\r\n  doc.setFillColor(totalRGB[0], totalRGB[1], totalRGB[2]);\r\n  var barW = Math.max(3, ((W - 2 * mx) * s.total) \/ 100);\r\n  doc.roundedRect(mx, y, barW, 3, 1.5, 1.5, 'F');\r\n  y += 10;\r\n\r\n  \/* \u2500\u2500\u2500 DIMENSIONS \u2500\u2500\u2500 *\/\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(8);\r\n  doc.text('READABILITY EXPOSURE PROFILE', mx, y);\r\n  y += 6;\r\n  var dkeys = ['G', 'R', 'O', 'C'];\r\n  for (var i = 0; i < dkeys.length; i++) {\r\n    var k = dkeys[i], p = s.pct[k] || 0;\r\n    var dRGB = p >= 60 ? [192, 0, 0] : p >= 35 ? [192, 88, 0] : [26, 107, 60];\r\n    doc.setTextColor(17, 17, 17);\r\n    doc.setFont('helvetica', 'normal');\r\n    doc.setFontSize(9);\r\n    doc.text(DLBL[k], mx, y);\r\n    doc.setTextColor(dRGB[0], dRGB[1], dRGB[2]);\r\n    doc.setFont('helvetica', 'bold');\r\n    doc.text(rl(p) + ' risk  --  ' + p + '%', W - mx, y, { align: 'right' });\r\n    y += 2;\r\n    doc.setFillColor(232, 230, 224);\r\n    doc.roundedRect(mx, y, W - 2 * mx, 1.8, 0.9, 0.9, 'F');\r\n    doc.setFillColor(dRGB[0], dRGB[1], dRGB[2]);\r\n    var dBarW = Math.max(1, ((W - 2 * mx) * p) \/ 100);\r\n    doc.roundedRect(mx, y, dBarW, 1.8, 0.9, 0.9, 'F');\r\n    y += 7;\r\n  }\r\n  y += 2;\r\n\r\n  \/* \u2500\u2500\u2500 FLAGS \u2500\u2500\u2500 *\/\r\n  if (y > 230) { doc.addPage(); y = 20; }\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(8);\r\n  doc.text('KEY FLAGS IDENTIFIED', mx, y);\r\n  y += 5;\r\n  if (flags.length) {\r\n    for (var i = 0; i < flags.length; i++) {\r\n      var fl = flags[i];\r\n      if (y > 270) { doc.addPage(); y = 20; }\r\n      doc.setTextColor(17, 17, 17);\r\n      doc.setFont('helvetica', 'bold');\r\n      doc.setFontSize(9);\r\n      var tLines = doc.splitTextToSize(fl.title, W - 2 * mx - 4);\r\n      doc.text(tLines, mx + 3, y);\r\n      y += tLines.length * 4 + 1;\r\n      doc.setTextColor(185, 150, 95);\r\n      doc.setFont('helvetica', 'normal');\r\n      doc.setFontSize(7.5);\r\n      doc.text(fl.ref, mx + 3, y);\r\n      y += 3.5;\r\n      doc.setTextColor(95, 99, 104);\r\n      doc.setFontSize(8.5);\r\n      var dLines = doc.splitTextToSize(fl.desc, W - 2 * mx - 4);\r\n      doc.text(dLines, mx + 3, y);\r\n      y += dLines.length * 3.5 + 2;\r\n      if (fl.fin) {\r\n        doc.setTextColor(192, 0, 0);\r\n        doc.setFont('helvetica', 'bold');\r\n        doc.setFontSize(8);\r\n        doc.text(fl.fin, mx + 3, y);\r\n        y += 4;\r\n      }\r\n      y += 2;\r\n    }\r\n  } else {\r\n    doc.setTextColor(95, 99, 104);\r\n    doc.setFont('helvetica', 'italic');\r\n    doc.setFontSize(9);\r\n    var noFlagLines = doc.splitTextToSize('No critical flags identified from self-declared answers. Documentary verification required before any conclusion can be drawn.', W - 2 * mx);\r\n    doc.text(noFlagLines, mx, y);\r\n    y += noFlagLines.length * 4;\r\n  }\r\n\r\n  \/* \u2500\u2500\u2500 READING \u2500\u2500\u2500 *\/\r\n  if (y > 240) { doc.addPage(); y = 20; }\r\n  y += 3;\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(8);\r\n  doc.text('PRELIMINARY READING', mx, y);\r\n  y += 5;\r\n  doc.setTextColor(17, 17, 17);\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setFontSize(9);\r\n  var readingBody = 'This project indicates an intention to enter France through ';\r\n  var expList = [];\r\n  if (Array.isArray(ans.Q1)) {\r\n    for (var i = 0; i < ans.Q1.length; i++) {\r\n      if (ans.Q1[i].indexOf('None') < 0) expList.push(ans.Q1[i].split(' --')[0].toLowerCase());\r\n    }\r\n  }\r\n  readingBody += (expList.length ? expList.join(', ') : 'exposure routes not yet fully defined') + '. At this stage, the principal question is not ambition. It is structural readability. ';\r\n  if (s.total >= 60)      readingBody += 'Several elements identified indicate that exposure may currently precede structural defensibility. Immediate regulatory review is required before any further step is taken.';\r\n  else if (s.total >= 32) readingBody += 'Certain structural conditions require resolution before the project becomes institutionally readable for a credible entry in France.';\r\n  else                    readingBody += 'The project profile shows lower immediate exposure, but self-declared readability must be verified against actual documentation before any entry is assumed viable.';\r\n  var rLines = doc.splitTextToSize(readingBody, W - 2 * mx);\r\n  doc.text(rLines, mx, y);\r\n  y += rLines.length * 4 + 4;\r\n\r\n  \/* \u2500\u2500\u2500 SEQUENCING \u2500\u2500\u2500 *\/\r\n  if (y > 240) { doc.addPage(); y = 20; }\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(8);\r\n  doc.text('SEQUENCING CLARITY', mx, y);\r\n  y += 5;\r\n  var first2 = [], wait2 = [], notyet2 = [];\r\n  if (s.pct.R >= 40) first2.push('Resolve all protected title exposure before any public communication or programme announcement');\r\n  if (s.pct.G >= 35) first2.push('Document and formalise academic authority with identifiable director meeting R731-1 qualifications');\r\n  if (Array.isArray(ans.Q4) && ans.Q4.some(function(x) { return x.indexOf('None yet') < 0; }))\r\n    first2.push('Obtain legal opinion on pre-filing exposure and define remediation sequence');\r\n  if (s.pct.R >= 20) first2.push('Complete L731 declaration and\/or DREETS Declaration d\\'Activite before any learner enrolment');\r\n  if (!first2.length) first2.push('Verify all regulatory declarations are in place before any public or commercial step');\r\n  if (ans.Q6 && ans.Q6.indexOf('Yes') >= 0) wait2.push('CPF and OPCO funding -- requires Qualiopi certification first (Phase 2, 12 to 24 months)');\r\n  wait2.push('RNCP or RS registration -- requires documented graduate cohort and tracked outcomes');\r\n  wait2.push('EESPIG qualification -- Phase 3, established track record and non-profit governance');\r\n  notyet2.push('No institutional entry should be announced on the basis of this preliminary reading alone');\r\n  if (v === 'CRITICAL') notyet2.push('No further public, contractual or financial commitment before formal audit and legal review');\r\n  if (v === 'NOTYET')   notyet2.push('No learner enrolment before governance and documentary conditions are confirmed');\r\n\r\n  function drawSeq(label, items, rgb) {\r\n    if (y > 260) { doc.addPage(); y = 20; }\r\n    doc.setFillColor(rgb[0], rgb[1], rgb[2]);\r\n    doc.rect(mx, y, W - 2 * mx, 5, 'F');\r\n    doc.setTextColor(255, 255, 255);\r\n    doc.setFont('helvetica', 'bold');\r\n    doc.setFontSize(7.5);\r\n    doc.text(label, mx + 2, y + 3.5);\r\n    y += 5;\r\n    doc.setFillColor(255, 255, 255);\r\n    doc.setDrawColor(232, 230, 224);\r\n    for (var i = 0; i < items.length; i++) {\r\n      if (y > 270) { doc.addPage(); y = 20; }\r\n      doc.setTextColor(17, 17, 17);\r\n      doc.setFont('helvetica', 'normal');\r\n      doc.setFontSize(8.5);\r\n      var itLines = doc.splitTextToSize('- ' + items[i], W - 2 * mx - 4);\r\n      doc.text(itLines, mx + 3, y + 4);\r\n      y += itLines.length * 3.5 + 2;\r\n    }\r\n    y += 3;\r\n  }\r\n  drawSeq('MUST COME FIRST',         first2,  [17, 17, 17]);\r\n  drawSeq('MUST WAIT',               wait2,   [192, 88, 0]);\r\n  drawSeq('MUST NOT YET BE ASSUMED', notyet2, [192, 0, 0]);\r\n\r\n  \/* \u2500\u2500\u2500 CTA ARCH\u00c9 AUDIT \u2500\u2500\u2500 *\/\r\n  if (y > 250) { doc.addPage(); y = 20; }\r\n  doc.setFillColor(24, 21, 18);\r\n  doc.roundedRect(mx, y, W - 2 * mx, 32, 2, 2, 'F');\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(7.5);\r\n  doc.text('THE ONLY DEFENSIBLE THRESHOLD', mx + 5, y + 6);\r\n  doc.setTextColor(240, 232, 222);\r\n  doc.setFontSize(13);\r\n  doc.text('Arche International Audit', mx + 5, y + 13);\r\n  doc.setTextColor(204, 187, 170);\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setFontSize(8.5);\r\n  var ctaLines = doc.splitTextToSize('60-minute session with Sandrine Ouilibona. Documentary analysis of statutes, programme descriptions and regulatory correspondence. 6-page written note with clause-level analysis and legal article citations. Verdict: GO \/ NOT YET \/ NO GO within 5 working days.', W - 2 * mx - 10);\r\n  doc.text(ctaLines, mx + 5, y + 19);\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.setFont('helvetica', 'bold');\r\n  doc.setFontSize(9);\r\n  doc.text('1,500 EUR excl. VAT', mx + 5, y + 29);\r\n  doc.setTextColor(204, 187, 170);\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setFontSize(7.5);\r\n  doc.text('diligence-consulting.fr\/en\/enter-under-the-arch\/', W - mx - 5, y + 29, { align: 'right' });\r\n  y += 38;\r\n\r\n  \/* \u2500\u2500\u2500 FOOTER \u2500\u2500\u2500 *\/\r\n  if (y > 275) { doc.addPage(); y = 270; }\r\n  doc.setDrawColor(232, 230, 224);\r\n  doc.line(mx, 282, W - mx, 282);\r\n  doc.setTextColor(95, 99, 104);\r\n  doc.setFont('helvetica', 'italic');\r\n  doc.setFontSize(7.5);\r\n  doc.text('This reading is yours alone. No data has been transmitted or retained by Diligence Consulting.', W \/ 2, 287, { align: 'center' });\r\n  doc.setFont('helvetica', 'normal');\r\n  doc.setTextColor(185, 150, 95);\r\n  doc.text('Arche Platform  |  Diligence Consulting  |  House of Educational Diplomacy', W \/ 2, 291, { align: 'center' });\r\n\r\n  \/* \u2500\u2500\u2500 FILENAME \u2500\u2500\u2500 *\/\r\n  var fname = 'Arche_Preliminary_Reading';\r\n  if (usr.name) fname += '_' + usr.name.replace(\/[^a-z0-9]\/gi, '_').substring(0, 30);\r\n  fname += '_' + today.toISOString().substring(0, 10) + '.pdf';\r\n  doc.save(fname);\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CONTACT ROUTING \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction bookAudit() {\r\n  var v = getVerdict(scores(), ans);\r\n\r\n  if (v === 'READABLE') {\r\n    \/\/ Favorable verdict \u2192 direct Calendly (no email routing needed)\r\n    window.open('https:\/\/calendly.com\/diligence-consulting\/strategic-briefing', '_blank');\r\n    return;\r\n  }\r\n\r\n  \/\/ All other verdicts \u2192 mailto Sandrine (verdict pre-filled, name\/institution if provided locally)\r\n  var nameInput = document.getElementById('p-name');\r\n  var instInput = document.getElementById('p-inst');\r\n  var name = nameInput ? nameInput.value.trim() : '';\r\n  var inst = instInput ? instInput.value.trim() : '';\r\n  var s = scores();\r\n\r\n  var verdictLabel = VDICT[v].label;\r\n  var subjectPrefix = v === 'CRITICAL' ? 'Critical exposure' : v === 'REMEDIATION' ? 'Remediation required' : 'Not yet readable';\r\n  var sub = encodeURIComponent('Arche Preliminary Reading -- ' + subjectPrefix + (inst ? ' -- ' + inst : ''));\r\n\r\n  var bodyLines = [\r\n    'Following my Arche Preliminary Institutional Reading, I would like to discuss next steps.',\r\n    '',\r\n    'Verdict: ' + verdictLabel,\r\n    'Overall readability risk: ' + s.total + '% (' + rl(s.total) + ' risk)',\r\n    'Governance: ' + (s.pct.G || 0) + '%',\r\n    'Regulatory: ' + (s.pct.R || 0) + '%',\r\n    'Operational: ' + (s.pct.O || 0) + '%',\r\n    'Communication: ' + (s.pct.C || 0) + '%',\r\n    ''\r\n  ];\r\n  if (name) bodyLines.push('Name: ' + name);\r\n  if (inst) bodyLines.push('Institution: ' + inst);\r\n  bodyLines.push('', 'I confirm that I have read and understood the preliminary reading disclaimer.');\r\n\r\n  var body = encodeURIComponent(bodyLines.join('\\n'));\r\n  window.open('mailto:info@diligence-consulting.fr?subject=' + sub + '&body=' + body, '_blank');\r\n}\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RESET \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\nfunction resetAll() {\r\n  step = 0;\r\n  ans = {};\r\n  usr = { name: '', inst: '' };\r\n  updateSide();\r\n  showScreen('s-intro');\r\n  window.scrollTo({ top: 0, behavior: 'smooth' });\r\n}\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Arch\u00e9 : A Prior Institutional Reading<\/p>\n","protected":false},"author":1,"featured_media":15732,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-12251","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6},"disable_header":"yes"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/pages\/12251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/comments?post=12251"}],"version-history":[{"count":24,"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/pages\/12251\/revisions"}],"predecessor-version":[{"id":15974,"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/pages\/12251\/revisions\/15974"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/media\/15732"}],"wp:attachment":[{"href":"https:\/\/diligence-consulting.fr\/en\/wp-json\/wp\/v2\/media?parent=12251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}