@charset "UTF-8";

/* ==================================================================
   Ex-bloc inline <style id="jcd-mnav-css"> - externalise le 2026-08-07
   ================================================================== */

/* ===== JCD Mobile Nav (injected) ===== */
:root{--mnav-ease:cubic-bezier(.32,.72,0,1);--mnav-fg:#f4f4f4;--mnav-muted:#9a9a9a;--mnav-line:rgba(255,255,255,.11);}
.jcd-burger{display:none;}
.jcd-mnav{display:none;}
@media (max-width:820px){
  .nav-cta{display:none!important;}
  .jcd-burger{display:inline-flex;position:fixed;top:16px;right:15px;z-index:4100;width:46px;height:46px;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--mnav-line);background:rgba(18,18,18,.55);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .35s var(--mnav-ease),border-color .35s var(--mnav-ease),transform .2s var(--mnav-ease);}
  .jcd-burger:active{transform:scale(.93);}
  .jcd-burger__box{position:relative;width:19px;height:13px;}
  .jcd-burger__box i{position:absolute;left:0;height:1.6px;width:100%;background:var(--mnav-fg);border-radius:2px;transition:transform .5s var(--mnav-ease),opacity .25s var(--mnav-ease),width .5s var(--mnav-ease);}
  .jcd-burger__box i:nth-child(1){top:0;}
  .jcd-burger__box i:nth-child(2){top:50%;transform:translateY(-50%);}
  .jcd-burger__box i:nth-child(3){bottom:0;width:64%;}
  .jcd-mnav{display:block;position:fixed;inset:0;z-index:4000;background:rgba(7,7,8,.84);-webkit-backdrop-filter:blur(26px) saturate(135%);backdrop-filter:blur(26px) saturate(135%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s var(--mnav-ease),visibility 0s linear .5s;}
  .jcd-mnav__scroll{height:100%;max-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:84px 20px 44px;}
  .jcd-mnav__inner{max-width:520px;margin:0 auto;}
}
body.jcd-mnav-open .jcd-burger__box i:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg);}
body.jcd-mnav-open .jcd-burger__box i:nth-child(2){opacity:0;}
body.jcd-mnav-open .jcd-burger__box i:nth-child(3){bottom:auto;top:50%;width:100%;transform:translateY(-50%) rotate(-45deg);}
body.jcd-mnav-open .jcd-mnav{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .5s var(--mnav-ease);}
.jcd-mnav a{text-decoration:none;color:inherit;}
.jcd-mnav__eyebrow{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--mnav-muted);margin:0 0 8px 4px;font-weight:600;}
.jcd-mnav__eyebrow+.jcd-mnav__eyebrow,.jcd-mnav__sec2{margin-top:30px;}
.jcd-mnav__item{display:flex;align-items:center;gap:14px;padding:0 6px;border-bottom:1px solid var(--mnav-line);min-height:58px;}
.jcd-mnav__link{display:flex;align-items:center;gap:14px;flex:1;min-height:58px;}
.jcd-mnav__dot{width:9px;height:9px;border-radius:999px;flex:0 0 auto;background:var(--mnav-c,#888);box-shadow:0 0 11px var(--mnav-c,#888);}
.jcd-mnav__label{font-size:22px;font-weight:600;letter-spacing:-.012em;color:var(--mnav-fg);line-height:1.1;}
.jcd-acc__toggle{appearance:none;background:rgba(255,255,255,.05);border:1px solid var(--mnav-line);color:var(--mnav-muted);width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;transition:transform .45s var(--mnav-ease),background .3s var(--mnav-ease);}
.jcd-acc__toggle svg{width:14px;height:14px;}
.jcd-acc__toggle[aria-expanded="true"]{transform:rotate(45deg);background:rgba(255,255,255,.09);}
.jcd-acc__panel{overflow:hidden;max-height:0;transition:max-height .5s var(--mnav-ease);}
.jcd-mnav__sub{display:block;padding:13px 6px 13px 23px;font-size:14.5px;color:var(--mnav-muted);border-bottom:1px solid var(--mnav-line);transition:color .25s var(--mnav-ease);}
.jcd-mnav__sub:last-child{border-bottom:0;}
.jcd-mnav__sub:active{color:var(--mnav-fg);}
.jcd-mnav__cta{margin-top:28px;display:flex;flex-direction:column;gap:11px;}
.jcd-mnav__btn{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px 15px 22px;border-radius:18px;font-size:16px;font-weight:600;}
.jcd-mnav a.jcd-mnav__btn--primary{background:#f4f4f4;color:#0a0a0a;}
.jcd-mnav a.jcd-mnav__btn--ghost{border:1px solid var(--mnav-line);color:var(--mnav-fg);}
.jcd-mnav__btn-ic{width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.10);transition:transform .4s var(--mnav-ease);}
.jcd-mnav__btn--ghost .jcd-mnav__btn-ic{background:rgba(255,255,255,.09);}
.jcd-mnav__btn:active .jcd-mnav__btn-ic{transform:translateX(3px);}
.jcd-mnav__btn-ic svg{width:15px;height:15px;}
.jcd-mnav__reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--mnav-ease),transform .6s var(--mnav-ease);}
body.jcd-mnav-open .jcd-mnav__reveal{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .jcd-mnav,.jcd-mnav__reveal,.jcd-burger__box i,.jcd-acc__panel,.jcd-acc__toggle{transition:none!important;}
  .jcd-mnav__reveal{transform:none;}
}
@media (min-width:821px){.jcd-mnav,.jcd-burger{display:none!important;}}

/* ==================================================================
   Ex-bloc inline <style id="jcd-footer-css"> - externalise le 2026-08-07
   ================================================================== */

@media (max-width:820px){
  /* Footer mobile : simplifie, flat premium, hauteur reduite */
  footer[role="contentinfo"] .container{ padding-top:8px; }
  .footer-bento{ grid-template-columns:1fr 1fr !important; grid-template-areas:none !important; gap:24px 18px !important; margin-bottom:0 !important; }
  /* aplatir les cartes bento (deja quasi invisibles) */
  .fcard{ background:none !important; border:0 !important; box-shadow:none !important; border-radius:0 !important; grid-area:auto !important; }
  .fcard::after{ display:none !important; }
  .fcard-inner{ padding:0 !important; }
  .fcard-title{ margin:0 0 13px !important; font-size:10.5px !important; }
  /* listes de liens resserrees */
  .footer-links{ gap:6px !important; }
  .footer-links--cols{ grid-template-columns:1fr !important; gap:6px !important; }
  .footer-link{ font-size:13.5px !important; min-height:30px !important; }
  /* contact : pleine largeur, 2 agences cote a cote, separateur fin */
  .fcard--contact{ grid-column:1 / -1 !important; margin-top:6px !important; padding-top:24px !important; border-top:1px solid var(--border-subtle,rgba(255,255,255,.08)) !important; }
  .footer-contacts{ grid-template-columns:1fr 1fr !important; gap:18px !important; }
  .footer-contact-block{ gap:2px !important; }
  .fc-role{ margin-bottom:3px !important; }
  .footer-contact-block address{ font-size:12px !important; line-height:1.45 !important; margin-bottom:5px !important; }
  .fc-hours{ font-size:11px !important; margin-top:4px !important; }
  /* barre legale : compacte */
  .footer-bottom{ margin-top:20px !important; padding-top:16px !important; gap:12px !important; }
}

/* ==================================================================
   Ex-bloc inline <style id="jcd-quickwins-css"> - externalise le 2026-08-07
   ================================================================== */

/* ===== JCD mobile quick-wins (a11y / perf / interaction) ===== */
.jcd-skip{ position:fixed; top:calc(8px + env(safe-area-inset-top)); left:8px; z-index:6000; padding:10px 16px; border-radius:9px; background:#f4f4f4; color:#0a0a0a; font-family:Inter,system-ui,sans-serif; font-size:14px; font-weight:600; text-decoration:none; transform:translateY(-160%); transition:transform .22s cubic-bezier(.32,.72,0,1); }
.jcd-skip:focus{ transform:translateY(0); outline:2px solid #0a0a0a; outline-offset:2px; }

/* Focus-visible sur les composants mobiles injectes */
.jcd-burger:focus-visible,.jcd-acc__toggle:focus-visible,.jcd-mnav__link:focus-visible,.jcd-mnav__sub:focus-visible,.jcd-mnav__btn:focus-visible,.jcd-xpnav a:focus-visible{ outline:2px solid #f4f4f4; outline-offset:2px; }
.prest-item:focus-visible,.pf-vcard:focus-visible,.fp-step:focus-visible,.bp-step:focus-visible,.regie-steps .clip:focus-visible,.atelier-steps .station:focus-visible{ outline:2px solid var(--accent,#f4f4f4); outline-offset:-2px; }

/* prefers-reduced-motion : neutralise les transitions des accordeons injectes + skip-link */
@media (prefers-reduced-motion: reduce){
  .jcd-skip{ transition:none; }
  .prest-item-desc,.pf-vcard-desc,.prest-item::after,.pf-vcard::after,
  .fp-step p,.bp-step p,.regie-steps .clip p,.atelier-steps .station p,
  .fp-step::after,.bp-step::after,.regie-steps .clip::after,.atelier-steps .station::after,
  .jcd-acc__panel,.jcd-acc__toggle{ transition:none !important; }
}

@media (max-width:820px){
  /* 1) Champs de formulaire >=16px : evite le zoom iOS au focus */
  .q-field input,.q-field select,.q-field textarea,.ncat-input,.ct-input{ font-size:16px !important; }

  /* 2) Safe-area (encoche / home indicator) */
  .navbar{ height:calc(70px + env(safe-area-inset-top)); padding-top:env(safe-area-inset-top); }
  .jcd-burger{ top:calc(16px + env(safe-area-inset-top)) !important; right:calc(15px + env(safe-area-inset-right)) !important; }
  .info-subnav{ top:calc(70px + env(safe-area-inset-top)) !important; }
  .jcd-mnav__scroll{ padding-top:calc(84px + env(safe-area-inset-top)) !important; padding-right:calc(20px + env(safe-area-inset-right)) !important; padding-bottom:calc(44px + env(safe-area-inset-bottom)) !important; padding-left:calc(20px + env(safe-area-inset-left)) !important; }

  /* 3) Ancrage sous la barre fixe (navbar 70px ; sous-pages info : +50px de rail) */
  #prestations,#process,#contact,#poles,#histoire,#valeurs,#chiffres{ scroll-margin-top:calc(82px + env(safe-area-inset-top)) !important; }
  body:has(.info-subnav) :is(#prestations,#process,#contact){ scroll-margin-top:calc(130px + env(safe-area-inset-top)) !important; }

  /* 4) Feedback tactile : flash unifie + etat actif sur les controles principaux */
  a,button,[role="button"],label,summary{ -webkit-tap-highlight-color:rgba(255,255,255,.07); }
  .btn:active,.btn-cta:active,.btn-lg:active,.jcd-mnav__btn:active,.pole-card:active{ transform:scale(.985); }
}

/* ==================================================================
   Ex-bloc inline <style id="jcd-touch-css"> - externalise le 2026-08-07
   ================================================================== */

@media (max-width:820px){
  /* CTA de-hover : affordances mortes au tap rendues actives au repos */
  .offer-apply{ color:var(--text-1) !important; }
  .offer-apply-arrow{ background:var(--text-1) !important; border-color:transparent !important; color:#0a0a0a !important; }
  .toc-text{ color:rgba(255,255,255,.82) !important; }
  .toc-index-num{ color:rgba(255,255,255,.90) !important; }
  .toc-row::before{ opacity:.42 !important; }

  /* Cibles tactiles >=44px */
  .secblock-link{ display:inline-flex !important; align-items:center; min-height:44px; }
  .crumbs a{ display:inline-flex; align-items:center; min-height:40px; padding:2px 3px; }
  .fd-expand{ min-height:44px !important; }
  .ct-level{ min-height:44px !important; }
  .ocat-chip{ display:inline-flex; align-items:center; min-height:44px !important; }
  .btn,.btn-lg{ min-height:44px !important; display:inline-flex; align-items:center; justify-content:center; }
  .info-subnav__link,.info-subnav__home{ min-height:44px !important; }
  /* Footer : liens legaux espaces (anti mis-tap) */
  .footer-legal{ gap:4px !important; }
  .footer-legal a{ display:inline-flex; align-items:center; min-height:40px; padding:2px 6px; }
}

/* ==================================================================
   Ex-bloc inline <style id="jcd-a11y-css"> - externalise le 2026-08-07
   ================================================================== */

/* wizard focus target not hidden under the navbar */
.q-step-title{ scroll-margin-top:92px; }
.jcd-fab-wrap{ display:none; }
@media (max-width:820px){
  .jcd-fab-wrap{ position:fixed; right:15px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:3500; display:flex; flex-direction:column; gap:11px; align-items:center; opacity:0; transform:translateY(13px); pointer-events:none; transition:opacity .45s cubic-bezier(.32,.72,0,1), transform .45s cubic-bezier(.32,.72,0,1); }
  .jcd-fab-wrap.is-shown{ opacity:1; transform:none; pointer-events:auto; }
  .jcd-fab{ width:47px; height:47px; border-radius:999px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.12); background:rgba(20,20,20,.62); -webkit-backdrop-filter:blur(15px) saturate(140%); backdrop-filter:blur(15px) saturate(140%); color:#f4f4f4; -webkit-tap-highlight-color:transparent; text-decoration:none; cursor:pointer; transition:transform .35s cubic-bezier(.32,.72,0,1), background .3s ease; }
  .jcd-fab:active{ transform:scale(.91); }
  .jcd-fab svg{ width:20px; height:20px; }
  .jcd-fab--contact{ background:#f4f4f4; color:#0a0a0a; border-color:transparent; box-shadow:0 8px 24px rgba(0,0,0,.32); }
  .jcd-fab--top{ display:none; }
  .jcd-fab--top.is-on{ display:flex; }
  body.jcd-mnav-open .jcd-fab-wrap{ opacity:0 !important; pointer-events:none !important; }
}
@media (prefers-reduced-motion:reduce){ .jcd-fab-wrap,.jcd-fab{ transition:none; } }

/* ==================================================================
   Ex-bloc inline <style id="jcd-mdensity-css"> - externalise le 2026-08-07
   ================================================================== */

/* MOBILE DENSITY PASS (audit 2026-06-23): compress desktop vertical rhythm carried to phones. */
@media (max-width:640px){
  /* Hero clearance under the 70px fixed nav (was 110-150px) */
  .hero,.print-hero,.cat-hero,.careers-hero,.legal-hero{ padding-top:88px !important; }
  /* Content-section vertical rhythm (was 80-140px) */
  .process,.testi,.coming-soon,.proof{ padding-top:48px !important; padding-bottom:48px !important; }
  .prestations{ padding-bottom:52px !important; }
  .manifesto{ padding-bottom:48px !important; }
  .cahier-sheet{ padding-top:44px !important; padding-bottom:48px !important; }
  .sec{ padding-top:44px !important; padding-bottom:44px !important; }
  .legal-body{ padding-top:36px !important; padding-bottom:48px !important; }
  .cat-list{ padding-bottom:48px !important; }
  /* Homepage bespoke sections (fixed desktop px, never reduced for mobile) */
  .chiffres{ padding-top:48px !important; padding-bottom:52px !important; }
  .poles{ padding-bottom:52px !important; }
  .valeurs{ padding-top:52px !important; padding-bottom:56px !important; }
  .cta-final{ padding-top:80px !important; padding-bottom:72px !important; }
}

/* ==================================================================
   Ex-bloc inline <style id="jcd-micons-css"> - externalise le 2026-08-07
   ================================================================== */

@media (max-width:820px){.jcd-mnav__ico{width:23px;height:23px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:var(--mnav-c,#9a9a9a);}.jcd-mnav__ico svg{width:100%;height:100%;display:block;}.jcd-mnav__dot{display:none!important;}.jcd-xpdot{display:none!important;}.vd-mobile-branch-dot{display:none!important;}.pole-card p{display:none!important;}.pole-card-num{display:none!important;}.clients-eyebrow{display:none!important;}.pf-vcard-num,.fp-ref,.bp-ref,.clip-chip,.station-ref{display:none!important;}}

/* ==================================================================
   Ex-bloc inline <style id="jcd-mrefonte-css"> - externalise le 2026-08-07
   ================================================================== */

@media (max-width:820px){
  /* -- 0. Ancres instantanees : pas de smooth scroll sur mobile (acces direct a l'info) -- */
  html{ scroll-behavior:auto !important; }
  /* -- 1. Heros statiques compacts : canvas/deco off, fallback de pole conserve, hauteur reduite -- */
  canvas#heroMesh, canvas.hero-mesh, canvas#heroGrid, canvas.hero-gridglow, canvas#heroAscii, canvas.hero-ascii{ display:none !important; }
  .hero-texture, .hero-grain, .hero-constellation{ display:none !important; }
  .hero-pin-zone{ height:auto !important; min-height:0 !important; }
  .print-hero{ position:relative !important; top:auto !important; min-height:0 !important; padding:96px 0 40px !important; }
  .hub-intro{ padding:96px 0 36px !important; }
  .hero{ min-height:0 !important; }
  .hero-title{ font-size:clamp(29px,8.4vw,38px) !important; line-height:1.1 !important; }
  .hero-sub{ font-size:15.5px !important; }
  /* -- 2. Reveals au scroll desactives : tout est lisible immediatement -- */
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .cyber-shield-art, .cyber-orbits{ opacity:1 !important; transform:none !important; transition:none !important; animation:none !important; }
  .cyber-shield-check, .cyber-wire{ stroke-dasharray:none !important; stroke-dashoffset:0 !important; animation:none !important; }
  .cyber-pilier, .cyber-node{ opacity:1 !important; animation:none !important; }
  /* -- 3. Viz decoratives masquees, le texte des etapes reste -- */
  .pf-vsvg, .fp-sky, .bp-frame, .sky-dome, svg.sky-wires, .defense-rings, svg.defense-wires{ display:none !important; }
  /* -- 4a. "Nos competences" (prestations) : liste epuree glyphe + titre, sans sous-texte ni accordeon -- */
  .prest-menu, .prest-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; background:none !important; border:0 !important; border-radius:0 !important; gap:0 18px !important; }
  .prest-menu::after{ display:none !important; }
  .prest-item{ display:flex !important; flex-direction:row !important; align-items:center !important; gap:11px !important; padding:11px 2px !important; margin:0 !important; min-height:0 !important; background:none !important; border:0 !important; border-bottom:1px solid rgba(255,255,255,.07) !important; border-radius:0 !important; cursor:default !important; overflow:visible !important; }
  .prest-item:nth-child(-n+2){ border-top:1px solid rgba(255,255,255,.07) !important; }
  .prest-item::after{ display:none !important; }
  .prest-item-head{ display:block !important; margin:0 !important; padding:0 !important; }
  .prest-item-glyph{ width:26px !important; height:26px !important; border:0 !important; background:none !important; border-radius:0 !important; color:var(--accent,#c9c9c9) !important; }
  .prest-item-glyph svg{ width:24px !important; height:24px !important; }
  .prest-item-num{ display:none !important; }
  .prest-item-title{ margin:0 !important; padding:0 !important; font-size:13.5px !important; font-weight:600 !important; line-height:1.35 !important; letter-spacing:-.01em !important; }
  .prest-item-desc, .prest-cta{ display:none !important; }
  /* -- 4b. "Notre methode" : timeline verticale epuree (ref + titre), sans sous-texte -- */
  .pf-vcards, .fp-steps, .blueprint, .regie-steps, .atelier-steps{ display:block !important; margin:0 !important; padding:0 !important; border:0 !important; background:none !important; min-height:0 !important; list-style:none !important; }
  .pf-vcards::before, .fp-steps::before, .regie-steps::before, .atelier-steps::before{ display:none !important; }
  .regie-track, .regie-bar, .regie-ruler, .atelier-belt, .station-art, .st-arrow, .bp-svc{ display:none !important; }
  .pf-vcard, .fp-step, .bp-step, .regie-steps .clip, .atelier-steps .station{ display:block !important; position:relative !important; margin:0 !important; padding:2px 0 24px 26px !important; min-height:0 !important; min-width:0 !important; width:auto !important; max-width:none !important; background:none !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; cursor:default !important; transform:none !important; opacity:1 !important; left:auto !important; right:auto !important; top:auto !important; list-style:none !important; }
  .pf-vcard:last-child, .fp-step:last-child, .regie-steps .clip:last-child, .atelier-steps .station:last-child, .blueprint .bp-step:last-of-type{ padding-bottom:4px !important; }
  .pf-vcard::before, .fp-step::before, .bp-step::before, .regie-steps .clip::before, .atelier-steps .station::before{ content:'' !important; display:block !important; position:absolute !important; left:0 !important; top:5px !important; width:9px !important; height:9px !important; border-radius:999px !important; background:transparent !important; border:1.6px solid var(--accent,#9a9a9a) !important; box-shadow:none !important; margin:0 !important; transform:none !important; opacity:1 !important; animation:none !important; }
  .pf-vcard::after, .fp-step::after, .bp-step::after, .regie-steps .clip::after, .atelier-steps .station::after{ content:'' !important; display:block !important; position:absolute !important; left:4px !important; top:21px !important; bottom:4px !important; width:1px !important; height:auto !important; background:linear-gradient(rgba(255,255,255,.16), rgba(255,255,255,.05)) !important; border:0 !important; border-radius:0 !important; right:auto !important; transform:none !important; opacity:1 !important; }
  .pf-vcard:last-child::after, .fp-step:last-child::after, .regie-steps .clip:last-child::after, .atelier-steps .station:last-child::after, .blueprint .bp-step:last-of-type::after{ display:none !important; }
  .pf-vcard-head{ display:block !important; margin:0 0 4px !important; padding:0 !important; }
  .pf-vcard-glyph{ display:none !important; }
  .pf-vcard-num{ display:inline-block !important; position:static !important; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; opacity:1 !important; }
  .pf-vcard-num, .fp-ref, .bp-ref, .clip-chip, .station-ref{ display:block !important; position:static !important; margin:0 0 5px !important; padding:0 !important; font-family:'JetBrains Mono',ui-monospace,monospace !important; font-size:10.5px !important; font-weight:600 !important; letter-spacing:.13em !important; text-transform:uppercase !important; background:none !important; border:0 !important; box-shadow:none !important; transform:none !important; opacity:1 !important; }
  .pf-vcard-num{ color:var(--accent,#9a9a9a) !important; }
  .pf-vcard-title, .fp-step h3, .bp-step h3, .regie-steps .clip h3, .station-tag h3, .atelier-steps .station .station-tag h3{ margin:0 !important; padding:0 !important; font-size:16px !important; font-weight:600 !important; line-height:1.25 !important; letter-spacing:-.01em !important; color:var(--text-1,#f4f4f4) !important; }
  .station-tag{ display:block !important; position:static !important; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; transform:none !important; max-width:none !important; }
  .pf-vcard-desc, .fp-step p, .bp-step p, .regie-steps .clip p, .station-tag p{ display:none !important; }
  .pf-vcard-fade{ display:none !important; }
  /* -- 7a. Sections CTA de bas de page masquees (la barre fixe couvre deja l'action contact) -- */
  .cta-section{ display:none !important; }
  /* -- 7b. Footer ultra-compact : poles/groupe (deja dans le menu) masques ; adresses + legal seulement -- */
  .fcard--poles, .fcard--groupe{ display:none !important; }
  .footer-bento{ display:block !important; margin:0 !important; }
  .fcard--contact{ grid-column:auto !important; margin:0 !important; padding:0 !important; border-top:0 !important; }
  footer[role="contentinfo"] .container{ padding-top:22px !important; }
  .footer-contacts{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px !important; }
  .fc-hours{ display:none !important; }
  .footer-contact-block address{ font-size:11.5px !important; line-height:1.4 !important; margin-bottom:4px !important; }
  .footer-bottom{ margin-top:14px !important; padding-top:12px !important; }
  /* -- 7c. Certifications / partenaires : bande de logos monochromes sans cadres, defilable, fondu lateral -- */
  .prest-aside-partners{ margin-top:16px !important; padding-top:14px !important; }
  .prest-aside-partners-grid{ display:flex !important; align-items:center !important; background:none !important; border:0 !important; border-radius:0 !important; gap:26px !important; overflow-x:auto !important; padding:12px 2px 4px !important; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
  .prest-aside-partners-grid::-webkit-scrollbar{ display:none; }
  .prest-aside-partners .logo-tile{ flex:0 0 auto !important; width:auto !important; height:32px !important; min-height:0 !important; aspect-ratio:auto !important; padding:0 !important; border:0 !important; background:none !important; border-radius:0 !important; }
  .prest-aside-partners .logo-tile-img{ height:100% !important; width:auto !important; max-width:none !important; max-height:100% !important; }
  .prest-aside-partners .logo-tile-name{ display:none !important; }
  /* -- 7d. Ecosysteme partenaires (informatique) : logos en lignes libres par quadrant, sans tuiles -- */
  .eco-net-traces{ display:none !important; }
  .eco-net{ display:block !important; background:none !important; border:0 !important; padding:0 !important; }
  .eco-quad{ margin:0 0 20px !important; padding:0 !important; background:none !important; border:0 !important; position:static !important; }
  .eco-quad-label{ display:block !important; margin:0 0 10px !important; padding:0 !important; font-family:'JetBrains Mono',ui-monospace,monospace !important; font-size:10.5px !important; letter-spacing:.13em !important; text-transform:uppercase !important; color:var(--text-2,#b8b8b8) !important; position:static !important; background:none !important; }
  .eco-quad-grid{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:14px 24px !important; background:none !important; border:0 !important; }
  .eco-tile{ width:auto !important; height:28px !important; min-height:0 !important; aspect-ratio:auto !important; padding:0 !important; border:0 !important; background:none !important; display:flex !important; align-items:center !important; }
  .eco-tile-img{ height:100% !important; width:auto !important; max-width:none !important; max-height:100% !important; }
  .eco-tile.has-logo .eco-tile-name{ display:none !important; }
  .eco-tile--ph{ height:auto !important; border:1px solid rgba(255,255,255,.13) !important; border-radius:999px !important; padding:5px 11px !important; }
  .eco-tile--ph .eco-tile-name{ font-size:10px !important; letter-spacing:.1em !important; text-transform:uppercase !important; color:var(--text-2,#b8b8b8) !important; }
  /* -- 7e. Sous-nav informatique : remise dans le flux (ne recouvre plus les heros), defile avec la page -- */
  .info-subnav{ position:static !important; top:auto !important; height:auto !important; margin-top:calc(70px + env(safe-area-inset-top)) !important; pointer-events:auto !important; }
  .info-subnav::before{ display:none !important; }
  .info-subnav__inner{ padding-top:6px !important; padding-bottom:6px !important; overflow:visible !important; justify-content:space-between !important; gap:2px !important; }
  /* 4 sections en icones seules : tout visible sans scroll, reparties uniformement */
  .info-subnav__list{ display:flex !important; flex:1 1 auto !important; justify-content:space-evenly !important; align-items:center !important; gap:2px !important; margin:0 !important; padding:0 !important; list-style:none !important; }
  .info-subnav__link{ font-size:0 !important; letter-spacing:0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; width:44px !important; min-width:44px !important; height:44px !important; min-height:44px !important; padding:0 !important; margin:0 !important; border-radius:12px !important; }
  .info-subnav__link .info-subnav__ic{ margin:0 !important; display:flex !important; width:21px !important; height:21px !important; }
  .info-subnav__link .info-subnav__ic svg{ width:21px !important; height:21px !important; display:block !important; }
  .info-subnav__link.is-active{ background:rgba(255,255,255,.09) !important; color:var(--text-1,#f4f4f4) !important; }
  .info-subnav__home{ width:44px !important; min-width:44px !important; height:44px !important; }
  body:has(.info-subnav) .print-hero{ padding-top:34px !important; }
  body:has(.info-subnav) .hub-intro{ padding-top:34px !important; }
  body:has(.info-subnav) #prestations, body:has(.info-subnav) #process, body:has(.info-subnav) #contact, body:has(.info-subnav) #cybersecurite{ scroll-margin-top:74px !important; }
  /* -- 7f. Formation : catalogue epure, simple, compact -- */
  /* hub formation : domaines en lignes plates 2 colonnes (dot | nom / compteur) */
  .jcd-fcat-grid{ grid-template-columns:1fr 1fr !important; gap:0 18px !important; }
  .jcd-fcat-card{ display:grid !important; grid-template-columns:auto 1fr !important; column-gap:9px !important; row-gap:2px !important; align-items:center !important; padding:11px 2px !important; margin:0 !important; background:none !important; border:0 !important; border-radius:0 !important; border-bottom:1px solid rgba(255,255,255,.07) !important; min-height:0 !important; }
  .jcd-fcat-card:nth-child(-n+2){ border-top:1px solid rgba(255,255,255,.07) !important; }
  .jcd-fcat-card:active{ background:rgba(255,255,255,.035) !important; }
  .jcd-fcat-dot{ grid-row:1 !important; }
  .jcd-fcat-name{ font-size:12.5px !important; line-height:1.25 !important; margin:0 !important; }
  .jcd-fcat-n{ grid-column:2 !important; font-size:10px !important; margin:0 !important; }
  /* pages categorie : cours en liste hairline 1 colonne (titre | niveau | fleche) */
  .fcat-grid{ grid-template-columns:1fr !important; gap:0 !important; }
  .fcat-card{ margin:0 !important; background:none !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
  .fcat-card-link{ display:grid !important; grid-template-columns:1fr auto auto !important; align-items:center !important; column-gap:10px !important; padding:13px 2px !important; margin:0 !important; background:none !important; border:0 !important; border-radius:0 !important; border-bottom:1px solid rgba(255,255,255,.07) !important; box-shadow:none !important; min-height:0 !important; }
  .fcat-card:first-child .fcat-card-link{ border-top:1px solid rgba(255,255,255,.07) !important; }
  .fcat-card-link:active{ background:rgba(255,255,255,.035) !important; }
  .fcat-card-top, .fcat-card-foot{ display:contents !important; }
  .fcat-num, .fcat-cta{ display:none !important; }
  .fcat-title{ grid-column:1 !important; grid-row:1 !important; margin:0 !important; font-size:13.5px !important; font-weight:600 !important; line-height:1.3 !important; }
  .fcat-level{ grid-column:2 !important; grid-row:1 !important; font-size:10px !important; white-space:nowrap !important; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; }
  .fcat-arrow{ grid-column:3 !important; grid-row:1 !important; margin:0 !important; }
  .fcat-arrow svg{ width:14px !important; height:14px !important; }
  /* autres categories : rail horizontal scrollable au lieu d'une pile */
  .cat-others-rail{ display:flex !important; flex-wrap:nowrap !important; overflow-x:auto !important; gap:8px !important; padding:4px 2px 8px !important; margin:0 !important; scrollbar-width:none; list-style:none !important; -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
  .cat-others-rail::-webkit-scrollbar{ display:none; }
  .cat-others-rail li{ flex:0 0 auto !important; margin:0 !important; }
  .ocat-chip{ white-space:nowrap !important; }
  /* -- 7g. Ajustements : logos a ratio extreme bornes, cartes poles/catalogue compactes -- */
  .prest-aside-partners .logo-tile-img{ max-width:112px !important; object-fit:contain !important; }
  /* Poles : tuiles compactes icone+titre ; 2 col par defaut (hub informatique 2x2), 3 col si 7 cartes (index -> 3 rangees) */
  .pole-cards{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:8px !important; }
  .pole-cards:has(.pole-card:nth-child(7)){ grid-template-columns:repeat(3,1fr) !important; }
  .pole-card{ display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; text-align:center !important; gap:7px !important; padding:13px 6px !important; margin:0 !important; min-height:0 !important; }
  .pole-card-top{ margin:0 !important; display:block !important; }
  .pole-card-num{ display:none !important; }
  .pole-card-icon{ margin:0 !important; }
  .pole-card h3{ margin:0 !important; font-size:12px !important; line-height:1.15 !important; letter-spacing:-.01em !important; }
  .pole-card p{ display:none !important; }
  /* Carte capitale (Informatique) : pleine largeur, layout horizontal, description conservee */
  .pole-card.pole-center{ grid-column:1 / -1 !important; display:grid !important; grid-template-columns:auto 1fr !important; column-gap:12px !important; row-gap:1px !important; align-items:center !important; text-align:left !important; padding:13px 14px !important; }
  .pole-card.pole-center .pole-card-top{ grid-row:1 / 3 !important; }
  .pole-card.pole-center h3{ font-size:15px !important; }
  .pole-card.pole-center p{ display:-webkit-box !important; -webkit-box-orient:vertical !important; -webkit-line-clamp:1 !important; overflow:hidden !important; margin:0 !important; font-size:12px !important; line-height:1.4 !important; color:var(--text-2,#b8b8b8) !important; }
  /* -- 7h. Murs de logos clients -> bande horizontale unique (jamais de defilement vertical) -- */
  .prest-aside-clients{ margin-top:16px !important; padding-top:14px !important; }
  .logo-marquee{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; gap:26px !important; overflow-x:auto !important; overflow-y:hidden !important; height:auto !important; min-height:0 !important; max-height:none !important; padding:12px 2px 4px !important; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
  .logo-marquee::-webkit-scrollbar{ display:none; }
  .logo-marquee::before, .logo-marquee::after{ display:none !important; }
  .logo-marquee-col{ display:contents !important; }
  .logo-marquee-item{ flex:0 0 auto !important; width:auto !important; height:30px !important; margin:0 !important; padding:0 !important; animation:none !important; transform:none !important; }
  .logo-marquee-item img{ height:100% !important; width:auto !important; max-width:112px !important; object-fit:contain !important; }
  .clients-marquee{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; gap:26px !important; overflow-x:auto !important; overflow-y:hidden !important; height:auto !important; min-height:0 !important; max-height:none !important; padding:10px 2px 4px !important; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
  .clients-marquee::-webkit-scrollbar{ display:none; }
  .clients-marquee::before, .clients-marquee::after{ display:none !important; }
  .clients-row, .clients-row__track{ display:contents !important; }
  .clients-row__item{ flex:0 0 auto !important; height:30px !important; width:auto !important; margin:0 !important; padding:0 !important; }
  .clients-row__item img{ height:100% !important; width:auto !important; max-width:112px !important; object-fit:contain !important; }
  /* -- 8. Elagage de contenu : mobile = porte d'entree vers services + contact, pas un dossier a lire -- */
  .manifesto{ display:none !important; }
  #histoire{ display:none !important; }
  .prest-aside-sub{ display:none !important; }
  .hero-sub{ font-size:14px !important; display:-webkit-box !important; -webkit-box-orient:vertical !important; -webkit-line-clamp:4 !important; overflow:hidden !important; }
  .sec-head p{ display:-webkit-box !important; -webkit-box-orient:vertical !important; -webkit-line-clamp:2 !important; overflow:hidden !important; }
  .cyber-pilier p{ display:none !important; }
  .cyber-pilier{ min-height:0 !important; padding:14px 16px !important; }
  .cyber-piliers{ grid-template-rows:none !important; grid-auto-rows:auto !important; }
  .wt-num{ display:none !important; }
  .wt-items{ gap:10px !important; }
  .wt-branch, .wt-node{ display:none !important; }
  .wt-card-box{ border:0 !important; background:none !important; box-shadow:none !important; padding:10px 0 !important; transform:none !important; }
  .wt-item{ margin:0 !important; padding:0 !important; min-height:0 !important; }
  /* -- 5. Sommaire d'ancres (chips) : SUPPRIME (demande user 2026-07-15) - masque aussi ceux de xpcompact -- */
  .jcd-xpnav{ display:none !important; }
  #poles,#chiffres,#valeurs,#histoire,#cybersecurite,#avantages,#recrutement,#offres,#postuler,#catalogue,#prestations,#process,#contact{ scroll-margin-top:74px; }
  /* -- 6. Barre d'actions fixe en bas : Menu / Appeler / Contact -- */
  #jcd-mbar{ position:fixed; left:0; right:0; bottom:0; z-index:4200; display:flex; gap:8px; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); background:rgba(10,10,11,.92); -webkit-backdrop-filter:blur(18px) saturate(140%); backdrop-filter:blur(18px) saturate(140%); border-top:1px solid rgba(255,255,255,.09); }
  #jcd-mbar a, #jcd-mbar button{ flex:1 1 0; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border-radius:12px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); color:#f4f4f4; font:600 13.5px/1 Inter,system-ui,sans-serif; letter-spacing:-.01em; text-decoration:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  #jcd-mbar a:active, #jcd-mbar button:active{ background:rgba(255,255,255,.11); }
  #jcd-mbar .jcd-mbar-cta{ background:#f4f4f4; border-color:#f4f4f4; color:#111; }
  #jcd-mbar svg{ width:16px; height:16px; flex:0 0 auto; }
  body.jcd-has-mbar{ padding-bottom:calc(66px + env(safe-area-inset-bottom)) !important; }
  body.jcd-has-mbar .jcd-fab-wrap{ display:none !important; }
  body.jcd-has-mbar .jcd-burger{ display:none !important; }
  body.jcd-has-mbar .jcd-mnav__scroll{ padding-bottom:calc(96px + env(safe-area-inset-bottom)) !important; }
}
@media (min-width:821px){ #jcd-mbar, .jcd-xpnav{ display:none !important; } }

/* ==================================================================
   Ex-bloc inline <style id="jcd-mpad-css"> - externalise le 2026-08-07
   ================================================================== */

@media (max-width:820px){.chiffres,.valeurs,.process,.testi,.secblock,.cyber,.partners,.why{padding-top:40px!important;padding-bottom:40px!important;}.prestations{padding-bottom:40px!important;}body:has(.secblock) .prestations{padding-top:40px!important;}.hero{padding-bottom:28px!important;}#poles.poles{margin-top:0!important;}.poles{padding-bottom:36px!important;}.cta-final{padding-top:48px!important;padding-bottom:44px!important;}.hub-intro{padding-bottom:28px!important;}.values-sec,.acc-sec,.offers-sec,.apply-sec{padding-top:40px!important;padding-bottom:40px!important;}.jcd-fcat-mob{padding-top:36px!important;}.cat-others{padding-bottom:40px!important;}.assist-head{padding-top:88px!important;}.legal-hero{padding-bottom:24px!important;}.legal-body{padding-top:24px!important;padding-bottom:36px!important;}.section-head{margin-bottom:28px!important;}}

/* ==================================================================
   Manifestes — contenu riche Directus
   L'italique (<i>) saisi dans le WYSIWYG devient la couleur accent
   du pôle (chaque page définit --accent-hi dans son propre CSS).
   ================================================================== */
.manifesto-rich i{ font-style:normal; font-weight:500; color:var(--accent-hi,var(--accent,#f4f4f4)); }
em {
   font-style:normal;
}