/* Francophone Mobility page – matches the homepage OIS design system (osi-v2 tokens). Scoped to .oifm */
.oifm{--bg:#FAFAF7;--surface:#FFFFFF;--mist:#E6EDF0;--ink:#0F2A3D;--ink-2:#1C3F59;--text:#1B2530;--muted:#56636E;--line:#D6DFE4;--stamp:#B8322A;--stamp-soft:#F6E3E0;--pine:#2E5E4E;--pine-soft:#E0ECE7;--on-ink:#F3F6F8;--on-ink-muted:#A9BCC9;--radius-lg:22px;--radius:12px;--display:"Bricolage Grotesque",sans-serif;--body:"Instrument Sans",sans-serif;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.6;overflow:hidden}
.oifm *,.oifm *::before,.oifm *::after{box-sizing:border-box}
.oifm h1,.oifm h2,.oifm h3,.oifm h4{font-family:var(--display);color:var(--ink);line-height:1.1;letter-spacing:-.02em;margin:0;font-weight:800;text-transform:none}
.oifm p{margin:0}
.oifm ul,.oifm ol{margin:0;padding:0;list-style:none}
.oifm a{text-decoration:none}
.oifm svg{display:block}
.oifm .hero-grid>*,.oifm .intro-grid>*,.oifm .elig-grid>*,.oifm .lang-top>*,.oifm .score>*,.oifm .how>*,.oifm .faq-grid>*,.oifm .cta-grid>*,.oifm .cards>*,.oifm .pos>*,.oifm .need>*{min-width:0}
.oifm .wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.oifm section{padding:88px 0}
.oifm .eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--stamp);background:var(--stamp-soft);padding:8px 14px;border-radius:999px}
.oifm .sec-head{max-width:720px;margin-bottom:44px}
.oifm .sec-head h2{font-size:clamp(30px,3.4vw,44px);margin-top:16px}
.oifm .sec-head p{color:var(--muted);margin-top:14px;font-size:17px}
.oifm .btn{display:inline-flex;align-items:center;gap:10px;font:600 15px/1 var(--body);padding:15px 24px;border-radius:999px;transition:transform .15s,box-shadow .15s,background .15s,color .15s;border:1.5px solid transparent}
.oifm .btn svg{width:18px;height:18px;transition:transform .15s}
.oifm .btn:hover svg{transform:translateX(3px)}
.oifm .btn-red{background:var(--stamp);color:#fff}
.oifm .btn-red:hover{background:#9E2A23;color:#fff;box-shadow:0 14px 28px -16px rgba(184,50,42,.8)}
.oifm .btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.oifm .btn-ghost:hover{background:#fff;color:var(--ink)}
.oifm .btn-line{border-color:var(--line);color:var(--ink);background:var(--surface)}
.oifm .btn-line:hover{border-color:var(--ink);color:var(--ink)}

/* hero */
.oifm .hero{position:relative;background:var(--ink);color:var(--on-ink);padding:72px 0 96px}
.oifm .hero .rings>*{position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
.oifm .hero .rings .r1{width:760px;height:760px;right:-240px;top:-280px}
.oifm .hero .rings .r2{width:460px;height:460px;right:-80px;top:-120px;border-color:rgba(255,255,255,.11)}
.oifm .hero .rings .r3{width:1100px;height:1100px;left:-640px;bottom:-820px}
.oifm .hero .leaf{position:absolute;width:520px;left:-140px;bottom:-160px;color:rgba(255,255,255,.04);pointer-events:none}
.oifm .crumbs{position:relative;display:flex;gap:8px;font-size:14px;color:var(--on-ink-muted);margin-bottom:34px;flex-wrap:wrap}
.oifm .crumbs a{color:var(--on-ink-muted)}
.oifm .crumbs a:hover{color:#fff}
.oifm .hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.oifm .hero .eyebrow{background:rgba(255,255,255,.1);color:#F0A39C}
.oifm .hero h1{color:#fff;font-size:clamp(38px,5vw,64px);margin:20px 0 22px}
.oifm .hero h1 em{font-style:normal;color:#F0A39C}
.oifm .hero .lead{font-size:18px;color:var(--on-ink-muted);max-width:56ch}
.oifm .hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.oifm .hero .facts{display:flex;gap:36px;flex-wrap:wrap;margin-top:44px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}
.oifm .hero .facts b{display:block;font:800 26px/1.1 var(--display);color:#fff}
.oifm .hero .facts span{font-size:14px;color:var(--on-ink-muted)}
.oifm .glance{position:relative;background:var(--surface);color:var(--text);border-radius:var(--radius-lg);padding:28px;box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.oifm .glance .flag{flex:none;width:72px;height:36px;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px rgba(15,42,61,.18)}
.oifm .glance .g-head{display:flex;align-items:center;gap:16px;padding-right:84px}
.oifm .glance h2{font-size:24px}
.oifm .glance .g-sub{color:var(--muted);font-size:14px;margin-top:4px}
.oifm .glance dl{margin:20px 0 0;display:grid;gap:8px}
.oifm .glance dl div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius)}
.oifm .glance dt{font-size:13px;font-weight:600;color:var(--pine)}
.oifm .glance dd{margin:0;font-size:15px;font-weight:600;color:var(--text);line-height:1.4}
.oifm .glance .g-foot{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 14px;border-radius:var(--radius);background:var(--stamp-soft);color:var(--stamp);font-weight:600;font-size:14px}
.oifm .glance .g-foot svg{width:20px;height:20px;flex:none}
.oifm .stamp{position:absolute;right:-18px;top:-44px;width:118px;height:118px;transform:rotate(-12deg);color:var(--stamp);pointer-events:none}

/* what it is */
.oifm .intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.oifm .intro-grid .big{font-size:19px;line-height:1.65;color:var(--text)}
.oifm .intro-grid .big strong{color:var(--stamp)}
.oifm .ticks{display:grid;gap:12px;margin-top:26px}
.oifm .ticks li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.oifm .ticks .ck{flex:none;width:24px;height:24px;border-radius:50%;background:var(--stamp);color:#fff;display:grid;place-items:center;margin-top:1px}
.oifm .ticks .ck svg{width:14px;height:14px}
.oifm .ticks.pine .ck{background:var(--pine)}
.oifm .stats{display:grid;gap:14px}
.oifm .stat{background:var(--ink);color:var(--on-ink);border-radius:var(--radius-lg);padding:22px 24px;display:flex;align-items:center;gap:18px}
.oifm .stat b{font:800 30px/1 var(--display);color:#F0A39C;min-width:118px}
.oifm .stat span{color:var(--on-ink-muted);font-size:15px}
.oifm .note{font-size:13px;color:var(--muted);margin-top:14px}

/* cards */
.oifm .alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.oifm .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.oifm .card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;overflow:hidden;transition:transform .25s,box-shadow .25s}
.oifm .alt .card{background:var(--bg)}
.oifm .card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--pine),var(--stamp));opacity:0;transition:opacity .25s}
.oifm .card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(15,42,61,.35)}
.oifm .card:hover::before{opacity:1}
.oifm .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--pine-soft);color:var(--pine);margin-bottom:18px}
.oifm .ic svg{width:24px;height:24px}
.oifm .ic.red{background:var(--stamp-soft);color:var(--stamp)}
.oifm .card h3{font-size:20px;margin-bottom:8px}
.oifm .card p{color:var(--muted);font-size:15px}

/* eligibility */
.oifm .elig-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:start}
.oifm .elig-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 28px}
.oifm .elig-list li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line);align-items:start}
.oifm .elig-list li:first-child{border-top:0}
.oifm .elig-list .n{width:44px;height:44px;border-radius:50%;background:var(--pine-soft);color:var(--pine);display:grid;place-items:center;font:800 17px/1 var(--display)}
.oifm .elig-list b{display:block;color:var(--ink);font-size:17px}
.oifm .elig-list span{color:var(--muted);font-size:15px}
.oifm .side{display:grid;gap:18px}
.oifm .panel{border-radius:var(--radius-lg);padding:26px}
.oifm .panel h3{font-size:19px;margin-bottom:12px}
.oifm .panel.red{background:var(--stamp-soft)}
.oifm .panel.red h3{color:var(--stamp)}
.oifm .panel.pine{background:var(--pine-soft)}
.oifm .panel.pine h3{color:var(--pine)}
.oifm .panel.ink{background:var(--ink);color:var(--on-ink)}
.oifm .panel.ink h3{color:#fff}
.oifm .panel p,.oifm .panel li{font-size:15px}
.oifm .xs li{display:flex;gap:10px;align-items:flex-start;margin-top:8px}
.oifm .xs .x{flex:none;width:22px;height:22px;border-radius:50%;background:var(--stamp);color:#fff;display:grid;place-items:center;margin-top:1px}
.oifm .xs .x svg{width:12px;height:12px}

/* language */
.oifm .lang-top{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:36px}
.oifm .proof{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px}
.oifm .proof h3{font-size:20px;margin-bottom:6px}
.oifm .proof > p{color:var(--muted);font-size:15px}
.oifm .need{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.oifm .need .box{border-radius:var(--radius-lg);padding:22px}
.oifm .need .box.ok{background:var(--ink);color:var(--on-ink)}
.oifm .need .box.no{background:var(--surface);border:1px solid var(--line)}
.oifm .need .lbl{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.oifm .need .ok .lbl{color:#F0A39C}
.oifm .need .no .lbl{color:var(--muted)}
.oifm .need b{display:block;font:800 22px/1.15 var(--display);margin-top:8px}
.oifm .need .ok b{color:#fff}
.oifm .need .no b{color:var(--ink)}
.oifm .need .min{grid-column:1/-1;background:var(--stamp);color:#fff;border-radius:var(--radius-lg);padding:22px 24px;display:flex;align-items:center;gap:20px}
.oifm .need .min b{font-size:40px;margin:0;color:#fff;flex:none}
.oifm .need .min span{color:#FFE3DF;font-size:15px}
.oifm .tabs{display:inline-grid;grid-auto-flow:column;gap:4px;background:var(--mist);padding:5px;border-radius:14px;margin-bottom:18px}
.oifm .tabs button{font:600 15px var(--body);border:0;background:transparent;color:var(--muted);padding:11px 22px;border-radius:10px;cursor:pointer;transition:background .15s,color .15s}
.oifm .tabs button[aria-selected="true"]{background:#fff;color:var(--ink);box-shadow:0 2px 8px -2px rgba(15,42,61,.2)}
.oifm .score{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}
.oifm .score[hidden]{display:none}
.oifm .tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:auto}
.oifm table{width:100%;border-collapse:collapse;margin:0;font-size:15px;min-width:620px;border:0;background:transparent}
.oifm th,.oifm td{padding:12px 14px;text-align:center;border:0;border-bottom:1px solid #EDF1F3;vertical-align:middle}
.oifm thead th{background:var(--ink);color:#fff;font:600 13.5px/1.3 var(--body)}
.oifm thead th.old{background:var(--stamp)}
.oifm thead th small{display:block;font-weight:400;color:var(--on-ink-muted);font-size:12px}
.oifm thead th.old small{color:#FFE3DF}
.oifm tbody th{font:700 15px var(--display);color:var(--ink);background:transparent;white-space:nowrap}
.oifm tbody td{color:var(--text)}
.oifm tbody td.key{font-weight:700}
.oifm tbody td.old{background:#F3F5F8;color:var(--muted)}
.oifm tbody tr:nth-child(even) td:not(.old),.oifm tbody tr:nth-child(even) th{background:#FAFBFC}
.oifm tbody tr.hl th{background:var(--stamp);color:#fff}
.oifm tbody tr.hl td,.oifm tbody tr.hl td.old{background:var(--stamp-soft);color:var(--stamp);font-weight:700}
.oifm tbody tr:last-child th,.oifm tbody tr:last-child td{border-bottom:0}
.oifm .score-side{display:grid;gap:14px}
.oifm .score-side .panel{padding:22px}
.oifm .score-side .row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-top:1px dashed var(--line);font-weight:600}
.oifm .score-side .row:first-of-type{border-top:0}
.oifm .score-side .row b{color:var(--stamp);font:800 20px var(--display)}
.oifm .score-side small{display:block;color:var(--muted);font-size:13px;margin-top:8px;line-height:1.45}
.oifm .src{font-size:13px;color:var(--muted);margin-top:12px;font-style:italic}

/* positions */
.oifm .pos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.oifm .pos li{display:flex;align-items:center;gap:16px;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:18px 20px;transition:border-color .15s,transform .15s}
.oifm .pos li:hover{border-color:var(--pine);transform:translateY(-2px)}
.oifm .pos .num{flex:none;width:44px;height:44px;border-radius:50%;background:var(--stamp);color:#fff;display:grid;place-items:center;font:800 17px/1 var(--display)}
.oifm .pos b{display:block;color:var(--ink);font-size:16px;line-height:1.3}
.oifm .pos small{color:var(--muted);font-size:13.5px}
.oifm .pos li.more{background:var(--stamp-soft);border-color:transparent}
.oifm .pos li.more .num{background:var(--ink)}
.oifm .pos li.more a{color:var(--stamp);font-weight:600;font-size:13.5px}

/* how it works */
.oifm .how{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.oifm .emp{background:var(--pine);color:#fff;border-radius:var(--radius-lg);padding:32px;position:relative;overflow:hidden}
.oifm .emp h3{color:#fff;font-size:24px}
.oifm .emp > p{color:rgba(255,255,255,.78);margin-top:8px;font-size:15px}
.oifm .emp ol{margin-top:22px;display:grid;gap:14px;position:relative}
.oifm .emp li{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start;background:rgba(255,255,255,.08);border-radius:var(--radius);padding:14px}
.oifm .emp li .n{width:46px;height:46px;border-radius:12px;background:#fff;color:var(--pine);display:grid;place-items:center;font:800 16px/1 var(--display)}
.oifm .emp li b{display:block;font-size:16px}
.oifm .emp li span{color:rgba(255,255,255,.78);font-size:14.5px}
.oifm .emp .leafbg{position:absolute;right:-60px;bottom:-60px;width:240px;color:rgba(255,255,255,.07)}
.oifm .emp .help{margin-top:18px;font-size:14.5px;color:rgba(255,255,255,.85);position:relative}
.oifm .timeline{position:relative}
.oifm .timeline::before{content:"";position:absolute;left:25px;top:26px;bottom:26px;width:2px;background:var(--line)}
.oifm .tl{position:relative;padding:0 0 16px 78px}
.oifm .tl:last-child{padding-bottom:0}
.oifm .tl-dot{position:absolute;left:0;top:0;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line);font:700 18px/1 var(--display);color:var(--ink)}
.oifm .tl:first-child .tl-dot{background:var(--stamp);border-color:var(--stamp);color:#fff}
.oifm .tl-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 20px}
.oifm .tl-card h3{font-size:18px}
.oifm .tl-card p{color:var(--muted);font-size:15px;margin-top:4px}
.oifm .tl.final .tl-dot{background:var(--ink);border-color:var(--ink);color:#fff}
.oifm .tl.final .tl-card{background:var(--ink);border-color:var(--ink)}
.oifm .tl.final .tl-card h3{color:#fff}
.oifm .tl.final .tl-card p{color:var(--on-ink-muted)}

/* fee promise */
.oifm .promise{display:flex;align-items:center;gap:22px;background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--stamp);border-radius:var(--radius-lg);padding:24px 28px;margin-top:48px}
.oifm .promise .ic{margin:0;flex:none;background:var(--stamp-soft);color:var(--stamp)}
.oifm .promise b{font:800 20px/1.2 var(--display);color:var(--ink);display:block}
.oifm .promise span{color:var(--muted);font-size:15px}

/* faq */
.oifm .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.oifm .faq details{border-bottom:1px solid var(--line)}
.oifm .faq details:first-child{border-top:1px solid var(--line)}
.oifm .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;font:700 17px/1.35 var(--display);color:var(--ink)}
.oifm .faq summary::-webkit-details-marker{display:none}
.oifm .faq summary::after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;background:var(--mist);display:grid;place-items:center;font:600 20px/1 var(--body);color:var(--ink);transition:transform .2s,background .2s}
.oifm .faq details[open] summary::after{content:"–";background:var(--stamp);color:#fff}
.oifm .faq details p{padding:0 4px 20px;color:var(--muted);font-size:15.5px}

/* final cta */
.oifm .cta{background:var(--ink);color:var(--on-ink);position:relative}
.oifm .cta .leaf{position:absolute;right:-100px;top:-80px;width:460px;color:rgba(255,255,255,.05)}
.oifm .cta-grid{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.oifm .cta h2{color:#fff;font-size:clamp(30px,3.6vw,46px)}
.oifm .cta p{color:var(--on-ink-muted);margin-top:16px;font-size:17px;max-width:56ch}
.oifm .cta .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.oifm .contact{display:grid;gap:12px}
.oifm .contact a{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;transition:background .15s,border-color .15s}
.oifm .contact a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.oifm .contact .ci{flex:none;width:44px;height:44px;border-radius:12px;background:var(--stamp);display:grid;place-items:center}
.oifm .contact .ci svg{width:20px;height:20px}
.oifm .contact small{display:block;color:var(--on-ink-muted);font-size:13px}
.oifm .contact b{font-weight:600;word-break:break-word}
.oifm .disc{position:relative;margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:var(--on-ink-muted)}

@media (max-width:1024px){
  .oifm .hero-grid,.oifm .intro-grid,.oifm .elig-grid,.oifm .how,.oifm .faq-grid,.oifm .cta-grid,.oifm .lang-top{grid-template-columns:1fr;gap:36px}
  .oifm .cards,.oifm .pos{grid-template-columns:repeat(2,1fr)}
  .oifm .score{grid-template-columns:1fr}
  .oifm .stamp{right:6px}
}
@media (max-width:767px){
  .oifm section{padding:64px 0}
  .oifm .hero{padding:48px 0 72px}
  .oifm .cards,.oifm .pos,.oifm .need{grid-template-columns:1fr}
  .oifm .glance dl div{grid-template-columns:1fr;gap:2px}
  .oifm .hero .facts{gap:22px}
  .oifm .stat{flex-direction:column;align-items:flex-start;gap:6px}
  .oifm .promise,.oifm .need .min{flex-direction:column;align-items:flex-start}
  .oifm .need .min{gap:8px}
  .oifm .glance .g-head{padding-right:64px}
  .oifm .stamp{width:92px;height:92px;top:-36px}
  .oifm .tabs{display:grid;grid-auto-flow:row;grid-template-columns:1fr 1fr;width:100%}
}
@media (prefers-reduced-motion:reduce){.oifm *{transition:none!important}}
