:root{--creme:#f7f5f0;--creme-clair:#fbfaf6;--nuit:#0f2a44;--vert:#1d5c4a;--texte:#1a2433;--texte-doux:#5f6673;--ligne:#e6e2d8;--f-titre:"Manrope",system-ui,sans-serif;--f-texte:"Inter",system-ui,sans-serif}
/* Site — design system. Variables de marque injectées au build depuis config/brand.json. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}
body{margin:0;background:var(--creme);color:var(--texte);font:400 1.0625rem/1.65 var(--f-texte);text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--vert);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--nuit)}
:focus-visible{outline:3px solid var(--vert);outline-offset:3px;border-radius:3px}
h1,h2,h3{font-family:var(--f-titre);color:var(--nuit);letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.4rem,5.4vw,4.1rem);line-height:1.05;font-weight:700}
h2{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.15;font-weight:700}
h3{font-size:1.3125rem;line-height:1.3;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 1rem;max-width:66ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.evitement{position:absolute;left:1rem;top:-4rem;background:var(--nuit);color:#fff;padding:.6rem 1rem;border-radius:6px;z-index:20}
.evitement:focus{top:1rem}

/* En-tête fixe */
.entete{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--creme) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.entete[data-defile]{border-bottom-color:var(--ligne)}
.entete__in{max-width:1200px;margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem);display:flex;align-items:center;gap:1.5rem}
.logotype{font-family:var(--f-titre);font-weight:800;font-size:1.05rem;letter-spacing:.2em;color:var(--nuit);text-decoration:none;margin:0}
.entete .logotype{display:inline-flex;align-items:center;gap:.7rem}
.entete .logotype::before{content:"";width:1.45rem;height:1.45rem;border:2px solid var(--vert);border-radius:50%;background:linear-gradient(135deg,transparent 45%,var(--vert) 45% 55%,transparent 55%)}
.nav{margin-left:auto;display:flex;align-items:center;gap:1.75rem}
.nav a{color:var(--texte);text-decoration:none;font-weight:500;font-size:.98rem}
.nav a[aria-current="page"]{color:var(--vert);box-shadow:inset 0 -2px 0 var(--vert)}
.nav a:not(.bouton):hover{color:var(--vert)}
.nav__langue{border:1px solid var(--ligne);border-radius:99px;padding:.15rem .6rem;font-size:.85rem!important}
.menu-bouton{display:none;margin-left:auto;font:600 .95rem var(--f-texte);color:var(--nuit);background:none;border:1px solid var(--ligne);border-radius:99px;padding:.45rem 1rem;cursor:pointer}

/* Boutons */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1.2 var(--f-texte);min-height:44px;padding:.85rem 1.2rem;border-radius:10px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.bouton--plein{background:var(--vert);color:#fff!important}
.bouton--plein:hover{background:var(--nuit)}
.bouton--trait{border-color:var(--nuit);color:var(--nuit)}
.bouton--trait:hover{background:var(--nuit);color:#fff}
.bouton--clair{background:var(--creme);color:var(--nuit)!important}
.bouton--clair:hover{background:#fff}
.bouton--lien{padding:0;font-weight:600;color:var(--vert);border:0;text-decoration:underline;text-underline-offset:.25em}
.bouton--ouverture{border-color:#a9c6bb;color:#fff}
.bouton--ouverture:hover{background:#ffffff1a;color:#fff}
.bouton[disabled]{opacity:.6;cursor:wait}

main{max-width:1200px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}
main:focus{outline:none}

/* Ouverture et parcours d'accompagnement */
.ouverture{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr);
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;
  margin-top:.8rem;
  padding:clamp(1.7rem,5vw,4.1rem);
  border-radius:clamp(14px,2vw,26px);
  background:radial-gradient(ellipse at 90% 95%,#1b5647 0,transparent 58%),linear-gradient(135deg,#101f32,var(--nuit));
  color:#fff;
}
.ouverture::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-35% -26% -40% 40%;
  pointer-events:none;
  background:repeating-radial-gradient(ellipse at center,transparent 0 30px,#d2f2dd24 31px 32px,transparent 33px 62px);
  transform:rotate(-19deg);
}
.ouverture__surtitre,.parcours__surtitre,.section-sim__surtitre{font-size:.76rem;line-height:1.4;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.ouverture__surtitre,.parcours__surtitre{color:#cce7b5}
.ouverture__surtitre{margin-bottom:1rem}
.manifeste{font-size:clamp(2.65rem,5.55vw,4.6rem);line-height:1.01;letter-spacing:-.052em;font-weight:800;margin-bottom:1.25rem;color:#fff}
.manifeste span{display:block;text-wrap:balance}
.manifeste span+span{color:#cce7b5}
.chapeau{font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.55;color:var(--texte);max-width:38ch}
.actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.ouverture .chapeau{color:#ecf5f0}
.ouverture :focus-visible{outline-color:#cce7b5}
.ouverture__reperes{list-style:none;margin:1.35rem 0 0;padding:0;display:flex;gap:.45rem 1rem;flex-wrap:wrap;color:#e2efe6;font-size:.84rem}
.ouverture__reperes li{display:flex;align-items:center;gap:.42rem}
.ouverture__reperes li::before{content:"";height:.35rem;width:.35rem;border-radius:50%;background:#cce7b5}
.parcours{padding:clamp(1.1rem,2.6vw,1.9rem);border-radius:19px;background:#102838e8;border:1px solid #a5c9b58a;box-shadow:0 16px 38px #081c2963}
.parcours h2{color:#fff;font-size:clamp(1.25rem,2.1vw,1.65rem);margin-bottom:1.15rem}
.parcours__surtitre{margin-bottom:.45rem}
.parcours ol{list-style:none;padding:0;margin:0;display:grid;gap:.65rem;counter-reset:parcours}
.parcours li{counter-increment:parcours;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.7rem;border-top:1px solid #a5c9b54d;padding-top:.65rem}
.parcours li::before{content:counter(parcours,decimal-leading-zero);border:1px solid #a5c9b58a;background:#244b43;color:#e3f4d9;border-radius:6px;padding:.12rem .4rem;font:700 .8rem/1.45 var(--f-titre)}
.parcours h3{color:#f7f9f6;font-size:1rem}
.parcours li p{color:#dfebe3;font-size:.88rem;line-height:1.45;margin:.15rem 0 0}

.section-sim{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:clamp(1.5rem,5vw,4.3rem);padding:clamp(2.7rem,7vw,5rem) 0}
.section-sim__texte{padding-top:clamp(.5rem,2vw,1.7rem)}
.section-sim__surtitre{color:var(--vert);margin-bottom:.6rem}
.section-sim__texte h2{font-size:clamp(1.95rem,3.85vw,3.1rem);line-height:1.07;text-wrap:balance;margin-bottom:1rem}

.simulateur{background:#fff;border:1px solid var(--ligne);border-top:3px solid var(--vert);border-radius:18px;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 14px 35px #102a4410}
.simulateur h2{font-size:1.45rem;margin-bottom:.35rem}
.simulateur__intro{color:var(--texte-doux);font-size:.97rem;margin-bottom:1.2rem}
.simulateur__champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.9rem;margin-bottom:1.4rem}
.champ label{display:block;font-weight:500;font-size:.92rem;margin-bottom:.3rem;color:var(--nuit)}
.champ input,.champ select,.champ textarea{width:100%;font:400 1rem var(--f-texte);color:var(--texte);background:var(--creme-clair);border:1.5px solid var(--ligne);border-radius:10px;padding:.75rem .85rem;transition:border-color .15s,background-color .15s}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--vert);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--vert) 22%,transparent)}
.champ input[aria-invalid="true"],.champ textarea[aria-invalid="true"]{border-color:#a12a2a}
.champ__erreur{color:#a12a2a;font-size:.88rem;margin:.3rem 0 0;min-height:0}
.simulateur__resultats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ligne);border:1px solid var(--ligne);border-radius:12px;overflow:hidden}
.resultat{background:var(--creme-clair);padding:.85rem 1rem}
.resultat output{display:block;font:700 1.25rem/1.2 var(--f-titre);color:var(--nuit);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.resultat--grand output{font-size:clamp(1.35rem,4.5vw,1.75rem);color:var(--vert)}
.resultat span{font-size:.85rem;color:var(--texte-doux)}
.resultat:last-child{grid-column:1/-1}
.simulateur__message{color:#a12a2a;font-size:.9rem;min-height:1.2em;margin:.6rem 0 0}
.simulateur__note{font-size:.82rem;color:var(--texte-doux);margin:.4rem 0 1rem;line-height:1.5}

/* Bandes éditoriales */
.bande{padding:clamp(3rem,7vw,5.5rem) 0;border-top:1px solid var(--ligne)}
.titre-section{max-width:22ch;margin-bottom:clamp(2rem,4vw,3rem)}
.metiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,2rem)}
.metier{border:1px solid var(--ligne);border-top:3px solid var(--nuit);border-radius:14px;background:#fff;padding:clamp(1.35rem,3vw,2.2rem)}
.metier+.metier{border-top-color:var(--vert)}
.metier h2,.metier h3{margin-bottom:.8rem}
.metier ul{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.55rem}
.metier li{padding-left:1.4rem;position:relative}
.metier li::before{content:"";position:absolute;left:0;top:.7em;width:.65rem;height:2px;background:var(--vert)}
.etapes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,3vw,2.2rem);counter-reset:etape}
.etapes li{counter-increment:etape;padding:1.1rem;border:1px solid var(--ligne);border-radius:14px;background:var(--creme-clair)}
.etapes li::before{content:counter(etape,decimal-leading-zero);display:block;font:800 1.9rem/1 var(--f-titre);color:var(--vert);margin-bottom:.9rem;font-variant-numeric:tabular-nums}
.etapes h3{margin-bottom:.45rem}
.etapes p{font-size:.98rem;color:var(--texte)}
.formules{list-style:none;padding:0;margin:0 0 1.2rem;display:grid;gap:.7rem}
.formules li{font:600 clamp(1.05rem,1.8vw,1.3rem)/1.4 var(--f-titre);color:var(--nuit);padding:.9rem 1.1rem;background:#fff;border-left:3px solid var(--vert);border-radius:0 10px 10px 0}
.tarifs__exemple{color:var(--texte-doux)}
.appel{background:var(--nuit);margin:0 calc(-1 * clamp(1rem,4vw,2.5rem));border-radius:22px;margin-bottom:clamp(3rem,6vw,5rem)}
.appel__in{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem}
.appel__texte{font:700 clamp(1.6rem,3.6vw,2.6rem)/1.12 var(--f-titre);color:var(--creme);letter-spacing:-.025em;margin:0;max-width:20ch}
.page-titre{padding:clamp(3rem,7vw,5rem) 0 clamp(2rem,4vw,3rem)}
.page-titre h1{margin-bottom:1rem;text-wrap:balance}
.page-titre::before{content:"";display:block;width:2.75rem;height:.24rem;border-radius:99px;background:var(--vert);margin-bottom:1rem}
.avertissement{background:#fff6dd;border:1px solid #e8cf7a;color:#5c4813;border-radius:10px;padding:.8rem 1rem;max-width:none}
.faq details{border-bottom:1px solid var(--ligne);padding:1.15rem 0}
.faq summary{font:600 1.15rem/1.4 var(--f-titre);color:var(--nuit);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:500;color:var(--vert);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:.8rem 0 0}
.definitions{margin:0;display:grid;gap:1.4rem;max-width:760px}
.definitions dt{font:600 1.05rem var(--f-titre);color:var(--nuit)}
.definitions dd{margin:.25rem 0 0}

/* Formulaire */
.bande--formulaire{border-top:0;padding-top:0}
.formulaire{max-width:760px;background:#fff;border:1px solid var(--ligne);border-radius:18px;padding:clamp(1.4rem,4vw,2.5rem)}
.formulaire__grille{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem;margin-bottom:1rem}
.formulaire .champ{margin-bottom:1rem}
.champ--piege{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.champ--case{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start}
.champ--case input{width:1.25rem;height:1.25rem;margin-top:.2rem;accent-color:var(--vert)}
.champ--case label{font-weight:400;font-size:.92rem;color:var(--texte)}
.champ--case .champ__erreur{grid-column:2}
.formulaire__statut{margin:1rem 0 0;font-weight:500}
.formulaire__statut[data-etat="ok"]{color:var(--vert)}
.formulaire__statut[data-etat="erreur"]{color:#a12a2a}

/* Pied */
.pied{border-top:1px solid var(--ligne);margin-top:2rem}
.pied__in{max-width:1200px;margin:0 auto;padding:2.5rem clamp(1rem,4vw,2.5rem);display:grid;grid-template-columns:1.2fr 1fr auto;gap:2rem;align-items:start}
.logotype--pied{margin-bottom:.4rem}
.pied__signature{color:var(--vert);font-weight:500;margin:0}
.pied__note{color:var(--texte-doux);font-size:.92rem}
.pied__liens{display:grid;gap:.4rem;font-size:.92rem}
.pied__liens a{color:var(--texte)}

@media (max-width:960px){
  .ouverture,.section-sim{grid-template-columns:minmax(0,1fr)}
  .parcours{max-width:650px}
  .etapes{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .menu-bouton{display:inline-block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--creme);border-bottom:1px solid var(--ligne);padding:.5rem clamp(1rem,4vw,2.5rem) 1.2rem}
  .nav[data-ouvert]{display:flex}
  .nav a{padding:.85rem 0;border-bottom:1px solid var(--ligne)}
  .nav .bouton{margin-top:1rem;border-bottom:0}
  .nav__langue{align-self:flex-start;margin-top:.6rem;border-bottom:1px solid var(--ligne)!important}
  .metiers,.formulaire__grille,.etapes{grid-template-columns:1fr}
  .pied__in{grid-template-columns:1fr}
  .appel{margin-left:0;margin-right:0}
}
@media (max-width:480px){
  .ouverture .actions{gap:.55rem;margin-top:1.35rem}
  .ouverture .actions .bouton{width:100%}
  .simulateur__champs{grid-template-columns:minmax(0,1fr)}
  .resultat{padding:.7rem}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
