/* Strictement limité à la vitrine B. Aucun sélecteur du concours C.
   Typographie alignée sur le C : titres modules 20 px / mobile 18 px,
   listes de cours 17,5 px / mobile 15,5 px. Identique ouvert et fermé. */
body.landing-controleur-b { background:#fff; color:#17233b; font-family:'Inter','Archivo',system-ui,-apple-system,'Segoe UI',sans-serif; }
.b-page { --b-navy:#172640; --b-red:#bf2e2a; --b-muted:#606b7c; --b-line:#dfe5ee; --b-green:#227861; font-size:16px; line-height:1.7; }
.b-page *, .b-page *::before, .b-page *::after { box-sizing:border-box; }
.b-page [id] { scroll-margin-top:105px; }
.b-wrap { width:min(1240px,calc(100% - 64px)); margin-inline:auto; }
.b-page h1,.b-page h2,.b-page h3 { font-family:'Inter','Archivo',system-ui,-apple-system,'Segoe UI',sans-serif; color:var(--b-navy); text-wrap:balance; }
.b-page h1 { font-size:clamp(42px,4.35vw,62px); line-height:1.08; letter-spacing:-.05em; font-weight:850; margin:0 0 24px; }
.b-page h1 em { color:var(--b-red); font-style:normal; }
.b-page h2 { font-size:clamp(30px,3.1vw,43px); line-height:1.13; letter-spacing:-.04em; margin:0 0 22px; font-weight:800; }
.b-page h3 { font-size:21px; line-height:1.28; letter-spacing:-.025em; font-weight:750; }
.b-page p { margin:0 0 18px; }
.b-page p:last-child { margin-bottom:0; }
.b-page a { text-underline-offset:4px; }
.b-page a:focus-visible,.b-page summary:focus-visible { outline:3px solid #a93528; outline-offset:5px; }
.b-eyebrow { color:var(--b-red); font-size:13px; text-transform:uppercase; letter-spacing:.14em; font-weight:800; margin:0 0 17px!important; }
.b-kicker { display:block; color:var(--b-green); font-size:13px; font-weight:800; letter-spacing:.065em; text-transform:uppercase; margin-bottom:12px; }
.b-small { font-size:14px; color:var(--b-muted); line-height:1.7; margin-top:19px!important; }
.b-hero { padding:28px 0 32px; background:radial-gradient(ellipse at 95% 30%,#eaf4f1 0,transparent 55%),#fff; }
.b-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:14px; color:var(--b-muted); margin-bottom:44px; }
.b-breadcrumb a { text-decoration:none; }
.b-hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:48px; align-items:center; }
.b-countdown { display:inline-flex; align-items:center; gap:16px; max-width:100%; padding:14px 18px; margin:0 0 24px; border:1px solid #d8e2ef; border-left:4px solid #587fb8; border-radius:14px; background:#f5f8fe; color:var(--b-navy); text-decoration:none; }
.b-countdown:hover { border-color:#587fb8; }
.b-countdown-value { flex:none; font-size:clamp(20px,2.5vw,30px); line-height:1.15; letter-spacing:-.04em; }
.b-countdown-label,.b-countdown-date,.b-countdown small { display:block; }
.b-countdown-label { font-size:15px; font-weight:750; line-height:1.35; }
.b-countdown-date { font-size:14px; line-height:1.5; margin-top:3px; }
.b-countdown small { color:#4b607a; font-size:12px; margin-top:4px; text-decoration:underline; text-underline-offset:3px; }
.b-hero-preparation { font-size:17px; line-height:1.65; color:var(--b-muted); margin:0 0 24px; }
@media (max-width:480px) {
  .b-countdown { display:flex; align-items:flex-start; flex-direction:column; gap:8px; padding:13px 15px; }
  .b-countdown-value { font-size:25px; }
  .b-hero-preparation { font-size:16px; }
}
.b-lead { color:var(--b-muted); font-size:18px; line-height:1.75; max-width:58ch; }
.b-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 20px; }
.b-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:49px; padding:13px 20px; border:1px solid var(--b-red); border-radius:9px; color:#fff!important; background:var(--b-red); font-size:15px; font-weight:750; text-decoration:none; text-align:center; line-height:1.5; transition:background .16s; }
.b-button:hover { background:#a42422; }
.b-button-outline { border-color:#b7c1cf; color:var(--b-navy)!important; background:transparent; }
.b-button-outline:hover { background:#edf1f6; }
.b-status { display:flex; align-items:center; gap:9px; color:#54665c; font-size:14px; }
.b-status-dot { width:7px; height:7px; background:#497960; border-radius:50%; flex:none; }
.b-hero-visual { margin:0; border-radius:20px; overflow:hidden; border:1px solid #d5e3dd; background:#fff; box-shadow:0 18px 55px #17264012; }
.b-hero-visual img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.b-hero-visual figcaption { padding:24px 28px; }
.b-visual-label { display:block; color:var(--b-green); text-transform:uppercase; letter-spacing:.1em; font-size:13px; font-weight:800; margin-bottom:8px; }
.b-hero-visual strong { display:block; color:var(--b-navy); font-size:25px; line-height:1.2; letter-spacing:-.035em; margin-bottom:10px; }
.b-hero-visual figcaption>span:last-child { color:var(--b-muted); font-size:14px; }
.b-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:48px; border:1px solid var(--b-line); border-radius:13px; background:#fff; }
.b-facts div { padding:20px 22px; border-right:1px solid var(--b-line); }
.b-facts div:last-child { border:0; }
.b-facts strong,.b-facts span { display:block; }
.b-facts strong { font-size:19px; font-weight:800; }
.b-facts span { color:var(--b-muted); font-size:14.5px; margin-top:5px; }
.b-section-nav { border-top:1px solid var(--b-line); border-bottom:1px solid var(--b-line); background:#fff; }
.b-section-nav .b-wrap { display:flex; gap:28px; overflow-x:auto; padding-block:16px; }
.b-section-nav a { white-space:nowrap; font-size:14px; font-weight:700; text-decoration:none; }
.b-section { padding:78px 0; }
.b-tinted { background:#f5f7fb; }
.b-section-heading { max-width:735px; margin-bottom:34px; }
.b-section-heading>p:not(.b-eyebrow) { color:var(--b-muted); }
.b-calendar { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:18px; }
.b-calendar li { border:1px solid var(--b-line); border-radius:12px; padding:27px; background:#fff; }
.b-calendar span { display:block; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; margin-bottom:14px; color:var(--b-muted); }
.b-calendar strong { display:block; font-size:23px; line-height:1.4; margin-bottom:15px; letter-spacing:-.035em; }
.b-calendar small { display:block; font-size:14px; color:var(--b-muted); }
.b-calendar .b-calendar-primary { background:var(--b-navy); border-color:var(--b-navy); color:#fff; }
.b-calendar-primary span,.b-calendar-primary small { color:#d3dce9; }
.b-source-line { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; margin:17px 0 27px; font-size:13px; color:var(--b-muted); }
.b-source-line a { color:var(--b-navy); font-weight:700; }
.b-note { border-left:3px solid #b6954d; padding:13px 18px; background:#fffaf0; color:#5c503a; font-size:16px; }
.b-exams { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.b-card { border:1px solid var(--b-line); border-radius:14px; padding:28px; background:#fff; }
.b-exam { display:flex; flex-direction:column; border-top:4px solid #6585ad; }
.b-exam h3 { min-height:3.9em; margin-bottom:15px; }
.b-exam p,.b-exam li { font-size:16.5px; color:var(--b-muted); }
.b-exam .b-exam-meta { display:flex; gap:10px; flex-wrap:wrap; font-size:14px; font-weight:800; color:var(--b-navy); }
.b-exam-meta span { color:var(--b-muted); font-weight:500; }
.b-exam ul { padding-left:18px; margin:0 0 24px; }
.b-exam li { margin-bottom:8px; }
.b-exam .b-text-link { margin-top:auto; }
.b-exam-oral { border-top-color:var(--b-green); }
.b-text-link { color:var(--b-red); font-weight:750; font-size:15px; text-decoration:none; }
.b-text-link:hover { text-decoration:underline; }
.b-navy { background:var(--b-navy); color:#fff; }
.b-navy h2 { color:#fff; }
.b-navy .b-eyebrow { color:#ecbcb5; }
.b-navy .b-section-heading>p:not(.b-eyebrow) { color:#d0d9e7; }
.b-options { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
.b-option { grid-column:span 2; display:flex; flex-direction:column; color:var(--b-navy); background:#fff; padding:25px; border-radius:12px; text-decoration:none; }
.b-option:nth-last-child(-n+2) { grid-column:span 3; }
.b-option:hover { background:#eef5f3; }
.b-option h3 { margin-bottom:14px; font-size:21px; }
.b-option p { font-size:16.5px; color:var(--b-muted); margin-bottom:24px; }
.b-option>span { margin-top:auto; display:flex; justify-content:space-between; gap:10px; font-size:13px; font-weight:800; color:var(--b-green); }
.b-option-advice { max-width:85ch; color:#d0d9e7; font-size:16px; margin-top:26px!important; }
.b-option-advice strong { color:#fff; }
.b-path { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:26px; border:1px solid #cfded8; background:#f0f8f4; border-radius:13px; }
.b-path strong,.b-path span:not(.b-path-plus) { display:block; }
.b-path strong { color:var(--b-green); font-size:20px; line-height:1.4; }
.b-path div>span { color:var(--b-muted); font-size:14px; }
.b-path-plus { font-size:20px; color:#799288; }
.b-program { margin-top:30px; }
.b-accordion { border:1px solid var(--b-line); border-radius:12px; background:#fff; margin-bottom:14px; overflow:clip; }
.b-accordion>summary { display:flex; gap:18px; align-items:center; justify-content:space-between; list-style:none; cursor:pointer; padding:23px 26px; color:var(--b-navy); background:#fff; }
.b-accordion>summary::-webkit-details-marker { display:none; }
.b-accordion>summary::marker { content:""; }
.b-accordion>summary>span:first-child { min-width:0; }
.b-accordion>summary strong { display:block; font-size:22px; font-weight:750; line-height:1.35; letter-spacing:-.025em; }
.b-accordion>summary small { display:block; color:var(--b-muted); font-size:14px; font-weight:500; margin-top:6px; }
.b-accordion>summary .b-kicker { margin-bottom:6px; }
.b-toggle { width:30px; height:30px; border:1px solid #b8c6d8; border-radius:50%; position:relative; flex:none; }
.b-toggle::before,.b-toggle::after { content:""; position:absolute; width:10px; height:2px; background:#557396; top:13px; left:9px; }
.b-toggle::after { transform:rotate(90deg); }
.b-accordion[open]:not(.b-enhanced)>summary,.b-accordion.b-expanded>summary { background:#eff4fa; }
.b-accordion[open]:not(.b-enhanced)>summary .b-toggle::after,.b-accordion.b-expanded>summary .b-toggle::after { display:none; }
.b-accordion[open]:not(.b-enhanced),.b-accordion.b-expanded { border-color:#adc0d8; }
.b-program-group { border-left:4px solid #6585ad; }
.b-is-option { border-left-color:#b9984e; }
.b-is-option>summary .b-kicker { color:#846520; }
#groupe-oral { border-left-color:var(--b-green); }
.b-accordion-body { min-height:0; }
.b-group-content { padding:0 25px 25px; }
.b-group-content>p { padding-top:20px; font-size:16.5px; color:var(--b-muted); }
.b-module-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.b-module { margin:0; border-radius:9px; }
.b-module>summary { padding:19px; align-items:flex-start; }
.b-module>summary strong { font-size:20px; line-height:1.32; letter-spacing:-.015em; }
.b-module>summary .b-kicker { font-size:14.5px; color:#637b99; }
.b-module>summary small { font-size:14px; }
.b-module .b-toggle { width:24px; height:24px; }
.b-module .b-toggle::before,.b-module .b-toggle::after { top:10px; left:6px; }
.b-module-content { padding:0 19px 21px; font-size:17.5px; }
.b-module-content ol { margin:0 0 17px; padding:15px 0 0 19px; }
.b-module-content li { padding-left:3px; margin-bottom:10px; }
.b-module-content p { color:var(--b-muted); font-size:15.5px; }
.b-coming { display:block; font-size:13px; color:#52675d; border-top:1px solid var(--b-line); padding-top:12px; }
.b-notice { display:flex; align-items:center; gap:30px; justify-content:space-between; background:#f5f7fb; border:1px solid var(--b-line); border-radius:14px; padding:32px; margin-top:30px; }
.b-notice>div { max-width:730px; }
.b-notice h3 { margin-bottom:13px; }
.b-notice p:not(.b-eyebrow) { color:var(--b-muted); font-size:16.5px; }
.b-notice>a { flex:none; }
.b-method { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.b-method article>span { color:var(--b-red); font-size:14px; font-weight:800; display:block; margin-bottom:13px; }
.b-method h3 { margin-bottom:10px; }
.b-method p { font-size:16.5px; color:var(--b-muted); }
.b-split { display:grid; grid-template-columns:1.2fr 1fr; gap:65px; align-items:center; }
.b-split .b-section-heading { margin:0; }
.b-career-card { background:#eef6f3; border:1px solid #d5e6dd; padding:36px; border-radius:16px; }
.b-career-card h3 { font-size:26px; margin-bottom:21px; }
.b-career-card p { font-size:16.5px; color:var(--b-muted); }
.b-faq-wrap { max-width:920px; }
.b-faq>summary strong { font-size:17px; }
.b-faq-content { padding:0 26px 25px; color:var(--b-muted); font-size:15px; }
.b-faq-content p { padding-top:15px; }
.b-resources { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.b-resources>a { text-decoration:none; }
.b-resources>a:hover { border-color:#96abbd; }
.b-resources h3 { margin-bottom:12px; font-size:21px; }
.b-resources p { font-size:16.5px; color:var(--b-muted); }
.b-bottom { padding:48px 0; background:var(--b-navy); color:#fff; }
.b-bottom .b-wrap { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.b-bottom .b-eyebrow { color:#ecbcb5; }
.b-bottom h2 { font-size:28px; color:#fff; margin-bottom:12px; }
.b-bottom p:not(.b-eyebrow) { font-size:16px; color:#d0d9e7; }
.b-bottom .b-button { flex:none; }
@media(max-width:1000px) {
  .b-hero-grid { gap:28px; grid-template-columns:1.15fr 1fr; }
  .b-page h1 { font-size:50px; }
  .b-actions { display:grid; }
  .b-hero-visual figcaption { padding:22px; }
  .b-hero-visual strong { font-size:22px; }
  .b-exams { gap:14px; }
  .b-card { padding:22px; }
  .b-exam h3 { font-size:22px; }
  .b-split { gap:30px; }
}
@media(max-width:760px) {
  .b-wrap { width:calc(100% - 36px); }
  .b-hero { padding-top:20px; }
  .b-breadcrumb { margin-bottom:28px; font-size:12px; gap:7px; }
  .b-hero-grid { grid-template-columns:1fr; gap:26px; }
  .b-page h1 { font-size:clamp(34px,8vw,46px); }
  .b-lead { font-size:18px; }
  .b-actions { display:flex; }
  .b-hero-visual { max-width:540px; }
  .b-hero-visual img { aspect-ratio:16/9; }
  .b-hero-visual figcaption { padding:20px 23px; }
  .b-hero-visual strong { font-size:23px; }
  .b-facts { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:28px; }
  .b-facts div { padding:16px; border-bottom:1px solid var(--b-line); }
  .b-facts div:nth-child(2) { border-right:0; }
  .b-facts div:nth-child(3) { border-bottom:0; }
  .b-facts strong { font-size:16px; }
  .b-section { padding:50px 0; }
  .b-section-heading { margin-bottom:28px; }
  .b-section-heading>p:not(.b-eyebrow) { font-size:16px; }
  .b-calendar,.b-exams,.b-split { grid-template-columns:1fr; }
  .b-calendar li { padding:23px; }
  .b-calendar strong { font-size:22px; }
  .b-calendar-primary strong br { display:none; }
  .b-exam h3 { min-height:0; font-size:23px; }
  .b-exam p,.b-exam li { font-size:15px; }
  .b-exam ul { margin-bottom:17px; }
  .b-options { grid-template-columns:1fr; }
  .b-option,.b-option:nth-last-child(-n+2) { grid-column:auto; }
  .b-option p { margin-bottom:16px; }
  .b-path { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:22px; }
  .b-path-plus { display:none; }
  .b-path strong { font-size:18px; }
  .b-accordion>summary { padding:19px; gap:12px; }
  .b-accordion>summary strong { font-size:20px; }
  .b-group-content { padding:0 14px 17px; }
  .b-module-grid { grid-template-columns:1fr; }
  .b-module>summary { padding:16px; }
  .b-module>summary strong { font-size:18px; }
  .b-module-content { font-size:15.5px; padding-inline:17px; }
  .b-module-content p { font-size:14.5px; }
  .b-module>summary .b-kicker { font-size:12.5px; }
  .b-module>summary small { font-size:13px; }
  .b-option p,.b-option-advice,.b-group-content>p,
  .b-notice p:not(.b-eyebrow),.b-method p,.b-career-card p,
  .b-resources p,.b-bottom p:not(.b-eyebrow) { font-size:15px; }
  .b-notice { display:block; padding:25px; }
  .b-notice>a { margin-top:20px; }
  .b-method { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
  .b-career-card { padding:27px; }
  .b-faq>summary strong { font-size:15.5px; }
  .b-faq-content { padding:0 19px 20px; }
  .b-resources { grid-template-columns:1fr; }
  .b-bottom .b-wrap { display:block; }
  .b-bottom .b-button { margin-top:25px; }
}
@media(max-width:420px) {
  .b-actions { display:grid; }
  .b-button { width:100%; }
  .b-status { font-size:13px; }
  .b-facts span { font-size:13.5px; }
  .b-path { padding:16px; gap:16px; }
}
/* Harmonisation C/B : mêmes familles de cartes, sans sélecteur global C. */
.b-phase-qcm { --b-phase:#587fb8; --b-phase-text:#496da2; --b-soft:#f0f4ff; }
.b-phase-dossier { --b-phase:#be8d31; --b-phase-text:#8d641f; --b-soft:#fff7e5; }
.b-phase-oral { --b-phase:#278166; --b-phase-text:#22735c; --b-soft:#eaf8f1; }
.b-phase-option { --b-phase:#8a69be; --b-phase-text:#7653a7; --b-soft:#f5f0fd; }
.b-exam { border-top-width:5px; border-radius:19px; background:linear-gradient(#f0f4ff,#fff 230px); }
.b-exam:first-child { border-top-color:#be8d31; background:linear-gradient(#fff7e5,#fff 230px); }
.b-exam:first-child .b-kicker { color:#8d641f; }
.b-exam:nth-child(2) .b-kicker { color:#496da2; }
.b-exam-oral { background:linear-gradient(#eaf8f1,#fff 230px); }
.b-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
.b-info { margin:0; border-radius:20px; border-top:5px solid var(--b-phase); box-shadow:0 8px 28px #17264005; }
.b-info>summary { padding:27px 24px; min-height:205px; gap:18px; background:linear-gradient(var(--b-soft),#fff 95px); }
.b-info-icon { width:58px; height:62px; flex:none; display:grid; place-items:center; border-radius:17px; color:var(--b-phase); background:var(--b-soft); }
.b-info-icon svg { width:27px; height:27px; }
.b-info-copy { min-width:0; flex:1; }
.b-info>summary .b-kicker { color:var(--b-red); font-size:12px; letter-spacing:.08em; }
.b-info>summary small { font-size:16.5px; line-height:1.55; margin-top:9px; }
.b-info-content { padding:8px 26px 27px; font-size:16.5px; color:var(--b-muted); }
.b-info-content .b-calendar { grid-template-columns:1fr; gap:12px; }
.b-info-content .b-calendar li { padding:19px; }
.b-info-content .b-calendar strong { font-size:21px; }
.b-info-content .b-calendar strong br { display:none; }
.b-info-content .b-calendar span,.b-info-content .b-calendar strong { margin-bottom:8px; }
.b-info .b-toggle,.b-module .b-toggle { width:36px; height:36px; color:var(--b-phase); border-color:var(--b-phase); }
.b-info .b-toggle::before,.b-info .b-toggle::after,.b-module .b-toggle::before,.b-module .b-toggle::after { left:11px; top:16px; width:12px; background:currentColor; }
.b-program-phase { margin:36px 0 45px; min-width:0; }
.b-phase-banner { display:flex; align-items:center; gap:20px; background:var(--b-soft); border-left:6px solid var(--b-phase); border-radius:16px; padding:22px 25px; margin-bottom:22px; }
.b-phase-symbol { display:grid; place-items:center; flex:none; width:52px; height:56px; border-radius:14px; background:#fff; color:var(--b-phase); font-size:22px; font-weight:850; box-shadow:0 6px 18px #17264007; }
.b-phase-banner .b-kicker { margin:0 0 5px; color:var(--b-navy); font-size:12px; }
.b-phase-banner h3 { margin:0 0 6px; font-size:24px; line-height:1.3; }
.b-phase-banner p { color:var(--b-muted); font-size:16.5px; line-height:1.6; }
.b-module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.b-module { border-radius:20px; border-top:5px solid var(--b-phase); }
.b-module>summary { position:relative; padding:25px; min-height:300px; display:block; background:linear-gradient(var(--b-soft),#fff 115px); }
.b-module>summary>span:first-child { display:block; }
.b-module>summary .b-kicker { color:var(--b-phase-text); font-size:17px; font-weight:850; min-height:36px; padding-right:46px; margin:0 0 12px; }
.b-module>summary strong { font-size:20px; line-height:1.32; }
.b-module-description { display:block; color:var(--b-muted); font-size:16.5px; line-height:1.6; margin-top:15px; }
.b-module>summary .b-module-status { display:inline-block; margin-top:18px; padding:5px 9px; background:#f2f4f7; color:#586172; border-radius:7px; font-size:12px; font-weight:700; }
.b-module>summary>.b-toggle { position:absolute; top:24px; right:24px; }
.b-module-content { padding:0 25px 25px; }
.b-module-content ol { border-top:1px solid var(--b-line); }
/* b-expanded est retirée au clic de fermeture, pas en fin d’animation.
   Bordure, fond et signe suivent ainsi le même état, sans transition retardée. */
.b-info[open]:not(.b-enhanced),.b-info.b-expanded,
.b-module[open]:not(.b-enhanced),.b-module.b-expanded { border-color:var(--b-phase); }
.b-info[open]:not(.b-enhanced)>summary,.b-info.b-expanded>summary,
.b-module[open]:not(.b-enhanced)>summary,.b-module.b-expanded>summary { background:var(--b-soft); }
.b-method-section { background:linear-gradient(110deg,#15233f,#1c3050); }
.b-method-section .b-section-heading { max-width:none; }
.b-method { gap:22px; }
.b-method article { background:#fff; border-radius:19px; padding:28px; color:var(--b-navy); }
.b-method article>span { display:grid; place-items:center; width:48px; height:48px; background:var(--b-red); color:#fff; border-radius:13px; font-size:21px; margin:0 0 26px; }
.b-method h3 { margin:0 0 12px; }
@media(max-width:1000px) {
  .b-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .b-method { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .b-info>summary { padding:22px 18px; gap:12px; }
  .b-info-icon { width:44px; height:50px; }
}
@media(max-width:760px) {
  .b-info-grid,.b-module-grid { grid-template-columns:1fr; gap:16px; }
  .b-info>summary { min-height:0; padding:21px 17px; }
  .b-info>summary strong { font-size:20px; }
  .b-info>summary small,.b-info-content { font-size:15px; }
  .b-info-content { padding:6px 19px 22px; }
  .b-info>summary .b-kicker { font-size:11px; }
  .b-phase-banner { padding:19px 17px; gap:13px; align-items:flex-start; }
  .b-phase-symbol { width:40px; height:44px; font-size:18px; border-radius:11px; }
  .b-phase-banner h3 { font-size:21px; }
  .b-phase-banner p { font-size:15px; }
  .b-module>summary { min-height:0; padding:22px; }
  .b-module>summary strong { font-size:18px; }
  .b-module>summary .b-kicker { font-size:16px; }
  .b-module-description { font-size:15.5px; }
  .b-module>summary>.b-toggle { top:20px; right:20px; }
  .b-module-content { padding:0 22px 22px; }
  .b-method article { padding:23px; }
  .b-method { gap:16px; }
}
@media(max-width:520px) { .b-method { grid-template-columns:1fr; } }
/* Présentation éditoriale du parcours : pas de faux écran de formation. */
.b-hero-route { border-radius:24px; padding:30px; color:#fff; background:linear-gradient(135deg,#15233f,#223b60); box-shadow:0 22px 48px #1726401a; }
.b-route-heading { display:flex; gap:14px; align-items:center; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:#ccd8e8; margin-bottom:25px; }
.b-route-heading strong { color:#fff; font-size:13px; letter-spacing:0; }
.b-route-mark { width:48px; height:52px; display:grid; place-items:center; flex:none; font-size:27px; font-weight:850; background:#fff; color:var(--b-navy); border-left:5px solid var(--b-red); border-radius:12px; }
.b-hero-route h2 { color:#fff; font-size:28px; letter-spacing:-.035em; line-height:1.22; margin-bottom:25px; }
.b-route-steps { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.b-route-steps li { display:flex; align-items:flex-start; gap:13px; background:#fff; color:var(--b-navy); border-radius:13px; padding:19px 17px; border-left:4px solid #bd8b32; }
.b-route-steps li:nth-child(2) { border-left-color:#587fb8; }
.b-route-steps li:nth-child(3) { border-left-color:#278166; }
.b-route-number { color:#65738a; font-size:13px; font-weight:800; padding-top:3px; }
.b-route-steps strong { display:block; font-size:18px; line-height:1.3; }
.b-route-steps p { color:var(--b-muted); font-size:16px; line-height:1.5; margin:7px 0!important; }
.b-route-steps small { color:#42536c; font-size:13px; font-weight:750; }
.b-route-link { display:flex; gap:12px; align-items:center; justify-content:space-between; color:#fff; font-size:14px; font-weight:700; margin-top:23px; text-decoration:none; }
.b-route-link:hover { text-decoration:underline; }
.b-hero-route a:focus-visible { outline-color:#fff; }
/* Panneaux de lecture, insérés sous la rangée active par controleur-b.js. */
.b-info-grid,.b-module-grid { position:relative; }
.b-wide-panel { grid-column:1 / -1; min-width:0; border:1px solid var(--b-line); border-top:4px solid var(--b-phase,#587fb8); border-radius:18px; background:#fff; overflow:clip; }
.b-wide-panel[hidden] { display:none!important; }
.b-wide-panel .b-accordion-body { display:block; }
.b-panel-bar { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:23px 26px 17px; }
.b-panel-bar h3 { margin:0; font-size:23px; line-height:1.35; }
.b-panel-close { flex:none; font:inherit; font-size:13px; font-weight:750; color:#42536c; background:#f4f6fa; border:1px solid #d6deea; border-radius:8px; padding:9px 12px; cursor:pointer; }
.b-panel-close:hover { background:#e9eef5; }
.b-panel-close:focus-visible { outline:3px solid #a93528; outline-offset:3px; }
.b-panel-intro { font-size:18px; line-height:1.7; color:#34445c; }
.b-detail-tiles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:22px 0; }
.b-detail-tiles article { border:1px solid var(--b-line); border-radius:13px; padding:25px; background:#fff; }
.b-detail-tiles h3 { font-size:21px; margin:0 0 13px; }
.b-detail-tiles p { font-size:16.5px; line-height:1.7; color:var(--b-muted); }
.b-detail-tiles .b-detail-highlight { background:#edf6f2; border-color:#c9e5d9; }
.b-panel-links { display:flex; flex-wrap:wrap; gap:12px 25px; border-top:1px solid var(--b-line); margin-top:24px; padding-top:20px; }
.b-panel-links a { font-size:14px; font-weight:750; color:var(--b-red); }
.b-wide-panel .b-calendar { grid-template-columns:repeat(3,minmax(0,1fr)); }
.b-wide-panel .b-module-content ol { list-style:none; counter-reset:b-cours; padding:0; border:0; }
.b-wide-panel .b-module-content li { counter-increment:b-cours; display:grid; grid-template-columns:78px 1fr; gap:20px; align-items:start; padding:20px 0; margin:0; border-top:1px solid var(--b-line); }
.b-wide-panel .b-module-content li::before { content:'Cours ' counter(b-cours); background:#f0f3f9; border-radius:7px; padding:7px 8px; color:#42536c; font-size:12px; font-weight:800; text-align:center; }
.b-row-card.b-expanded .b-toggle { background:var(--b-phase); color:#fff; }
.b-exam-reading { margin-top:38px; padding:30px; background:#f5f7fb; border-radius:19px; }
.b-exam-reading .b-section-heading { margin-bottom:20px; }
.b-exam-reading .b-section-heading h3 { font-size:25px; margin:0; }
@media(max-width:760px) {
  .b-hero-route { padding:24px; }
  .b-hero-route h2 { font-size:26px; }
  .b-detail-tiles,.b-wide-panel .b-calendar { grid-template-columns:1fr; }
  .b-detail-tiles article { padding:21px; }
  .b-detail-tiles p { font-size:15.5px; }
  .b-panel-intro { font-size:16px; }
  .b-panel-bar { padding:19px 19px 15px; gap:12px; }
  .b-panel-bar h3 { font-size:20px; }
  .b-panel-close { padding:8px; font-size:12px; }
  .b-wide-panel .b-module-content li { grid-template-columns:65px 1fr; gap:12px; }
  .b-exam-reading { padding:22px 17px; }
}
@media(prefers-reduced-motion:reduce) { .b-page * { scroll-behavior:auto!important; transition:none!important; } }

/* Vitrine B V6 : même présentation que l'Agent C, sans annoncer de faux contenu. */
.b-hero-v2{
  position:relative;
  overflow:hidden;
  height:680px;
  padding:76px 0 68px;
  background:radial-gradient(circle at 88% 15%,#ffffff1b,transparent 25%),linear-gradient(115deg,#0a2d5c 0%,#12477e 58%,#22619b 100%);
  color:#fff;
}
.b-hero-v2:before{content:"";position:absolute;right:-150px;top:-360px;width:720px;height:720px;border:1px solid #ffffff29;border-radius:50%;box-shadow:0 0 0 95px #ffffff09,0 0 0 190px #ffffff06;pointer-events:none}
.b-hero-v2 .b-wrap{position:relative;z-index:1;height:100%}
.b-hero-v2 .b-hero-grid{height:100%;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:74px;align-items:center}
.b-hero-meta{display:flex;align-items:stretch;gap:12px;margin-bottom:28px}
.b-contest-card{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;background:#fff;color:#0b2e5d;box-shadow:0 14px 32px #03163033}
.b-contest-mark{display:grid;width:44px;height:44px;place-items:center;flex:none;border-radius:11px;background:#e8f1ff;color:#0b2e5d;font-size:23px;font-weight:900}
.b-contest-card>span:last-child{display:flex;min-width:0;flex-direction:column}.b-contest-card strong{font-size:15px;line-height:1.25}.b-contest-card small{margin-top:3px;color:#526782;font-size:11px;line-height:1.35}
.b-hero-meta .ja-countdown{min-width:142px;margin:0;padding:11px 14px;justify-content:center;gap:3px;border:1px solid #ffffff3d;border-radius:14px;background:linear-gradient(135deg,#173d6a,#245989);color:#fff;box-shadow:0 14px 32px #03163033}
@media(min-width:1101px){.b-contest-card{width:320px;min-height:66px}.b-hero-meta .ja-countdown{width:220px;min-height:66px}}
.b-hero-meta .ja-countdown-value{color:#ffd4d0;font-size:20px;line-height:1}.b-hero-meta .ja-countdown-copy{gap:2px}.b-hero-meta .ja-countdown-label{color:#fff;font-size:11px}.b-hero-meta .ja-countdown-date{color:#eef5ff;font-size:10px}.b-hero-meta .ja-countdown small{display:none}
.b-hero-v2 .b-eyebrow{margin-bottom:14px!important;color:#ff9188;font-size:12px;line-height:1.5;letter-spacing:1.7px}
.b-hero-v2 h1{max-width:670px;margin:0 0 22px;color:#fff;font-size:clamp(43px,4vw,57px);line-height:1.055;letter-spacing:-.05em}
.b-hero-v2 h1 em{color:#ef3f51}
.b-hero-v2 .b-lead{max-width:680px;margin:0 0 28px;color:#dbe8f8;font-size:18px;line-height:1.62}
.b-hero-v2 .b-actions{margin:0}.b-hero-v2 .b-button{border-color:#ef3f51;background:#ef3f51}.b-hero-v2 .b-button:hover{background:#d92f43}
.b-hero-v2 .b-button-outline{border-color:#ffffff7a;background:#ffffff12;color:#fff!important}.b-hero-v2 .b-button-outline:hover{border-color:#fff;background:#fff;color:#0b2e5d!important}
.b-hero-v2 .b-status{margin:19px 0 0;color:#fff}.b-hero-v2 .b-status-dot{background:#f4ba45;box-shadow:0 0 0 5px #ffffff14}
.b-hero-picture{position:relative;isolation:isolate}
.b-hero-picture:before{content:"";position:absolute;inset:18px -16px -18px 16px;z-index:-1;border-radius:28px;background:#ef3f51;transform:rotate(2.2deg)}
.b-hero-picture img{display:block;width:100%;aspect-ratio:16/10;border:7px solid #fff;border-radius:26px;object-fit:cover;object-position:center;box-shadow:0 28px 60px #03142b57}
.b-picture-sticker{position:absolute;right:-9px;bottom:18px;padding:12px 16px;border:4px solid #fff;border-radius:14px;background:#f4ba45;color:#17335a;font-size:13px;font-weight:900;line-height:1.25;text-align:center;transform:rotate(-2deg);box-shadow:0 12px 24px #03163038}
.b-hero-v2 .b-facts{margin-top:52px;border-color:#ffffff2b;background:#ffffff12;backdrop-filter:blur(6px)}
.b-hero-v2 .b-facts div{border-color:#ffffff2b}.b-hero-v2 .b-facts strong{color:#fff}.b-hero-v2 .b-facts span{color:#dbe8f8}.b-hero-v2 .b-small{color:#bfd0e5}
.b-facts-strip{padding:30px 0 24px;background:#f6f8fc;border-bottom:1px solid #dfe5ee}
.b-facts-strip .b-facts{margin-top:0;box-shadow:0 12px 30px #10264a0a}
.b-facts-strip .b-small{margin-top:12px!important}
.b-career-overview{padding:76px 0 70px;background:#fff}
.b-career-overview .b-section-heading{max-width:850px}
.b-career-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.b-career-grid article{padding:27px;border:1px solid var(--b-line);border-top:5px solid #ef3f51;border-radius:18px;background:#fff;box-shadow:0 12px 30px #10264a0f;transition:transform .22s ease,box-shadow .22s ease}
.b-career-grid article:nth-child(2){border-top-color:#4779c4}.b-career-grid article:nth-child(3){border-top-color:#e3a82f}.b-career-grid article:nth-child(4){border-top-color:#8a69ad}
.b-career-grid h3{margin:0 0 12px}.b-career-grid p{color:var(--b-muted);font-size:16.5px;line-height:1.7}.b-career-grid small{display:block;color:#344965;font-size:13px;font-weight:750;line-height:1.55}
.b-career-source{margin:24px 0 0!important;color:var(--b-muted);font-size:13px}.b-career-source a{color:#123f78;font-weight:800}
.b-card,.b-option,.b-detail-tiles article,.b-career-card,.b-method article,.b-resources>a,.b-calendar li,.b-facts div{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
@media(hover:hover){
  .b-card:hover,.b-option:hover,.b-detail-tiles article:hover,.b-career-card:hover,.b-career-grid article:hover,.b-method article:hover,.b-resources>a:hover,.b-calendar li:hover{transform:translateY(-5px);box-shadow:0 18px 36px #10264a1b}
}
@media(max-width:900px){.b-wrap{width:calc(100% - 40px)}.b-hero-v2{height:auto}.b-hero-v2 .b-hero-grid{grid-template-columns:1fr;gap:40px}.b-hero-meta{flex-wrap:wrap}.b-hero-picture{width:min(680px,100%);margin-inline:auto}}
@media(max-width:760px){
  .b-hero-v2{padding:48px 0 38px}
  .b-hero-v2 .b-facts{margin-top:40px}
  .b-career-overview{padding:50px 0 46px}.b-career-grid{grid-template-columns:1fr}.b-career-grid article{padding:22px}
}
@media(max-width:560px){.b-wrap{width:calc(100% - 32px)}}
@media(max-width:480px){
  .b-hero-meta{display:grid;grid-template-columns:1fr auto;gap:8px}
  .b-contest-card{padding:9px}.b-contest-mark{width:38px;height:38px;font-size:19px}.b-contest-card strong{font-size:13px}.b-contest-card small{font-size:10px}
  .b-hero-meta .ja-countdown{min-width:98px;padding:9px}
  .b-hero-v2 h1{font-size:39px}
  .b-hero-picture:before{inset:10px -7px -10px 7px;border-radius:20px}.b-hero-picture img{border-width:5px;border-radius:19px}.b-picture-sticker{right:4px;bottom:8px;padding:8px;border-width:3px;font-size:10px}
}

/* V70 — accordéons natifs lisibles et options balayables sur mobile. */
.ja-readable-page.b-page .b-info-grid>.b-info[open]{grid-column:1/-1;border-color:#aebfd4}
.ja-readable-page.b-page .b-info[open]>summary,
.ja-readable-page.b-page .b-info.b-expanded>summary{background:#eef4fa!important}
.ja-readable-page.b-page .b-info[open]>summary strong,
.ja-readable-page.b-page .b-info.b-expanded>summary strong{color:#15243c!important}
.ja-readable-page.b-page .b-info[open]>summary small,
.ja-readable-page.b-page .b-info.b-expanded>summary small{color:#4a586c!important}
.ja-readable-page.b-page .b-info[open]>summary .b-kicker,
.ja-readable-page.b-page .b-info.b-expanded>summary .b-kicker{color:#8e2635!important}
.ja-readable-page.b-page .b-info[open]>summary .b-toggle,
.ja-readable-page.b-page .b-info.b-expanded>summary .b-toggle{border-color:#b8c6d8!important;background:#fff!important;color:#315f99!important}

@media(max-width:760px){
  .ja-readable-page.b-page .b-options{display:flex;margin-right:-16px;padding:0 16px 10px 0;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .ja-readable-page.b-page .b-options::-webkit-scrollbar{display:none}
  .ja-readable-page.b-page .b-option,
  .ja-readable-page.b-page .b-option:nth-last-child(-n+2){flex:0 0 min(82vw,330px);min-height:245px;grid-column:auto;padding:23px 20px;scroll-snap-align:start}
}

/* Confort de lecture de la page Contrôleur. */
.b-page{font-size:17px}
.b-hero-v2 .b-lead{font-size:19px;line-height:1.68}
.b-section-heading>p:not(.b-eyebrow),.b-career-grid p,.b-detail-tiles p,
.b-exam p,.b-exam li,.b-option p,.b-group-content>p,.b-notice p:not(.b-eyebrow),
.b-method p,.b-career-card p,.b-faq-content,.b-resources p{font-size:17px;line-height:1.72}
.b-career-grid small{font-size:14px;line-height:1.6}
.b-test-teaser{padding:34px 0;background:linear-gradient(115deg,#eaf2ff,#fff4f3);border-bottom:1px solid var(--b-line)}
.b-test-teaser .b-wrap{display:flex;align-items:center;justify-content:space-between;gap:32px}
.b-test-teaser h2{margin-bottom:10px;font-size:30px}.b-test-teaser p:not(.b-eyebrow){max-width:760px;margin:0;color:var(--b-muted);font-size:16px}
.b-test-coming{flex:none;padding:13px 18px;border:2px solid #fff;border-radius:13px;background:#f4ba45;color:#17335a;font-size:12px;line-height:1.35;text-align:center;box-shadow:0 10px 24px #10264a1c;transform:rotate(-1deg)}
.b-test-coming strong{font-size:14px}
.b-test-coming{color:#17335a;text-decoration:none;font-weight:900}
@media(max-width:760px){.b-test-teaser .b-wrap{align-items:flex-start;flex-direction:column}.b-test-coming{align-self:flex-start}}

/* V14 — page B plus éditoriale et plus contrastée. */
.ja-readable-page.b-page .b-career-overview{background:#f7f9fc}
.ja-readable-page.b-page .b-career-overview .b-section-heading{max-width:920px;padding-left:24px;border-left:6px solid #ef3f51}
.ja-readable-page.b-page .b-career-overview .b-section-heading h2{color:#111f36;font-size:clamp(34px,3.1vw,44px)}
.ja-readable-page.b-page .b-career-overview .b-section-heading>p:not(.b-eyebrow){color:#3f4d62;font-size:18px;line-height:1.75}
.ja-readable-page.b-page .b-career-grid article{border-color:#cbd5e1!important;border-top-width:5px;background:#fff;box-shadow:0 12px 28px #10264a17}
.ja-readable-page.b-page .b-career-grid .b-kicker{color:#1d5fa8}
.ja-readable-page.b-page .b-career-grid h3{color:#12213a;font-size:23px}
.ja-readable-page.b-page .b-career-grid p{color:#34445a;font-size:17px;line-height:1.72}
.ja-readable-page.b-page .b-career-grid small{padding-top:13px;border-top:1px solid #d9e1eb;color:#243a58;font-size:14.5px;line-height:1.6}

.ja-readable-page.b-page .b-info-section{padding-block:70px;background:#f7f9fc}
.ja-readable-page.b-page .b-info-grid{gap:18px}
.ja-readable-page.b-page .b-info{border-color:#c4cfdd;background:#fff;box-shadow:0 12px 28px #10264a17}
.ja-readable-page.b-page .b-info>summary{background:linear-gradient(180deg,#fff 0%,#f8faff 100%);min-height:180px}
.ja-readable-page.b-page .b-info>summary strong{color:#15243c;font-size:22px}
.ja-readable-page.b-page .b-info>summary small{color:#4a586c;font-size:16px;line-height:1.5}
.ja-readable-page.b-page .b-info[open]:not(.b-enhanced)>summary,
.ja-readable-page.b-page .b-info.b-expanded>summary{background:#172640}
.ja-readable-page.b-page .b-info[open]:not(.b-enhanced)>summary strong,
.ja-readable-page.b-page .b-info.b-expanded>summary strong{color:#fff}
.ja-readable-page.b-page .b-info[open]:not(.b-enhanced)>summary small,
.ja-readable-page.b-page .b-info.b-expanded>summary small{color:#d5deea}
.ja-readable-page.b-page .b-info[open]:not(.b-enhanced)>summary .b-kicker,
.ja-readable-page.b-page .b-info.b-expanded>summary .b-kicker{color:#ffaba4}
.ja-readable-page.b-page .b-info[open]:not(.b-enhanced)>summary .b-toggle,
.ja-readable-page.b-page .b-info.b-expanded>summary .b-toggle{color:#172640;border-color:#fff;background:#fff}
.ja-readable-page.b-page .b-info-content{background:#fff;color:#34445a;font-size:17px;line-height:1.72}

.ja-readable-page.b-page #epreuves>.b-wrap>.b-section-heading{max-width:900px;padding:25px 28px;border-left:6px solid #ef3f51;border-radius:0 16px 16px 0;background:#f2f5f8}
.ja-readable-page.b-page .b-exam{border-color:#c5d0dd;box-shadow:0 12px 26px #10264a17}
.ja-readable-page.b-page .b-exam p,.ja-readable-page.b-page .b-exam li{color:#34445a}

.ja-readable-page.b-page #programme{background:#f7f9fc}
.ja-readable-page.b-page #programme>.b-wrap>.b-section-heading{max-width:940px;padding:26px 30px;border-left:7px solid #ef3f51;border-radius:0 17px 17px 0;background:#fff;box-shadow:0 14px 30px #10264a1a}
.ja-readable-page.b-page #programme>.b-wrap>.b-section-heading h2{color:#111f36;font-size:clamp(34px,3.1vw,44px)}
.ja-readable-page.b-page #programme>.b-wrap>.b-section-heading>p:not(.b-eyebrow){color:#3f4d62;font-size:18px;line-height:1.7}
.ja-readable-page.b-page .b-phase-banner{padding:22px 25px;border-left-width:7px;background:#172640;box-shadow:0 12px 28px #10264a26}
.ja-readable-page.b-page .b-phase-banner h3{color:#fff;font-size:25px}
.ja-readable-page.b-page .b-phase-banner p{color:#d7dfeb;font-size:17px}
.ja-readable-page.b-page .b-phase-banner .b-kicker{color:#ffaba4}
.ja-readable-page.b-page .b-module{border-color:#bcc9d8;background:#fff;box-shadow:0 8px 20px #10264a12}
.ja-readable-page.b-page .b-module>summary{background:#fff;min-height:205px}
.ja-readable-page.b-page .b-module>summary strong{color:#13223a}
.ja-readable-page.b-page .b-module-description{color:#46566c}
.ja-readable-page.b-page .b-module-content{background:#fff;color:#34445a}

/* V38 — la grille des quatre repères suit directement le calendrier. */
.ja-readable-page.b-page .b-facts-strip,.ja-readable-page.b-page .b-section-nav{display:none}
.ja-readable-page.b-page .b-info-section{padding-top:22px}
.ja-readable-page.b-page .b-module-description,.ja-readable-page.b-page .b-coming{display:none!important}
.ja-readable-page.b-page .b-module-status{margin-top:auto;padding-top:18px}
.ja-readable-page.b-page .b-module>summary>span:first-child{display:flex;height:100%;flex-direction:column}

@media(max-width:700px){
  .ja-readable-page.b-page .b-career-overview .b-section-heading{padding-left:17px}
  .ja-readable-page.b-page #epreuves>.b-wrap>.b-section-heading,
  .ja-readable-page.b-page #programme>.b-wrap>.b-section-heading{padding:22px 20px}
  .ja-readable-page.b-page .b-info>summary{min-height:0}
}
