/* ==========================================================================
 Intelligami Systems : shared stylesheet
 ========================================================================== */
:root{
 --navy:#0B1120;
 --navy-2:#0F1830;
 --navy-3:#141F3B;
 --blue:#0075FF;
 --blue-light:#4FA3FF;
 --blue-dim:rgba(0,117,255,.12);
 --ice:#C2CEDB;
 --white:#FFFFFF;
 --ui-gray:#F5F7FA;
 --ink:#0E1420;
 --muted:#5B6B7C;
 --muted-dark:#98A7BD;
 --line-dark:rgba(194,206,219,.14);
 --line-light:rgba(14,20,32,.09);
 --maxw:1180px;
 --ease:cubic-bezier(.16,.8,.24,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
 margin:0;
 font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
 color:var(--ink);
 background:var(--white);
 -webkit-font-smoothing:antialiased;
 overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
h1,h2,h3{font-weight:800;line-height:1.1;margin:0;letter-spacing:-.02em;}
h1{font-size:clamp(38px,5vw,60px);}
h2{font-size:clamp(30px,4vw,44px);}
h3{font-size:19px;font-weight:700;letter-spacing:-.01em;}
p{line-height:1.65;margin:0;}
.lede{font-size:18px;color:var(--muted);max-width:620px;}
.lede-dark{font-size:18px;color:var(--muted-dark);max-width:620px;}
.kicker{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--blue);background:var(--blue-dim);padding:7px 16px;border-radius:100px;margin-bottom:20px;}
.kicker.on-dark{background:rgba(79,163,255,.14);}

.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;font-size:14.5px;font-weight:600;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:transform .35s var(--ease), box-shadow .35s var(--ease), opacity .2s ease;will-change:transform;}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 24px -8px rgba(0,117,255,.55);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(0,117,255,.65);}
.btn-ghost-dark{border-color:rgba(255,255,255,.24);color:#fff;}
.btn-ghost-dark:hover{background:rgba(255,255,255,.06);transform:translateY(-2px);}
.btn-ghost-light{border-color:var(--line-light);color:var(--ink);}
.btn-ghost-light:hover{background:var(--ui-gray);transform:translateY(-2px);}
.btn-arrow svg{transition:transform .3s var(--ease);}
.btn-arrow:hover svg{transform:translateX(4px);}
.btn-block{width:100%;justify-content:center;}

#progress{position:fixed;top:0;left:0;height:3px;background:var(--blue);z-index:200;width:0%;transition:width .1s linear;}

header{position:sticky;top:0;z-index:100;background:rgba(11,17,32,.78);backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--line-dark);}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px;}
.logo{display:flex;flex-direction:column;line-height:1;}
.logo .word{font-size:20px;font-weight:800;}
.logo .word .a{color:var(--ice);}
.logo .word .b{color:var(--blue);}
.logo .sub{font-size:9px;letter-spacing:.34em;color:var(--muted-dark);margin-top:5px;font-weight:600;}
nav.links ul{display:flex;gap:30px;}
nav.links a{font-size:14px;font-weight:500;color:var(--muted-dark);transition:color .2s ease;position:relative;}
nav.links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--blue);transition:width .25s var(--ease);}
nav.links a:hover,nav.links a.active{color:#fff;}
nav.links a:hover::after,nav.links a.active::after{width:100%;}
.nav-actions{display:flex;align-items:center;gap:14px;}
.lang-switch{display:flex;border:1px solid rgba(255,255,255,.22);border-radius:6px;overflow:hidden;}
.lang-btn{background:none;border:0;color:var(--muted-dark);font-size:12.5px;font-weight:700;padding:7px 11px;cursor:pointer;transition:background .2s ease, color .2s ease;}
.lang-btn.active{background:var(--blue);color:#fff;}
.lang-btn:not(.active):hover{color:#fff;}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.burger span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;transition:transform .25s ease, opacity .25s ease;}
.mobile-menu{display:none;flex-direction:column;padding:10px 32px 26px;gap:16px;border-top:1px solid var(--line-dark);}
.mobile-menu a{color:var(--muted-dark);font-size:15px;font-weight:500;}
header.open .mobile-menu{display:flex;}

section{padding:110px 0;position:relative;}
.light{background:var(--white);}
.tint{background:var(--ui-gray);}
.dark{background:var(--navy);color:#fff;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:58px;flex-wrap:wrap;}
.page-hero{padding:64px 0 20px;}
.page-hero h1{margin-top:8px;}
.crumb{font-size:13px;color:var(--muted-dark);margin-bottom:18px;}
.crumb a:hover{color:#fff;}

/* hero (home) */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding:110px 0 120px;min-height:88vh;display:flex;align-items:center;}
.glow{position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(0,117,255,.30),transparent 70%);filter:blur(10px);pointer-events:none;top:-120px;right:-160px;transition:transform .6s ease-out;}
.hero .wrap{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;width:100%;}
.hero h1{color:#fff;margin:6px 0 26px;}
.hero-actions{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
.trust-row{display:flex;gap:40px;margin-top:64px;flex-wrap:wrap;opacity:.85;}
.trust-row div{font-size:13px;color:var(--muted-dark);font-weight:500;}

/* ---- shared 3D mascot mount point (Three.js canvas lives here on every page) ---- */
.mascot-viewport{position:relative;width:100%;}
.mascot-viewport canvas{display:block;outline:none;}
.viewport-lg{height:420px;}
.viewport-sm{height:250px;}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--d,0s);}
.reveal.in{opacity:1;transform:none;}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.pillar{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:30px 26px;transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s ease;}
.pillar:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);border-color:transparent;}
.pillar .ic{width:38px;height:38px;color:var(--blue);margin-bottom:18px;}
.pillar h3{margin-bottom:9px;}
.pillar p{color:var(--muted);font-size:14.5px;}
.values-strip{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-light);border-radius:14px;overflow:hidden;border:1px solid var(--line-light);}
.values-strip div{background:var(--navy);color:#fff;padding:28px 30px;}
.values-strip b{display:block;font-size:14.5px;margin-bottom:7px;}
.values-strip span{font-size:13.5px;color:var(--muted-dark);}

/* fold philosophy */
.fold-diagram{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:36px;flex-wrap:wrap;}
.fold-step{flex:1;min-width:150px;text-align:center;padding:26px 18px;border:1px solid var(--line-dark);border-radius:14px;background:var(--navy-2);}
.fold-step .n{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-light);font-weight:700;margin-bottom:10px;}
.fold-step p{font-size:14px;color:var(--muted-dark);}
.fold-arrow{color:var(--blue-light);font-size:22px;flex-shrink:0;}
.lineage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px;}
.lineage-card{border:1px solid var(--line-light);border-radius:14px;padding:26px;background:#fff;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.lineage-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.lineage-card h3{font-size:16px;margin-bottom:10px;}
.lineage-card p{font-size:14px;color:var(--muted);}

/* sovereignty */
.sov-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.sov-copy p{color:var(--muted-dark);margin-top:18px;font-size:16.5px;}
.shield-wrap{position:relative;height:340px;display:flex;align-items:center;justify-content:center;}
.shield-ring{position:absolute;border:1px solid rgba(79,163,255,.35);border-radius:50%;animation:pulse 4.5s ease-in-out infinite;}
.shield-ring.r1{width:180px;height:180px;}
.shield-ring.r2{width:260px;height:260px;animation-delay:.6s;}
.shield-ring.r3{width:340px;height:340px;animation-delay:1.2s;}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(1);}50%{opacity:.7;transform:scale(1.04);}}
.shield-core{position:relative;z-index:2;width:104px;height:104px;border-radius:26px;background:linear-gradient(145deg,var(--blue),#0047B3);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 50px -12px rgba(0,117,255,.6);}
.shield-core svg{width:46px;height:46px;color:#fff;}
@media (prefers-reduced-motion: reduce){.shield-ring{animation:none;opacity:.4;}}

/* systems */
.domain-label{font-weight:700;font-size:16px;margin:50px 0 22px;padding-bottom:14px;border-bottom:1px solid var(--line-light);display:flex;justify-content:space-between;color:var(--ink);}
.domain-label span{font-weight:500;font-size:13px;color:var(--muted);}
.sys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sys-card{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:26px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.sys-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.sys-card h3{font-size:16.5px;}
.sys-card .mods{margin-top:14px;font-size:13px;color:var(--muted);}
.sys-card .mods span{display:block;padding:3px 0;padding-left:14px;position:relative;}
.sys-card .mods span::before{content:"";position:absolute;left:0;top:9px;width:6px;height:1.5px;background:var(--blue);}

/* devis band */
.devis{background:linear-gradient(120deg,var(--navy) 0%,#0C1A38 100%);color:#fff;text-align:center;position:relative;overflow:hidden;}
.devis .wrap{position:relative;z-index:2;max-width:760px;}
.devis h2{color:#fff;}
.devis p{margin:18px auto 34px;}
.devis-orb{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(0,117,255,.25),transparent 70%);top:-200px;left:50%;transform:translateX(-50%);}

/* team */
.team-grid{display:grid;gap:26px;}
.team-grid-2{grid-template-columns:repeat(2,1fr);max-width:760px;margin:0 auto;}
.team-grid-4{grid-template-columns:repeat(4,1fr);margin-top:26px;}
.dept-label{font-weight:700;font-size:14px;color:var(--muted);margin:64px 0 4px;text-transform:uppercase;letter-spacing:.06em;text-align:center;}
.team-card{text-align:left;}
.team-photo{width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,var(--navy-2),var(--navy));position:relative;margin-bottom:18px;}
.team-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.team-card:hover .team-photo img{transform:scale(1.05);}
.team-card h3{font-size:19px;}
.team-card .role{color:var(--blue);font-size:13.5px;font-weight:600;margin:4px 0 12px;}
.team-card .quote{color:var(--muted);font-size:14.5px;font-style:italic;line-height:1.6;}
.team-card.sm h3{font-size:16.5px;}
.team-card.sm .role{font-size:12.5px;margin-bottom:0;}
.team-card.sm .team-photo{margin-bottom:14px;}
.team-cta{margin-top:64px;text-align:center;}

/* careers */
.role-card{background:var(--navy-2);border:1px solid var(--line-dark);border-radius:16px;padding:32px;transition:transform .4s var(--ease), border-color .4s ease;margin-bottom:20px;}
.role-card:hover{transform:translateY(-4px);border-color:rgba(79,163,255,.4);}
.role-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:6px;}
.role-card h3{color:#fff;font-size:20px;}
.role-card .field{color:var(--blue-light);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.role-card p.desc{color:var(--muted-dark);font-size:14.5px;margin-top:10px;}
.role-card ul{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-dark);}
.role-card li{font-size:14px;color:var(--muted-dark);padding:7px 0;display:flex;gap:10px;}
.role-card li svg{flex-shrink:0;width:15px;height:15px;color:var(--blue-light);margin-top:3px;}
.criteria-note{background:var(--blue-dim);border:1px solid rgba(0,117,255,.25);border-radius:12px;padding:20px 24px;font-size:14px;color:var(--muted);margin:36px 0 44px;}
.criteria-note b{color:var(--ink);}
.intern-card{background:#fff;border:1px solid var(--line-light);border-radius:14px;padding:28px;transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.intern-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -20px rgba(14,20,32,.18);}
.intern-card .field{color:var(--blue);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.intern-card h3{margin:8px 0 14px;font-size:17.5px;}
.intern-row{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px;}
.intern-row dt{color:var(--muted);font-weight:600;}
.intern-row dd{margin:0;color:var(--ink);}
.intern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}

/* footer */
footer{background:var(--navy);color:var(--muted-dark);padding:72px 0 32px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--line-dark);}
.foot-grid h4{color:#fff;font-size:13px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:18px;font-weight:600;}
.foot-grid li{padding:6px 0;font-size:14px;}
.foot-grid li a:hover{color:#fff;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:12.5px;flex-wrap:wrap;gap:12px;}
.foot-bottom .social a{margin-left:18px;font-size:12.5px;}

@media (max-width: 980px){
 nav.links{display:none;}
 .burger{display:block;}
 .hero .wrap{grid-template-columns:1fr;}
 .viewport-lg{height:280px;order:-1;}
 .page-hero .wrap{grid-template-columns:1fr !important;}
 .page-hero .wrap > div:last-child{order:-1;}
 .viewport-sm{height:210px;margin-bottom:8px;}
 .sov-grid{grid-template-columns:1fr;gap:40px;}
 .pillars{grid-template-columns:1fr 1fr;}
 .values-strip{grid-template-columns:1fr;}
 .sys-grid{grid-template-columns:1fr 1fr;}
 .lineage-grid{grid-template-columns:1fr;}
 .fold-diagram{flex-direction:column;}
 .fold-arrow{transform:rotate(90deg);}
 .team-grid-2{grid-template-columns:1fr;max-width:360px;margin:0 auto;}
 .team-grid-4{grid-template-columns:1fr 1fr;max-width:520px;margin:26px auto 0;}
 .intern-grid{grid-template-columns:1fr;}
 .foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 560px){
 .wrap{padding:0 20px;}
 .pillars{grid-template-columns:1fr;}
 .sys-grid{grid-template-columns:1fr;}
 .foot-grid{grid-template-columns:1fr;gap:26px;}
 section{padding:80px 0;}
}

/* --- Site complete additions --- */
.btn-login{box-shadow:0 6px 18px -6px rgba(0,117,255,.5);}
.sys-expand{cursor:pointer;list-style:none;}
.sys-expand>summary{list-style:none;cursor:pointer;}
.sys-expand>summary::-webkit-details-marker{display:none;}
.sys-expand>summary h3{margin:0 0 10px;}
.sys-detail{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-light);animation:fadeIn .35s ease;}
.sys-detail p{font-size:14.5px;color:var(--muted);margin-bottom:12px;line-height:1.6;}
.sys-caps{margin:0 0 16px;padding:0;list-style:none;}
.sys-caps li{font-size:13.5px;color:var(--ink);padding:6px 0 6px 18px;position:relative;}
.sys-caps li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:50%;background:var(--blue);}
.sys-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.sys-expand[open]{border-color:rgba(0,117,255,.35);box-shadow:0 8px 28px -12px rgba(0,117,255,.25);}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.role-card .apply-row{margin-top:14px;}
.role-card .apply-row .btn{padding:10px 18px;font-size:13px;}

/* Team flock hero + modal */


.team-card{cursor:pointer;transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.team-card:hover,.team-card:focus{transform:translateY(-4px);outline:none;box-shadow:0 16px 40px -16px rgba(0,117,255,.35);}
.team-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
.card-hint{display:inline-block;margin-top:12px;font-size:12.5px;font-weight:600;color:var(--blue);}
.member-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;}
.member-modal[hidden]{display:none!important;}
.member-modal-backdrop{position:absolute;inset:0;background:rgba(11,17,32,.72);backdrop-filter:blur(8px);}
.member-modal-panel{position:relative;z-index:1;background:#fff;border-radius:16px;max-width:860px;width:100%;max-height:90vh;overflow:auto;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.35);}
.member-modal-close{position:absolute;top:12px;right:16px;border:0;background:none;font-size:28px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 10px;}
.member-modal-grid{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start;}
.member-modal-photo{border-radius:12px;overflow:hidden;aspect-ratio:1;background:var(--navy-2);}
.member-modal-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.member-form label{display:block;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--ink);}
.member-form input,.member-form textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line-light);border-radius:8px;font:inherit;font-weight:400;}
.member-form input:focus,.member-form textarea:focus{outline:2px solid var(--blue);border-color:transparent;}
.form-honest{font-size:12.5px;color:var(--muted);font-weight:400;margin:8px 0 14px;line-height:1.5;}
@media (max-width:720px){
 .member-modal-grid{grid-template-columns:1fr;}
 .member-modal-photo{max-width:200px;margin:0 auto;}
 
}




/* Team page - stable layout (no infinite growth) */
html, body { overflow-x: clip; }
body.page-equipe {
 background: #0B1120;
 overflow-x: clip;
 overflow-y: auto;
 min-height: 100%;
 height: auto;
}
body.page-equipe header {
 position: fixed;
 top: 0; left: 0; right: 0;
 width: 100%;
 z-index: 200;
}
body.page-equipe #progress { z-index: 201; }
/* Canvas must never participate in document flow */
#teamFlock.team-flock-canvas {
 position: fixed !important;
 top: 78px !important;
 left: 0 !important;
 right: 0 !important;
 bottom: 0 !important;
 width: 100% !important;
 height: auto !important;
 max-height: none !important;
 z-index: 1 !important;
 pointer-events: none !important;
 margin: 0 !important;
 padding: 0 !important;
 overflow: hidden !important;
 contain: strict;
}
#teamFlock.team-flock-canvas canvas {
 display: block !important;
 width: 100% !important;
 height: 100% !important;
 pointer-events: none !important;
}
body.page-equipe .team-hero {
 position: relative;
 z-index: 2;
 padding: 110px 0 40px;
 background: transparent;
 min-height: 0;
}
body.page-equipe section.light {
 position: relative;
 z-index: 2;
 background: rgba(255,255,255,0.88);
}
body.page-equipe footer { position: relative; z-index: 2; }
body.page-equipe .team-card {
 position: relative;
 z-index: 3;
 background: #fff;
}
body.page-equipe .team-hero-copy,
body.page-equipe .wrap { position: relative; z-index: 3; }
/* Ensure modal cannot leave scroll permanently stuck */
html:not(.modal-open), body:not(.modal-open) {
 overflow-y: auto;
}


/* ===== Member modal (force overlay) ===== */
#memberModal.member-modal {
 position: fixed !important;
 top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
 inset: 0 !important;
 z-index: 10000 !important;
 display: none !important;
 align-items: center !important;
 justify-content: center !important;
 padding: 24px !important;
 margin: 0 !important;
 box-sizing: border-box !important;
}
#memberModal.member-modal.is-open,
#memberModal.member-modal:not([hidden]) {
 display: flex !important;
}
#memberModal[hidden] {
 display: none !important;
}
#memberModal .member-modal-backdrop {
 position: absolute !important;
 inset: 0 !important;
 background: rgba(8, 12, 20, 0.78) !important;
 backdrop-filter: blur(10px);
}
#memberModal .member-modal-panel {
 position: relative !important;
 z-index: 1 !important;
 background: #fff !important;
 border-radius: 16px !important;
 max-width: 820px !important;
 width: min(100%, 820px) !important;
 max-height: min(88vh, 900px) !important;
 overflow-x: hidden !important;
 overflow-y: auto !important;
 padding: 28px !important;
 box-shadow: 0 28px 90px rgba(0,0,0,.45) !important;
 margin: auto !important;
}
#memberModal .member-modal-grid {
 display: grid !important;
 grid-template-columns: 220px 1fr !important;
 gap: 28px !important;
 align-items: start !important;
}
#memberModal .member-modal-photo {
 width: 100% !important;
 aspect-ratio: 1 !important;
 border-radius: 12px !important;
 overflow: hidden !important;
 background: #0F1830 !important;
}
#memberModal .member-modal-photo img {
 width: 100% !important;
 height: 100% !important;
 object-fit: cover !important;
 object-position: center top !important;
 display: block !important;
}
#memberModal .member-form,
#memberModal .member-form .mf-field {
 display: flex !important;
 flex-direction: column !important;
 align-items: stretch !important;
 width: 100% !important;
}
#memberModal .member-form { gap: 12px !important; max-width: 420px !important; margin-top: 8px !important; }
#memberModal .member-form label {
 display: block !important;
 font-size: 13px !important;
 font-weight: 600 !important;
 color: #0E1420 !important;
 margin: 0 0 6px !important;
}
#memberModal .member-form input,
#memberModal .member-form textarea {
 display: block !important;
 width: 100% !important;
 box-sizing: border-box !important;
 padding: 12px 14px !important;
 border: 1px solid rgba(14,20,32,.12) !important;
 border-radius: 8px !important;
 font: inherit !important;
 margin: 0 !important;
}
#memberModal .form-honest {
 font-size: 12.5px !important;
 color: #5B6B7C !important;
 line-height: 1.5 !important;
 margin: 4px 0 8px !important;
}
@media (max-width: 720px) {
 #memberModal .member-modal-grid { grid-template-columns: 1fr !important; }
 #memberModal .member-modal-photo { max-width: 200px !important; margin: 0 auto !important; }
}

/* Content above flock sky */
body.page-equipe header { z-index: 200 !important; }
body.page-equipe #teamFlock.team-flock-canvas { z-index: 0 !important; }
body.page-equipe .team-hero,
body.page-equipe section.light,
body.page-equipe footer { position: relative; z-index: 2; }
body.page-equipe section.light {
 background: #fff !important; /* solid so birds are behind, not through text */
}
body.page-equipe .team-card {
 position: relative;
 z-index: 3;
 background: #fff !important;
}
body.page-equipe .team-hero-copy,
body.page-equipe .wrap { position: relative; z-index: 3; }
/* Soft sky only in hero - birds readable behind dark + over white as silhouettes under solid cards */


/* Designed profile section */
.member-detail {
 margin: 48px 0 24px;
 scroll-margin-top: 96px;
}
.member-detail[hidden] { display: none !important; }
.member-detail.is-open { display: block !important; }
.member-detail-inner {
 background: #fff;
 border: 1px solid rgba(14,20,32,.08);
 border-radius: 20px;
 padding: 28px 32px 36px;
 box-shadow: 0 20px 60px -24px rgba(11,17,32,.25);
}
.member-detail-back {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 border: 0;
 background: transparent;
 color: var(--blue, #0075FF);
 font: inherit;
 font-weight: 600;
 font-size: 14px;
 cursor: pointer;
 padding: 8px 0 20px;
}
.member-detail-back:hover { opacity: 0.8; }
.member-detail-grid {
 display: grid;
 grid-template-columns: minmax(200px, 280px) 1fr;
 gap: 36px;
 align-items: start;
}
.member-detail-photo {
 border-radius: 16px;
 overflow: hidden;
 aspect-ratio: 4/5;
 background: #0F1830;
 box-shadow: 0 12px 40px -16px rgba(0,0,0,.35);
}
.member-detail-photo img {
 width: 100%; height: 100%;
 object-fit: cover; object-position: center top;
 display: block;
}
.member-detail-role {
 font-size: 13px;
 font-weight: 700;
 letter-spacing: .04em;
 text-transform: uppercase;
 color: var(--blue, #0075FF);
 margin: 0 0 8px;
}
.member-detail-body h2 {
 font-size: clamp(28px, 4vw, 40px);
 margin: 0 0 16px;
 letter-spacing: -0.02em;
 color: #0E1420;
}
.member-detail-quote {
 margin: 0 0 18px;
 padding: 0;
 border: 0;
 font-size: 17px;
 line-height: 1.55;
 color: #3a4553;
 font-style: italic;
}
.member-detail-bio {
 font-size: 15.5px;
 line-height: 1.6;
 color: #5B6B7C;
 margin: 0 0 28px;
}
.member-detail-contact h3 {
 font-size: 15px;
 margin: 0 0 14px;
 color: #0E1420;
}
.member-detail .member-form {
 display: flex;
 flex-direction: column;
 gap: 14px;
 max-width: 440px;
}
.member-detail .mf-field {
 display: flex;
 flex-direction: column;
 gap: 6px;
}
.member-detail .mf-field label {
 font-size: 13px;
 font-weight: 600;
 color: #0E1420;
}
.member-detail .mf-field input,
.member-detail .mf-field textarea {
 width: 100%;
 box-sizing: border-box;
 padding: 12px 14px;
 border: 1px solid rgba(14,20,32,.12);
 border-radius: 8px;
 font: inherit;
}
.member-detail .form-honest {
 font-size: 12.5px;
 color: #5B6B7C;
 line-height: 1.5;
 margin: 0;
}
@media (max-width: 720px) {
 .member-detail-grid { grid-template-columns: 1fr; }
 .member-detail-photo { max-width: 260px; }
 .member-detail-inner { padding: 20px; }
}

/* ===== Team page sky + content layering ===== */
body.page-equipe {
 background: #0B1120;
}
body.page-equipe header {
 position: fixed !important;
 top: 0; left: 0; right: 0;
 z-index: 200 !important;
}
#teamFlock.team-flock-canvas {
 position: fixed !important;
 top: 78px !important;
 left: 0 !important; right: 0 !important; bottom: 0 !important;
 z-index: 1 !important;
 pointer-events: none !important;
 overflow: hidden !important;
}
body.page-equipe .team-hero {
 position: relative;
 z-index: 2;
 padding: 120px 0 56px;
 background: transparent !important;
 min-height: 280px;
}
body.page-equipe .team-section {
 position: relative;
 z-index: 2;
 padding: 48px 0 96px;
 background: rgba(255, 255, 255, 0.92);
 backdrop-filter: blur(1px);
}
body.page-equipe .team-card {
 position: relative;
 z-index: 3;
 background: #fff !important;
 border-radius: 16px;
 padding: 18px;
 border: 1px solid rgba(14, 20, 32, 0.06);
 box-shadow: 0 8px 28px -18px rgba(11, 17, 32, 0.2);
}
body.page-equipe footer {
 position: relative;
 z-index: 2;
}

/* ===== Profile panel (finished design) ===== */
.profile-panel {
 margin: 48px 0 8px;
 scroll-margin-top: 100px;
}
.profile-panel[hidden] {
 display: none !important;
}
.profile-panel.is-open {
 display: block !important;
 animation: profileIn 0.35s ease both;
}
@keyframes profileIn {
 from { opacity: 0; transform: translateY(12px); }
 to { opacity: 1; transform: translateY(0); }
}
.profile-panel-card {
 background: #fff;
 border-radius: 24px;
 border: 1px solid rgba(14, 20, 32, 0.08);
 box-shadow:
 0 4px 6px -2px rgba(11, 17, 32, 0.04),
 0 24px 64px -20px rgba(11, 17, 32, 0.28);
 overflow: hidden;
}
.profile-panel-top {
 padding: 18px 28px 0;
}
.profile-back {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 border: 0;
 background: rgba(0, 117, 255, 0.08);
 color: #0075FF;
 font: inherit;
 font-size: 13.5px;
 font-weight: 600;
 cursor: pointer;
 padding: 10px 14px;
 border-radius: 999px;
 transition: background 0.2s ease;
}
.profile-back:hover {
 background: rgba(0, 117, 255, 0.14);
}
.profile-panel-grid {
 display: grid;
 grid-template-columns: minmax(240px, 320px) 1fr;
 gap: 0;
 align-items: stretch;
}
.profile-panel-visual {
 position: relative;
 background: linear-gradient(160deg, #0B1120 0%, #152238 100%);
 padding: 28px;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 min-height: 420px;
}
.profile-panel-photo {
 border-radius: 18px;
 overflow: hidden;
 aspect-ratio: 4 / 5;
 box-shadow: 0 20px 50px -16px rgba(0, 0, 0, 0.55);
 border: 1px solid rgba(255, 255, 255, 0.08);
}
.profile-panel-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center top;
 display: block;
}
.profile-panel-accent {
 position: absolute;
 top: 28px;
 right: 28px;
 width: 12px;
 height: 12px;
 border-radius: 50%;
 background: #0075FF;
 box-shadow: 0 0 0 6px rgba(0, 117, 255, 0.2);
}
.profile-panel-content {
 padding: 28px 36px 36px;
 display: flex;
 flex-direction: column;
}
.profile-role {
 margin: 0 0 8px;
 font-size: 12.5px;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: #0075FF;
}
.profile-name {
 margin: 0 0 18px;
 font-size: clamp(28px, 3.5vw, 38px);
 line-height: 1.15;
 letter-spacing: -0.025em;
 color: #0E1420;
 font-weight: 800;
}
.profile-quote {
 margin: 0 0 16px;
 padding: 0 0 0 16px;
 border-left: 3px solid rgba(0, 117, 255, 0.35);
 font-size: 16.5px;
 line-height: 1.55;
 color: #3a4553;
 font-style: italic;
}
.profile-bio {
 margin: 0;
 font-size: 15px;
 line-height: 1.65;
 color: #5B6B7C;
}
.profile-divider {
 height: 1px;
 background: rgba(14, 20, 32, 0.08);
 margin: 28px 0 24px;
}
.profile-contact-title {
 margin: 0 0 6px;
 font-size: 16px;
 font-weight: 700;
 color: #0E1420;
}
.profile-contact-sub {
 margin: 0 0 18px;
 font-size: 13.5px;
 color: #5B6B7C;
 line-height: 1.5;
}
.profile-form {
 display: flex;
 flex-direction: column;
 gap: 14px;
}
.profile-form-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 14px;
}
.profile-field {
 display: flex;
 flex-direction: column;
 gap: 6px;
}
.profile-field label {
 font-size: 12.5px;
 font-weight: 600;
 color: #0E1420;
}
.profile-field input,
.profile-field textarea {
 width: 100%;
 box-sizing: border-box;
 padding: 12px 14px;
 border: 1px solid rgba(14, 20, 32, 0.12);
 border-radius: 10px;
 font: inherit;
 font-size: 14.5px;
 color: #0E1420;
 background: #fafbfc;
 transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.profile-field input:focus,
.profile-field textarea:focus {
 outline: none;
 border-color: #0075FF;
 box-shadow: 0 0 0 3px rgba(0, 117, 255, 0.15);
 background: #fff;
}
.profile-form-actions {
 margin-top: 4px;
}
.profile-submit {
 padding: 13px 22px !important;
 border-radius: 10px !important;
 font-weight: 600 !important;
}
@media (max-width: 800px) {
 .profile-panel-grid {
 grid-template-columns: 1fr;
 }
 .profile-panel-visual {
 min-height: 0;
 padding: 20px 20px 0;
 }
 .profile-panel-photo {
 max-width: 280px;
 margin: 0 auto;
 }
 .profile-panel-content {
 padding: 24px 20px 28px;
 }
 .profile-form-row {
 grid-template-columns: 1fr;
 }
}

/* ===== Profile popup modal ===== */
body.profile-open {
 overflow: hidden;
}
.profile-modal {
 position: fixed !important;
 inset: 0 !important;
 z-index: 10000 !important;
 display: none !important;
 align-items: center;
 justify-content: center;
 padding: 24px;
 box-sizing: border-box;
}
.profile-modal.is-open {
 display: flex !important;
}
.profile-modal[hidden] {
 display: none !important;
}
.profile-modal-backdrop {
 position: absolute;
 inset: 0;
 background: rgba(8, 12, 22, 0.72);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
}
.profile-modal-window {
 position: relative;
 z-index: 1;
 width: min(920px, 100%);
 max-height: min(90vh, 860px);
 overflow: auto;
 background: #fff;
 border-radius: 22px;
 box-shadow:
 0 0 0 1px rgba(255,255,255,0.06),
 0 28px 80px -16px rgba(0,0,0,0.55);
 animation: modalPop 0.28s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes modalPop {
 from { opacity: 0; transform: translateY(16px) scale(0.98); }
 to { opacity: 1; transform: translateY(0) scale(1); }
}
.profile-modal-close {
 position: absolute;
 top: 14px;
 right: 14px;
 z-index: 5;
 width: 40px;
 height: 40px;
 border: 0;
 border-radius: 50%;
 background: rgba(14, 20, 32, 0.06);
 color: #0E1420;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: center;
 transition: background 0.15s ease;
}
.profile-modal-close:hover {
 background: rgba(14, 20, 32, 0.12);
}
.profile-modal-grid {
 display: grid;
 grid-template-columns: minmax(220px, 300px) 1fr;
 min-height: 420px;
}
.profile-modal-visual {
 position: relative;
 background: linear-gradient(165deg, #0B1120 0%, #152238 100%);
 padding: 28px 24px;
 display: flex;
 align-items: center;
 justify-content: center;
}
.profile-modal-photo {
 width: 100%;
 max-width: 260px;
 aspect-ratio: 4 / 5;
 border-radius: 16px;
 overflow: hidden;
 border: 1px solid rgba(255,255,255,0.1);
 box-shadow: 0 20px 48px -12px rgba(0,0,0,0.5);
}
.profile-modal-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center top;
 display: block;
}
.profile-modal-accent {
 position: absolute;
 top: 22px;
 left: 22px;
 width: 10px;
 height: 10px;
 border-radius: 50%;
 background: #0075FF;
 box-shadow: 0 0 0 5px rgba(0,117,255,0.22);
}
.profile-modal-content {
 padding: 32px 36px 32px 32px;
 display: flex;
 flex-direction: column;
}
.profile-modal .profile-role {
 margin: 0 0 8px;
 font-size: 12px;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: #0075FF;
}
.profile-modal .profile-name {
 margin: 0 0 14px;
 font-size: clamp(26px, 3vw, 34px);
 line-height: 1.15;
 letter-spacing: -0.02em;
 font-weight: 800;
 color: #0E1420;
}
.profile-modal .profile-quote {
 margin: 0 0 14px;
 padding: 0 0 0 14px;
 border-left: 3px solid rgba(0,117,255,0.35);
 font-size: 15.5px;
 line-height: 1.55;
 color: #3a4553;
 font-style: italic;
}
.profile-modal .profile-bio {
 margin: 0;
 font-size: 14.5px;
 line-height: 1.65;
 color: #5B6B7C;
}
.profile-modal .profile-divider {
 height: 1px;
 background: rgba(14,20,32,0.08);
 margin: 22px 0 18px;
}
.profile-modal .profile-contact-title {
 margin: 0 0 4px;
 font-size: 15px;
 font-weight: 700;
 color: #0E1420;
}
.profile-modal .profile-contact-sub {
 margin: 0 0 16px;
 font-size: 13px;
 color: #5B6B7C;
 line-height: 1.45;
}
.profile-modal .profile-form {
 display: flex;
 flex-direction: column;
 gap: 12px;
}
.profile-modal .profile-form-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 12px;
}
.profile-modal .profile-field {
 display: flex;
 flex-direction: column;
 gap: 6px;
}
.profile-modal .profile-field label {
 font-size: 12.5px;
 font-weight: 600;
 color: #0E1420;
}
.profile-modal .profile-field input,
.profile-modal .profile-field textarea {
 width: 100%;
 box-sizing: border-box;
 padding: 11px 13px;
 border: 1px solid rgba(14,20,32,0.12);
 border-radius: 10px;
 font: inherit;
 font-size: 14px;
 background: #fafbfc;
 color: #0E1420;
}
.profile-modal .profile-field input:focus,
.profile-modal .profile-field textarea:focus {
 outline: none;
 border-color: #0075FF;
 box-shadow: 0 0 0 3px rgba(0,117,255,0.14);
 background: #fff;
}
.profile-modal .profile-form-actions {
 display: flex;
 gap: 10px;
 justify-content: flex-end;
 margin-top: 6px;
 flex-wrap: wrap;
}
.profile-modal .profile-cancel {
 background: transparent;
 border: 1px solid rgba(14,20,32,0.12);
 color: #0E1420;
 padding: 11px 18px;
 border-radius: 10px;
 font-weight: 600;
 cursor: pointer;
}
.profile-modal .profile-cancel:hover {
 background: rgba(14,20,32,0.04);
}
.profile-modal .profile-submit {
 padding: 11px 20px !important;
 border-radius: 10px !important;
 font-weight: 600 !important;
}
@media (max-width: 760px) {
 .profile-modal {
 padding: 12px;
 align-items: flex-end;
 }
 .profile-modal-window {
 max-height: 92vh;
 border-radius: 18px 18px 12px 12px;
 }
 .profile-modal-grid {
 grid-template-columns: 1fr;
 }
 .profile-modal-visual {
 padding: 20px 20px 0;
 }
 .profile-modal-photo {
 max-width: 200px;
 }
 .profile-modal-content {
 padding: 20px;
 }
 .profile-modal .profile-form-row {
 grid-template-columns: 1fr;
 }
}

/* FORCE profile popup visible when open */
#memberDetail.profile-modal.is-open {
 display: flex !important;
 visibility: visible !important;
 opacity: 1 !important;
 pointer-events: auto !important;
}
#memberDetail.profile-modal.is-open[hidden] {
 display: flex !important; /* in case hidden attr lags */
}

/* ===== APPROACH PAGE (dark glass) ===== */
body.page-approach {
 background: #080C14;
 color: #E8EEF7;
}
body.page-approach header {
 background: rgba(8, 12, 20, 0.85);
}
.ap-hero {
 padding: 120px 0 64px;
 position: relative;
 overflow: hidden;
}
.ap-hero-grid {
 display: grid;
 grid-template-columns: 1.05fr 0.95fr;
 gap: 40px;
 align-items: center;
}
.ap-crumb a { color: rgba(232,238,247,0.45); }
.ap-crumb { color: rgba(232,238,247,0.45); font-size: 13px; margin-bottom: 18px; }
.ap-hero h1 {
 color: #fff;
 font-size: clamp(32px, 5vw, 52px);
 line-height: 1.08;
 letter-spacing: -0.03em;
 margin: 12px 0 18px;
 max-width: 14ch;
}
.ap-lede {
 color: rgba(232,238,247,0.65);
 font-size: 17px;
 line-height: 1.6;
 max-width: 42ch;
 margin: 0 0 16px;
}
.ap-hint {
 font-size: 13px;
 color: rgba(0,117,255,0.9);
 font-weight: 600;
 margin: 0;
}
.ap-hero-stage {
 position: relative;
 min-height: 380px;
 border-radius: 24px;
 background: linear-gradient(160deg, rgba(15,24,48,0.9), rgba(8,12,20,0.6));
 border: 1px solid rgba(255,255,255,0.06);
 box-shadow: 0 30px 80px -30px rgba(0,117,255,0.25);
 overflow: hidden;
}
.ap-mascot {
 width: 100%;
 height: 380px;
 touch-action: pan-y;
}
.ap-mascot canvas { width: 100% !important; height: 100% !important; display: block; }
.ap-blueprint {
 position: absolute;
 inset: 0;
 pointer-events: none;
 opacity: 0;
 transition: opacity 0.5s ease;
}
.ap-blueprint.is-on { opacity: 1; }
.ap-blueprint span {
 position: absolute;
 font-size: 11px;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: #4FA3FF;
 padding: 6px 10px;
 border-radius: 6px;
 background: rgba(0,117,255,0.12);
 border: 1px solid rgba(0,117,255,0.35);
 text-shadow: 0 0 12px rgba(0,117,255,0.5);
}
.ap-blueprint [data-step="1"] { top: 12%; left: 8%; }
.ap-blueprint [data-step="2"] { top: 18%; right: 8%; }
.ap-blueprint [data-step="3"] { bottom: 22%; left: 10%; }
.ap-blueprint [data-step="4"] { bottom: 14%; right: 10%; }

.ap-section { padding: 72px 0; }
.ap-section-alt { background: rgba(255,255,255,0.02); }
.ap-section-head { margin-bottom: 36px; max-width: 640px; }
.ap-section-head h2 {
 color: #fff;
 font-size: clamp(24px, 3.5vw, 36px);
 letter-spacing: -0.02em;
 margin: 10px 0 12px;
}
.ap-section-lede {
 color: rgba(232,238,247,0.55);
 font-size: 16px;
 line-height: 1.6;
 margin: 0;
}

.ap-glass {
 background: rgba(255,255,255,0.04);
 border: 1px solid rgba(255,255,255,0.08);
 border-radius: 18px;
 padding: 24px 22px;
 backdrop-filter: blur(12px);
 transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.ap-glass:hover {
 border-color: rgba(0,117,255,0.45);
 box-shadow: 0 0 0 1px rgba(0,117,255,0.15), 0 20px 50px -24px rgba(0,117,255,0.45);
 transform: translateY(-2px);
}
.ap-glass h3 {
 color: #fff;
 font-size: 17px;
 margin: 0 0 10px;
 font-weight: 700;
}
.ap-glass p {
 color: rgba(232,238,247,0.55);
 font-size: 14.5px;
 line-height: 1.55;
 margin: 0;
}

.ap-steps {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 16px;
}
.ap-step-num {
 display: block;
 font-size: 12px;
 font-weight: 800;
 letter-spacing: 0.08em;
 color: #0075FF;
 margin-bottom: 12px;
}

.ap-lineage {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 16px;
}
.ap-geo {
 height: 72px;
 margin-bottom: 16px;
 border-radius: 12px;
 background:
 linear-gradient(135deg, rgba(0,117,255,0.15), transparent 60%),
 repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 10px);
 border: 1px solid rgba(255,255,255,0.06);
}
.ap-geo-webb {
 background:
 radial-gradient(circle at 50% 60%, rgba(0,117,255,0.25), transparent 55%),
 repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 8px);
}
.ap-geo-stent {
 background:
 linear-gradient(90deg, transparent 40%, rgba(0,117,255,0.2) 50%, transparent 60%),
 repeating-linear-gradient(-45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 12px);
}

.ap-sov {
 display: grid;
 grid-template-columns: 0.85fr 1.15fr;
 gap: 48px;
 align-items: center;
}
.ap-sov-copy h2 {
 color: #fff;
 font-size: clamp(26px, 3.5vw, 38px);
 margin: 10px 0 16px;
 letter-spacing: -0.02em;
}
.ap-sov-copy p {
 color: rgba(232,238,247,0.6);
 font-size: 16px;
 line-height: 1.6;
 margin: 0 0 24px;
 max-width: 44ch;
}
.ap-shield {
 position: relative;
 width: 220px;
 height: 220px;
 margin: 0 auto;
}
.ap-shield-ring {
 position: absolute;
 inset: 0;
 border-radius: 50%;
 border: 1px solid rgba(0,117,255,0.25);
 animation: apPulse 4s ease-in-out infinite;
}
.ap-shield-ring.r2 { inset: 18px; animation-delay: -1.2s; border-color: rgba(0,117,255,0.35); }
.ap-shield-ring.r3 { inset: 36px; animation-delay: -2.4s; border-color: rgba(0,117,255,0.5); }
@keyframes apPulse {
 0%, 100% { transform: scale(1); opacity: 0.55; }
 50% { transform: scale(1.04); opacity: 1; }
}
.ap-shield-core {
 position: absolute;
 inset: 58px;
 border-radius: 50%;
 background: linear-gradient(145deg, #0075FF, #0047B3);
 display: flex;
 align-items: center;
 justify-content: center;
 color: #fff;
 box-shadow: 0 0 40px rgba(0,117,255,0.55);
}

.ap-values {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 16px;
}
.ap-value h3 { font-size: 15px; }

.ap-cta {
 padding: 80px 0;
 text-align: center;
 background: linear-gradient(180deg, transparent, rgba(0,117,255,0.08));
}
.ap-cta h2 {
 color: #fff;
 font-size: clamp(24px, 3.5vw, 36px);
 margin: 0 0 28px;
}
.ap-cta-actions {
 display: flex;
 gap: 12px;
 justify-content: center;
 flex-wrap: wrap;
}
.ap-btn-ghost {
 background: transparent !important;
 border: 1px solid rgba(255,255,255,0.18) !important;
 color: #fff !important;
}
.ap-btn-ghost:hover {
 border-color: rgba(0,117,255,0.6) !important;
}

body.page-approach footer {
 background: #060A10;
 border-top: 1px solid rgba(255,255,255,0.06);
}
body.page-approach footer a { color: rgba(232,238,247,0.55); }
body.page-approach footer h4 { color: rgba(232,238,247,0.9); }

@media (max-width: 960px) {
 .ap-hero-grid, .ap-sov { grid-template-columns: 1fr; }
 .ap-steps { grid-template-columns: 1fr 1fr; }
 .ap-lineage, .ap-values { grid-template-columns: 1fr; }
 .ap-hero h1 { max-width: none; }
}
@media (max-width: 560px) {
 .ap-steps { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
 .ap-shield-ring { animation: none; }
 .ap-glass:hover { transform: none; }
}

/* Flock above page background, under cards */
body.page-equipe #teamFlock.team-flock-canvas {
 z-index: 2 !important;
}
body.page-equipe .team-section {
 background: rgba(255,255,255,0.94) !important;
 position: relative;
 z-index: 3;
}
body.page-equipe .team-card {
 z-index: 4 !important;
 background: #fff !important;
}
body.page-equipe .team-hero {
 z-index: 3;
 position: relative;
}

/* Approach: visible glass + fallback crane */
.ap-crane-fallback {
 position: absolute;
 inset: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 pointer-events: none;
}
.ap-glass {
 background: rgba(255,255,255,0.07) !important;
 border: 1px solid rgba(255,255,255,0.14) !important;
}
.ap-hero-stage {
 min-height: 400px !important;
}
.ap-mascot { position: relative; }

/* Simple team profile popup - functional only */
.member-modal {
 position: fixed !important;
 inset: 0 !important;
 z-index: 10000 !important;
 display: none !important;
 align-items: center;
 justify-content: center;
 padding: 20px;
}
.member-modal.is-open,
.member-modal:not([hidden]) {
 display: flex !important;
}
.member-modal[hidden] {
 display: none !important;
}
.member-modal-backdrop {
 position: absolute;
 inset: 0;
 background: rgba(10, 14, 24, 0.65);
}
.member-modal-panel {
 position: relative;
 z-index: 1;
 background: #fff;
 border-radius: 14px;
 max-width: 720px;
 width: 100%;
 max-height: 90vh;
 overflow: auto;
 padding: 28px;
 box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.member-modal-close {
 position: absolute;
 top: 10px;
 right: 14px;
 border: 0;
 background: transparent;
 font-size: 28px;
 line-height: 1;
 cursor: pointer;
 color: #5B6B7C;
}
.member-modal-grid {
 display: grid;
 grid-template-columns: 200px 1fr;
 gap: 24px;
 align-items: start;
}
.member-modal-photo {
 border-radius: 12px;
 overflow: hidden;
 aspect-ratio: 1;
 background: #0F1830;
}
.member-modal-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center top;
 display: block;
}
.member-form label.mf {
 display: flex;
 flex-direction: column;
 gap: 6px;
 margin-bottom: 12px;
 font-size: 13px;
 font-weight: 600;
 color: #0E1420;
}
.member-form input,
.member-form textarea {
 display: block;
 width: 100%;
 box-sizing: border-box;
 padding: 10px 12px;
 border: 1px solid rgba(14,20,32,0.12);
 border-radius: 8px;
 font: inherit;
 font-weight: 400;
}
.form-honest {
 font-size: 12.5px;
 color: #5B6B7C;
 margin: 0 0 12px;
}
@media (max-width: 640px) {
 .member-modal-grid { grid-template-columns: 1fr; }
 .member-modal-photo { max-width: 180px; margin: 0 auto; }
}

/* team-flock no-grow */
#teamFlock.team-flock-canvas {
 position: fixed !important;
 top: 78px !important;
 left: 0 !important;
 right: 0 !important;
 bottom: 0 !important;
 width: 100% !important;
 height: auto !important;
 max-height: none !important;
 z-index: 1 !important;
 pointer-events: none !important;
 overflow: hidden !important;
 margin: 0 !important;
 padding: 0 !important;
 contain: strict;
}
#teamFlock canvas {
 display: block !important;
 width: 100% !important;
 height: 100% !important;
 pointer-events: none !important;
}
body.page-equipe .team-card,
body.page-equipe section.light,
body.page-equipe .team-hero,
body.page-equipe .wrap {
 position: relative;
 z-index: 3;
}

/* flock: above page bg, under text/cards */
#teamFlock.team-flock-canvas {
 position: fixed !important;
 top: 78px !important;
 left: 0 !important;
 right: 0 !important;
 bottom: 0 !important;
 z-index: 2 !important;
 pointer-events: none !important;
}
body.page-equipe {
 background: #f5f7fa;
}
body.page-equipe header { z-index: 200 !important; }
/* Sections transparent so birds show over the page white/gray */
body.page-equipe .team-hero {
 position: relative;
 z-index: 3;
 background: #0B1120; /* dark hero stays solid */
}
body.page-equipe section.light,
body.page-equipe .team-section {
 position: relative;
 z-index: 3;
 background: transparent !important;
}
body.page-equipe footer {
 position: relative;
 z-index: 3;
 background: #0B1120;
}
/* Only cards (and text blocks on them) are solid - birds pass behind them */
body.page-equipe .team-card {
 position: relative;
 z-index: 4;
 background: #fff !important;
 transition: box-shadow 0.35s ease, transform 0.35s ease;
}
body.page-equipe .team-card h3,
body.page-equipe .team-card .role,
body.page-equipe .team-card .quote,
body.page-equipe .team-card .card-hint,
body.page-equipe .dept-label,
body.page-equipe .team-cta {
 position: relative;
 z-index: 4;
}
body.page-equipe .team-cta .lede {
 background: transparent;
}
body.page-equipe .team-card:hover,
body.page-equipe .team-card.is-focused {
 box-shadow:
 0 0 0 2px rgba(0, 117, 255, 0.45),
 0 0 28px rgba(0, 117, 255, 0.35),
 0 16px 40px -12px rgba(0, 117, 255, 0.4);
 transform: translateY(-3px);
}

/* Hero-only flock + neon when bird arrives */
body.page-equipe section.light {
 background: #fff !important;
 position: relative;
 z-index: 3;
}
body.page-equipe .team-hero {
 position: relative;
 z-index: 2;
 overflow: hidden;
}
body.page-equipe .team-hero-copy {
 position: relative;
 z-index: 3;
}
body.page-equipe .team-card.neon-glow,
body.page-equipe .team-card.is-focused {
 box-shadow:
 0 0 0 2px rgba(0, 180, 255, 0.85),
 0 0 18px rgba(0, 150, 255, 0.7),
 0 0 40px rgba(0, 117, 255, 0.5),
 0 12px 32px -8px rgba(0, 117, 255, 0.45) !important;
}
body.page-equipe .team-card.neon-glow .team-photo,
body.page-equipe .team-card.is-focused .team-photo {
 box-shadow:
 0 0 0 2px rgba(0, 200, 255, 0.9),
 0 0 24px rgba(0, 170, 255, 0.75);
}

/* perch-under-cards: bird layer z-index 2, cards above so bird is behind photo */
body.page-equipe section.light {
 position: relative;
 z-index: 3;
 background: #fff !important;
}
body.page-equipe .team-card {
 position: relative;
 z-index: 5 !important;
 background: #fff !important;
}
body.page-equipe .team-card.neon-glow .team-photo,
body.page-equipe .team-card.is-focused .team-photo {
 box-shadow:
 0 0 0 3px rgba(0, 200, 255, 0.95),
 0 0 20px rgba(0, 180, 255, 0.85),
 0 0 48px rgba(0, 140, 255, 0.55);
}
#teamFlockPerch {
 z-index: 4 !important;
}

/* team-hero-dark-restore */
body.page-equipe .team-hero,
body.page-equipe .page-hero.dark.team-hero {
 background: #0B1120 !important;
 color: #fff;
}
body.page-equipe .team-hero h1,
body.page-equipe .team-hero .team-hero-copy h1 {
 color: #fff !important;
}
body.page-equipe .team-hero .lede-dark,
body.page-equipe .team-hero p {
 color: rgba(232, 238, 247, 0.7) !important;
}

/* Bird perch UNDER the photo/card */
#teamFlockPerch {
 z-index: 3 !important;
 pointer-events: none !important;
}
body.page-equipe section.light {
 z-index: 5 !important;
 background: #fff !important;
}
body.page-equipe .team-card {
 z-index: 6 !important;
 isolation: isolate;
 background: #fff !important;
}
body.page-equipe .team-card .team-photo {
 position: relative;
 z-index: 2;
 background: #0F1830;
}

/* Modal: full form visible, panel scrolls if needed */
.member-modal {
 align-items: flex-start !important;
 overflow-y: auto !important;
 -webkit-overflow-scrolling: touch;
 padding: 40px 20px 60px !important;
}
.member-modal-panel {
 max-height: none !important;
 overflow: visible !important;
 margin: auto;
}
.member-modal.is-open {
 /* allow scrolling the overlay itself so all fields reachable */
 overscroll-behavior: contain;
}


/* ========== EQUIPE FINAL (do not override above without intent) ========== */
body.page-equipe {
 background: #f4f6f9 !important;
}
body.page-equipe .page-hero.dark.team-hero,
body.page-equipe .team-hero {
 background: #0B1120 !important;
 color: #fff !important;
 position: relative !important;
 overflow: hidden !important;
 z-index: 1 !important;
}
body.page-equipe .team-hero h1 {
 color: #fff !important;
}
body.page-equipe .team-hero .lede,
body.page-equipe .team-hero .lede-dark,
body.page-equipe .team-hero p {
 color: rgba(232, 238, 247, 0.72) !important;
}
body.page-equipe .team-hero-copy {
 position: relative !important;
 z-index: 3 !important;
}
#teamFlock.team-flock-canvas {
 position: absolute !important;
 inset: 0 !important;
 z-index: 1 !important;
 pointer-events: none !important;
}
/* Perch bird under cards */
#teamFlockPerch {
 position: fixed !important;
 inset: 0 !important;
 z-index: 1 !important;
 pointer-events: none !important;
}
body.page-equipe section.light {
 position: relative !important;
 z-index: 5 !important;
 background: #ffffff !important;
}
body.page-equipe .team-card {
 position: relative !important;
 z-index: 10 !important;
 background: #ffffff !important;
 isolation: isolate !important;
}
body.page-equipe .team-card .team-photo {
 position: relative !important;
 z-index: 2 !important;
 background: #0F1830 !important;
}
body.page-equipe .team-card.neon-glow,
body.page-equipe .team-card.is-focused {
 box-shadow:
 0 0 0 3px rgba(0, 200, 255, 0.95),
 0 0 22px rgba(0, 170, 255, 0.8),
 0 0 48px rgba(0, 140, 255, 0.5) !important;
}

/* Modal: scroll overlay so all fields + button reachable */
.member-modal {
 position: fixed !important;
 inset: 0 !important;
 z-index: 10000 !important;
 display: none !important;
 align-items: flex-start !important;
 justify-content: center !important;
 padding: 48px 16px 80px !important;
 overflow-y: auto !important;
 -webkit-overflow-scrolling: touch;
 background: transparent;
}
.member-modal.is-open,
.member-modal:not([hidden]) {
 display: flex !important;
}
.member-modal[hidden] {
 display: none !important;
}
.member-modal-backdrop {
 position: fixed !important;
 inset: 0 !important;
 background: rgba(8, 12, 20, 0.7) !important;
 z-index: 0 !important;
}
.member-modal-panel {
 position: relative !important;
 z-index: 1 !important;
 background: #fff !important;
 border-radius: 16px !important;
 width: min(720px, 100%) !important;
 max-height: none !important;
 overflow: visible !important;
 margin: 0 auto !important;
 padding: 28px !important;
 box-shadow: 0 24px 64px rgba(0,0,0,0.35) !important;
}
.member-form label.mf {
 display: flex !important;
 flex-direction: column !important;
 gap: 6px !important;
 margin-bottom: 14px !important;
}
.member-form input,
.member-form textarea {
 width: 100% !important;
 box-sizing: border-box !important;
}

/* ===== Careers apply form ===== */
.careers-hero-grid {
 display: grid;
 grid-template-columns: 1.1fr 0.9fr;
 gap: 40px;
 align-items: center;
}
.careers-mascot-wrap {
 position: relative;
 min-height: 240px;
}
.careers-mascot-wrap .climb-chart {
 position: absolute;
 inset: 8% 4% 4% 8%;
 width: auto;
 height: auto;
 pointer-events: none;
 z-index: 0;
 opacity: 0.95;
}
.climb-chart .climb-grid { display: none; }
.climb-chart .climb-line {
 stroke: url(#climbGrad);
 stroke-width: 3;
 stroke-linecap: round;
 stroke-linejoin: round;
 fill: none;
}
.careers-mascot-wrap .mascot-viewport {
 position: relative;
 z-index: 1;
 min-height: 220px;
}
.job-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 18px;
}
.job-card {
 background: #fff;
 border: 1px solid rgba(14,20,32,0.08);
 border-radius: 16px;
 padding: 22px;
 display: flex;
 flex-direction: column;
 gap: 10px;
}
.job-meta {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
}
.job-meta span {
 font-size: 11px;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: #0075FF;
 background: rgba(0,117,255,0.08);
 padding: 4px 8px;
 border-radius: 6px;
}
.job-card h3 { margin: 0; font-size: 18px; }
.job-card p { margin: 0; font-size: 14px; color: #5B6B7C; line-height: 1.5; }
.job-req {
 margin: 0;
 padding-left: 18px;
 font-size: 13.5px;
 color: #5B6B7C;
}
.job-card .btn-apply { margin-top: auto; align-self: flex-start; }
.intern-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
 gap: 16px;
}
.intern-card .btn-apply { margin-top: 12px; }

.apply-modal {
 position: fixed;
 inset: 0;
 z-index: 10000;
 display: none;
 align-items: flex-start;
 justify-content: center;
 padding: 40px 16px 60px;
 overflow-y: auto;
}
.apply-modal.is-open,
.apply-modal:not([hidden]) { display: flex !important; }
.apply-modal[hidden] { display: none !important; }
.apply-modal-backdrop {
 position: fixed;
 inset: 0;
 background: rgba(8,12,20,0.7);
}
.apply-modal-panel {
 position: relative;
 z-index: 1;
 background: #fff;
 border-radius: 16px;
 width: min(640px, 100%);
 padding: 28px;
 box-shadow: 0 24px 64px rgba(0,0,0,0.35);
 margin: auto;
}
.apply-modal-close {
 position: absolute;
 top: 10px;
 right: 14px;
 border: 0;
 background: transparent;
 font-size: 28px;
 cursor: pointer;
 color: #5B6B7C;
}
.apply-modal-panel h2 { margin: 0 0 6px; font-size: 22px; }
.apply-sub { margin: 0 0 18px; color: #5B6B7C; font-size: 14px; }
.apply-form { display: flex; flex-direction: column; gap: 12px; }
.apply-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 12px;
}
.apply-form label.af {
 display: flex;
 flex-direction: column;
 gap: 6px;
 font-size: 13px;
 font-weight: 600;
 color: #0E1420;
}
.apply-form input[type="text"],
.apply-form input[type="email"],
.apply-form input[type="tel"],
.apply-form input[type="url"],
.apply-form input[type="file"],
.apply-form textarea {
 width: 100%;
 box-sizing: border-box;
 padding: 10px 12px;
 border: 1px solid rgba(14,20,32,0.12);
 border-radius: 8px;
 font: inherit;
 font-weight: 400;
}
.apply-form label.af-check {
 flex-direction: row;
 align-items: flex-start;
 gap: 10px;
 font-weight: 500;
 font-size: 13px;
}
.apply-form label.af-check input { margin-top: 3px; }
.apply-cv-hint {
 font-size: 12.5px;
 color: #5B6B7C;
 line-height: 1.45;
 margin: 0;
}
.apply-error {
 background: #fef2f2;
 color: #b91c1c;
 padding: 10px 12px;
 border-radius: 8px;
 font-size: 13.5px;
}
.apply-success {
 background: #ecfdf5;
 color: #047857;
 padding: 10px 12px;
 border-radius: 8px;
 font-size: 13.5px;
}
.apply-actions {
 display: flex;
 gap: 10px;
 justify-content: flex-end;
 flex-wrap: wrap;
 margin-top: 8px;
}
@media (max-width: 720px) {
 .careers-hero-grid { grid-template-columns: 1fr; }
 .job-grid { grid-template-columns: 1fr; }
 .apply-row { grid-template-columns: 1fr; }
}

/* Role cards + expiry + role popup */
.job-pill {
 display: inline-block;
 font-size: 11px;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: #0075FF;
 background: rgba(0,117,255,0.08);
 padding: 4px 8px;
 border-radius: 6px;
 margin-right: 6px;
}
.job-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.role-card {
 cursor: pointer;
 transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.role-card:hover {
 box-shadow: 0 12px 32px -12px rgba(0,117,255,0.35);
 transform: translateY(-2px);
}
.role-open-hint {
 font-size: 13px;
 font-weight: 600;
 color: #0075FF;
 margin-top: 8px;
 display: inline-block;
}
.role-expiry {
 font-size: 12.5px;
 font-weight: 600;
 margin: 6px 0 0;
}
.role-expiry.status-expired { color: #b91c1c; }
.role-expiry.status-expiring { color: #c2410c; }
.role-expiry.status-open { color: #047857; }

.role-modal {
 position: fixed;
 inset: 0;
 z-index: 10000;
 display: none;
 align-items: flex-start;
 justify-content: center;
 padding: 40px 16px 60px;
 overflow-y: auto;
}
.role-modal.is-open { display: flex !important; }
.role-modal[hidden] { display: none !important; }
.role-modal-backdrop {
 position: fixed;
 inset: 0;
 background: rgba(8,12,20,0.7);
}
.role-modal-panel {
 position: relative;
 z-index: 1;
 background: #fff;
 border-radius: 16px;
 width: min(820px, 100%);
 padding: 28px;
 box-shadow: 0 24px 64px rgba(0,0,0,0.35);
 margin: auto;
}
.role-modal-close {
 position: absolute;
 top: 10px;
 right: 14px;
 border: 0;
 background: transparent;
 font-size: 28px;
 cursor: pointer;
 color: #5B6B7C;
}
.role-modal-grid {
 display: grid;
 grid-template-columns: 240px 1fr;
 gap: 24px;
 align-items: start;
}
.role-modal-photo {
 border-radius: 12px;
 overflow: hidden;
 aspect-ratio: 1;
 background: #0F1830;
 position: relative;
}
.role-modal-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}
.role-photo-placeholder {
 position: absolute;
 inset: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 color: rgba(255,255,255,0.5);
 font-size: 13px;
 text-align: center;
 padding: 16px;
}
.role-expiry-banner {
 font-size: 13.5px;
 font-weight: 600;
 margin: 8px 0 14px;
 padding: 8px 12px;
 border-radius: 8px;
 background: #f3f4f6;
}
.role-expiry-banner.status-expired {
 background: #fef2f2;
 color: #b91c1c;
}
.role-expiry-banner.status-expiring {
 background: #fff7ed;
 color: #c2410c;
}
.role-expiry-banner.status-open {
 background: #ecfdf5;
 color: #047857;
}
.role-text {
 font-size: 14.5px;
 color: #5B6B7C;
 line-height: 1.55;
 margin-bottom: 18px;
}
@media (max-width: 640px) {
 .role-modal-grid { grid-template-columns: 1fr; }
}

/* Careers management cards - original dark style */
.page-careers .mgmt-card {
 background: var(--navy-2, #121a2b);
 border: 1px solid rgba(255,255,255,0.08);
 border-radius: 16px;
 padding: 32px;
 transition: transform .4s ease, border-color .4s ease;
 margin-bottom: 20px;
 cursor: pointer;
}
.page-careers .mgmt-card:hover {
 transform: translateY(-4px);
 border-color: rgba(79,163,255,.4);
}
.page-careers .mgmt-card .top {
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
 gap: 20px;
 flex-wrap: wrap;
 margin-bottom: 6px;
}
.page-careers .mgmt-card h3 { color: #fff; font-size: 20px; margin: 0; }
.page-careers .mgmt-card .field {
 color: #4FA3FF;
 font-size: 13px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: .03em;
}
.page-careers .mgmt-card p.desc {
 color: rgba(232,238,247,0.65);
 font-size: 14.5px;
 margin-top: 10px;
}
.page-careers .intern-card { cursor: pointer; }
.page-careers .role-expiry {
 font-size: 12.5px;
 font-weight: 600;
 margin: 10px 0 0;
}
.page-careers .role-expiry.status-expired { color: #f87171; }
.page-careers .role-expiry.status-expiring { color: #fb923c; }
.page-careers .role-expiry.status-open { color: #34d399; }
.page-careers .intern-card .role-expiry.status-expired { color: #b91c1c; }
.page-careers .intern-card .role-expiry.status-expiring { color: #c2410c; }
.page-careers .intern-card .role-expiry.status-open { color: #047857; }

.cr-modal {
 position: fixed;
 inset: 0;
 z-index: 10000;
 display: none;
 align-items: flex-start;
 justify-content: center;
 padding: 40px 16px 60px;
 overflow-y: auto;
}
.cr-modal.is-open { display: flex !important; }
.cr-modal[hidden] { display: none !important; }
.cr-modal-backdrop {
 position: fixed;
 inset: 0;
 background: rgba(8,12,20,0.72);
}
.cr-modal-panel {
 position: relative;
 z-index: 1;
 background: #fff;
 border-radius: 16px;
 width: min(880px, 100%);
 padding: 28px;
 box-shadow: 0 24px 64px rgba(0,0,0,0.35);
 margin: auto;
}
.cr-modal-form { width: min(640px, 100%); }
.cr-modal-close {
 position: absolute;
 top: 10px;
 right: 14px;
 border: 0;
 background: transparent;
 font-size: 28px;
 cursor: pointer;
 color: #5B6B7C;
}
.cr-modal-grid {
 display: grid;
 grid-template-columns: minmax(200px, 280px) 1fr;
 gap: 24px;
 align-items: start;
}
.cr-modal-visual {
 border-radius: 12px;
 overflow: hidden;
 background: #0F1830;
 aspect-ratio: 3/4;
 position: relative;
}
.cr-modal-visual img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}
.cr-photo-ph {
 position: absolute;
 inset: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 color: rgba(255,255,255,0.4);
 font-size: 13px;
}
.cr-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.cr-pill {
 font-size: 11px;
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: .04em;
 color: #0075FF;
 background: rgba(0,117,255,0.1);
 padding: 4px 8px;
 border-radius: 6px;
}
.cr-expiry {
 font-size: 13.5px;
 font-weight: 600;
 margin: 8px 0 14px;
 padding: 8px 12px;
 border-radius: 8px;
 background: #f3f4f6;
}
.cr-expiry.status-expired { background: #fef2f2; color: #b91c1c; }
.cr-expiry.status-expiring { background: #fff7ed; color: #c2410c; }
.cr-expiry.status-open { background: #ecfdf5; color: #047857; }
.cr-text { font-size: 14.5px; color: #3a4553; line-height: 1.55; margin-bottom: 18px; }
.cr-text h4 { margin: 14px 0 6px; color: #0E1420; font-size: 15px; }
.cr-text ul { margin: 0 0 8px; padding-left: 18px; }
.cr-text li { margin-bottom: 4px; }
.cr-sub { color: #5B6B7C; font-size: 14px; margin: 0 0 16px; }
@media (max-width: 700px) {
 .cr-modal-grid { grid-template-columns: 1fr; }
 .cr-modal-visual { max-width: 280px; margin: 0 auto; }
}

/* Careers hero: keep bird inside hero, never over jobs section */
.page-careers .careers-hero,
.page-careers .page-hero.dark.careers-hero {
 overflow: hidden !important;
 position: relative;
 z-index: 2;
}
.page-careers #mascotCarrieres {
 overflow: hidden;
 max-height: 320px;
}
.page-careers section.dark {
 position: relative;
 z-index: 3;
 background: #0B1120;
}

/* Careers mascot stays in hero, above next section, full climb room */
.page-careers .careers-hero.page-hero,
.page-careers .page-hero.dark.careers-hero {
 overflow: visible !important;
 position: relative;
 z-index: 5 !important;
 padding-bottom: 80px !important;
 min-height: 420px;
}
.page-careers #mascotCarrieres.mascot-viewport {
 position: relative;
 z-index: 6 !important;
 overflow: visible !important;
 max-height: none !important;
 min-height: 340px;
 height: 360px;
}
.page-careers #mascotCarrieres canvas {
 overflow: visible !important;
}
.page-careers section.dark {
 position: relative;
 z-index: 1 !important;
 margin-top: 0;
}

/* Systems 3D cityscape hero */
.systems-city-hero {
  position: relative;
  overflow: hidden;
  min-height: 480px;
  padding: 80px 0 100px !important;
  background: #080C14 !important;
}
.systems-cityscape {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: auto;
}
.systems-cityscape canvas {
  width: 100% !important;
  height: 100% !important;
}
.systems-city-copy {
  position: relative;
  z-index: 2;
  max-width: 560px;
  pointer-events: none;
}
.systems-city-copy a,
.systems-city-copy .crumb {
  pointer-events: auto;
}
.systems-city-copy h1 {
  text-shadow: 0 4px 24px rgba(0,0,0,0.45);
}
.systems-city-copy .lede-dark {
  text-shadow: 0 2px 12px rgba(0,0,0,0.35);
}
@media (max-width: 700px) {
  .systems-city-hero { min-height: 380px; padding: 64px 0 72px !important; }
}

/* Assistant Intelligami strip */
.sys-assistant {
  background: #0B1120;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 28px 0;
}
.sys-assistant-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.sys-assistant .kicker {
  color: #4FA3FF;
  display: block;
  margin-bottom: 6px;
}
.sys-assistant p {
  margin: 0;
  color: rgba(232,238,247,0.75);
  font-size: 14.5px;
  max-width: 52ch;
}
.sys-assistant-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sys-assistant-actions .btn:not(.btn-primary) {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
}

/* System project modal */
.sys-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 40px 16px 60px;
  overflow-y: auto;
}
.sys-modal.is-open { display: flex !important; }
.sys-modal[hidden] { display: none !important; }
.sys-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(8,12,20,0.72);
}
.sys-modal-panel {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 16px;
  width: min(900px, 100%);
  padding: 28px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.35);
  margin: auto;
}
.sys-modal-close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: transparent;
  font-size: 28px;
  cursor: pointer;
  color: #5B6B7C;
}
.sys-modal-grid {
  display: grid;
  grid-template-columns: minmax(200px, 280px) 1fr;
  gap: 28px;
  align-items: start;
}
.sys-visual-panel {
  border-radius: 14px;
  min-height: 280px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
}
.sys-visual-title {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.25;
  margin-bottom: 8px;
}
.sys-visual-domain {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
}
.sys-modal-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.sys-pill {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0075FF;
  background: rgba(0,117,255,0.1);
  padding: 4px 8px;
  border-radius: 6px;
}
.sys-modal-body h2 {
  margin: 0 0 8px;
  font-size: 24px;
  color: #0E1420;
}
.sys-modal-audience {
  font-size: 14.5px;
  color: #0075FF;
  font-weight: 500;
  margin: 0 0 12px;
}
.sys-modal-desc {
  font-size: 15px;
  color: #3a4553;
  line-height: 1.55;
  margin-bottom: 16px;
}
.sys-modal-caps-title {
  margin: 0 0 8px;
  font-size: 14px;
  color: #0E1420;
}
.sys-modal-caps {
  margin: 0 0 20px;
  padding-left: 18px;
  color: #3a4553;
  font-size: 14.5px;
  line-height: 1.5;
}
.sys-modal-caps li { margin-bottom: 4px; }
.sys-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.systems-catalog .sys-card summary {
  cursor: pointer;
  list-style: none;
}
.systems-catalog .sys-card summary::-webkit-details-marker { display: none; }
@media (max-width: 700px) {
  .sys-modal-grid { grid-template-columns: 1fr; }
  .sys-visual-panel { min-height: 160px; }
}

.sys-open-hint {
  display: none;
}
details.sys-card {
  position: relative;
}
details.sys-card summary {
  list-style: none;
  cursor: pointer;
}
details.sys-card summary::-webkit-details-marker { display: none; }
details.sys-card::after {
  content: "Voir le detail →";
  display: block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
  color: #0075FF;
}

/* Careers SVG climb chart — preview style, larger */
.careers-hero .careers-mascot-wrap {
  position: relative;
  min-height: 320px;
  height: 340px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.careers-hero .climb-chart {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  opacity: 1;
}
.careers-hero .climb-chart .climb-line {
  stroke-width: 3.5;
}
.careers-hero .climb-dot.end {
  filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.9));
}
.careers-hero #mascotCarrieres.mascot-viewport {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  min-height: 320px;
  background: transparent !important;
}
.careers-hero #mascotCarrieres canvas {
  background: transparent !important;
}

.sys-filters-bar {
  background: #0B1120;
  padding: 18px 0 8px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sys-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sys-filter {
  appearance: none;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  color: #94a3b8;
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.sys-filter:hover { color: #e2e8f0; border-color: rgba(79,163,255,0.4); }
.sys-filter.is-active {
  background: rgba(0,117,255,0.2);
  border-color: #0075FF;
  color: #fff;
}
.systems-catalog .domain-block { margin-bottom: 48px; }
.systems-catalog details.sys-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  border-radius: 16px;
  padding: 18px 20px;
  margin-bottom: 12px;
  color: #e2e8f0;
}
.systems-catalog {
  background: #080C14 !important;
  color: #e2e8f0;
}
.systems-catalog .domain-label {
  color: #94a3b8;
  margin-bottom: 16px;
}
.systems-catalog details.sys-card summary h3 { color: #f1f5f9; }
.systems-catalog details.sys-card .mods span {
  background: rgba(0,117,255,0.15);
  color: #7dd3fc;
  border: none;
}
.systems-catalog details.sys-card::after { color: #4FA3FF; }

/* careers bird canvas visible */
.careers-hero #mascotCarrieres {
  pointer-events: none;
  overflow: visible !important;
}
.careers-hero #mascotCarrieres canvas {
  opacity: 1 !important;
  mix-blend-mode: normal;
}

/* careers bird layer above SVG curve */
.careers-hero .careers-mascot-wrap { position: relative; isolation: isolate; }
.careers-hero .climb-chart { z-index: 1; }
.careers-hero #mascotCarrieres {
  z-index: 3 !important;
  pointer-events: none;
}
.careers-hero #mascotCarrieres canvas {
  position: relative;
  z-index: 3;
}

/* ===== Approche: light interactive schematic (not dark glass) ===== */
.approach-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 40px;
  align-items: center;
}
.approach-bird-wrap {
  position: relative;
  min-height: 320px;
}
.approach-mascot.mascot-viewport {
  width: 100%;
  min-height: 340px;
  height: 340px;
  cursor: grab;
}
.approach-mascot.mascot-viewport:active { cursor: grabbing; }
.approach-bird-hint {
  margin-top: 18px;
  font-size: 13px;
  color: var(--muted);
  font-weight: 500;
}
.approach-pillars-section {
  position: relative;
}
.approach-schematic {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  overflow: visible;
}
.approach-schematic .schematic-line {
  filter: drop-shadow(0 0 4px rgba(0, 117, 255, 0.55));
  transition: opacity 0.45s ease;
}
.approach-schematic .schematic-dot {
  filter: drop-shadow(0 0 6px rgba(79, 163, 255, 0.9));
  transition: opacity 0.45s ease;
}
.approach-pillars-section .pillars {
  position: relative;
  z-index: 3;
}
.approach-pillars-section .pillar {
  transition: box-shadow 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}
.approach-pillars-section .pillar.is-linked {
  box-shadow: 0 0 0 2px rgba(0, 117, 255, 0.35), 0 12px 40px rgba(0, 117, 255, 0.12);
  border-color: rgba(0, 117, 255, 0.4);
  transform: translateY(-2px);
}
body.approach-schematic-on .approach-hero {
  /* light page: soft blue wash only, not dark theme */
  background: linear-gradient(180deg, #f0f7ff 0%, #ffffff 55%);
}
body.approach-schematic-on .approach-pillars-section {
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
}
.approach-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 8px;
}
@media (max-width: 860px) {
  .approach-hero-grid {
    grid-template-columns: 1fr;
  }
  .approach-mascot.mascot-viewport {
    min-height: 280px;
    height: 280px;
  }
}

/* Digital circuit traces (Approche) — solid lines, draw-on via JS dashoffset */
.approach-schematic .circuit-trace {
  stroke: #3B9EFF;
  stroke-width: 2.4;
  fill: none;
  filter: drop-shadow(0 0 5px rgba(59, 158, 255, 0.75));
}
.approach-schematic .circuit-node {
  animation: circuitPulse 1.6s ease-in-out infinite;
}
@keyframes circuitPulse {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
body.approach-schematic-on .approach-pillars-section .pillar.is-linked {
  box-shadow: 0 0 0 2px rgba(0, 117, 255, 0.4), 0 0 24px rgba(0, 117, 255, 0.15);
}

/* Approche schematic overlay — full hero+pillars */
.approach-schematic-root {
  position: fixed;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.approach-schematic-root.is-on {
  opacity: 1;
}
.approach-schematic-root .approach-schematic {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.approach-schematic .circuit-trace {
  stroke: #3B9EFF;
  fill: none;
  filter: drop-shadow(0 0 4px rgba(59, 158, 255, 0.8));
}
.approach-schematic .circuit-node {
  filter: drop-shadow(0 0 6px rgba(0, 117, 255, 0.9));
}

/* Systems product catalogue */
.sys-catalog-lead {
  font-size: 15px;
  color: var(--muted);
  max-width: 62ch;
  margin: 0 0 28px;
  line-height: 1.55;
}
.sys-dept-block { margin-bottom: 28px; }
.sys-dept-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 12px;
}
.sys-product-grid { margin-bottom: 8px; }
.sys-product-card {
  background: #fff;
  border: 1px solid var(--line-light);
  border-radius: 14px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.sys-product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -20px rgba(14,20,32,.18);
  border-color: rgba(0,117,255,.35);
}
.sys-product-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.sys-dept-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--blue);
  background: rgba(0,117,255,.08);
  padding: 4px 8px;
  border-radius: 999px;
}
.sys-badge {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  border: 1px solid var(--line-light);
  padding: 3px 8px;
  border-radius: 999px;
}
.sys-badge-demo {
  color: #0a7a3e;
  border-color: rgba(10,122,62,.35);
  background: rgba(10,122,62,.08);
}
.sys-product-card h3 {
  font-size: 16.5px;
  margin: 0;
  color: var(--ink);
}
.sys-product-audience {
  font-size: 13.5px;
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  flex: 1;
}
.sys-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}
.sys-product-actions .btn { padding: 10px 14px; font-size: 13px; }
.sys-preview-frame-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 280px;
  border-radius: 12px;
  overflow: hidden;
  background: #0b1120;
}
.sys-preview-frame {
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
  background: #0b1120;
}
.sys-visual-fallback { padding: 18px; }
.sys-pill {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(0,117,255,.1);
  color: var(--blue);
}
.sys-pill-demo {
  background: rgba(10,122,62,.12);
  color: #0a7a3e;
}
.sys-empty { color: var(--muted); padding: 24px 0; }

/* Systems search + 3D demos */
.sys-search-section {
  background: linear-gradient(180deg, #f0f6ff 0%, #fff 100%);
  padding: 28px 0 8px;
  border-bottom: 1px solid var(--line-light);
}
.sys-search-bar { max-width: 820px; margin: 0 auto; }
.sys-search-input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid rgba(0,117,255,.25);
  border-radius: 16px;
  padding: 10px 12px 10px 16px;
  box-shadow: 0 12px 40px -24px rgba(0,117,255,.45);
}
.sys-search-icon { color: var(--blue); flex-shrink: 0; }
.sys-search-input-wrap input {
  flex: 1;
  border: 0;
  outline: none;
  font-size: 15px;
  background: transparent;
  color: var(--ink);
  min-width: 0;
}
.sys-turbo-chip {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #0a7a3e;
  background: rgba(10,122,62,.1);
  border: 1px solid rgba(10,122,62,.25);
  border-radius: 999px;
  padding: 6px 10px;
  white-space: nowrap;
}
.sys-turbo-chip b { font-weight: 800; }
.sys-search-btn { flex-shrink: 0; padding: 10px 16px; }
.sys-search-hint {
  margin: 10px 4px 0;
  font-size: 12.5px;
  color: var(--muted);
}
.sys-search-results {
  margin-top: 14px;
  background: #fff;
  border: 1px solid var(--line-light);
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 16px 40px -28px rgba(14,20,32,.25);
}
.sys-search-answer {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-light);
}
.sys-search-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 6px;
}
.sys-search-answer p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--ink); }
.sys-search-list { list-style: none; margin: 0; padding: 0; }
.sys-search-item {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 10px 8px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font: inherit;
}
.sys-search-item:hover { background: rgba(0,117,255,.06); }
.sys-search-item span { color: var(--muted); font-size: 12.5px; }
.sys-search-chat {
  display: inline-block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
}
.sys-search-loading { color: var(--muted); font-size: 14px; }
.sys-featured { margin-bottom: 36px; }
.sys-featured-title {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--ink);
}
.sys-demo-3d {
  width: 100%;
  height: 100%;
  min-height: 280px;
  border-radius: 12px;
  overflow: hidden;
  background: #0b1120;
}
.sys-demo-3d canvas { width: 100% !important; height: 100% !important; display: block; }
@media (max-width: 700px) {
  .sys-search-input-wrap { flex-wrap: wrap; }
  .sys-search-btn { width: 100%; }
}

.sys-search-note {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.4;
}
.sys-noscript-list {
  margin: 16px 0;
  padding-left: 1.2em;
  color: var(--muted);
  font-size: 14px;
}
