/* Concept : le dossier de départ d'un étudiant, entre Casablanca et Paris. Bande marine, route en pointillés, résultats en cartes d'embarquement. */
@font-face{font-family:Nunito;font-weight:400;font-display:swap;src:url(fonts/nunito-400.woff2) format("woff2")}
@font-face{font-family:Nunito;font-weight:700;font-display:swap;src:url(fonts/nunito-700.woff2) format("woff2")}
@font-face{font-family:Nunito;font-weight:800;font-display:swap;src:url(fonts/nunito-800.woff2) format("woff2")}
@font-face{font-family:Playfair;font-weight:800;font-display:swap;src:url(fonts/playfair-800.woff2) format("woff2")}
@font-face{font-family:Dafoe;font-display:swap;src:url(fonts/dafoe.woff2) format("woff2")}
:root{--bg:#F4F7FB;--surface:#FFFFFF;--ink:#07182E;--muted:#45586F;--line:#C5D0DE;--accent:#2C5AA8;--soft:#E6EDF6;--band:#07182E;--band2:#17365C;--band-ink:#FFFFFF;--band-muted:#C5D0DE;--script:#7DB6FF;--wa:#0B7A3E;--wa-ink:#FFFFFF;--warn-bg:#FBF0DC;--warn-ink:#7A4A00;--display:Playfair,Georgia,"Times New Roman",serif;--body:Nunito,"Segoe UI",Roboto,Arial,sans-serif;--hand:Dafoe,"Brush Script MT",cursive}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#081526;--surface:#0F2138;--ink:#EAF0F8;--muted:#AEBDD0;--line:#2B4464;--accent:#8DBDFF;--soft:#16304F;--band:#050F1E;--band2:#17365C;--warn-bg:#3A2A0C;--warn-ink:#F6D595;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#081526;--surface:#0F2138;--ink:#EAF0F8;--muted:#AEBDD0;--line:#2B4464;--accent:#8DBDFF;--soft:#16304F;--band:#050F1E;--band2:#17365C;--warn-bg:#3A2A0C;--warn-ink:#F6D595;color-scheme:dark}
*{box-sizing:border-box}[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body)}
.wrap{max-width:1040px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
a{color:var(--accent);text-underline-offset:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}
h1,h2{font-family:var(--display);font-weight:800;text-wrap:balance;margin:0}
h1{font-size:clamp(2rem,5vw,3.15rem);line-height:1.1}h2{font-size:clamp(1.45rem,3vw,1.95rem);line-height:1.2;margin-top:2.4rem;margin-bottom:.7rem}
h3{font-size:1.08rem;font-weight:800;margin:1.2rem 0 .3rem}p{margin:0 0 .9rem;max-width:68ch}ul,ol{max-width:68ch;padding-left:1.2rem;margin:0 0 1rem}li{margin-bottom:.3rem}
.top{background:var(--band);color:var(--band-ink)}.top .wrap{display:flex;gap:.8rem 1.4rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:.65rem}
.brand img{display:block;width:96px;height:auto}.top nav{display:flex;gap:.3rem 1.1rem;flex-wrap:wrap;font-size:.92rem;font-weight:700}.top a{color:var(--band-ink);text-decoration:none}.top nav a:hover,.top nav a[aria-current]{text-decoration:underline}
.hero{background:linear-gradient(145deg,var(--band) 25%,var(--band2));color:var(--band-ink)}.hero .wrap{padding-block:1.8rem 2.3rem}
.hand{font:400 clamp(1.5rem,3.5vw,2.1rem)/1.1 var(--hand);color:var(--script);margin:0 0 .3rem}.hero p{color:#E4EBF4}.hero .lede{font-size:1.1rem;margin:.8rem 0 0}
.proof{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.7rem;color:var(--band-ink);font-size:.95rem;font-weight:700;text-decoration:none}.proof:hover{text-decoration:underline}.stars{color:#FFC94D;letter-spacing:.06em}
.route{display:flex;align-items:center;gap:.6rem;margin-top:1.1rem;font-weight:800;letter-spacing:.08em;font-size:.82rem;color:var(--band-muted);max-width:430px}.route span{flex:1;border-top:2px dashed var(--band-muted);position:relative}.route span::after{content:"";position:absolute;right:-1px;top:-6px;border-left:9px solid var(--band-muted);border-block:5px solid transparent}
.camp{background:var(--warn-bg);color:var(--warn-ink);font-size:.93rem;font-weight:700}.camp .wrap{padding-block:.55rem}
main{padding-block:1.3rem 3.2rem}.crumb{font-size:.86rem;color:var(--muted);margin-bottom:.5rem}.answer{font-size:1.12rem}
.fresh{font-size:.84rem;color:var(--muted)}
.tool{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:1.4rem;align-items:start;margin:1rem 0 1.6rem}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.1rem;min-width:0}
.field{display:grid;gap:.2rem;margin-bottom:.8rem}.field label,.lab{font-weight:700;font-size:.92rem}.hint{font-size:.8rem;color:var(--muted);line-height:1.35}
input[type=number],input[type=text],input[type=tel],select{width:100%;font:inherit;font-size:16px;padding:.5rem .6rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .8rem}details{border-top:1px solid var(--line);padding-top:.7rem;margin-top:.2rem}summary{font-weight:800;cursor:pointer;margin-bottom:.7rem;color:var(--accent)}
.check{display:flex;gap:.55rem;align-items:flex-start;font-size:.93rem}.check input{margin-top:.28rem;flex:none;width:17px;height:17px;accent-color:var(--accent)}
.pass{background:var(--band);color:var(--band-ink);border-radius:14px;overflow:hidden;position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
.pass-head{display:flex;justify-content:space-between;gap:.6rem;font-size:.75rem;letter-spacing:.09em;font-weight:800;color:var(--band-muted);padding:.8rem 1.1rem .1rem;text-transform:uppercase}
.pass-main{padding:.3rem 1.1rem 1rem}.big{font:800 clamp(2.2rem,5vw,2.8rem)/1.1 var(--display);margin-top:.15rem}.pass-sub{color:var(--band-muted);font-weight:700;font-variant-numeric:tabular-nums}
.perf{border-top:2px dashed var(--band-muted);position:relative;margin-inline:.1rem}.perf::before,.perf::after{content:"";position:absolute;top:-9px;width:17px;height:17px;border-radius:50%;background:var(--bg)}.perf::before{left:-10px}.perf::after{right:-10px}
.pass-lines{padding:.8rem 1.1rem;display:grid;gap:.42rem;font-size:.93rem}.pass-lines div{display:flex;justify-content:space-between;gap:1rem}.pass-lines b{font-variant-numeric:tabular-nums;white-space:nowrap}
.pass-note{padding:0 1.1rem 1rem;font-size:.84rem;color:#D8E1EC}.pass-note p{margin-bottom:.45rem}.pass-alert{background:var(--warn-bg);color:var(--warn-ink);padding:.55rem .7rem;border-radius:7px;font-weight:700;margin-bottom:.6rem}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.45rem;font:800 1rem var(--body);padding:.72rem 1rem;border-radius:9px;border:0;cursor:pointer;text-decoration:none;text-align:center}.btn-wa{background:var(--wa);color:var(--wa-ink)}.btn-wa:hover{filter:brightness(1.1)}.btn-plain{background:var(--soft);color:var(--ink)}.full{width:100%}.pass .btn-wa{margin:0 1.1rem 1.1rem;width:calc(100% - 2.2rem)}
.dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:none;opacity:.8}
.mbar{position:fixed;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:5;display:flex;gap:.5rem}.mbar .btn{box-shadow:0 5px 18px rgba(7,24,46,.3);padding:.62rem .9rem;font-size:.92rem}.btn-call{background:var(--band);color:var(--band-ink);border:1px solid var(--band-muted)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:1.6rem;align-items:start}.hero-grid>*{min-width:0}.hero-cta{margin-top:1.1rem}.hero .lead{margin:0;color:var(--ink)}main .lead{color:var(--ink)}.hero .lead h2{font-size:1.3rem;margin-bottom:.3rem}.hero .lead p{color:var(--muted);font-size:.93rem}.hero .lead .form-msg{color:var(--ink)}.lead{scroll-margin-top:16px}
.magnet{display:flex;gap:1rem 1.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--soft);border-radius:12px;padding:1.1rem;margin:1.6rem 0}.magnet>div{flex:1 1 320px;min-width:0}
.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 .5rem}.card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.1rem;color:var(--ink);text-decoration:none;min-width:0}.card:hover{border-color:var(--accent)}.card h2,.card h3{font-family:var(--display);font-weight:800;font-size:1.3rem;margin:0 0 .3rem}.card p{margin:0 0 .5rem;font-size:.96rem;color:var(--muted)}.card .go{font-weight:800;color:var(--accent);font-size:.93rem}
.scroll{overflow-x:auto;margin:.6rem 0 1.1rem;border:1px solid var(--line);border-radius:10px;background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{padding:.6rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}tbody tr:last-child>*{border-bottom:0}thead th{background:var(--soft);font-weight:800}tbody th{font-weight:800;min-width:118px}.num{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}
.pick{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.pick label{display:flex;gap:.4rem;align-items:center;background:var(--surface);border:1px solid var(--line);padding:.38rem .65rem;border-radius:99px;font-weight:700;font-size:.9rem;cursor:pointer}.pick label:has(input:checked){border-color:var(--accent);background:var(--soft)}.pick label:has(input:disabled){opacity:.55;cursor:not-allowed}
.progress{height:8px;background:var(--soft);border-radius:9px;overflow:hidden;margin:.45rem 0 .9rem}.progress i{display:block;height:100%;background:var(--accent);width:0;transition:width .2s}@media (prefers-reduced-motion:reduce){.progress i{transition:none}}
fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-weight:800;font-size:1.1rem;padding:0;margin-bottom:.7rem}.opt{display:flex;gap:.6rem;align-items:flex-start;padding:.62rem .75rem;border:1px solid var(--line);border-radius:9px;margin-bottom:.45rem;cursor:pointer;background:var(--bg)}.opt:hover,.opt:has(input:checked){border-color:var(--accent)}.opt input{margin-top:.28rem;accent-color:var(--accent);flex:none}
.docs-group{margin-bottom:1.1rem}.docs-group h3{margin-top:.2rem}.doclist{list-style:none;padding:0;margin:0;max-width:none}.doclist li{border-top:1px solid var(--line);padding:.55rem 0;margin:0}.doclist .t{font-weight:700;display:block}.doclist small{color:var(--muted);display:block;line-height:1.35}
.lead{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.1rem;margin:1.7rem 0}.lead h2{margin-top:0}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .8rem}.form-msg{font-weight:700;margin:.6rem 0 0;font-size:.93rem}.lead .sr{position:absolute;left:-9999px}
.box-warn{background:var(--warn-bg);color:var(--warn-ink);padding:.8rem 1rem;border-radius:9px;margin:0 0 1rem;max-width:68ch}
.faq details{padding-block:.7rem;margin:0}.faq summary{margin:0;color:var(--ink)}.faq details p{margin:.5rem 0 0}.sources{font-size:.87rem;color:var(--muted)}.sources li{margin-bottom:.2rem}
footer{background:var(--band);color:var(--band-muted);font-size:.88rem}footer .wrap{padding-block:1.4rem 4.5rem;display:grid;gap:.4rem}footer a{color:var(--band-ink)}.foot-links{display:flex;flex-wrap:wrap;gap:.2rem 1rem}
@media (max-width:760px){.hero-grid{grid-template-columns:minmax(0,1fr)}.hero-cta{display:none}.mbar{left:0;right:0;bottom:0;gap:0;padding:.5rem max(12px,env(safe-area-inset-right,0px)) calc(.5rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:var(--surface);border-top:1px solid var(--line);gap:.5rem}.mbar .btn{flex:1;box-shadow:none}.btn-call{border-color:var(--band)}.hero .wrap{padding-block:1.1rem 1.4rem}.route{display:none}.hero .lede{font-size:1rem;margin-top:.5rem}.tool{grid-template-columns:minmax(0,1fr)}.tools-grid{grid-template-columns:minmax(0,1fr)}.pass{position:static}body{font-size:16px}}
@media (max-width:440px){.grid-form{grid-template-columns:minmax(0,1fr)}.brand img{width:80px}}
