/* Shared enrolment: orange for Seconde, purple for Prépa Bac. */
.stage-modal {
  --stage-accent:#ff9d16;
  --stage-accent-end:#ffb629;
  --stage-strong:#a54400;
  --stage-soft:#fff2df;
  --stage-line:#ecdac4;
  --stage-on-accent:var(--ml-ink);
  --stage-surface:#fffdf9;
  --stage-focus:#b95700;
  box-sizing:border-box;
  width:min(680px,calc(100% - 40px));
  max-height:calc(100dvh - 48px);
  padding:0;
  border:0;
  border-radius:26px;
  background:var(--stage-surface);
  color:var(--ml-ink);
  font-family:Onest,sans-serif;
  box-shadow:0 30px 100px #12203340;
  overflow:hidden;
}
.stage-modal[data-family="prepa"] {
  --stage-accent:#7132ec;
  --stage-accent-end:#9560ff;
  --stage-strong:#6126c6;
  --stage-soft:#f1eaff;
  --stage-line:#e0d4f1;
  --stage-on-accent:#fff;
  --stage-surface:#fefcff;
  --stage-focus:#7132ec;
}
.stage-modal[open]{display:flex;flex-direction:column;animation:stage-open .22s ease-out}
.stage-modal::backdrop{background:#1220339c;backdrop-filter:blur(5px)}
.stage-modal *{box-sizing:border-box}
.stage-modal [hidden]{display:none!important}
.stage-modal :is(button,input,select){font-family:inherit}
.stage-modal :is(button,a,input,select):focus-visible{outline:3px solid var(--stage-focus);outline-offset:3px}
.stage-modal__intro{position:relative;isolation:isolate;overflow:hidden;flex-shrink:0;background:linear-gradient(115deg,var(--stage-accent),var(--stage-accent-end));color:var(--stage-on-accent);padding:26px 32px 21px}
.stage-modal__waves{position:absolute;inset:0;z-index:-1;width:100%;height:100%;fill:none;stroke:#fff;stroke-width:60;opacity:.15;pointer-events:none}
.stage-modal__close{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #ffffff90;border-radius:50%;background:#ffffffcf;color:var(--ml-ink);cursor:pointer;transition:background .18s,transform .18s;z-index:2}
.stage-modal__close:hover{background:white;transform:rotate(6deg)}
.stage-modal .stage-modal__close .ml-icon{width:21px;height:21px;stroke-width:1.8}
.stage-modal__eyebrow{margin:0 42px 9px 0;text-transform:uppercase;font-size:11px;font-weight:750;letter-spacing:1.5px}
.stage-modal h2{position:relative;z-index:1;margin:0 158px 7px 0;font-size:32px;line-height:1.15;letter-spacing:-1px;font-weight:800;max-width:400px;outline:none}
.stage-modal__lead{position:relative;z-index:1;margin:0 158px 0 0;font-size:14px;line-height:1.4}
.stage-modal__portrait{position:absolute;right:8px;bottom:0;width:184px;height:198px;object-fit:contain;object-position:bottom;pointer-events:none}
.stage-modal__step{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.stage-modal__progress{position:relative;z-index:1;display:flex;gap:10px;list-style:none;margin:20px 0 0;padding:0;max-width:400px}
.stage-modal__progress li{display:flex;align-items:center;gap:9px;padding:8px 14px 8px 9px;border:1px solid #ffffff65;border-radius:30px;font-size:12px;font-weight:650;line-height:1.1;background:var(--stage-accent);color:var(--stage-on-accent);transition:background .18s}
.stage-modal__progress li[aria-current="step"],.stage-modal__progress li.is-complete{background:#fff;color:var(--ml-ink);border-color:#fff}
.stage-modal__progress-number{display:grid;place-items:center;width:23px;height:23px;flex-shrink:0;border-radius:50%;background:#ffffff80;color:var(--ml-ink);font-size:12px;font-weight:750}
.stage-modal__progress li[aria-current="step"] .stage-modal__progress-number,.stage-modal__progress li.is-complete .stage-modal__progress-number{background:var(--stage-accent);color:var(--stage-on-accent)}
.stage-modal__body{padding:25px 32px 22px;overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:var(--stage-line) transparent}
.stage-modal__fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:17px 18px}
.stage-modal__fields label{display:grid;gap:7px;font-size:13px;line-height:1.4;font-weight:650;min-width:0}
.stage-modal__wide{grid-column:1/-1}
.stage-modal :is(input,select){width:100%;min-width:0;height:49px;border:1px solid var(--stage-line);border-radius:11px;padding:10px 13px;background:white;color:var(--ml-ink);font-size:15px;font-weight:450;transition:border-color .18s,box-shadow .18s}
.stage-modal select{padding-right:30px;cursor:pointer}
.stage-modal :is(input,select):hover{border-color:var(--stage-strong)}
.stage-modal :is(input,select):focus{border-color:var(--stage-focus);box-shadow:0 0 0 3px var(--stage-soft)}
.stage-modal input::placeholder{color:#79808a;font-weight:400}
.stage-modal__summary{display:flex;align-items:center;gap:15px;margin:21px 0 18px;padding:16px 18px;border:1px solid var(--stage-line);border-radius:15px;background:var(--stage-soft)}
.stage-modal__summary-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:14px;background:#fff;color:var(--stage-strong)}
.stage-modal .stage-modal__summary-icon .ml-icon{width:28px;height:28px;stroke-width:1.8}
.stage-modal__summary-label{color:var(--stage-strong);font-size:10px;letter-spacing:.9px;font-weight:750;text-transform:uppercase;margin:0 0 3px}
.stage-modal__summary strong{display:block;font-size:15px;line-height:1.35;font-weight:750}
.stage-modal__summary [data-stage-summary],.stage-modal__summary [data-stage-recap]{font-size:13px;line-height:1.5;margin:4px 0 0;white-space:pre-line}
.stage-modal__button{--stage-button-bg:var(--stage-accent);--stage-button-text:var(--stage-on-accent);display:block;width:100%;border:0;border-radius:30px;min-height:51px;padding:13px 20px;background:var(--stage-button-bg);color:var(--stage-button-text);font-size:16px;font-weight:750!important;line-height:1.4;cursor:pointer;box-shadow:0 4px 0 color-mix(in srgb,var(--stage-button-bg),#773c00 12%);transition:filter .18s,transform .18s,box-shadow .18s}
.stage-modal__button[type="submit"]{--stage-button-bg:var(--ml-red);--stage-button-text:#fff}
.stage-modal__button:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 5px 0 color-mix(in srgb,var(--stage-button-bg),#773c00 12%)}
.stage-modal__button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 color-mix(in srgb,var(--stage-button-bg),#773c00 12%)}
.stage-modal__button:disabled{opacity:.65;cursor:wait;box-shadow:none}
.stage-modal__back{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:2px 0;color:var(--stage-strong);font-size:13px;font-weight:650!important;cursor:pointer;min-height:24px}
.stage-modal__back:hover{text-decoration:underline}
.stage-modal .stage-modal__back .ml-icon{width:17px;height:17px}
#stage-contact-form .stage-modal__summary{margin-top:13px}
.stage-modal__privacy{font-size:11px;line-height:1.6;color:#596270;margin:20px 0 17px}
.stage-modal__privacy a{color:var(--stage-strong);text-decoration:underline}
.stage-modal__tentative{color:var(--stage-strong);font-size:12px;line-height:1.45;margin:-5px 0 17px}
.stage-modal__error{border:1px solid #eec5c5;border-left:4px solid var(--ml-red);border-radius:10px;background:#fff2f1;color:#8d2227;padding:13px 15px;font-size:13px;line-height:1.5;margin:0 0 19px}
.stage-modal__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.stage-modal__success{text-align:center;padding:10px 18px 6px}
.stage-modal__check{display:inline-grid;place-items:center;width:90px;height:90px;border:8px solid var(--stage-soft);border-radius:50%;background:var(--stage-accent);color:var(--stage-on-accent);margin-bottom:10px;box-shadow:0 0 0 9px var(--stage-surface)}
.stage-modal .stage-modal__check .ml-icon{width:41px;height:41px;stroke-width:2.4}
.stage-modal__success h3{font-size:22px;letter-spacing:-.6px;line-height:1.3;margin:8px 0 12px}
.stage-modal__success p{font-size:14px;line-height:1.6;margin:10px auto;max-width:430px}
.stage-modal__success .stage-modal__button{margin-top:25px}
@keyframes stage-open{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:600px){
  .stage-modal{width:calc(100% - 20px);max-height:calc(100dvh - 24px);border-radius:21px}
  .stage-modal__intro{padding:22px 22px 18px}
  .stage-modal__close{right:13px;top:13px;width:38px;height:38px}
  .stage-modal__eyebrow{font-size:10px;letter-spacing:1.1px;margin-bottom:9px}
  .stage-modal h2{font-size:27px;letter-spacing:-.8px;margin-right:114px;max-width:290px}
  .stage-modal__lead{font-size:12px;line-height:1.5;margin-right:114px}
  .stage-modal__portrait{width:142px;height:160px;right:0}
  .stage-modal__progress{gap:8px;margin-top:15px}
  .stage-modal__progress li{font-size:11px;padding:7px 11px 7px 7px;gap:7px}
  .stage-modal__progress-number{width:21px;height:21px;font-size:11px}
  .stage-modal__body{padding:20px 22px}
  .stage-modal__fields{gap:15px;grid-template-columns:1fr}
  .stage-modal__fields label{font-size:12px;gap:6px}
  .stage-modal :is(input,select){font-size:16px;height:47px;border-radius:10px}
  .stage-modal__summary{gap:12px;padding:14px;margin:19px 0 17px;align-items:flex-start}
  .stage-modal__summary-icon{width:37px;height:40px;border-radius:11px}
  .stage-modal .stage-modal__summary-icon .ml-icon{width:23px;height:23px}
  .stage-modal__summary strong{font-size:14px}
  .stage-modal__summary [data-stage-summary],.stage-modal__summary [data-stage-recap]{font-size:12px}
  .stage-modal__button{font-size:15px;min-height:49px}
  .stage-modal__privacy{font-size:11px;margin-top:17px}
  .stage-modal__success{padding:8px 0 4px}
  .stage-modal__success h3{font-size:21px}
}
@media(max-width:360px){.stage-modal__intro{padding:20px 17px 16px}.stage-modal__body{padding:18px}.stage-modal h2{font-size:25px}.stage-modal__progress li{font-size:10px}.stage-modal__eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){.stage-modal,.stage-modal *{animation:none!important;transition:none!important}}
