.chips{display:flex;flex-wrap:wrap;gap:11px}
  .chip{font-family:'JetBrains Mono','GID Mono',monospace;font-size:.85rem;font-weight:600;color:var(--petrol);background:#fff;border:1px solid var(--line);padding:.65rem 1.1rem;border-radius:999px;transition:transform .15s,border-color .15s,box-shadow .2s}
  .chip:hover{transform:translateY(-2px);border-color:var(--petrol);box-shadow:var(--shadow-sm)}
  .expertises .chip{background:#fff}
  .vcard{text-align:left}
  .blk .vgrid .vcard h3{margin-bottom:0}

/* ===== Ingénierie : normes, logiciels, secteurs ===== */
.norms-sec{background:#F4ECE0}
.ngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:6px}
.ncard{background:#fff;border:1px solid rgba(5,56,87,.10);border-radius:16px;padding:22px 22px 20px}
.nhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.nhead .fi{width:1.5em;height:1.12em;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.07)}
.nreg{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:1.04rem;line-height:1.1}
.ntag{margin-left:auto;font-family:"JetBrains Mono",'GID Mono',monospace;font-size:.64rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#D91A5D;background:rgba(217,26,93,.09);padding:4px 9px;border-radius:999px;white-space:nowrap}
.ndesc{margin:0;color:#56676f;font-size:.92rem;line-height:1.55}
.norms-foot{margin:22px 0 0;text-align:center;color:#56676f;font-size:.92rem}
.swgroups{display:flex;flex-direction:column;gap:18px;margin-top:4px}
.swgroup{display:flex;flex-direction:column;gap:10px}
.swlbl{font-family:"JetBrains Mono",'GID Mono',monospace;font-size:.69rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#053857;opacity:.72}
.secfam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:6px}
.secfam{background:#fff;border:1px solid rgba(5,56,87,.10);border-radius:18px;padding:24px 22px}
.secfam .ic{margin-bottom:14px}
.secfam h3{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:1.1rem;margin:0 0 13px}
.sectags{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.sectags li{position:relative;padding-left:18px;color:#56676f;font-size:.92rem;line-height:1.4}
.sectags li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:2px;background:#D91A5D}
.nic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(217,26,93,.10);color:#D91A5D;flex:0 0 auto}.nic svg{width:19px;height:19px}
.profgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:6px}.profcard{background:#fff;border:1px solid rgba(5,56,87,.10);border-radius:18px;padding:24px 22px}.profcard .ic{margin-bottom:14px}.profcard h3{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:1.1rem;margin:0 0 14px}.profcard .chips{margin:0}
/* icon-size-fix */.stepcard .ic svg{width:26px;height:26px}.stepcard .ic{color:#0b4a6e}.modecard .ic{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:rgba(217,26,93,.1);color:var(--magenta);margin-bottom:18px}.modecard .ic svg{width:24px;height:24px}.secfam .ic svg{width:26px;height:26px}.profcard .ic svg{width:26px;height:26px}
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}@media(max-width:680px){.statband{grid-template-columns:repeat(2,1fr);gap:32px 18px}}.stat-n{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:clamp(2rem,4.5vw,2.7rem);line-height:1}.stat-l{color:#56676f;font-size:.9rem;margin-top:8px}.timeline{position:relative;max-width:760px;margin:0 auto}.tl-item{position:relative;padding:0 0 32px 56px}.tl-item::before{content:"";position:absolute;left:15px;top:5px;bottom:-5px;width:2px;background:rgba(5,56,87,.12)}.tl-item:last-child::before{display:none}.tl-dot{position:absolute;left:6px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--magenta)}.tl-year{display:block;font-family:"JetBrains Mono",'GID Mono',monospace;font-size:.76rem;letter-spacing:.04em;color:var(--magenta);font-weight:600;margin-bottom:4px}.tl-item h3{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:1.18rem;margin:0 0 6px}.tl-item p{margin:0;color:#56676f;font-size:.97rem;line-height:1.6}.geo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.geo{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid rgba(5,56,87,.1);border-radius:14px;padding:13px 18px}.geo .fi{width:30px;height:22px;border-radius:3px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.06)}.geo .c{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:600;color:#10212b;font-size:1rem}
.geo-sub{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;color:#053857;font-size:1.05rem;margin:0 0 16px}.geo-grid.offices{grid-template-columns:repeat(3,1fr)}@media(max-width:680px){.geo-grid.offices{grid-template-columns:1fr}}.geo .c small{display:block;font-weight:400;color:#56676f;font-size:.78rem;margin-top:2px;font-family:"Inter",'GID Texte',sans-serif}.geo.office{align-items:flex-start}.geo.office .fi{margin-top:3px}
/* icon-size-fix-2 */.dcard .ic{width:44px;height:44px}.dcard .ic svg{width:22px;height:22px}.vcard .ic{width:44px;height:44px}.vcard .ic svg{width:22px;height:22px}.modecard .ic{width:44px;height:44px}.modecard .ic svg{width:22px;height:22px}@media(max-width:600px){.dcard .ic,.vcard .ic,.modecard .ic{width:40px;height:40px}.dcard .ic svg,.vcard .ic svg,.modecard .ic svg{width:20px;height:20px}.stepcard .ic svg,.secfam .ic svg,.profcard .ic svg{width:24px;height:24px}.nic{width:30px;height:30px}.nic svg{width:17px;height:17px}}
/* off-cols-v1 (30/08/2026) : la liste des postes s'affiche desormais en
   TROIS colonnes, exactement comme la page des actualites, et non plus
   en une seule colonne pleine largeur. Memes points de bascule que
   .actugrid (p10.css) pour que les deux pages se comportent pareil. */
.offergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
@media(max-width:1180px){.offergrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.offergrid{grid-template-columns:1fr}}
/* La classe gx64 imposait une colonne unique : elle est neutralisee ici
   pour que rien ne casse si elle subsiste dans une page en cache. */
.offergrid.gx64{grid-template-columns:repeat(3,1fr)}
@media(max-width:1180px){.offergrid.gx64{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.offergrid.gx64{grid-template-columns:1fr}}
/* En trois colonnes la carte est plus etroite : on serre un peu le corps
   et on borne la description pour que les cartes restent comparables. */
.offergrid:not(.offergrid-solo) .offercard .off-body{padding:20px 18px;gap:10px}
.offergrid:not(.offergrid-solo) .offercard .off-body h3{font-size:1.06rem}
.offergrid:not(.offergrid-solo) .offercard .otext{font-size:.88rem}
/* off-cols-v2 (30/08/2026) : page d'UN poste — une seule carte, pleine largeur
   de lecture, centree. Elle ne doit surtout pas etre reduite au tiers. */
.offergrid.offergrid-solo{display:block;max-width:900px;margin:0 auto}
.offergrid.offergrid-solo .offercard{width:100%}
.offergrid.offergrid-solo .off-photo{aspect-ratio:16/9}
.offergrid.offergrid-solo .off-body{padding:28px 26px;gap:14px}
.offergrid.offergrid-solo .off-body h3{font-size:1.5rem;line-height:1.25}
.offergrid.offergrid-solo .otext{font-size:.97rem}
@media(max-width:700px){.offergrid.offergrid-solo .off-body{padding:20px 18px}
  .offergrid.offergrid-solo .off-body h3{font-size:1.25rem}}

.offercard{background:#fff;border:1px solid rgba(5,56,87,.1);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 16px -10px rgba(5,56,87,.3)}
.off-photo{position:relative;aspect-ratio:16/9;overflow:hidden;background:#eef2f6}
/* Image affichée EN ENTIER (jamais rognée) ; le fond est la même image floutée */
.off-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.off-photo img.ph-fond{object-fit:cover;filter:blur(18px) saturate(1.05);transform:scale(1.12);z-index:0;opacity:.55}
.off-photo .ph-ap{position:absolute;inset:0;background:radial-gradient(circle at 72% 28%,rgba(251,174,66,.5),transparent 55%),linear-gradient(135deg,#053857,#0b4a6e 45%,#D91A5D)}
.off-photo .ph-ic{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;color:rgba(255,255,255,.55)}
/* Le badge n'est plus posé sur l'image : il s'affiche entre l'image et le titre */
.off-badge{display:inline-block;align-self:flex-start;background:#EAF1F6;color:#053857;font-family:"JetBrains Mono",'GID Mono',monospace;font-size:.72rem;font-weight:600;padding:5px 10px;border-radius:8px;margin-bottom:10px}
.off-body{padding:22px;display:flex;flex-direction:column;gap:12px;flex:1}
.off-body h3{font-family:"Bricolage Grotesque",'GID Titre',sans-serif;font-weight:700;font-size:1.2rem;color:#053857;margin:0}
.ochips{display:flex;flex-wrap:wrap;gap:7px}
.ochip{background:rgba(217,26,93,.08);color:#053857;font-size:.78rem;font-weight:500;padding:4px 10px;border-radius:20px}
.ometa{font-size:.85rem;color:#3a4a52}.ometa .ok{font-weight:600;color:#053857}
/* cat-off-v1 (28/08/2026) : les offres ont desormais une categorie et des
   pastilles de filtre, exactement comme les actualites. Les regles sont
   reprises a l'identique de p10.css pour que l'apparence soit la meme. */
.actu-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 30px}
.actu-filters:empty{display:none;margin:0}
.actu-chip{background:#fff;border:1px solid rgba(5,56,87,.16);color:#053857;font-size:.86rem;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;transition:all .15s ease;font-family:'Inter','GID Texte',sans-serif}
.actu-chip:hover{border-color:#053857}
.actu-chip.on{background:#053857;border-color:#053857;color:#fff}
.ac-cat{display:inline-block;background:#FBE9F1;color:#D91A5D;font-family:"JetBrains Mono",'GID Mono',monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:5px 10px;border-radius:8px;margin-bottom:8px;align-self:flex-start}
.otext{font-size:.9rem;color:#3a4a52;line-height:1.55;margin:2px 0 0}
/* off-rte-v1 (28/08/2026) : la description d'une offre peut desormais contenir
   des paragraphes, des titres, des listes, des liens et des images. Les regles
   ci-dessous les habillent ; aucune n'utilise d'attribut style, pour ne pas
   gener la fermeture progressive de style-src. */
.otext p{margin:0 0 .8em}
.otext p:last-child{margin-bottom:0}
.otext h2,.otext h3{font-size:1rem;font-weight:700;color:#053857;margin:1.2em 0 .45em;line-height:1.35}
.otext h2:first-child,.otext h3:first-child{margin-top:0}
.otext ul,.otext ol{margin:0 0 .8em;padding-left:1.35em}
.otext li{margin:.25em 0}
.otext a{color:#0a6c8a;text-decoration:underline}
.otext a:hover{text-decoration:none}
.otext strong{font-weight:700;color:#26333a}
.otext blockquote{margin:.8em 0;padding:.55em .9em;border-left:3px solid #cdd9dd;background:#f6f8f9;border-radius:0 8px 8px 0}
.otext img,.otext-img{display:block;max-width:100%;height:auto;border-radius:12px;margin:.9em 0}
.off-foot{margin-top:auto;padding-top:14px}
.off-apply{border:none;width:100%;justify-content:center}
.off-applynote{font-size:.78rem;color:#7a8890;text-align:center;margin:8px 0 16px}
.oshare-block{text-align:center}
.oshare-lbl{display:block;font-size:.7rem;font-weight:700;color:#56676f;text-transform:uppercase;letter-spacing:.09em;margin-bottom:9px}
.oshare{display:flex;gap:9px;justify-content:center}
.osh{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;transition:transform .15s ease,filter .15s ease}
.osh:hover{transform:translateY(-2px);filter:brightness(1.1)}
.osh svg{width:18px;height:18px;fill:#fff}
.osh.x{background:#000}.osh.wa{background:#25D366}.osh.fb{background:#1877F2}.osh.li{background:#0A66C2}.osh.ml{background:#053857}
.offer-status{text-align:center;color:#56676f;max-width:560px;margin:24px auto 0;line-height:1.6;font-size:.95rem}
.cta-band{background:#053857;border-radius:22px;padding:clamp(30px,4.5vw,52px);text-align:center}
.cta-band h2{color:#fff;margin:0 0 10px}.cta-band p{color:rgba(255,255,255,.82);margin:0 auto 24px;max-width:36rem}.cta-band .btn{border:none}

  /* newsletter MailerLite */
  .news{display:flex;gap:8px;margin-top:8px}
  .news input{flex:1;min-width:0;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);border-radius:10px;padding:.62rem .8rem;color:#fff;font-family:'Inter','GID Texte',sans-serif;font-size:.9rem;outline:none}
  .news input::placeholder{color:rgba(255,255,255,.5)}
  .news button{border:0;background:var(--magenta);color:#fff;border-radius:10px;padding:.62rem 1rem;font-weight:600;cursor:pointer;font-family:'Inter','GID Texte',sans-serif;font-size:.9rem}
  .news button:disabled{opacity:.6;cursor:default}
  #nlHint{font-size:.76rem;color:rgba(255,255,255,.7);margin-top:9px}
  #nlHint.error{color:#ffb4b4}
  #nlHint.ok{color:#7fe3a6}
  .nl-consent{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:.78rem;color:rgba(255,255,255,.62);line-height:1.45;cursor:pointer}
  .nl-consent input{margin-top:3px;accent-color:var(--magenta);flex-shrink:0;width:15px;height:15px}
  .nl-consent a{color:var(--ambre);text-decoration:underline}
  .nl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;overflow:hidden}

@media(max-width:600px){
  .nav{gap:10px}
  .brand .logo{height:36px}
  .nav-cta{display:none}            /* bouton redondant (déjà dans le menu burger) */
  .lang{gap:5px}
  .lang .flag{width:24px;height:17px}
  .wrap{padding-left:18px;padding-right:18px}
}
@media(max-width:380px){
  .brand .logo{height:32px}
  .lang .flag{width:22px;height:16px}
  .wrap{padding-left:14px;padding-right:14px}
}
html,body{overflow-x:clip;max-width:100%}/*gid-clip*/
/* ---- Fenêtre "Postuler" multi-messagerie (universelle PC + mobile) ---- */
.apmodal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.apmodal[hidden]{display:none}
.apmodal-ov{position:absolute;inset:0;background:rgba(5,56,87,.55);backdrop-filter:blur(2px)}
.apmodal-card{position:relative;background:#fff;border-radius:20px;max-width:432px;width:100%;padding:30px 26px 24px;box-shadow:0 30px 80px -20px rgba(5,56,87,.55);animation:apPop .18s ease}
@keyframes apPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.apmodal-x{position:absolute;top:12px;right:14px;width:34px;height:34px;border:none;background:transparent;font-size:1.7rem;line-height:1;color:#7a8890;cursor:pointer;border-radius:8px;transition:background .15s,color .15s}
.apmodal-x:hover{background:rgba(5,56,87,.07);color:#053857}
.apmodal-card h3{font-family:'Bricolage Grotesque','GID Titre','Inter','GID Texte',sans-serif;font-weight:800;font-size:1.35rem;color:#053857;margin:0 0 4px;padding-right:30px;letter-spacing:-.02em}
.apmodal-sub{font-weight:700;color:#D91A5D;font-size:.98rem;margin:0 0 14px}
.apmodal-hint{font-size:.9rem;color:#56676f;line-height:1.55;margin:0 0 18px}
.apmodal-btn{display:flex;align-items:center;gap:12px;width:100%;padding:.85rem 1.1rem;margin-bottom:10px;border-radius:12px;border:1.5px solid rgba(5,56,87,.14);background:#fff;color:#10212b;font-weight:600;font-size:.98rem;text-decoration:none;transition:border-color .15s,background .15s,transform .12s;cursor:pointer}
.apmodal-btn:hover{border-color:#053857;background:#f6fafc;transform:translateY(-1px)}
.apmodal-ic{display:flex;width:34px;height:34px;flex:none;align-items:center;justify-content:center;border-radius:9px;background:rgba(5,56,87,.06)}
.apmodal-ic svg{width:19px;height:19px}
#apGmail .apmodal-ic{background:rgba(234,67,53,.10);color:#d33b2c}
#apOutlook .apmodal-ic{background:rgba(0,120,212,.10);color:#0067c0}
#apMail .apmodal-ic{background:rgba(5,56,87,.08);color:#053857}
.apmodal-or{display:flex;align-items:center;text-align:center;color:#9aa7ae;font-size:.82rem;margin:16px 0 12px}
.apmodal-or::before,.apmodal-or::after{content:"";flex:1;height:1px;background:rgba(5,56,87,.12)}
.apmodal-or span{padding:0 12px;white-space:nowrap}
.apmodal-copy{display:flex;align-items:center;gap:8px;background:#f4ece0;border-radius:11px;padding:6px 6px 6px 14px}
.apmodal-addr{flex:1;font-family:'JetBrains Mono','GID Mono',monospace;font-size:.9rem;color:#053857;word-break:break-all}
.apmodal-copybtn{flex:none;border:none;background:#053857;color:#fff;font-weight:600;font-size:.85rem;padding:.5rem .9rem;border-radius:8px;cursor:pointer;transition:background .15s}
.apmodal-copybtn:hover{background:#0a4b6e}
.apmodal-copybtn.ok{background:#2e9e5b}
.apmodal-obj{font-size:.8rem;color:#7a8890;margin:12px 0 0;line-height:1.5;word-break:break-word}
.apmodal-obj span{color:#56676f}
body.apmodal-open{overflow:hidden}
