/* =========================================================
   ABIFA D'AGORI — Design system partagé
   ========================================================= */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:'Inter',sans-serif;background:#F8FAFF;color:#1a1a2e;overflow-x:hidden;}
:root{
  --navy:#1B2B6B;--cobalt:#2563EB;--orange:#F97316;--gold:#EAB308;
  --sky:#38BDF8;--bg:#F8FAFF;--bg2:#EFF3FF;--white:#fff;
  --border:rgba(37,99,235,0.12);--muted:#64748B;
  --sh:0 4px 24px rgba(27,43,107,0.08);--sh2:0 12px 48px rgba(27,43,107,0.14);
  --disp:'Space Grotesk',sans-serif;
}
img{max-width:100%;display:block;}
a{color:inherit;}
::selection{background:var(--orange);color:#fff;}

/* ── NAVBAR ── */
#navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:14px 20px;transition:all .4s cubic-bezier(.4,0,.2,1);}
#navbar.scrolled{top:10px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:1220px;padding:8px 20px;background:rgba(255,255,255,0.95);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:60px;border:1px solid rgba(37,99,235,0.14);box-shadow:0 8px 40px rgba(27,43,107,0.12);}
.nav-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;}
.nav-logo img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(37,99,235,.3));}
.nav-word{font-family:var(--disp);font-weight:800;font-size:16px;color:var(--navy);line-height:1.1;}
.nav-word span{display:block;font-size:9px;font-weight:700;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;}
.nav-links{display:flex;gap:2px;list-style:none;}
.nav-links a{color:var(--muted);text-decoration:none;font-size:13px;font-weight:600;padding:8px 13px;border-radius:30px;transition:all .2s;white-space:nowrap;font-family:var(--disp);}
.nav-links a:hover,.nav-links a.active{color:var(--navy);background:var(--bg2);}
.nav-right{display:flex;align-items:center;gap:10px;}
.nav-cta{background:linear-gradient(135deg,var(--navy),var(--cobalt));color:#fff;border:none;border-radius:30px;padding:10px 22px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:all .2s;white-space:nowrap;font-family:var(--disp);box-shadow:0 4px 16px rgba(37,99,235,.3);}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(37,99,235,.4);}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:9px;border-radius:10px;border:1px solid var(--border);background:#fff;}
.burger span{width:20px;height:2px;background:var(--navy);border-radius:2px;display:block;}

/* ── MOBILE DRAWER ── */
.overlay{display:none;position:fixed;inset:0;background:rgba(10,15,40,.4);z-index:1998;backdrop-filter:blur(4px);}
.overlay.open{display:block;}
.drawer{position:fixed;top:0;right:-100%;width:min(300px,88vw);height:100vh;background:#fff;z-index:1999;padding:24px 20px;transition:right .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;box-shadow:-20px 0 60px rgba(0,0,0,.15);}
.drawer.open{right:0;}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}
.drawer-close{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--muted);}
.dlinks{list-style:none;display:flex;flex-direction:column;gap:2px;}
.dlinks li a{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:13px;text-decoration:none;color:var(--navy);font-weight:600;font-size:14px;font-family:var(--disp);transition:all .2s;}
.dlinks li a:hover,.dlinks li a.active{background:var(--bg2);color:var(--cobalt);}
.di{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px;background:var(--bg2);flex-shrink:0;}
.ddiv{height:1px;background:var(--border);margin:16px 0;}
.dcta{display:block;text-align:center;background:linear-gradient(135deg,var(--navy),var(--cobalt));color:#fff;padding:13px;border-radius:14px;text-decoration:none;font-weight:800;font-size:14px;margin-top:16px;font-family:var(--disp);}

/* ── PAGE HERO BANNER (pages autres qu'accueil) ── */
.pagehero{background:linear-gradient(150deg,#EFF3FF 0%,#F8FAFF 55%,#FFF7ED 100%);padding:150px 20px 70px;position:relative;overflow:hidden;}
.pagehero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(37,99,235,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.04) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;}
.pagehero .wrap{position:relative;z-index:2;}
.crumb{font-family:var(--disp);font-size:12px;font-weight:700;color:var(--cobalt);text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.crumb a{text-decoration:none;color:var(--muted);}
.ph-ttl{font-family:var(--disp);font-size:clamp(32px,5vw,58px);font-weight:800;color:var(--navy);line-height:1.05;margin-bottom:16px;max-width:16ch;}
.ph-ttl .oo{color:var(--orange);}
.ph-sub{font-size:17px;color:var(--muted);line-height:1.7;max-width:640px;}

/* ── SHARED LAYOUT ── */
.wrap{max-width:1160px;margin:0 auto;padding:0 20px;}
section{padding:100px 20px;}
.sh{text-align:center;margin-bottom:52px;}
.sh.left{text-align:left;margin-left:0;}
.s-lbl{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:3px;color:var(--cobalt);margin-bottom:10px;background:rgba(37,99,235,.07);padding:5px 15px;border-radius:20px;font-family:var(--disp);}
.s-ttl{font-family:var(--disp);font-size:clamp(28px,4.5vw,48px);font-weight:800;color:var(--navy);line-height:1.12;margin-bottom:14px;}
.s-ttl .oo{color:var(--orange);}
.s-ttl .cc{color:var(--cobalt);}
.s-sub{font-size:17px;color:var(--muted);line-height:1.7;max-width:600px;margin:0 auto;}
.sh.left .s-sub{margin:0;}
.btn-p{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--navy),var(--cobalt));color:#fff;border:none;border-radius:30px;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;transition:all .25s;box-shadow:0 4px 20px rgba(37,99,235,.35);font-family:var(--disp);}
.btn-p:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(37,99,235,.45);}
.btn-o{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);border:2px solid rgba(27,43,107,.18);border-radius:30px;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;transition:all .25s;font-family:var(--disp);}
.btn-o:hover{border-color:var(--cobalt);color:var(--cobalt);}
.fu{opacity:0;transform:translateY(26px);transition:opacity .55s,transform .55s;}
.fu.vis{opacity:1;transform:translateY(0);}
.stag>*{opacity:0;transform:translateY(22px);transition:opacity .45s,transform .45s;}
.stag.vis>*{opacity:1;transform:translateY(0);}
.divider{height:1px;background:var(--border);border:none;}
.bg-alt{background:var(--bg);}
.bg-white{background:#fff;}

/* ── HOME HERO ── */
#pg-home{background:linear-gradient(150deg,#EFF3FF 0%,#F8FAFF 45%,#FFF7ED 100%);display:flex;align-items:center;justify-content:center;padding:130px 20px 60px;overflow:hidden;position:relative;}
#pg-home::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(37,99,235,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.04) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;}
.hero-lay{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;position:relative;z-index:2;width:100%;}
.h-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.2);border-radius:30px;padding:6px 16px;font-size:12px;font-weight:700;color:var(--cobalt);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:20px;font-family:var(--disp);}
.bdot{width:7px;height:7px;border-radius:50%;background:var(--cobalt);animation:bdot 2s ease-in-out infinite;}
@keyframes bdot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.3;transform:scale(.6);}}
.h-ttl{font-family:var(--disp);font-size:clamp(36px,5.2vw,68px);font-weight:800;line-height:1.02;color:var(--navy);margin-bottom:20px;}
.h-ttl .oo{color:var(--orange);}
.h-ttl .cc{color:var(--cobalt);}
.h-sub{font-size:18px;color:var(--muted);line-height:1.75;margin-bottom:36px;max-width:490px;font-weight:400;}
.h-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:48px;}
.h-kpis{display:flex;gap:28px;flex-wrap:wrap;}
.kv{font-family:var(--disp);font-size:28px;font-weight:800;color:var(--navy);line-height:1;}
.kv span{color:var(--orange);}
.kl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:4px;font-weight:600;max-width:14ch;}

/* ── HERO VISUAL / ORBIT ── */
.h-vis{position:relative;height:440px;display:flex;align-items:center;justify-content:center;}
.blob{position:absolute;border-radius:50%;filter:blur(55px);opacity:.16;pointer-events:none;}
.b1{width:240px;height:240px;background:var(--cobalt);top:0;right:10px;}
.b2{width:170px;height:170px;background:var(--orange);bottom:40px;left:10px;}
.or{position:absolute;border-radius:50%;border:1.5px dashed rgba(37,99,235,.15);animation:spR var(--sp,25s) linear infinite var(--rv,normal);}
.or1{width:230px;height:230px;--sp:22s;}
.or2{width:340px;height:340px;--sp:36s;--rv:reverse;}
@keyframes spR{from{transform:rotate(0)}to{transform:rotate(360deg)}}

.c-hex{position:relative;z-index:10;width:150px;height:150px;display:flex;align-items:center;justify-content:center;animation:cFloat 5s ease-in-out infinite;}
@keyframes cFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}
.c-hex img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(27,43,107,.28));}

.fl{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:default;z-index:20;text-decoration:none;}
.fl:hover .fl-img{transform:scale(1.14);filter:drop-shadow(0 10px 22px rgba(27,43,107,.3));}
.fl-img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(27,43,107,.18));transition:all .3s;}
.fl-lbl{font-size:9.5px;font-weight:800;color:var(--navy);background:#fff;border-radius:20px;padding:3px 10px;white-space:nowrap;box-shadow:0 2px 10px rgba(0,0,0,.09);letter-spacing:.3px;font-family:var(--disp);}
.fl1{top:2px;left:50%;transform:translateX(-50%);animation:fa1 4.5s ease-in-out infinite;}
.fl2{top:50%;right:2px;transform:translateY(-50%);animation:fa2 5s ease-in-out infinite .5s;}
.fl3{bottom:2px;left:50%;transform:translateX(-50%);animation:fa3 4.8s ease-in-out infinite 1s;}
.fl4{top:50%;left:2px;transform:translateY(-50%);animation:fa4 5.2s ease-in-out infinite .3s;}
@keyframes fa1{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(-10px);}}
@keyframes fa2{0%,100%{transform:translateY(-50%) translateX(0);}50%{transform:translateY(-50%) translateX(-8px);}}
@keyframes fa3{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(10px);}}
@keyframes fa4{0%,100%{transform:translateY(-50%) translateX(0);}50%{transform:translateY(-50%) translateX(8px);}}

/* ── TEASER CARDS (home) ── */
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.teaser{background:#fff;border:1px solid var(--border);border-radius:20px;padding:28px 26px;text-decoration:none;transition:all .25s;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;}
.teaser::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cobalt),var(--orange));transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.teaser:hover{transform:translateY(-5px);box-shadow:var(--sh2);border-color:rgba(37,99,235,.2);}
.teaser:hover::after{transform:scaleX(1);}
.teaser .t-ico{font-size:28px;}
.teaser h3{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--navy);}
.teaser p{font-size:13.5px;color:var(--muted);line-height:1.6;}
.teaser .t-go{font-family:var(--disp);font-size:12px;font-weight:700;color:var(--cobalt);margin-top:auto;}

/* ── KPI STRIP (reusable) ── */
.kpi-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;}
.kpi-card{background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:24px 16px;text-align:center;position:relative;overflow:hidden;transition:all .3s;}
.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.kpi-bar{position:absolute;top:0;left:0;right:0;height:4px;}
.kpi-val{font-family:var(--disp);font-size:28px;font-weight:800;margin-bottom:6px;line-height:1;color:var(--navy);}
.kpi-lbl{font-size:12.5px;color:var(--muted);line-height:1.4;font-weight:500;}

/* ── GRID CARDS GENERIC ── */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}

/* ── CHALLENGE / FEATURE CARDS ── */
.feat-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:26px 22px;transition:all .25s;}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.feat-num{font-family:var(--disp);font-size:12px;font-weight:800;color:var(--orange);margin-bottom:14px;display:block;letter-spacing:1px;}
.feat-card h3{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.feat-card p{font-size:13.5px;color:var(--muted);line-height:1.65;}

/* ── ABOUT ── */
.ag{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.flag-bar{display:flex;gap:4px;margin-bottom:22px;}
.fs{height:5px;flex:1;border-radius:3px;}
.fsg{background:#008751;}.fsy{background:#FCD116;}.fsr{background:#E8112D;}
.a-box{background:linear-gradient(135deg,#EFF3FF,#F8FAFF);border:1px solid var(--border);border-radius:20px;padding:30px;margin-bottom:16px;}
.a-box-ttl{font-family:var(--disp);font-size:21px;font-weight:800;color:var(--navy);margin-bottom:10px;}
.a-box-txt{font-size:14px;color:var(--muted);line-height:1.75;}
.founder{background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px;display:flex;gap:16px;box-shadow:var(--sh);}
.f-av{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--cobalt),var(--navy));display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:800;font-size:19px;color:#fff;flex-shrink:0;}
.f-name{font-family:var(--disp);font-weight:800;font-size:15.5px;color:var(--navy);margin-bottom:3px;}
.f-role{font-size:12px;color:var(--cobalt);font-weight:700;margin-bottom:9px;font-family:var(--disp);}
.f-bio{font-size:13px;color:var(--muted);line-height:1.65;}
.hls{display:flex;flex-direction:column;gap:14px;}
.hl{display:flex;gap:14px;align-items:flex-start;padding:19px;background:#fff;border:1px solid var(--border);border-radius:16px;transition:all .2s;}
.hl:hover{box-shadow:var(--sh2);transform:translateY(-2px);}
.hl-ico{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#EFF3FF,#E0E8FF);border:1px solid rgba(37,99,235,.13);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.hl-ttl{font-family:var(--disp);font-weight:700;font-size:15px;color:var(--navy);margin-bottom:4px;}
.hl-txt{font-size:13px;color:var(--muted);line-height:1.55;}
.gap-list{list-style:none;margin:0;padding:0;}
.gap-list li{padding:14px 0;border-bottom:1px solid var(--border);display:flex;gap:14px;align-items:flex-start;font-size:14px;color:var(--muted);}
.gap-list li:last-child{border-bottom:none;}
.gap-list li b{color:var(--navy);}
.gap-list li::before{content:'—';color:var(--orange);flex-shrink:0;font-weight:700;}

/* ── BLUEPRINT / CENTRE (composantes) ── */
.blueprint-frame{background:#fff;border:1px solid var(--border);border-radius:24px;padding:36px;position:relative;box-shadow:var(--sh);}
.bp-cap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-family:var(--disp);font-size:11px;color:var(--muted);letter-spacing:.5px;margin-bottom:24px;text-transform:uppercase;font-weight:700;padding-bottom:18px;border-bottom:1px dashed var(--border);}
.wings{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.wing{border:1.5px dashed rgba(37,99,235,.22);border-radius:16px;padding:20px 14px 22px;text-align:left;transition:all .25s;background:var(--bg);}
.wing:hover{border-color:var(--cobalt);background:#fff;box-shadow:var(--sh);transform:translateY(-3px);}
.wing .wing-id{font-family:var(--disp);color:var(--orange);font-size:11px;font-weight:800;}
.wing h4{font-family:var(--disp);font-size:15px;font-weight:700;margin:12px 0 8px;color:var(--navy);line-height:1.15;}
.wing p{font-size:12.5px;color:var(--muted);font-weight:400;margin:0;line-height:1.55;}
.site-note{font-family:var(--disp);font-size:11.5px;color:var(--muted);margin-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:18px;border-top:1px dashed var(--border);font-weight:600;}

/* location card */
.loc-card{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--sh);}
.loc-map{background:linear-gradient(135deg,var(--navy),var(--cobalt));min-height:260px;position:relative;display:flex;align-items:center;justify-content:center;padding:30px;}
.loc-map::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1.5px,transparent 1.5px);background-size:16px 16px;opacity:.5;}
.loc-pin{position:relative;z-index:2;text-align:center;color:#fff;}
.loc-pin .pin-ico{font-size:38px;margin-bottom:10px;}
.loc-pin h4{font-family:var(--disp);font-size:19px;font-weight:800;margin-bottom:6px;}
.loc-pin p{font-size:13px;opacity:.85;}
.loc-info{padding:34px;display:flex;flex-direction:column;justify-content:center;gap:14px;}
.loc-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:13.5px;}
.loc-row:last-child{border-bottom:none;}
.loc-row span:first-child{color:var(--muted);}
.loc-row span:last-child{font-weight:700;color:var(--navy);font-family:var(--disp);text-align:right;}

/* ── ECOSYSTEME / SUB-BRANDS ── */
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.brand-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:28px 24px;display:flex;flex-direction:column;gap:14px;transition:all .25s;}
.brand-card:hover{transform:translateY(-5px);box-shadow:var(--sh2);}
.brand-logo-box{height:120px;display:flex;align-items:center;justify-content:center;}
.brand-logo-box img{max-height:100px;width:auto;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(27,43,107,.12));}
.brand-card h3{font-family:var(--disp);font-size:18px;font-weight:800;color:var(--navy);}
.brand-card p{font-size:13.5px;color:var(--muted);line-height:1.6;flex-grow:1;}
.brand-tags{display:flex;gap:7px;flex-wrap:wrap;}
.brand-tags span{font-family:var(--disp);font-size:10.5px;font-weight:700;background:var(--bg2);color:var(--cobalt);padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px;}

.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;}
.pc{background:#fff;border:1px solid var(--border);border-radius:18px;padding:24px 20px;transition:all .3s;position:relative;overflow:hidden;}
.pc::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cobalt),var(--sky));transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.pc:hover{transform:translateY(-5px);box-shadow:var(--sh2);border-color:rgba(37,99,235,.22);}
.pc:hover::after{transform:scaleX(1);}
.p-ico{font-size:30px;margin-bottom:12px;display:block;}
.p-nm{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--navy);margin-bottom:7px;}
.p-ds{font-size:13px;color:var(--muted);line-height:1.6;}

.model-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.model-card{background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:26px;}
.model-num{font-family:var(--disp);color:var(--cobalt);font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;}
.model-card h4{font-family:var(--disp);font-size:16px;font-weight:700;margin:10px 0 12px;color:var(--navy);}
.model-card ul{margin:0;padding-left:16px;color:var(--muted);font-size:13px;line-height:1.8;}

/* ── ROADMAP ── */
.rmt{position:relative;max-width:820px;margin:0 auto;}
.rmt::before{content:'';position:absolute;left:13px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--cobalt),var(--orange),rgba(234,179,8,.2));border-radius:2px;}
.rmi{position:relative;padding-left:54px;margin-bottom:34px;}
.rmd{position:absolute;left:0;top:4px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg);box-shadow:0 0 0 2px var(--cobalt);background:var(--bg);z-index:2;font-size:12px;}
.rmd.cur{background:var(--orange);box-shadow:0 0 0 2px var(--orange),0 0 18px rgba(249,115,22,.35);}
.rm-card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:22px 26px;box-shadow:var(--sh);transition:all .2s;}
.rm-card:hover{box-shadow:var(--sh2);transform:translateY(-2px);}
.rm-ph{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:2.5px;color:var(--orange);margin-bottom:6px;font-family:var(--disp);}
.rm-ttl{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.rm-desc{font-size:13.5px;color:var(--muted);line-height:1.65;}
.rm-tag{display:inline-block;margin-top:11px;background:rgba(37,99,235,.07);color:var(--cobalt);border-radius:20px;padding:4px 14px;font-size:11px;font-weight:700;font-family:var(--disp);}

/* ── FINANCES ── */
.rvc{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:32px;margin-bottom:24px;}
.rvc-ttl{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:28px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;}
.rvc-ttl small{font-size:11.5px;color:var(--muted);font-weight:500;text-transform:none;letter-spacing:0;}
.rvbars{display:flex;align-items:flex-end;gap:14px;height:180px;}
.rvb-w{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
.rvb-group{display:flex;gap:5px;align-items:flex-end;height:100%;width:100%;justify-content:center;}
.rvb{width:100%;border-radius:6px 6px 0 0;height:4px;transition:height 1.2s cubic-bezier(.4,0,.2,1);position:relative;}
.rvb .rv-val{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-family:var(--disp);font-size:10px;font-weight:700;color:var(--navy);white-space:nowrap;}
.rv1{background:linear-gradient(0deg,#BFDBFE,#3B82F6);}
.rv2{background:linear-gradient(0deg,#FDE68A,#F59E0B);}
.rv3{background:linear-gradient(0deg,#FCA5A5,#EF4444);}
.rvb-y{font-size:11.5px;color:var(--muted);font-weight:700;font-family:var(--disp);margin-top:14px;}
.legend-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;}
.legend-row span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;font-weight:600;}
.legend-row i{width:11px;height:11px;border-radius:3px;display:inline-block;}

.hbars{display:flex;flex-direction:column;}
.hbar-row{display:grid;grid-template-columns:190px 1fr 74px;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13.5px;}
.hbar-row:last-child{border-bottom:none;}
.hbar-row .hb-label{color:var(--muted);font-weight:500;}
.hbar-track{background:var(--bg2);height:11px;border-radius:6px;overflow:hidden;}
.hbar-fill{background:linear-gradient(90deg,var(--cobalt),var(--sky));height:100%;border-radius:6px;}
.hb-val{font-family:var(--disp);text-align:right;color:var(--navy);font-size:13px;font-weight:700;}

.stack-bar{display:flex;height:52px;width:100%;border-radius:12px;overflow:hidden;margin-bottom:18px;box-shadow:var(--sh);}
.stack-seg{display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:13px;color:#fff;font-weight:800;}
.stack-legend{display:flex;flex-wrap:wrap;gap:20px;}
.stack-legend span{font-family:var(--disp);font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;font-weight:600;}
.stack-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;}

.cr{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.fin-card{background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:26px;}
.fin-card-ttl{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--navy);margin-bottom:18px;}
.ci{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);}
.ci:last-of-type{border-bottom:none;}
.ci-n{font-size:13.5px;color:var(--muted);}
.ci-v{font-family:var(--disp);font-size:13.5px;font-weight:700;color:var(--navy);}
.c-tot{display:flex;justify-content:space-between;align-items:center;padding:14px 0 0;border-top:2px solid var(--cobalt);margin-top:8px;}
.ct-l{font-family:var(--disp);font-weight:700;color:var(--navy);}
.ct-v{font-family:var(--disp);font-size:18px;font-weight:800;color:var(--cobalt);}

/* ── GOUVERNANCE / ORG ── */
.org-wrap{display:flex;flex-direction:column;align-items:center;gap:0;}
.org-box{border:1px solid var(--border);border-radius:16px;padding:18px 26px;margin-bottom:10px;background:#fff;text-align:center;box-shadow:var(--sh);}
.org-box.top{background:linear-gradient(135deg,var(--navy),var(--cobalt));color:#fff;border:none;font-weight:700;}
.org-box h5{margin:0 0 4px;font-family:var(--disp);font-size:14.5px;font-weight:700;}
.org-box span{font-family:var(--disp);font-size:11px;opacity:.75;}
.org-line{width:1px;height:24px;background:var(--border);}
.org-children{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%;margin-top:6px;}
.org-children .org-box{padding:16px 10px;font-size:13px;margin-bottom:0;}

table.risk-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--sh);}
table.risk-table th{text-align:left;font-family:var(--disp);font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#fff;background:var(--navy);padding:14px 18px;font-weight:700;}
table.risk-table td{padding:16px 18px;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top;}
table.risk-table tr:last-child td{border-bottom:none;}
table.risk-table td:first-child{color:var(--navy);font-weight:700;font-family:var(--disp);font-size:13.5px;white-space:nowrap;}

/* ── ODD / SDG ── */
.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;}
.sgc{border-radius:16px;padding:22px 15px;text-align:center;transition:all .3s;border:1.5px solid transparent;}
.sgc:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.sgn{font-family:var(--disp);font-size:32px;font-weight:800;line-height:1;margin-bottom:8px;}
.sgt{font-size:12.5px;font-weight:700;line-height:1.4;font-family:var(--disp);}
.o1{background:rgba(229,36,59,.08);border-color:rgba(229,36,59,.2);}.o1 .sgn,.o1 .sgt{color:#E5243B;}
.o4{background:rgba(197,25,55,.08);border-color:rgba(197,25,55,.2);}.o4 .sgn,.o4 .sgt{color:#C51625;}
.o5{background:rgba(255,58,33,.08);border-color:rgba(255,58,33,.2);}.o5 .sgn,.o5 .sgt{color:#FF3A21;}
.o8{background:rgba(162,25,66,.08);border-color:rgba(162,25,66,.2);}.o8 .sgn,.o8 .sgt{color:#A21942;}
.o9{background:rgba(253,105,37,.08);border-color:rgba(253,105,37,.2);}.o9 .sgn,.o9 .sgt{color:#FD6925;}
.o10{background:rgba(221,19,103,.08);border-color:rgba(221,19,103,.2);}.o10 .sgn,.o10 .sgt{color:#DD1367;}
.o13{background:rgba(63,126,68,.08);border-color:rgba(63,126,68,.2);}.o13 .sgn,.o13 .sgt{color:#3F7E44;}

.impact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.impact-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:24px;display:flex;gap:16px;align-items:flex-start;}
.impact-ico{width:46px;height:46px;border-radius:13px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.impact-card h4{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.impact-card p{font-size:13px;color:var(--muted);line-height:1.6;}

/* ── PARTENAIRES ── */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.chip{background:var(--bg);border:1px solid var(--border);border-radius:50px;padding:12px 22px;font-size:14px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px;transition:all .2s;font-family:var(--disp);}
.chip:hover{background:rgba(37,99,235,.07);border-color:rgba(37,99,235,.25);transform:translateY(-2px);box-shadow:var(--sh);}

/* ── CONTACT ── */
.ctc{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.cf{background:#fff;border:1px solid var(--border);border-radius:20px;padding:34px;box-shadow:var(--sh);}
.cf h3{font-family:var(--disp);font-size:21px;font-weight:800;color:var(--navy);margin-bottom:22px;}
.fg{margin-bottom:16px;}
.fg label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px;font-family:var(--disp);}
.fg input,.fg textarea,.fg select{width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:11px;padding:12px 14px;color:var(--navy);font-size:14px;font-family:'Inter',sans-serif;outline:none;transition:all .2s;}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(37,99,235,.08);}
.fg textarea{resize:vertical;min-height:110px;}
.csub{width:100%;background:linear-gradient(135deg,var(--navy),var(--cobalt));color:#fff;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:800;cursor:pointer;font-family:var(--disp);transition:all .2s;box-shadow:0 4px 20px rgba(37,99,235,.3);}
.csub:hover{transform:translateY(-1px);box-shadow:0 8px 28px rgba(37,99,235,.4);}
.form-note{font-size:11.5px;color:var(--muted);margin-top:10px;text-align:center;}
.msg{display:none;padding:13px 16px;border-radius:11px;font-size:13.5px;margin-top:14px;}
.msg.ok{background:rgba(37,99,235,.08);color:var(--cobalt);border:1px solid rgba(37,99,235,.2);}
.msg.err{background:rgba(220,38,38,.08);color:#DC2626;border:1px solid rgba(220,38,38,.2);}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden;}
.ci-list{display:flex;flex-direction:column;gap:14px;}
.cib{background:#fff;border:1px solid var(--border);border-radius:16px;padding:19px;display:flex;gap:14px;align-items:flex-start;box-shadow:var(--sh);transition:transform .2s;text-decoration:none;}
.cib:hover{transform:translateY(-2px);}
.cib-ico{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#EFF3FF,#E0E8FF);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.cib-ttl{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--navy);margin-bottom:3px;}
.cib-val{font-size:13px;color:var(--muted);line-height:1.5;}
.docs{background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(249,115,22,.06));border:1.5px solid rgba(37,99,235,.13);border-radius:16px;padding:22px;}
.docs h4{font-family:var(--disp);font-weight:800;font-size:14.5px;color:var(--navy);margin-bottom:7px;}
.docs p{font-size:13px;color:var(--muted);line-height:1.65;}

/* ── LEGAL PAGES ── */
.legal-body{max-width:820px;margin:0 auto;}
.legal-body h2{font-family:var(--disp);font-size:22px;font-weight:800;color:var(--navy);margin:38px 0 14px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body p{font-size:14.5px;color:var(--muted);line-height:1.85;margin-bottom:12px;}
.legal-body ul{color:var(--muted);font-size:14.5px;line-height:1.85;padding-left:20px;margin-bottom:12px;}
.legal-body strong{color:var(--navy);}
.legal-toc{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:24px 28px;margin-bottom:40px;}
.legal-toc h4{font-family:var(--disp);font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--cobalt);margin-bottom:12px;}
.legal-toc ol{padding-left:20px;color:var(--navy);font-size:13.5px;line-height:2;font-weight:600;}
.legal-updated{font-family:var(--disp);font-size:12px;color:var(--muted);margin-bottom:6px;}

/* ── FOOTER ── */
footer{background:var(--navy);color:#fff;padding:60px 20px 26px;}
.ftw{max-width:1160px;margin:0 auto;}
.ftt{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px;margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08);}
.ft-logo{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.ft-logo img{width:34px;height:34px;object-fit:contain;}
.ft-logo b{font-family:var(--disp);font-size:16px;}
.ftb-p{font-size:13.5px;color:rgba(255,255,255,.5);line-height:1.75;max-width:260px;}
.ftc h4{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:rgba(255,255,255,.35);margin-bottom:15px;font-family:var(--disp);}
.ftc ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.ftc ul a{text-decoration:none;color:rgba(255,255,255,.62);font-size:13.5px;transition:color .2s;font-weight:500;}
.ftc ul a:hover{color:#fff;}
.ftbot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.ftcopy,.ftmade{font-size:12.5px;color:rgba(255,255,255,.4);}
.ftmade span{color:var(--orange);}
.ftlegal{display:flex;gap:18px;flex-wrap:wrap;}
.ftlegal a{font-size:12.5px;color:rgba(255,255,255,.5);text-decoration:none;}
.ftlegal a:hover{color:#fff;}

/* ── STATUS BANNER ── */
.status-banner{display:flex;align-items:center;gap:16px;background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.18);border-left:4px solid var(--cobalt);border-radius:14px;padding:18px 24px;font-size:13.5px;color:var(--navy);line-height:1.6;}
.status-banner .sb-ico{font-size:22px;flex-shrink:0;}
.status-banner b{color:var(--cobalt);}
.status-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:30px;padding:6px 16px;font-size:11.5px;font-weight:700;color:var(--navy);font-family:var(--disp);margin-top:14px;}
.status-badge i{width:7px;height:7px;border-radius:50%;background:var(--orange);display:inline-block;}

/* ── PULL QUOTE ── */
.quote-block{max-width:760px;margin:0 auto;text-align:center;position:relative;padding:0 20px;}
.quote-block .q-mark{font-family:var(--disp);font-size:64px;color:rgba(37,99,235,.15);line-height:1;margin-bottom:-10px;}
.quote-block p{font-family:var(--disp);font-size:clamp(19px,2.6vw,26px);font-weight:600;color:var(--navy);line-height:1.5;font-style:italic;}
.quote-block .q-attr{margin-top:20px;font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;font-weight:700;font-family:var(--disp);font-style:normal;}

/* ── PERSONA / AUDIENCE CARDS ── */
.persona-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:30px 26px;text-align:left;transition:all .25s;}
.persona-card:hover{transform:translateY(-5px);box-shadow:var(--sh2);}
.persona-ico{width:52px;height:52px;border-radius:14px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:18px;}
.persona-card h3{font-family:var(--disp);font-size:18px;font-weight:800;color:var(--navy);margin-bottom:8px;}
.persona-card p{font-size:13.5px;color:var(--muted);line-height:1.65;margin-bottom:14px;}
.persona-tag{display:inline-block;font-family:var(--disp);font-size:11px;font-weight:700;color:var(--cobalt);background:var(--bg2);padding:5px 13px;border-radius:20px;}

/* ── STAT MOSAIC ── */
.stat-mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;}
@media(max-width:1024px){.stat-mosaic{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.stat-mosaic{grid-template-columns:1fr 1fr;}}
/* ── LANGUAGE SWITCHER ── */
.lang-switch{position:relative;display:flex;align-items:center;gap:4px;background:var(--bg2);border-radius:30px;padding:4px;}
.lang-switch button{border:none;background:none;padding:6px 11px;border-radius:24px;font-family:var(--disp);font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .2s;}
.lang-switch button.active{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(27,43,107,.12);}

/* ── ROADMAP VEIL (coming soon) ── */
.rm-card.locked{position:relative;overflow:hidden;}
.rm-card.locked .rm-veil-content{filter:blur(6px);user-select:none;pointer-events:none;opacity:.55;}
.rm-card.locked::after{
  content:'🔒 Bientôt disponible';
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-weight:800;font-size:13px;color:var(--navy);
  background:rgba(255,255,255,.55);backdrop-filter:blur(2px);letter-spacing:.5px;
}
.rm-card.done{border-color:rgba(37,99,235,.3);}
.rm-status{display:inline-flex;align-items:center;gap:6px;font-family:var(--disp);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;padding:4px 11px;border-radius:20px;margin-top:10px;}
.rm-status.done{background:rgba(37,99,235,.1);color:var(--cobalt);}
.rm-status.locked{background:rgba(100,116,139,.1);color:var(--muted);}
.rmd.done{background:var(--cobalt);border-color:var(--cobalt);}
.rmd.locked{background:#fff;border-color:var(--border);box-shadow:0 0 0 2px var(--border);}

/* ── NEWS / BLOG ── */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.news-card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;transition:all .25s;display:flex;flex-direction:column;}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--sh2);}
.news-cat{display:inline-block;font-family:var(--disp);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;background:var(--bg2);color:var(--cobalt);padding:4px 12px;border-radius:20px;margin:20px 20px 0;align-self:flex-start;}
.news-card h3{font-family:var(--disp);font-size:16.5px;font-weight:700;color:var(--navy);margin:14px 20px 8px;line-height:1.3;}
.news-card p{font-size:13px;color:var(--muted);margin:0 20px 18px;line-height:1.6;flex-grow:1;}
.news-date{font-family:var(--disp);font-size:11px;color:var(--muted);margin:0 20px 20px;font-weight:600;}
.news-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px;}

@media(max-width:1024px){
  .grid-4,.kpi-strip{grid-template-columns:repeat(2,1fr);}
  .grid-3,.teaser-grid,.pg,.brand-grid,.model-grid{grid-template-columns:repeat(2,1fr);}
  .sg{grid-template-columns:repeat(3,1fr);}
  .ftt{grid-template-columns:1fr 1fr;}
  .cr,.impact-grid{grid-template-columns:1fr;}
  .wings{grid-template-columns:repeat(3,1fr);}
  .org-children{grid-template-columns:repeat(2,1fr);}
  .news-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:768px){
  .nav-links,.nav-cta{display:none;}
  .burger{display:flex;}
  .hero-lay{grid-template-columns:1fr;gap:32px;text-align:center;}
  .h-sub,.h-btns{margin-left:auto;margin-right:auto;}
  .h-btns{justify-content:center;}
  .h-kpis{justify-content:center;}
  .h-vis{height:280px;}
  .c-hex,.c-hex img{width:100px;height:100px;}
  .fl-img{width:44px;height:44px;}
  .fl2{right:0;}.fl4{left:0;}
  .ag,.ctc,.grid-2,.loc-card{grid-template-columns:1fr;gap:26px;}
  .grid-3,.teaser-grid,.pg,.brand-grid,.model-grid,.grid-4,.kpi-strip{grid-template-columns:1fr 1fr;}
  .news-grid{grid-template-columns:1fr;}
  .wings{grid-template-columns:repeat(2,1fr);}
  .sg{grid-template-columns:repeat(2,1fr);}
  .ftt{grid-template-columns:1fr;gap:30px;}
  .ftbot{flex-direction:column;text-align:center;}
  section{padding:64px 16px;}
  .pagehero{padding:110px 16px 50px;}
  .h-ttl{font-size:clamp(32px,9vw,52px);}
  .org-children{grid-template-columns:1fr 1fr;}
  .hbar-row{grid-template-columns:120px 1fr 56px;gap:10px;font-size:12px;}
}
@media(max-width:480px){
  .grid-3,.teaser-grid,.pg,.brand-grid,.model-grid,.grid-4,.kpi-strip,.sg{grid-template-columns:1fr;}
}
