/* == s_a6075b7e39.css == */
:root{--logo:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20200%22%20width%3D%22200%22%20height%3D%22200%22%20role%3D%22img%22%20aria-label%3D%22EnerTchad%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22pg%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%220%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23DBAE4A%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23C2922E%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%22100%22%20cy%3D%22100%22%20r%3D%2270%22%20fill%3D%22none%22%20stroke%3D%22%23C9992B%22%20stroke-width%3D%224.5%22%2F%3E%3Cpath%20d%3D%22M100.00%2097.60%20L116.20%2081.10%20A22.7%2022.7%200%201%200%2083.80%2081.10%20Z%22%20fill%3D%22url%28%23pg%29%22%2F%3E%3Cpath%20d%3D%22M97.60%20100.00%20L81.10%2083.80%20A22.7%2022.7%200%201%200%2081.10%20116.20%20Z%22%20fill%3D%22%231E6EC2%22%2F%3E%3Cpath%20d%3D%22M102.40%20100.00%20L118.90%20116.20%20A22.7%2022.7%200%201%200%20118.90%2083.80%20Z%22%20fill%3D%22%23218A2C%22%2F%3E%3Cpath%20d%3D%22M100.00%20102.40%20L83.80%20118.90%20A22.7%2022.7%200%201%200%20116.20%20118.90%20Z%22%20fill%3D%22%23F6E8BD%22%2F%3E%3C%2Fsvg%3E");
  --blue:#2E86DE;--blue-l:#5AA7F0;--blue-d:#1B4E8C;--inter:#0EA5E9;--inter-l:#38BDF8;
  --amber:#B45309;--amber-l:#F59E0B;--amber-d:#7C3A06;
  --gold:#D9A84F;--gold-l:#E8C36A;--gold-xl:#F0CE82;
  --green:#1E7A55;--green-l:#34D399;--green-d:#0B6E4F;
  --navy:#0C1626;--ink:#0B1422;--panel:#0E1A2C;--panel-l:#13243E;--cream:#F5F7FA;--muted:#7C8AA2;--muted-d:#69768B;--muted-l:#9FB0C9;--muted-xl:#A9B6C8;
  --p-amont:#E8C36A;--p-intermediaire:#5AA7F0;--p-aval:#F59E0B;--p-greentech:#34D399;--p-tchaditech:#96A2EC;--p-tchaditude:#C4B5FD;--p-enerconseils:#1FA496;--p-petrochimie:#D177B4;--p-media:#D177B4;
  --hair:rgba(90,167,240,.12);--hair-d:rgba(11,20,34,.1);
  --fd:'Space Grotesk','Inter',system-ui,sans-serif;--fb:'Inter',system-ui,sans-serif;--fm:'JetBrains Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);--r:18px;--rl:24px;
  --shadow:0 24px 70px rgba(6,11,20,.55),0 4px 16px rgba(6,11,20,.35);--gut:clamp(20px,5vw,56px);--max:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:116px;-webkit-text-size-adjust:100%;overflow-x:clip;scrollbar-gutter:stable}
body{font-family:var(--fb);background:var(--navy);color:var(--cream);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;z-index:-1;background:var(--navy);pointer-events:none}
/* ── Preloader avec slogans ── */
#preloader{position:fixed;inset:0;z-index:9999;background:radial-gradient(900px 600px at 50% 40%,rgba(46,134,222,.14),transparent 70%),var(--navy);display:grid;place-items:center;transition:opacity .7s var(--ease),visibility .7s;pointer-events:none}
#preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.pl-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px}
.pl-logo{width:96px;height:96px;border-radius:22px;display:grid;place-items:center;padding:14px;background:linear-gradient(145deg,rgba(46,134,222,.16),rgba(217,168,79,.12));border:1px solid rgba(217,168,79,.28);box-shadow:0 12px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.1);animation:plPulse 2.4s var(--ease) infinite}
.pl-name{font-family:var(--fd);font-weight:700;font-size:1.5rem;color:#fff;margin-top:22px;letter-spacing:-.01em}
.pl-name span{background:linear-gradient(110deg,var(--blue-l),var(--gold-l));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pl-slogans{position:relative;height:26px;margin-top:14px;min-width:280px}
.pl-slogan{position:absolute;left:0;right:0;font-family:var(--fm);font-size:.84rem;letter-spacing:.08em;color:var(--gold-l);opacity:0;animation:plSlogan 5.4s var(--ease) infinite}
.pl-slogan:nth-child(2){animation-delay:1.8s}
.pl-slogan:nth-child(3){animation-delay:3.6s}
.pl-bar{margin-top:28px;width:180px;height:3px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.pl-bar i{display:block;height:100%;width:40%;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--gold-l));animation:plBar 1.4s var(--ease) infinite}
@keyframes plPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes plSlogan{0%,100%{opacity:0;transform:translateY(6px)}10%,28%{opacity:1;transform:none}38%{opacity:0;transform:translateY(-6px)}}
@keyframes plBar{0%{transform:translateX(-120%)}100%{transform:translateX(330%)}}
@media(prefers-reduced-motion:reduce){.pl-logo,.pl-slogan,.pl-bar i{animation:none}.pl-slogan:nth-child(1){opacity:1}.hx-shot{animation:none}.hx-shot:nth-child(1){opacity:1}}
::selection{background:rgba(217,168,79,.28);color:#fff}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--navy)}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--blue-d),var(--ink));border:2px solid var(--navy);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--blue),var(--blue-d))}
html{scrollbar-color:var(--blue-d) var(--navy);scrollbar-width:thin}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3,h4{font-family:var(--fd);letter-spacing:-.02em;line-height:1.08;font-weight:700}
a{color:inherit;text-decoration:none}
:focus{outline:none}
:focus-visible{outline:3px solid var(--blue-l);outline-offset:3px;border-radius:6px}
.skip-link{position:fixed;left:12px;top:-60px;z-index:200;background:var(--blue-d);color:#fff;padding:10px 18px;border-radius:8px;font-family:var(--fd);font-weight:600;font-size:.9rem}
.skip-link:focus{top:12px}
.btn:focus-visible,.app-tab:focus-visible{outline-offset:4px}
section{padding:var(--sy) 0;position:relative}
.kick{display:inline-flex;align-items:center;gap:9px;font-family:var(--fm);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-l);margin-bottom:18px}
.kick::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--blue),transparent)}
.btn{display:inline-flex;white-space:nowrap;align-items:center;gap:9px;font-weight:600;font-size:.92rem;padding:13px 22px;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:all .25s var(--ease);font-family:var(--fb)}
.btn-p{background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;box-shadow:0 8px 28px rgba(46,134,222,.3)}
.btn-p:hover{transform:translateY(-2px);box-shadow:0 12px 36px rgba(46,134,222,.45)}
.btn-g{background:rgba(90,167,240,.07);border-color:var(--hair);color:var(--cream)}
.btn-g:hover{background:rgba(90,167,240,.13);border-color:var(--blue)}
.reveal{opacity:0;transform:translateY(22px);filter:blur(3px);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1),filter .75s ease}
.reveal.in{opacity:1;transform:none;filter:none}
/* ── Motion premium ── */
.reveal-up{opacity:0;transform:translateY(34px) scale(.985);filter:blur(4px);transition:opacity .85s cubic-bezier(.22,.61,.36,1),transform .85s cubic-bezier(.22,.61,.36,1),filter .85s ease}
.reveal-up.in{opacity:1;transform:none;filter:none}
.reveal-blur{opacity:0;filter:blur(8px);transform:translateY(14px);transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease)}
.reveal-blur.in{opacity:1;filter:blur(0);transform:none}
/* élévation + lueur sur cartes interactives */
.divc:hover,.site:hover{transform:translateY(-6px);box-shadow:0 18px 50px rgba(0,0,0,.4),0 0 0 1px var(--dc,rgba(46,134,222,.4))}
.divc::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(90,167,240,.10),transparent 60%);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
/* ── Spotlight curseur générique (effet premium global) ── */
.glow-card{position:relative}
.glow-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(90,167,240,.14),transparent 55%);opacity:0;transition:opacity .45s var(--ease);pointer-events:none;z-index:0}
.glow-card:hover::after{opacity:1}
.glow-card>*{position:relative;z-index:1}
.divc:hover::after{opacity:1}
/* hero : léger parallaxe via translate piloté JS */
.hero-parallax{transition:transform .2s linear}
/* compteurs & barres : will-change pour fluidité */
.ct,.thr-row .bar i{will-change:transform,width}
/* lien actif nav (scroll-spy) */
.nav-links a.active{color:#fff}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal,.reveal-up,.reveal-blur{opacity:1!important;transform:none!important;filter:none!important}
}
@keyframes fluxDash{to{stroke-dashoffset:-32}}
@media(max-width:640px){
}
@media(prefers-reduced-motion:reduce){}
.field{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.field::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(46,134,222,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(46,134,222,.045) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000,transparent 75%);mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000,transparent 75%)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s var(--ease),border-color .35s,box-shadow .35s;border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(6,11,20,.55),rgba(6,11,20,.15));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
#readbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;background:linear-gradient(90deg,var(--blue),var(--gold-l) 60%,var(--amber-l));box-shadow:0 0 10px rgba(217,168,79,.5);transition:width .1s linear;will-change:width;pointer-events:none}
@media(prefers-reduced-motion:reduce){#readbar{transition:none}}
#dotnav{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:45;display:flex;flex-direction:column;gap:12px}#dotnav{padding:14px 11px;border-radius:999px;border:1px solid rgba(245,247,250,.07);background:color-mix(in srgb,#0B1422 55%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#dotnav .dot-more{display:flex;align-items:center;justify-content:center;color:var(--gold-l);opacity:.9;margin-top:4px;animation:dotMore 1.8s ease-in-out infinite;transition:opacity .4s var(--ease)}#dotnav .dot-more svg{width:13px;height:13px}@keyframes dotMore{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}@media(prefers-reduced-motion:reduce){#dotnav .dot-more{animation:none}}#dotnav a{display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;position:relative;z-index:1;height:15px}#dotnav::before,#dotnav::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:2px;border-radius:2px;pointer-events:none}#dotnav::before{top:0;bottom:0;background:rgba(245,247,250,.09)}#dotnav::after{top:0;height:var(--dp,0%);background:linear-gradient(180deg,var(--gold-l),var(--blue-l));box-shadow:0 0 9px rgba(217,168,79,.4);transition:height .15s linear}#dotnav .dot-pt{width:7px;height:7px;border-radius:50%;background:rgba(11,20,34,.9);border:1.5px solid rgba(245,247,250,.28);box-sizing:border-box;transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);flex-shrink:0}#dotnav a:hover .dot-pt{background:var(--gold-l);border-color:var(--gold-l);transform:scale(1.5)}#dotnav a.active .dot-pt{background:var(--gold-l);border-color:var(--gold-l);transform:scale(1.45);box-shadow:0 0 0 4px rgba(217,168,79,.18),0 0 14px 3px rgba(232,195,106,.55)}#dotnav .dot-lb{position:absolute;right:calc(100% + 14px);top:50%;font-family:var(--fm);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);background:rgba(11,20,34,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:5px 11px;border-radius:8px;border:1px solid var(--hair);box-shadow:0 8px 22px rgba(0,0,0,.45);opacity:0;transform:translateY(-50%) translateX(8px);transition:opacity .26s var(--ease),transform .26s var(--ease);pointer-events:none;white-space:nowrap}#dotnav a:hover .dot-lb,#dotnav a.active .dot-lb{opacity:1;transform:translateY(-50%) translateX(0)}@media(prefers-reduced-motion:reduce){#dotnav .dot-pt,#dotnav .dot-lb,#dotnav::after{transition:none}}
@media(max-width:1200px){#dotnav{display:none}}
.nav.scrolled{background:rgba(8,14,26,.82);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-bottom-color:var(--hair);box-shadow:0 8px 32px rgba(0,0,0,.3)}.brand:hover .brand-mk{transform:translateY(-1px) scale(1.03)}
/* ── Grain premium : texture subtile anti-aplat ── */
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* ── Aurora premium : halos lumineux flottants en fond ── */
#aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
#aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.72;will-change:transform}
#aurora i:nth-child(1){width:52vw;height:52vw;top:-14%;left:-8%;background:radial-gradient(circle,rgba(46,134,222,.55),transparent 62%);animation:auroraA 26s var(--ease) infinite alternate}
#aurora i:nth-child(2){width:44vw;height:44vw;bottom:-12%;right:-6%;background:radial-gradient(circle,rgba(217,168,79,.4),transparent 62%);animation:auroraB 32s var(--ease) infinite alternate}
#aurora i:nth-child(3){width:38vw;height:38vw;top:36%;left:40%;background:radial-gradient(circle,rgba(180,83,9,.32),transparent 62%);animation:auroraC 38s var(--ease) infinite alternate}
@keyframes auroraA{0%{transform:translate(0,0) scale(1)}100%{transform:translate(14vw,10vh) scale(1.18)}}
@keyframes auroraB{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-12vw,-8vh) scale(1.22)}}
@keyframes auroraC{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-10vw,12vh) scale(.85)}}
@media(prefers-reduced-motion:reduce){#aurora i{animation:none}}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:15px var(--gut);max-width:var(--max);margin:0 auto;transition:padding .35s var(--ease)}
.brand{display:flex;align-items:center;gap:13px}
.brand-mk{position:relative;width:62px;height:62px;border-radius:16px;display:grid;place-items:center;padding:8px;background:linear-gradient(145deg,rgba(46,134,222,.14),rgba(217,168,79,.1));border:1px solid rgba(217,168,79,.22);box-shadow:0 4px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.brand-mk::after{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(145deg,rgba(90,167,240,.5),transparent 40%,transparent 60%,rgba(217,168,79,.45));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;transition:opacity .4s var(--ease)}
.brand:hover .brand-mk{transform:translateY(-1px) scale(1.04);box-shadow:0 8px 26px rgba(46,134,222,.28),inset 0 1px 0 rgba(255,255,255,.12);border-color:rgba(217,168,79,.4)}
.brand:hover .brand-mk::after{opacity:1}
@media(prefers-reduced-motion:reduce){.brand:hover .brand-mk{transform:none}}
.brand-tx{font-family:var(--fd);font-weight:700;font-size:1.05rem;letter-spacing:-.01em;line-height:1.1}
.brand-tx .s{background:linear-gradient(110deg,var(--blue-l),var(--gold-l));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand-tx small{display:block;font-family:var(--fm);font-weight:400;font-size:0.6875rem;letter-spacing:.09em;line-height:1.45;color:#8C9AB0;text-transform:uppercase;margin-top:3px;white-space:nowrap}
.nav-links{display:flex;gap:2px;align-items:center}
.nav-item{position:relative}
.nav-trigger{display:flex;align-items:center;gap:6px;font-family:inherit;font-size:.84rem;color:rgba(245,247,250,.72);background:none;border:none;cursor:pointer;padding:8px 12px;border-radius:999px;transition:color .2s var(--ease),background .25s var(--ease)}
.nav-trigger svg{transition:transform .25s var(--ease);opacity:.7}
.nav-item:hover .nav-trigger,.nav-trigger[aria-expanded="true"]{color:var(--cream);background:rgba(255,255,255,.06)}
.nav-item:hover .nav-trigger svg{transform:rotate(180deg)}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){}

@media(min-width:1241px){}@media(min-width:1241px) and (prefers-reduced-motion:reduce){}










.nav-cta{display:flex;align-items:center;gap:14px}
.nav-tog{display:none;position:relative;width:40px;height:40px;padding:0;background:none;border:1px solid var(--hair);border-radius:9px;color:var(--cream);cursor:pointer}.nav-tog .bz{position:absolute;left:11px;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease),opacity .2s var(--ease)}.nav-tog .bz:nth-child(1){top:14px}.nav-tog .bz:nth-child(2){top:19px}.nav-tog .bz:nth-child(3){top:24px}.nav-tog[aria-expanded="true"] .bz:nth-child(1){transform:translateY(5px) rotate(45deg)}.nav-tog[aria-expanded="true"] .bz:nth-child(2){opacity:0}.nav-tog[aria-expanded="true"] .bz:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media(max-width:1240px){.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:rgba(6,11,20,.74);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);padding:18px var(--gut);gap:2px;border-bottom:1px solid var(--hair);box-shadow:0 24px 50px rgba(0,0,0,.5);max-height:82vh;overflow-y:auto}.nav-links.open{display:flex;animation:navDrop .28s var(--ease)}.nav-item{width:100%}.nav-trigger{width:100%;justify-content:space-between;font-size:1rem;padding:13px 10px;border-radius:10px}.nav-trigger svg{transition:transform .25s}.nav-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}.nav-tog{display:block}}
@media(max-width:1399px) and (min-width:1241px){.nav-trigger{padding:8px 9px;font-size:.84rem}.nav-cta .btn-p{padding:10px 16px}}
@media(min-width:1400px){.nav-in{max-width:1360px}}

/* ===== BOUTONS v2 — micro-interactions & a11y (2026-06-07) ===== */
.btn{position:relative;overflow:hidden;will-change:transform}
.btn:active{transform:translateY(0) scale(.985)!important;transition-duration:.08s}
.btn-g:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(90,167,240,.18);background:rgba(90,167,240,.15);border-color:var(--blue-l)}
.btn-p::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .55s var(--ease);pointer-events:none}
.btn-p:hover::after{left:130%}.btn:focus-visible,.nav-trigger:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px;border-radius:999px}










@media(max-width:1240px){}
.sec-next a{padding:10px 18px;border:1px solid transparent;border-radius:999px;transition:color .2s,border-color .25s var(--ease),background .25s var(--ease)}
.sec-next a:hover{border-color:rgba(217,168,79,.35);background:rgba(217,168,79,.05)}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-up,.reveal-blur,.hero-parallax{filter:none!important;transition:opacity .3s!important;transform:none!important}.btn,.btn-p::after{transition:none}.btn-g:hover,.btn:active{transform:none}.btn-p:hover::after{left:-80%}}


/* ===== NAV TOOLS v2 — souris & mouvement (2026-06-07) ===== */



.nav-cta .btn-p{transition:transform .18s var(--ease),box-shadow .25s var(--ease)}
.dot-pt{box-shadow:0 0 0 0 rgba(217,168,79,0);transition:all .3s var(--ease),box-shadow .35s var(--ease)}
#toTop svg.ring{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);transform:rotate(-90deg);pointer-events:none}
#toTop svg.ring circle{fill:none;stroke:var(--gold-l);stroke-width:2;stroke-linecap:round;stroke-dasharray:151;stroke-dashoffset:151;transition:stroke-dashoffset .15s linear;opacity:.85}
@media(prefers-reduced-motion:reduce){.nav-cta .btn-p{transition:none}}


/* ===== CARTES INTERACTIVES (2026-06-07) ===== */
#cadmap rect,#hubmap circle{cursor:pointer;transition:filter .2s var(--ease),stroke-width .2s}
#cadmap rect:hover{filter:brightness(1.6) drop-shadow(0 0 6px rgba(217,168,79,.5));stroke-width:1.8}
#hubmap circle:hover{filter:brightness(1.5) drop-shadow(0 0 8px rgba(217,168,79,.45))}
#maptip{position:fixed;z-index:90;max-width:260px;background:rgb(10,18,32);border:1px solid rgba(217,168,79,.4);border-radius:12px;padding:10px 14px;box-shadow:0 16px 40px rgba(0,0,0,.55);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .18s var(--ease),transform .18s var(--ease)}
#maptip.on{opacity:1;transform:none}
@media(hover:none){#maptip{display:none}#cadmap rect,#hubmap circle{cursor:default}}


/* ===== HERO CINÉMATIQUE + FLASH D'ANCRE (2026-06-07) ===== */
.hx-h1 .w{display:inline-block;opacity:0;transform:translateY(.45em);filter:blur(6px);animation:wordIn .7s var(--ease) forwards;animation-delay:calc(var(--wi)*55ms + 1.1s)}
@keyframes wordIn{to{opacity:1;transform:none;filter:blur(0)}}
section[id]:target{animation:arriveGlow 1.6s var(--ease) 1}
@keyframes arriveGlow{0%{box-shadow:inset 4px 0 0 0 var(--gold-l)}12%{box-shadow:inset 4px 0 0 0 var(--gold-l)}100%{box-shadow:inset 4px 0 0 0 rgba(217,168,79,0)}}
@media(prefers-reduced-motion:reduce){.hx-h1 .w{animation:none;opacity:1;transform:none;filter:none}section[id]:target{animation:none}}


/* ===== TEXTURE & PROFONDEUR (2026-06-07) ===== */
body::after{content:"";position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:95;opacity:.026;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grainShift 9s steps(6) infinite}
@keyframes grainShift{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
@media print{body::after{display:none}}
@media(prefers-reduced-motion:reduce){body::after{animation:none}}

#impact .sec-next a{color:rgba(245,247,250,.72)}#impact .sec-next a:hover{color:var(--blue-d)}#impact .sec-next a::after{color:var(--blue-d)}
@keyframes navDrop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* HERO */
.hero{padding:100px 0 28px;position:relative;overflow:hidden}
.hero-bg{position:absolute;left:0;right:0;top:-15%;height:130%;z-index:-1;background:radial-gradient(900px 600px at 78% 8%,rgba(46,134,222,.2),transparent 60%),radial-gradient(700px 500px at 12% 92%,rgba(180,83,9,.16),transparent 60%)}
.hero-photo{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(6,11,20,.9),rgba(6,11,20,.5) 46%,rgba(6,11,20,.06) 100%),linear-gradient(180deg,rgba(6,11,20,.04),rgba(6,11,20,.42));opacity:1}
.hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}
.hero h1{font-size:var(--ts-1,clamp(2.6rem,6vw,4.4rem));margin:16px 0 14px}h1,h2,h3,h4{text-wrap:balance}p,li,figcaption,blockquote,.lead2,dd{text-wrap:pretty}
.hero h1 em{font-style:normal;background:linear-gradient(110deg,var(--blue-l),var(--amber-l));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hstat{padding:20px;border-radius:var(--r);background:rgba(14,26,44,.7);border:1px solid var(--hair);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chain-flow{margin-left:auto;font-family:var(--fd);font-weight:700;color:var(--cstep);font-size:1.1rem;white-space:nowrap}

/* PÔLES / services */
.svc-head{max-width:760px;margin:0 auto 54px;text-align:center}.svc-head .kick{justify-content:center}.svc-head .kick::after{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--blue))}.svc-head h2{margin-inline:auto}.svc-head p{margin-inline:auto;max-width:68ch}.svc-head [class$="-grid"],.svc-head .voie-grid{text-align:left}
.svc-head h2{font-size:var(--ts-3,clamp(1.8rem,4vw,2.8rem))}
.svc-head h2 em{font-style:normal;color:var(--blue-l)}
.svc-head p{color:var(--muted);margin-top:14px;font-size:var(--ts-9,1.05rem)}
.div-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.divc{padding:30px 26px;border-radius:26px;background:linear-gradient(165deg,rgba(14,26,44,.85),rgba(9,16,28,.6));border:1px solid var(--hair);position:relative;overflow:hidden;transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.divc::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,var(--dc,rgba(90,167,240,.5)),transparent 45%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.divc:hover::before{opacity:.7}
/* ── Modernisation cartes inline (.card-m) ── */
.card-m{position:relative;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
.card-m::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(90,167,240,.45),transparent 50%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.card-m:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.32);border-color:rgba(90,167,240,.3)!important}
.card-m:hover::before{opacity:.6}
@media(prefers-reduced-motion:reduce){.card-m,.card-m::before{transition:none}.card-m:hover{transform:none}}
.divc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--dc);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.divc:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--dc) 45%,transparent)}
.divc:hover::before{transform:scaleX(1)}
.divc .dn{font-family:var(--fm);font-size:.7rem;letter-spacing:.1em;color:color-mix(in srgb,var(--dc),#fff 34%);margin-bottom:12px}
.divc .ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--dc) 15%,transparent);color:var(--dc);margin-bottom:18px}
.divc h3{font-size:var(--ts-8,clamp(1rem,1.8vw,1.25rem));margin-bottom:9px}
.divc p{font-size:.9rem;color:var(--muted);line-height:1.55}
.divc .stats{display:flex;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--hair)}
.divc .stats .v{font-family:var(--fd);font-weight:700;font-size:1.3rem;color:var(--dc);line-height:1}
.divc .stats .k{font-size:.72rem;color:var(--muted);margin-top:3px}

/* APPS */
.apps{background:linear-gradient(180deg,#060B14,#08111e 50%,#060B14)}
.app-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:34px 0 30px;border-bottom:1px solid var(--hair)}
.app-tab{font-family:var(--fm);font-size:.78rem;padding:12px 18px;background:none;border:none;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s var(--ease);white-space:nowrap}
.app-tab:hover{color:var(--cream)}
.app-tab.on{color:var(--blue-l);border-bottom-color:var(--blue)}
.app-panel{display:none;animation:fade .4s var(--ease)}
.app-panel.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.app-card{background:linear-gradient(165deg,rgba(14,26,44,.9),rgba(8,16,28,.7));border:1px solid var(--hair);border-radius:var(--rl);padding:34px;box-shadow:var(--shadow)}
.app-card h3{font-size:var(--ts-7,clamp(1.08rem,2.1vw,1.5rem));margin-bottom:6px}
.app-card .sub{color:var(--muted);font-size:.92rem;margin-bottom:26px}

/* chain throughput dashboard */
.thr-wrap{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.thr-bars{display:flex;flex-direction:column;gap:18px}
.thr-row .thr-top{display:flex;justify-content:space-between;margin-bottom:7px}
.thr-row .tn{font-weight:600;font-size:.92rem}
.thr-row .tv{font-family:var(--fm);color:var(--blue-l);font-size:.88rem}
.thr-row .bar{height:10px;border-radius:5px;background:rgba(255,255,255,.06);overflow:hidden}
.thr-row .bar i{display:block;height:100%;border-radius:5px;width:0;transition:width 1.1s var(--ease)}
.thr-note{margin-top:22px;padding:16px;border-radius:12px;background:rgba(46,134,222,.08);border:1px solid rgba(46,134,222,.2);font-size:.84rem;color:var(--blue-l)}
.thr-note strong{color:#fff;font-family:var(--fd)}
.gauge{text-align:center}
.gauge svg{width:240px;height:240px}
.gauge-c .big{font-family:var(--fd);font-weight:700;font-size:2.4rem;background:linear-gradient(120deg,#fff,var(--amber-l));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.gauge-c .lb{font-size:.74rem;color:var(--muted);font-family:var(--fm)}

/* refining calculator */
.ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.field-row{margin-bottom:22px}
.field-row label{display:block;font-size:.84rem;color:var(--muted);margin-bottom:9px;font-weight:600}
/* curseurs unifiés — piste à remplissage progressif + pouce lumineux */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:7px;border-radius:999px;outline:none;cursor:pointer;background:linear-gradient(90deg,var(--rng,#5AA7F0) var(--p,50%),rgba(255,255,255,.12) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--rng,#5AA7F0);border:2px solid #0B1422;cursor:pointer;box-shadow:0 0 0 4px rgba(255,255,255,.10),0 2px 6px rgba(0,0,0,.4);transition:transform .15s,box-shadow .15s}
input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}
input[type=range]:active::-webkit-slider-thumb{box-shadow:0 0 0 7px rgba(255,255,255,.14),0 2px 6px rgba(0,0,0,.4)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--rng,#5AA7F0);border:2px solid #0B1422;cursor:pointer;box-shadow:0 0 0 4px rgba(255,255,255,.10)}
input[type=range]::-moz-range-track{height:7px;border-radius:999px;background:transparent}
input[type=range]:focus-visible{outline:2px solid var(--blue-l);outline-offset:3px}
@media(prefers-reduced-motion:reduce){input[type=range]::-webkit-slider-thumb{transition:none}}
.field-val{font-family:var(--fd);font-weight:700;color:var(--blue-l);font-size:1.1rem}
.ref-out{display:flex;flex-direction:column;gap:12px}
.ref-prod{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--hair)}
.ref-prod .rp-bar{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden}
.ref-prod .rp-bar i{display:block;height:100%;border-radius:4px}
.ref-prod .rp-n{font-size:.88rem;font-weight:600;flex:0 0 130px}
.ref-prod .rp-v{font-family:var(--fm);font-size:.84rem;color:var(--blue-l);flex:0 0 auto;min-width:78px;text-align:right}
.ref-note{font-size:.76rem;color:var(--muted-d);line-height:1.5;border-top:1px solid var(--hair);padding-top:14px;margin-top:6px}

/* basin map */
.map-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:32px;align-items:start}
.map-stage{background:#08111e;border:1px solid var(--hair);border-radius:var(--r);padding:18px}
.map-stage svg{width:100%;height:auto;display:block}
.bzone{cursor:pointer;transition:opacity .25s}
.bzone:hover{opacity:.85}
.map-info .mi-k{font-family:var(--fm);font-size:.72rem;color:var(--blue-l);letter-spacing:.1em;text-transform:uppercase}.map-info h4{font-size:var(--ts-8,clamp(1rem,1.8vw,1.25rem));margin:6px 0}
.map-info .mi-d{font-size:.9rem;color:var(--muted);line-height:1.55}
.map-stat{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
.map-stat .ms .v{font-family:var(--fd);font-weight:700;font-size:1.5rem;color:var(--blue-l)}
.map-stat .ms .k{font-size:.74rem;color:var(--muted)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:.78rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:12px;height:12px;border-radius:3px}

/* B2B form */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fg{margin-bottom:4px}
.fg.full{grid-column:1/-1}
.fg label{display:block;font-size:.78rem;letter-spacing:.02em;color:var(--muted);margin-bottom:7px;font-weight:600;transition:color .2s}
.fg input,.fg select,.fg textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--hair);border-radius:12px;padding:13px 15px;color:var(--cream);font-family:var(--fb);font-size:.92rem;transition:border-color .2s,box-shadow .2s,background .2s}
.fg input::placeholder,.fg textarea::placeholder{color:#8595AB}
.fg input:hover,.fg select:hover,.fg textarea:hover{border-color:rgba(90,167,240,.4)}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--blue-l);box-shadow:0 0 0 3px rgba(90,167,240,.16);background:rgba(255,255,255,.06)}
.fg input:not(:placeholder-shown):not(:focus):invalid{border-color:rgba(239,107,107,.5)}
.fg textarea{resize:vertical;min-height:66px}
.fg select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%235AA7F0' stroke-width='2'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:40px}
.form-msg{margin-top:18px;padding:15px 16px 15px 18px;border-radius:12px;background:rgba(46,134,222,.12);border:1px solid rgba(46,134,222,.3);border-left:3px solid var(--blue-l);color:var(--blue-l);font-size:.9rem;display:none;line-height:1.55}
.form-msg.show{display:block;animation:fmIn .3s var(--ease)}@media(max-width:820px){}@media(max-width:600px){}
@keyframes fmIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.fg input,.fg select,.fg textarea,.fg label{transition:none}.form-msg.show{animation:none}}
.cp-card{display:flex;flex-direction:column;gap:7px;padding:22px 20px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid var(--hair);transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.cp-card:hover{background:rgba(255,255,255,.06);border-color:color-mix(in srgb,var(--ac) 45%,transparent);transform:translateY(-3px)}
.cp-card strong{font-family:var(--fd);font-size:1rem;color:#fff;font-weight:600}
.cp-card span{font-size:.84rem;color:var(--muted);line-height:1.5}
.cp-card em{font-style:normal;font-size:.8rem;font-weight:600;color:var(--ac);margin-top:auto;padding-top:6px}
.buy-n{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--fd);font-weight:700;font-size:.84rem;color:var(--navy);background:var(--bn,#1E7A55);line-height:1}
.flagship{margin-top:18px;display:grid;grid-template-columns:1.5fr 1fr;gap:0;border-radius:var(--rl);overflow:hidden;border:1px solid var(--hair);background:linear-gradient(135deg,#0c1726,#0a1422)}
.flagship .fl-l{padding:34px}
.flagship .fl-tag{font-family:var(--fm);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-l)}
.flagship h3{font-size:var(--ts-6,clamp(1.2rem,2.5vw,1.8rem));margin:8px 0 12px;background:linear-gradient(110deg,#fff,var(--blue-l));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.flagship .fl-l>p{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:20px}
.fl-feats{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}
.fl-feats span{font-size:.8rem;color:var(--cream);background:rgba(255,255,255,.04);border:1px solid var(--hair);padding:8px 13px;border-radius:999px}
.fl-cta{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-d));padding:12px 20px;border-radius:999px;transition:transform .2s}
.fl-cta:hover{transform:translateX(3px)}
.flagship .fl-r{padding:34px;background:rgba(46,134,222,.06);border-left:1px solid var(--hair);display:grid;grid-template-columns:1fr 1fr;gap:22px;align-content:center}
.fl-stat .v{font-family:var(--fd);font-weight:700;font-size:1.5rem;color:var(--blue-l);line-height:1}
.fl-stat .k{font-size:.74rem;color:var(--muted);margin-top:5px}
.enerclub{margin-top:18px;padding:28px;border-radius:var(--rl);background:linear-gradient(165deg,rgba(14,26,44,.85),rgba(9,16,28,.6));border:1px solid var(--hair)}
.ec-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.ec-tag{font-family:var(--fd);font-weight:700;font-size:1.15rem}
.ec-rule{font-family:var(--fm);font-size:.8rem;color:var(--blue-l)}
.ec-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ec-tier{padding:20px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--hair);border-top:3px solid var(--tc)}
.ec-tier.bronze{--tc:#B0764A}.ec-tier.argent{--tc:#AFB8C2}.ec-tier.or{--tc:#E8C36A}
.ec-tier .ec-n{font-family:var(--fd);font-weight:700;font-size:1.1rem;color:var(--tc)}
.ec-tier .ec-r{font-family:var(--fm);font-size:.84rem;color:var(--cream);margin:6px 0}
.ec-tier .ec-b{font-size:.84rem;color:var(--muted);line-height:1.45}

/* SITES */
.sites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.site{border-radius:var(--rl);border:1px solid var(--hair);background:linear-gradient(165deg,rgba(14,26,44,.85),rgba(9,16,28,.6));padding:26px;transition:transform .35s var(--ease),border-color .35s var(--ease)}
.site:hover{transform:translateY(-5px);border-color:rgba(46,134,222,.4)}
.site .st-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.site .st-stat{font-family:var(--fm);font-size:0.6875rem;padding:5px 10px;border-radius:999px}
.site .st-stat.live{background:rgba(46,134,222,.15);color:var(--blue-l)}
.site .st-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue-l)}.site h4{font-size:var(--ts-9,1.05rem);margin-bottom:5px}
.site .st-loc{font-family:var(--fm);font-size:.72rem;color:var(--muted);margin-bottom:12px}
.site p{font-size:.84rem;color:var(--muted);line-height:1.5}
.site .st-key{display:flex;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--hair)}
.site .st-key .v{font-family:var(--fd);font-weight:700;font-size:1.15rem;color:var(--blue-l);line-height:1}
.site .st-key .k{font-size:0.6875rem;color:var(--muted);margin-top:3px}

/* ESG */
.esg{background:var(--cream);color:var(--ink)}
.esg h2{color:var(--ink)}
.esg h2 em{font-style:normal;color:var(--blue-d)}
.esg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}
.esg-card{padding:26px;border-radius:var(--r);background:#fff;border:1px solid var(--hair-d);box-shadow:0 8px 30px rgba(11,20,34,.05)}
.esg-card .v{font-family:var(--fd);font-weight:700;font-size:2.1rem;color:var(--blue-d);line-height:1}
.esg-card .k{font-size:.84rem;color:var(--muted-d);margin-top:8px;line-height:1.4}

/* CTA */
.cta{text-align:center;background:linear-gradient(135deg,#060B14,#0c2036)}
.cta h2{font-size:var(--ts-3,clamp(1.8rem,4vw,2.8rem));max-width:20ch;margin:14px auto 16px}
.cta h2 em{font-style:normal;color:var(--blue-l)}
.cta p{color:rgba(245,247,250,.7);max-width:52ch;margin:0 auto 28px}
.cta .acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* FOOTER */
footer{background:#050a12;background:linear-gradient(180deg,rgba(5,10,18,.8),rgba(5,10,18,.93) 60%,rgba(5,10,18,.97));border-top:1px solid color-mix(in srgb,var(--gold-l,#F0CE82) 22%,var(--hair));padding:54px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.7fr 1.3fr 1fr 1.2fr;gap:32px}.foot-poles{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.foot-brand .brand{margin-bottom:16px}
.foot-desc{color:var(--muted);font-size:.88rem;line-height:1.6;max-width:34ch}
.foot-col h3{font-family:var(--fm);font-size:var(--ts-l,.75rem);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.foot-col a{display:block;width:fit-content;font-size:.88rem;color:rgba(245,247,250,.72);margin-bottom:11px;transition:color .2s;position:relative}.foot-col a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--blue-l);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.foot-col a:hover{color:var(--blue-l)}.foot-col a:hover::after{transform:scaleX(1)}.foot-col a.foot-pole{display:flex;align-items:center;gap:9px}.foot-col a.foot-pole::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pc,var(--gold-l));flex:none;opacity:.9;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.foot-col a.foot-pole::after{background:var(--pc,var(--blue-l))}.foot-col a.foot-pole:hover{color:var(--pc,var(--blue-l))}.foot-col a.foot-pole:hover::before{transform:scale(1.3);box-shadow:0 0 0 3px color-mix(in srgb,var(--pc,var(--gold-l)) 22%,transparent)}@media(prefers-reduced-motion:reduce){.foot-col a::after{display:none}}
.foot-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:40px;padding-top:24px;border-top:1px solid var(--hair);font-size:.78rem;color:var(--muted)}

@media(max-width:900px){
  .hero{padding:96px 0 36px}
  .hero-in{grid-template-columns:1fr;gap:32px}
  .div-grid{grid-template-columns:1fr}
  .thr-wrap,.ref-grid,.map-grid,.form-grid,.sites-grid{grid-template-columns:1fr}
  .sites-grid{grid-template-columns:1fr 1fr}
  .esg-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .prix-grid{grid-template-columns:1fr 1fr!important}
  .tier1-grid,.tier3-grid{grid-template-columns:1fr}
  .tier2-grid{grid-template-columns:1fr 1fr}
  .comm-grid{grid-template-columns:1fr}
  .ofs4-grid{grid-template-columns:1fr}
  .tech-now-grid{grid-template-columns:1fr 1fr}
  .tech-future-grid{grid-template-columns:1fr 1fr}
  .flagship{grid-template-columns:1fr}
  .flagship .fl-r{border-left:none;border-top:1px solid var(--hair)}
  .ec-tiers{grid-template-columns:1fr}
}
@media(max-width:560px){
  .hero{padding:96px 0 36px}
  .sites-grid,.esg-grid,.foot-grid{grid-template-columns:1fr}
  .app-card{padding:22px}
  .tier1-grid,.tier2-grid,.tier3-grid{grid-template-columns:1fr}
  .tech-now-grid,.tech-future-grid{grid-template-columns:1fr}
  .dash-kpi,.dash-stations{grid-template-columns:1fr 1fr!important}
  .flotte-grid{grid-template-columns:1fr!important}
  .nextgen-grid{grid-template-columns:1fr!important}
  .reg-grid,.diff-grid{grid-template-columns:1fr!important}
  .dist-flow{grid-template-columns:1fr!important}
  .dist-step{margin-right:0!important;margin-bottom:30px!important}
  .dist-step .dist-arrow{right:auto!important;left:50%!important;top:auto!important;bottom:-24px!important;transform:translateX(-50%) rotate(90deg)!important}
  .dist-proof{grid-template-columns:1fr!important}
  .map-grid{grid-template-columns:1fr!important}
  .compare-grid{font-size:.92em}
  .chain-flow{font-size:.95rem}.ep-models,.ms-usecases,.prod-synth,.modref-grid,.client-grid,.tech-grid,.prod-b2b,.truck-grid,.carbon-grid,.regime-grid,.rd-axes,.chain-grid,.fin-grid,.appfeat-grid,.maint-grid,.taskforce-grid,.htech-grid,.buy-grid,.univ-grid,.hub-grid,.recomp-grid,.welltype-grid,.bit-grid,.viz-grid,.vc-grid,.gt-grid{grid-template-columns:1fr!important}
  .market-flow{grid-template-columns:1fr!important}
  .market-flow .mf-arrow{transform:rotate(90deg)}
  /* bandeaux images : plus compacts sur mobile */
  .img-banner{height:200px!important}
  .img-banner > div:last-child{padding:18px 20px!important}
  .img-banner > div:last-child > div:last-child{font-size:1.1rem!important}
}
@media(max-width:920px){.atlas-grid{grid-template-columns:repeat(2,1fr)!important}.eor-grid{grid-template-columns:1fr!important}.eor-econ{grid-template-columns:1fr!important}.val-levers{grid-template-columns:1fr!important}.fam-grid{grid-template-columns:repeat(2,1fr)!important}.fil-grid{grid-template-columns:1fr!important}.road-grid{grid-template-columns:repeat(2,1fr)!important}.scada-grid{grid-template-columns:repeat(2,1fr)!important}.scada-stations{grid-template-columns:repeat(2,1fr)!important}.scada-integrity{grid-template-columns:1fr!important}}
@media(max-width:600px){.fam-grid{grid-template-columns:1fr!important}.road-grid{grid-template-columns:1fr!important}.eorchem-grid{grid-template-columns:1fr!important}.scada-grid{grid-template-columns:1fr!important}.scada-stations{grid-template-columns:1fr!important}}
@media(max-width:600px){.atlas-grid{grid-template-columns:1fr!important}.atlas-timeline > div{grid-template-columns:64px 1fr!important;gap:12px!important}.stoiip-wrap{grid-template-columns:1fr!important}}
@media(max-width:980px){.ms-usecases{grid-template-columns:repeat(3,1fr)!important}.client-grid{grid-template-columns:repeat(3,1fr)!important}.ms-services{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:680px){.client-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:840px){.vm-grid{grid-template-columns:1fr!important}.vm-values{grid-template-columns:1fr!important}.expand-grid{grid-template-columns:1fr!important}.pipe-ops{grid-template-columns:1fr!important}}
@media(max-width:900px){.lc-grid{grid-template-columns:1fr 1fr!important}.esg3-grid{grid-template-columns:1fr!important}.prod-b2b{grid-template-columns:1fr 1fr!important}.truck-grid{grid-template-columns:1fr 1fr!important}.carbon-grid{grid-template-columns:1fr 1fr!important}.rd-axes{grid-template-columns:1fr 1fr!important}.chain-grid{grid-template-columns:1fr 1fr!important}.maint-grid{grid-template-columns:1fr 1fr!important}.taskforce-grid{grid-template-columns:1fr 1fr!important}.htech-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:520px){.lc-grid{grid-template-columns:1fr!important}.tt-grid{grid-template-columns:1fr!important}.tt-train{grid-template-columns:1fr!important}}
@media(max-width:860px){.tt-train{grid-template-columns:1fr 1fr!important}}

@media(max-width:760px){.reseau-stats{grid-template-columns:1fr 1fr!important}.ms-usecases{grid-template-columns:1fr 1fr!important}.ms-services{grid-template-columns:1fr!important}.ep-models{grid-template-columns:1fr 1fr!important}.prod-synth{grid-template-columns:1fr 1fr!important}.tech-grid{grid-template-columns:1fr 1fr!important}.modref-grid{grid-template-columns:1fr 1fr!important}.recomp-grid{grid-template-columns:1fr 1fr!important}.welltype-grid{grid-template-columns:1fr 1fr!important}.advisory-grid{grid-template-columns:1fr 1fr!important}}
.prod-grid{grid-template-columns:repeat(4,1fr)}
/* Ch316 — quatre colonnes ne sont lisibles que si elles sont larges : sous 1320 px les intitules longs (containerisee, Petrochemicals) etaient rognes par la carte. */@media(max-width:1319px){.prod-grid{grid-template-columns:1fr 1fr}}.div-grid :is(h2,h3,h4,p),.prod-grid :is(h2,h3,h4,p){overflow-wrap:break-word}
@media(max-width:560px){.prod-grid{grid-template-columns:1fr}.prod-b2b{grid-template-columns:1fr!important}}

/* ===================================================== */
/* MODERNISATION MOBILE — bloc consolidé                 */
/* ===================================================== */
/* Tablette : toute grille inline 4-5 colonnes -> 2 colonnes (rattrape les grilles sans classe) */
@media(max-width:900px){
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:1fr 1fr!important}
  [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:1fr 1fr!important}
}
/* Mobile : toute grille inline -> 1 colonne, sans exception */
@media(max-width:600px){
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr!important}
}
/* Confort de lecture et ergonomie tactile sur petit écran */
@media(max-width:600px){
  :root{--gut:18px}
  section,header.hero{padding-left:0;padding-right:0}
  .wrap{padding-left:18px;padding-right:18px}
  /* titres fluides un cran plus compacts */
  .hero h1{font-size:var(--ts-3,clamp(1.8rem,4vw,2.8rem));line-height:1.08}
  h2{font-size:var(--ts-5,clamp(1.35rem,2.9vw,2.1rem))!important}
  
  /* cibles tactiles : boutons et liens nav pleinement cliquables */
  .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;width:100%}
  /* la nav garde un bouton compact, pas pleine largeur */
  .nav-cta .btn-p{width:auto;min-height:42px;padding:9px 16px;font-size:.9rem;white-space:nowrap}
  .nav-cta{gap:10px}
  /* cartes : padding et rayons adoucis, plein largeur */
  .divc,.card-m,.site,.glow-card{padding:20px 18px!important}
  /* éviter tout débordement horizontal */
  img,svg,.img-banner{max-width:100%}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* bandeaux flex (référentiels, principes) : empilage propre */
  .reveal[style*="display:flex"][style*="gap:22px"]{gap:12px!important}
}
/* Très petit écran : compacter encore les stats hero */
@media(max-width:380px){
}
/* Sécurité : empêcher le scroll horizontal global sur mobile */
@media(max-width:900px){html,body{overflow-x:clip;max-width:100vw}}

@media print{
  *{-webkit-text-fill-color:#111!important;background-clip:border-box!important;-webkit-background-clip:border-box!important;background:#fff!important;color:#111!important;box-shadow:none!important;text-shadow:none!important}header,#oilticker,#dotnav,#cmdk,.nav-tog,.nav-search,#preloader,.field,video,.btn,.cp-card em,#nlSubmit{display:none!important}
  main{padding:0!important}
  section{padding:18px 0!important;page-break-inside:avoid;border:none!important;background:#fff!important}
  h1,h2,h3,h4{color:#0B1422!important;page-break-after:avoid}
  a{color:#1B3A6B!important;text-decoration:underline}
  a[href^="#"]{text-decoration:none}
  img,svg{max-width:100%!important}
  .kick{color:#9A6E1A!important}
  .wrap{max-width:100%!important;padding:0 18px!important}
  @page{margin:1.4cm}
}
.logo-img{background:var(--logo) center/contain no-repeat;display:block;width:100%;height:100%;filter:drop-shadow(0 3px 8px rgba(0,0,0,.42))}@keyframes heroSheen{0%{transform:translateX(-40%) skewX(-12deg);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateX(140%) skewX(-12deg);opacity:0}}@keyframes plAssemble{0%{transform:scale(.5) rotate(-150deg);opacity:0;filter:blur(6px)}55%{opacity:1;filter:blur(0)}100%{transform:scale(1) rotate(0);opacity:1}}@keyframes plRing{0%{transform:rotate(0);opacity:0}12%{opacity:1}90%{opacity:1}100%{transform:rotate(370deg);opacity:0}}#aurora::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(232,195,106,.08) 50%,transparent 58%);will-change:transform,opacity;animation:heroSheen 13s ease-in-out infinite}.pl-logo{position:relative;animation:plAssemble 1.05s var(--ease) both,plPulse 2.6s var(--ease) 1.15s infinite}.pl-logo::after{content:"";position:absolute;inset:-7px;border-radius:27px;background:conic-gradient(from 0deg,transparent 0deg,rgba(232,195,106,.95) 48deg,rgba(90,167,240,.5) 96deg,transparent 150deg);-webkit-mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));animation:plRing 1.15s var(--ease) .1s both;pointer-events:none}@media(prefers-reduced-motion:reduce){#aurora::after{animation:none;opacity:0}.pl-logo{animation:none}.pl-logo::after{animation:none;opacity:0}}
html{color-scheme:dark}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}@media(prefers-contrast:more){:root{--muted:#C7D2E4}body{color:#F5F7FA}.kick{color:var(--gold-xl,#F0CE82)!important}}.pmk{font-size:max(.62em,0.6875rem);font-weight:600;color:rgba(245,247,250,.72);letter-spacing:.02em;white-space:nowrap}
/* ── tuiles pôles · badge sans coupe ── */
.plc-badge{max-width:100%;letter-spacing:.05em!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plc-card .plc-arr{transform:none}.plc-card:hover .plc-arr{transform:translateX(5px)}.plc-card[data-plc] .plc-arr{transform:rotate(90deg)}.plc-card[data-plc]:hover .plc-arr{transform:rotate(90deg) translateX(4px)}

/* iOS safe-area : la barre fixe se decale sous l'encoche / Dynamic Island. No-op sur les appareils sans zone sure. */
@supports(top:env(safe-area-inset-top)){.nav:not(#_){padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
/* == x_b25c8f26c7de.css == */
:root{--fd:'Space Grotesk','Inter',system-ui,-apple-system,sans-serif;--fb:'Inter',system-ui,-apple-system,sans-serif}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{letter-spacing:-.003em}
h1,h2,h3,h4{letter-spacing:-.022em}
.hero h1{letter-spacing:-.038em!important}
:focus-visible{outline:2px solid var(--blue-l,#5AA7F0);outline-offset:3px;border-radius:8px}
#toTop{position:fixed;right:22px;bottom:22px;width:52px;height:52px;border-radius:50%;border:1px solid var(--hair,rgba(120,180,250,.16));background:rgba(14,26,44,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#F5F7FA;cursor:pointer;display:grid;place-items:center;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .35s,transform .35s,box-shadow .35s;z-index:48;padding:0}
#toTop.show{opacity:1;transform:none}#toTop:hover{box-shadow:0 12px 30px -8px rgba(46,134,222,.5)}
#toTop .ttr{position:absolute;inset:0;width:52px;height:52px;transform:rotate(-90deg)}
#toTop .ttt{stroke:rgba(255,255,255,.1);stroke-width:2.5;fill:none}#toTop .ttp{stroke:#E8C36A;stroke-width:2.5;fill:none;stroke-linecap:round;transition:stroke-dashoffset .12s linear}
@media(max-width:640px){#toTop{width:46px;height:46px;right:16px;bottom:16px}#toTop .ttr{width:46px;height:46px}}

/* iOS safe-area : les commandes flottantes remontent au-dessus de l'indicateur d'accueil et s'ecartent des bords arrondis. No-op sur les appareils sans zone sure. */
@supports(bottom:env(safe-area-inset-bottom)){#toTop:not(#_){margin-bottom:env(safe-area-inset-bottom);margin-right:env(safe-area-inset-right)}}
/* == c_eda8729082dd.css == */
/* Polices reelles (01/08/2026) : les fichiers -latin-ext d'origine etaient la tranche U+0100+ SEULE (aucune minuscule ascii, aucun accent) - 115 KB morts, tout le texte tombait en police systeme glyphe par glyphe. Tranches latin + latin-ext sous-ensemblees aux caracteres du site (fontsource variable). */
@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/NationalPark-Regular-latin.woff2') format('woff2');font-weight:300 499;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/NationalPark-Bold-latin.woff2') format('woff2');font-weight:500 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/NationalPark-Regular-latin-ext.woff2') format('woff2');font-weight:300 499;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Space Grotesk';src:url('/assets/fonts/NationalPark-Bold-latin-ext.woff2') format('woff2');font-weight:500 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';src:url('/assets/fonts/Inter-latin.woff2') format('woff2');font-weight:400 700;font-display:optional;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';src:url('/assets/fonts/Inter-latin-ext.woff2') format('woff2');font-weight:400 700;font-display:optional;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* == x_d77a62f34662.css == */
/* ── Finitions ultra-premium · vague 2 (transverses) ── */
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}.stats .v,.big,[class^="kpi"],[class*=" kpi"]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
::selection{background:rgba(232,195,106,.30);color:#fff}
::-moz-selection{background:rgba(232,195,106,.30);color:#fff}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--gold-l,#E8C36A);outline-offset:3px;border-radius:6px}
/* ── Vague 1 · intertitres d'acte (dramaturgie investisseur) ── */
.act-band{display:flex;align-items:center;gap:clamp(14px,2vw,26px);padding:clamp(40px,6vw,74px) 0 clamp(4px,1.2vw,14px)}
.act-band .act-no{font-family:var(--fm);font-size:.8rem;font-weight:600;letter-spacing:.32em;color:var(--gold-l);white-space:nowrap;text-transform:uppercase}
.act-band .act-ti{font-family:var(--fd);font-weight:700;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.012em;color:#fff;white-space:nowrap;text-wrap:balance}
.act-band .act-rule{flex:1;height:1px;background:linear-gradient(90deg,rgba(232,195,106,.55),rgba(232,195,106,.06) 72%,transparent);min-width:36px}
@media(max-width:640px){.act-band{flex-wrap:wrap;gap:8px}.act-band .act-ti{white-space:normal}.act-band .act-rule{flex-basis:100%;order:3}}
/* ── Vague 4 · charte dataviz unifiée (valeurs live tabulaires) ── */
[id^="sc-"],[id^="kpi-"],#dash-pulse{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.divc,.card-m{box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 34px -16px rgba(0,0,0,.6)}
html::before{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.divc,.card-m{transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}.divc:hover,.card-m:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 24px 50px -18px rgba(0,0,0,.72)}
@media(prefers-reduced-motion:reduce){.divc,.card-m{transition:none}.divc:hover,.card-m:hover{transform:none}}.card-m,.divc,.dx-card{border-radius:18px;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1),border-color .35s var(--ease)}
.card-m{--tile-accent:var(--pac,#5AA7F0)}
.card-m::before{background:linear-gradient(135deg,color-mix(in srgb,var(--tile-accent) 58%,transparent),transparent 52%)!important}
.card-m::after{content:"";position:absolute;left:16px;right:16px;top:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tile-accent) 55%,rgba(255,255,255,.6)),transparent);opacity:0;transition:opacity .45s var(--ease);pointer-events:none}
.card-m:hover{transform:translateY(-6px)!important;border-color:color-mix(in srgb,var(--tile-accent) 48%,var(--hair))!important;box-shadow:0 24px 52px -20px color-mix(in srgb,var(--tile-accent) 32%,#000),0 8px 20px -14px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07)!important}
.card-m:hover::after{opacity:.95}
.card-m:hover::before{opacity:.75!important}
@media(prefers-reduced-motion:reduce){.card-m,.divc,.dx-card{transition:none}.card-m::after{transition:none}}
/* ── Hero · modernisation (Ken-Burns léger + progression des puces) ── */
.hx-slide{transform:translateY(14px) scale(.985)}
.hx-slide.on{transform:none}
.hx-dots button{position:relative;overflow:hidden}
.hx-dots button[aria-selected="true"]::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.42);transform:scaleX(0);transform-origin:left;animation:hxDotFill 7s linear}
@keyframes hxDotFill{to{transform:scaleX(1)}}
.hero:hover .hx-dots button[aria-selected="true"]::after,.hero:focus-within .hx-dots button[aria-selected="true"]::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.hx-slide{transform:none}.hx-dots button[aria-selected="true"]::after{display:block;animation:hxDotFill 7s linear}.hero:hover .hx-dots button[aria-selected="true"]::after,.hero:focus-within .hx-dots button[aria-selected="true"]::after{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.hx-dots button[aria-selected="true"]::after{display:none}}}
/* == c_13c9c868a10d.css == */
/* Hero image plein fond : grille 1 colonne, texte au-dessus du voile */
.hero-in{position:relative;z-index:2}
.hx-grid{grid-template-columns:1fr!important}
.hx-grid>div{max-width:680px}

/* ===== Hero : diaporama photos du Tchad (carte déplacée vers lAtlas) ===== */
.hx-shots{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0B1422}.hx-shot{position:absolute;inset:0;opacity:0;background-size:cover;background-position:center;animation:hxShot 54s cubic-bezier(.4,0,.2,1) infinite;animation-delay:calc(var(--i)*6s)}
.hx-shot::after{content:attr(data-cap);position:absolute;right:24px;bottom:24px;font-family:var(--fm);font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);text-shadow:0 1px 8px rgba(0,0,0,.8)}
.hx-shot:nth-child(1){background-image:linear-gradient(145deg,#7a5e23,#3c2d12 58%,#0b1422);background-size:cover;background-position:center}
.hx-shot:nth-child(2){background-image:linear-gradient(145deg,#864f25,#3a2414 58%,#0b1422);background-size:cover;background-position:center}
.hx-shot:nth-child(3){background-image:linear-gradient(145deg,#1f5081,#16335c 58%,#0b1422);background-size:cover;background-position:center}
.hx-shot:nth-child(4){background-image:linear-gradient(145deg,#1d6342,#123a2a 58%,#0b1422);background-size:cover;background-position:center}.hx-shot:nth-child(5){background-image:linear-gradient(145deg,#5a2d3a,#2a1620 58%,#0b1422);background-size:cover;background-position:center}.hx-shot:nth-child(6){background-image:linear-gradient(145deg,#1d5a5a,#103030 58%,#0b1422);background-size:cover;background-position:center}.hx-shot:nth-child(7){background-image:linear-gradient(145deg,#9a7b3a,#4a3617 58%,#0b1422);background-size:cover;background-position:center}.hx-shot:nth-child(8){background-image:linear-gradient(145deg,#8a8467,#3a3826 58%,#0b1422);background-size:cover;background-position:center}.hx-shot:nth-child(9){background-image:linear-gradient(145deg,#7a5230,#3a2615 58%,#0b1422);background-size:cover;background-position:center}
@keyframes hxShot{0%{opacity:0}1.35%{opacity:1}9.7%{opacity:1}11.3%{opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.hx-shot{animation:none}.hx-shot:nth-child(1){opacity:1}}
@media(max-width:920px){.hx-shots{max-width:440px;aspect-ratio:5/4}}

/* — Hero : kicker en badge pill + dot lumineux — */
@media(max-width:640px){.hx-kick{width:auto;max-width:100%;display:inline-block;white-space:normal;line-height:1.5}.hx-grid>div{min-width:0}}.hx-kick{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:6px 14px;border:1px solid rgba(217,168,79,.32);border-radius:999px;background:rgba(217,168,79,.07);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin-bottom:14px}
.hx-kick::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold-l);box-shadow:0 0 9px 1px var(--gold-l);animation:hxKickPulse 2.6s ease-in-out infinite}
@keyframes hxKickPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.78)}}
/* — Hero : strip de stats en chips arrondies premium — */
.hx-strip{display:grid!important;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid var(--hair);padding-top:16px!important;margin-top:18px!important;line-height:1.2!important}
.hx-stat{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px 15px 12px 18px;border:1px solid var(--hair);border-radius:14px;background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(255,255,255,.012));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;transition:border-color .28s var(--ease),transform .28s var(--ease),box-shadow .28s var(--ease)}
.hx-stat::before{content:"";position:absolute;left:0;top:16%;bottom:16%;width:3px;border-radius:0 3px 3px 0;background:var(--sac,var(--blue-l));box-shadow:0 0 10px -1px var(--sac,var(--blue-l))}
.hx-stat:nth-child(1){--sac:var(--blue-l)}
.hx-stat:nth-child(2){--sac:#34D399}
.hx-stat:nth-child(3){--sac:var(--inter-l,#7E8AD9)}
.hx-stat:nth-child(4){--sac:var(--gold-l)}
.hx-stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--sac) 48%,var(--hair));box-shadow:0 18px 36px -24px color-mix(in srgb,var(--sac) 65%,transparent)}
.hx-stat b{font-family:var(--fd);font-size:clamp(1.15rem,1.5vw,1.42rem);font-weight:700;color:#fff;letter-spacing:-.015em;line-height:1}
.hx-stat i{font-style:normal;font-family:var(--fm);font-size:0.6875rem;letter-spacing:.07em;text-transform:uppercase;color:rgba(245,247,250,.62);line-height:1.3;overflow-wrap:anywhere}
.hx-stat-amb b{color:var(--gold-l)}
.hx-stat-amb i{color:rgba(232,195,106,.74)}
@media(max-width:680px){.hx-strip{grid-template-columns:repeat(2,1fr)}}
/* — Tuiles des 8 pôles : ultra-premium, bien arrondies, halo + sheen — */
.pole-grid a{border-radius:24px!important;position:relative;overflow:hidden;isolation:isolate;transition:transform .3s var(--ease,cubic-bezier(.22,1,.36,1)),border-color .3s,box-shadow .3s!important}
.pole-grid a::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(255,255,255,.22),transparent 42%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.65;pointer-events:none;z-index:1}
.pole-grid a::after{content:"";position:absolute;top:-40%;left:0;width:55%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transform:skewX(-18deg) translateX(-160%);transition:transform .8s var(--ease,ease);pointer-events:none;z-index:0}
.pole-grid a:hover{transform:translateY(-5px);box-shadow:0 20px 52px rgba(0,0,0,.42)}
.pole-grid a:hover::after{transform:skewX(-18deg) translateX(360%)}
@media (prefers-reduced-motion:reduce){.pole-grid a,.pole-grid a::after,.hx-kick::before{transition:none!important;animation:none!important}}
/* — Hero : plafonner la carte cadastre pour éviter le débordement vertical — */
@media (min-width:921px){
  .hx-map{align-self:center}
  .hx-map svg{max-height:min(72vh,640px)!important;height:auto}
}
/* ===== Hero : cross-fade resserré (pas de double texte lisible) + centrage vertical ===== */
.hx-slide{display:flex;flex-direction:column;justify-content:center;transition:opacity .3s var(--ease),transform .55s var(--ease),visibility .55s!important}
.hx-slide.on{transition:opacity .55s var(--ease) .22s,transform .55s var(--ease),visibility .55s!important}
@media (prefers-reduced-motion:reduce){.hx-slide,.hx-slide.on{transition:opacity .2s!important}}
/* ===== Barre de navigation — ultra-premium, ajustée ===== */
/* Barre au repos : verre net, hairline subtile */
.nav{background:linear-gradient(180deg,rgba(6,11,20,.62),rgba(6,11,20,.12))!important;-webkit-backdrop-filter:blur(14px) saturate(140%)!important;backdrop-filter:blur(14px) saturate(140%)!important;}
.nav-in{padding-top:12px!important;padding-bottom:12px!important;gap:18px}
/* Barre défilée : plus dense, ombre douce, double hairline dégradée */
.nav.scrolled{background:rgba(8,13,24,.78)!important;-webkit-backdrop-filter:blur(20px) saturate(160%)!important;backdrop-filter:blur(20px) saturate(160%)!important;border-bottom-color:transparent!important;box-shadow:0 10px 34px rgba(0,0,0,.34)!important}
.nav.scrolled::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(217,168,79,.45),rgba(90,167,240,.45),transparent);opacity:.8;pointer-events:none}
.nav{position:fixed}
/* Onglets : pill au survol (lisible), chevron animé conservé */
.nav-trigger{border-radius:999px!important;letter-spacing:.005em}
.nav-trigger:hover{color:var(--cream)!important;background:rgba(255,255,255,.07)!important}

.nav-trigger[aria-expanded="true"]{background:rgba(255,255,255,.09)!important}
.nav-trigger.is-active{color:var(--ink,#F5F7FA)!important;background:linear-gradient(180deg,rgba(217,168,79,.18),rgba(217,168,79,.07))!important;box-shadow:inset 0 0 0 1px rgba(217,168,79,.3)}
/* Contrôles utilitaires (Version claire / EN / ⌘K) : système de pills unifié */
.nav-cta{gap:10px!important}.nav-cta .nav-search{border-radius:999px!important;border:1px solid rgba(245,247,250,.16)!important;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015))!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:border-color .22s var(--ease),background .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease)!important}.nav-cta .nav-search{width:40px!important;height:40px!important;padding:0!important;flex:0 0 auto!important;border-radius:999px!important}.nav-cta .nav-search:hover{border-color:rgba(217,168,79,.55)!important;background:linear-gradient(160deg,rgba(217,168,79,.14),rgba(255,255,255,.02))!important;color:var(--gold-l)!important;transform:translateY(-1px);box-shadow:0 7px 20px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06)}
/* CTA principal : pill premium aligné */
.nav-cta .btn-p{border-radius:999px!important;height:40px;padding:0 20px!important;box-shadow:0 8px 22px rgba(46,134,222,.32)}
.nav-cta .btn-p:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(46,134,222,.45)}
/* Marque : marque visuelle un peu plus compacte et alignée → barre plus svelte */
.brand{gap:12px!important}
.brand-mk{width:46px!important;height:46px!important;border-radius:13px!important;padding:6px!important}
.brand-tx{font-size:1.08rem!important}
@media (prefers-reduced-motion:reduce){.nav-cta .nav-search,.nav-cta .btn-p{transition:none!important}}

/* iOS safe-area : la barre fixe se decale sous l'encoche / Dynamic Island. No-op sur les appareils sans zone sure. */
@supports(top:env(safe-area-inset-top)){.nav:not(#_){padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
/* == x_b482d25684cf.css == */
.fp-sec{padding:clamp(48px,7vw,100px) 0;background:linear-gradient(180deg,#0b1422,#0e1a2c)}.fp-sec .kick{color:#7BC47F}.fp-lead{color:#c2ccda;font-size:1.04rem;line-height:1.6;max-width:62ch;margin-top:14px}.fp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:18px;margin-top:34px}.fp-card{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;background:#16233a 50%/cover no-repeat;box-shadow:0 8px 30px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.06);transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s}.fp-card:hover{transform:translateY(-6px);box-shadow:0 18px 52px rgba(0,0,0,.5)}.fp-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,14,26,0) 36%,rgba(8,14,26,.9))}.fp-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 16px 18px;z-index:2}.fp-cap b{display:block;color:#fff;font-size:1.01rem;letter-spacing:.2px}.fp-cap i{display:block;color:#cdd6e4;font-size:.81rem;font-style:italic;margin-top:2px}.fp-badge{display:inline-block;margin-top:9px;font-size:0.6875rem;font-weight:700;letter-spacing:.7px;padding:3px 9px;border-radius:999px;background:rgba(123,196,127,.16);color:#aee0b0;border:1px solid rgba(123,196,127,.4)}.fp-badge.ew{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.42)}.fp-badge.cr{background:rgba(245,158,11,.16);color:#fcd9a0;border-color:rgba(245,158,11,.42)}.fp-uhead{margin-top:54px}.fp-uhead .kick{color:var(--gold,#D4AF37)}.fp-unesco{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:22px}.fp-site{border-radius:18px;padding:24px 24px 22px;background:linear-gradient(135deg,#1c1407,#241a0a 58%,#0b1422);border:1px solid rgba(212,175,55,.22);transition:transform .4s cubic-bezier(.4,0,.2,1),border-color .4s}.fp-site:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.45)}.fp-site .yr{font-size:.71rem;font-weight:700;letter-spacing:1px;color:var(--gold,#D4AF37)}.fp-site p{color:#c2ccda;font-size:.91rem;line-height:1.55}.fp-note{margin-top:22px;font-size:.77rem;color:#6f7d93;max-width:70ch}@media(max-width:560px){.fp-grid{grid-template-columns:repeat(2,1fr);gap:12px}}
/* == x_6e60d4f04f7e.css == */
/* Primaire (.btn-p) : profondeur + sheen restauré */.btn-p{box-shadow:0 8px 22px rgba(46,134,222,.30),inset 0 1px 0 rgba(255,255,255,.22)}.btn,.btn-p{transition:transform .22s var(--ease,ease),box-shadow .26s var(--ease,ease),filter .2s var(--ease,ease)!important}.btn-p:hover{transform:translateY(-2px);filter:brightness(1.07) saturate(1.04);box-shadow:0 14px 34px rgba(46,134,222,.45),inset 0 1px 0 rgba(255,255,255,.30)}.btn-p:active{transform:translateY(0) scale(.985);filter:brightness(.98);transition-duration:.08s!important}.btn-p:hover::after{left:130%}/* Boutons hero de pole (.pgh-btn) : sheen + lift accentue par accent --pac */.pgh-btn{position:relative;overflow:hidden;box-shadow:0 8px 22px color-mix(in srgb,var(--pac,#5AA7F0) 36%,transparent),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .22s var(--ease,ease),box-shadow .26s var(--ease,ease),filter .2s var(--ease,ease)!important}.pgh-btn::after{content:"";position:absolute;top:0;left:-90%;width:52%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-18deg);transition:left .6s var(--ease,ease);pointer-events:none}.pgh-btn:hover{transform:translateY(-2px);filter:brightness(1.07) saturate(1.03);box-shadow:0 15px 34px color-mix(in srgb,var(--pac,#5AA7F0) 50%,transparent),inset 0 1px 0 rgba(255,255,255,.32)}.pgh-btn:hover::after{left:135%}.pgh-btn:active{transform:translateY(0) scale(.985);filter:brightness(.98)}/* Secondaire fantome (.pgh-btn2 / .btn-ghost) */.pgh-btn2,.btn-ghost{transition:transform .22s var(--ease,ease),border-color .2s,color .2s,background .25s!important}.pgh-btn2:hover,.btn-ghost:hover{transform:translateY(-2px);border-color:var(--pac,var(--gold-l));background:color-mix(in srgb,var(--pac,var(--gold-l)) 9%,transparent);color:#fff}.pgh-btn2:active,.btn-ghost:active{transform:translateY(0) scale(.985)}.btn:focus-visible,.btn-p:focus-visible{outline:2px solid var(--gold-l,#E8C36A);outline-offset:3px}@media(prefers-reduced-motion:reduce){.btn,.btn-p,.pgh-btn,.pgh-btn2,.btn-ghost{transition:none!important}.btn-p::after,.pgh-btn::after{display:none}}@media(max-width:760px){.btn,.btn-p,.btn-g,.btn-ghost,.pgh-btn,.pgh-btn2{min-height:44px}body{overflow-wrap:break-word}}
/* == x_88714366effd.css == */
:root{--ease-ultra:cubic-bezier(.22,.61,.36,1)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-padding-top:116px}body{font-feature-settings:"kern" 1,"liga" 1,"calt" 1}::selection{background:rgba(232,195,106,.30);color:#fff}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(232,195,106,.55),rgba(90,167,240,.42));border-radius:99px;border:3px solid #060B14}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(232,195,106,.85),rgba(90,167,240,.62))}html{scrollbar-width:thin;scrollbar-color:rgba(232,195,106,.5) transparent}:focus-visible{outline:2px solid var(--gold-l,#F0CE82);outline-offset:3px}.kpi b,.hxi-figs b,.kpis b,.hpcard-kpis span,.hncard-date,.jx .yr,[class*="-kpi"] b{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{scroll-behavior:auto}}.pmk{font-size:max(.62em,0.6875rem);font-weight:600;color:rgba(245,247,250,.72);letter-spacing:.02em;white-space:nowrap}.ppj-card,.biz-card,.ppt-card,.pmore-card,.oeco-card,.hxi-card,.sb-card{background:linear-gradient(180deg,rgba(11,18,32,.46),rgba(11,18,32,.30))!important;-webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%);transition:transform .25s var(--ease-ultra),border-color .25s,background .25s,box-shadow .3s}.ppj-card:hover,.biz-card:hover,.ppt-card:hover,.pmore-card:hover,.oeco-card:hover,.hxi-card:hover,.sb-card:hover{background:linear-gradient(180deg,rgba(13,21,37,.58),rgba(13,21,37,.40))!important;transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(0,0,0,.72)}@media(prefers-reduced-motion:reduce){.ppj-card,.biz-card,.ppt-card,.pmore-card,.oeco-card,.hxi-card,.sb-card{transition:none}.ppj-card:hover,.biz-card:hover,.ppt-card:hover,.pmore-card:hover,.oeco-card:hover,.hxi-card:hover,.sb-card:hover{transform:none}}@media (prefers-reduced-transparency:reduce){*{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.ppj-card,.biz-card,.ppt-card,.pmore-card,.oeco-card,.hxi-card,.sb-card,.hpcard{background:#0D1626!important}}.biz-card.flip2,.hxf,.hxi-card.flip{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
/* == x_e03f9a4a2ec7.css == */
.hpcard,.sc-card{-webkit-backdrop-filter:blur(12px) saturate(128%) brightness(1.05);backdrop-filter:blur(12px) saturate(128%) brightness(1.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -14px 28px -20px rgba(0,0,0,.55),0 12px 30px -20px rgba(2,6,14,.6)}.hpcard::before,.sc-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;background:radial-gradient(135% 85% at 10% -12%,rgba(255,255,255,.14),rgba(255,255,255,.03) 38%,transparent 60%)}.hpcard-body,.sc-body{position:relative;z-index:1}.hpcard::before,.sc-card::before{transition:transform .8s cubic-bezier(.22,.61,.36,1),opacity .5s ease;will-change:transform}.hpcard:hover::before,.sc-card:hover::before{transform:translate3d(34%,9%,0)}@media(prefers-reduced-motion:reduce){.hpcard::before,.sc-card::before,.hpcard:hover::before,.sc-card:hover::before{transition:none;transform:none}}.hpcard:hover,.sc-card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.20),inset 0 -14px 28px -20px rgba(0,0,0,.5),0 28px 56px -26px rgba(2,6,14,.74),0 0 0 1px color-mix(in srgb,var(--pac,var(--pc,var(--sc,#F0CE82))) 28%,transparent)}@media(prefers-reduced-motion:reduce){.hpcard,.sc-card{transition:none}}@property --hpang{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes hpring{to{--hpang:360deg}}@media(prefers-reduced-motion:reduce){}

/* == suffixe mobile_modern (copie du bloc de bundle_core_a1.css - les pages bundle sans core, dont index.html, en ont besoin; doublon inoffensif ailleurs) == */

/* == Modernisation mobile (31/07/2026) — benchmark majors (TotalEnergies/Shell/bp) ==
   Mobile uniquement (<=760px). M1 echelle typo du heros (h1 34-40px, leads >=16px au
   lieu de 12-14px mesures) ; M2 cibles tactiles >=44px (sous-navs a pastilles, fil
   d'Ariane) ; M3 carrousels scroll-snap pour les familles de cartes — l'empilement
   1 colonne donnait des pages de 13 000 a 25 400px de haut. L'acces clavier des
   carrousels (tabindex/role/aria-label) est pose par s_2ffe40dff9.js — les deux
   fichiers vont ensemble. Ne touche ni aux themes ni au desktop. */
@media(max-width:760px){
header.pghero h1,.hero h1,.hero .hx-h1:not(#_){font-size:var(--ts-4,clamp(1.55rem,3.4vw,2.35rem))!important;line-height:1.07!important;letter-spacing:-.01em!important}
header.pghero p,.pgh-lead,.hero .lead{font-size:max(16px,1em)!important;line-height:1.55!important}
.pole-subnav a,nav.toc a,nav.corp-nav a,#inv-toc a{min-height:44px;display:inline-flex;align-items:center}
.crumb a,.bcrumb a{padding-block:10px}
.hubdrawer a{min-height:44px;display:flex;align-items:center}
.hchain a,.flip-cta,.hnews-all,.iv-cta{min-height:44px;display:inline-flex;align-items:center}
main .plc-grid,main .biz-grid,main .sb-grid,main .pof-grid,main .ppt-grid,main .ppj-grid,main .hpgrid,main .hxi-grid,main .hnews-grid,main .ce-grid,.ttg-g{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:min(82vw,340px);overflow-x:auto;scroll-snap-type:x proximity;column-gap:12px;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-padding-inline:4px}
main .plc-grid>*,main .biz-grid>*,main .sb-grid>*,main .pof-grid>*,main .ppt-grid>*,main .ppj-grid>*,main .hpgrid>*,main .hxi-grid>*,main .hnews-grid>*,main .ce-grid>*,.ttg-g>*{scroll-snap-align:start;min-width:0}
}

/* == Encre d'impression (01/08/2026) ==
   Les fonds ne s'impriment pas par defaut : le papier est blanc. Toute encre claire
   posee pour un fond sombre devient invisible a l'impression. Encre sombre forcee —
   specificite montee a TROIS niveaux d'id (les reparations de theme utilisent deja deux :not(#_) — il faut les depasser) car le site est truffe
   de couleurs a !important plus specifiques que des selecteurs nus. Optimise
   l'impression par defaut (sans fonds). */
@media print{
body :not(#_):not(#__):not(#___){color:#111!important;-webkit-text-fill-color:#111!important;text-shadow:none!important}
body a[href]:not(#_):not(#__):not(#___){text-decoration:underline}
body .kick:not(#_):not(#__):not(#___),body .eyebrow:not(#_):not(#__):not(#___){color:#444!important}
nav.toc,#inv-toc,.corp-nav,.pole-subnav,#secrail,.ttg,#aurora,.grain,.diapo,.pgh-art,.skip-link{display:none!important}
}

/* ============================================================================
   SAUTS DE PAGE — 01/08/2026
   Deux causes mesurees, deux correctifs. Les pistes non confirmees par la
   mesure (flou d'arriere-plan, aurora, reveal) ont ete ecartees : aucun effet
   reproductible. Protocole et chiffres dans MAINTENANCE §17.

   1) LE SAUT DE PAGE PROPREMENT DIT. html portait scroll-behavior:smooth.
      Pendant l'animation (~1 s, plus lente encore sur telephone) le contenu se
      deplie — reveal au defilement, sections repliables, images qui arrivent —
      donc la position calculee au depart n'est plus la bonne a l'arrivee. Le
      lecteur est depose loin du titre vise. Mesure sur 28 ancres de 5 pages :
        telephone 390x844 : 12 ancres ratees en doux -> 1 en instantane
        ordinateur 1440x900 : 19 ratees en doux -> 1 en instantane
      Pire cas releve : /societe#organisation, titre a 10 720 px de la fenetre.
      C'est un defaut fonctionnel, pas un defaut d'agrement : on coupe le
      glissement partout. Le confort perdu est mince, le lien retombe juste.

   2) FLUIDITE MOBILE. .hero-halo et .prem-mesh sont en mix-blend-mode:screen
      sur une boite de 390x1375 px : la fusion prive le compositeur de ses
      chemins rapides. Neutralisee, la frame mediane passe de 50 ms a 33,4 ms
      (4 essais sur 4, +11 % de frames affichees). Rendu identique a l'oeil sur
      fond sombre — le degrade du halo est deja clair sur du bleu nuit.
   ========================================================================== */
html:not(#_){scroll-behavior:auto}
@media(max-width:1024px){
  .hero-halo:not(#_),.prem-mesh:not(#_){mix-blend-mode:normal}
}

/* ============================================================================
   CALE D'ANCRE — 01/08/2026
   scroll-padding-top valait 116px partout : une constante qui ne correspond a
   aucun gabarit. Mesure de la pile collante reelle (MAINTENANCE 18) :
     barre principale   390px -> 77   820px -> 93   1440px -> 132
     + sous-nav collante (corp-nav, nav.toc, #inv-toc, #cw-tabs) : +40 a +70
   Consequence : sur 54 ancres testees, 4 titres finissaient sous les barres en
   telephone et 14 en ordinateur — on cliquait un titre du sommaire et il
   arrivait cache. nav_a.js mesure la pile et pose --et-anc ; les valeurs de
   repli ci-dessous couvrent les 62 pages qui ne chargent pas ce script (les
   articles du journal et les pages legales, dont la barre est simple).
   ========================================================================== */
html:not(#_){scroll-padding-top:var(--et-anc,95px)}
@media(min-width:820px){html:not(#_){scroll-padding-top:var(--et-anc,111px)}}
@media(min-width:1241px){html:not(#_){scroll-padding-top:var(--et-anc,150px)}}

/* ============================================================================
   iOS / SAFARI — 01/08/2026
   Audit mene sous le vrai moteur WebKit 26 (et non sous Chromium en gabarit
   iPhone), profils iPhone SE / 13 / 13 paysage / iPad, portrait et paysage.
   Ce que la mesure a innocente : zero erreur JS, zero debordement horizontal,
   le verre depoli fonctionne (prefixe -webkit- present partout), aucun melange
   de calques sous 1024px, les ancres tiennent (0/64 recouvertes sur iPad,
   1/64 en iPhone portrait). Ce qui suit corrige ce qui a reellement echoue.
   Protocole et chiffres dans MAINTENANCE 19.

   1. ZOOM AUTOMATIQUE DES CHAMPS. La regle qui portait les champs a 16px etait
      enfermee dans @media(max-width:600px) : un critere de largeur, alors que
      le zoom de Safari depend du materiel, pas de la fenetre. Mesure a 750px
      de large (iPhone couche) : /contact 10,56px sur cinq champs, /boutique
      12,8px sur les listes et 14,72px sur les quantites. Sous 16px, iOS zoome
      de force des qu'on touche le champ et l'utilisateur doit pincer pour
      revenir. Toutes les tablettes et tous les telephones couches etaient
      concernes. On recadre sur le pointeur, pas sur la largeur.

   2. CIBLES TACTILES. 151 cibles distinctes sous 44px en portrait, 298 en
      paysage. On elargit la zone sensible sans toucher au dessin, par
      remplissage compense ou par calque ::after centre. Deux exceptions qui
      grandissent pour de bon : les pastilles du pied de page et les compteurs
      de la boutique — un compteur de 32x34 ne se manipule pas au pouce.

   3. PAYSAGE. Les barres fixes mangeaient 38 a 45% d'une fenetre de 342px de
      haut (barre principale 71 a 93px + barre du bas 59px), avant meme la
      barre d'adresse de Safari. On escamote la barre du bas quand la fenetre
      est basse : le menu principal reste accessible par le bouton.

   4. ENCOCHE EN PAYSAGE. .nav, #toTop, #plightBtn, .scrollcue et le bas de
      #nezBar traitaient deja les zones sures. Restaient trois en-tetes
      collants (boutique, journal, page arabe) et les cotes de #nezBar. On
      passe par une bordure transparente et non par le remplissage : leur
      remplissage varie d'un gabarit a l'autre (14/30/32px pour .btop,
      19,5/37,5/40px pour .jtop, 0 pour l'en-tete arabe) et le recopier serait
      le figer. Sans encoche, env() vaut zero et la bordure est nulle.

   5. SURBRILLANCE AU TOUCHER. Aucun -webkit-tap-highlight-color sur le site :
      iOS peignait un rectangle gris a chaque appui, ce qui jure sur fond
      sombre. Les etats :active du site suffisent.
   ========================================================================== */

/* --- 1. plus jamais de zoom force a la saisie ------------------------------ */
@media(pointer:coarse){
  input:not([type=range]):not([type=checkbox]):not([type=radio]):not(#_):not(#__),
  select:not(#_):not(#__),
  textarea:not(#_):not(#__){font-size:16px!important}
}

/* --- 2. cibles tactiles ---------------------------------------------------- */
@media(pointer:coarse){
  /* a. zone sensible elargie sans deplacer le dessin (remplissage compense) */
  .pc-more:not(#_):not(#__){padding-top:13px!important;padding-bottom:13px!important;
    margin-top:-8px!important;margin-bottom:-8px!important;position:relative;z-index:1}
  .ppj-tg:not(#_):not(#__){padding-top:12px!important;padding-bottom:12px!important;
    margin-top:-6px!important;margin-bottom:-6px!important;position:relative;z-index:1}

  /* b. calque de 44px centre : le bouton garde sa taille, la main gagne 13px.
        On ne pose position:relative que sur les elements encore statiques —
        .scrollcue et #plightBtn sont deja fixes, .flip-hint est absolue, et
        les repositionner en relatif les arracherait de leur place. */
  .f2hint:not(#_):not(#__),a[data-social]:not(#_):not(#__){position:relative}
  .scrollcue:not(#_):not(#__)::after,#plightBtn:not(#_):not(#__)::after,
  .flip-hint:not(#_):not(#__)::after,.f2hint:not(#_):not(#__)::after,
  a[data-social]:not(#_):not(#__)::after{content:"";position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);min-width:44px;min-height:44px;width:100%;height:100%;
    border-radius:inherit;pointer-events:auto}

  /* c. ceux qui doivent vraiment grandir */
  .foot-pole:not(#_):not(#__){min-height:44px}
  .pc-add:not(#_):not(#__){min-height:44px}
  .stepper:not(#_):not(#__) button{width:44px!important;height:44px!important}
  .stepper:not(#_):not(#__) input{height:44px!important;width:52px!important}
}

/* --- 3. paysage : rendre la fenetre au contenu ----------------------------- */
@media(orientation:landscape) and (max-height:450px){
  #nezBar:not(#_):not(#__){display:none!important}
  .scrollcue:not(#_):not(#__){display:none!important}
}

/* --- 4. encoche sur les cotes en paysage ----------------------------------- */
@supports(left:env(safe-area-inset-left)){
  .btop:not(#_):not(#__),.jtop:not(#_):not(#__),header.top:not(#_):not(#__),
  #nezBar:not(#_):not(#__){
    border-left:env(safe-area-inset-left) solid transparent;
    border-right:env(safe-area-inset-right) solid transparent}
}

/* --- 5. pas de rectangle gris au toucher ----------------------------------- */
html:not(#_):not(#__){-webkit-tap-highlight-color:transparent}

/* --- 6. le megamenu se fermait sous la barre d'adresse ---------------------- */
/* 100vh vaut, sur iOS, la hauteur barre d'adresse repliee : le bas du panneau
   passait dessous. 100dvh suit la fenetre reellement visible ; la ligne 100vh
   reste en repli pour les moteurs qui ignorent dvh. */

@supports(height:100dvh){
  
}

/* ============================================================================
   iOS / SAFARI — deuxieme passe, cibles tactiles nommees — 01/08/2026
   La premiere passe a ramene les cibles sous 44px de 151 a 126 en portrait et
   de 298 a 245 en paysage, et ramene a zero les champs qui declenchaient le
   zoom. Le releve du reste (instrument #6 : chemin CSS complet de chaque cible
   fautive) montre que le gros du solde n'est pas disperse — ce sont huit
   familles, presque toutes des listes verticales de liens : pied de page,
   coordonnees, fil d'Ariane, filtres de la boutique, en-tete des carnets.
   On leur donne 44px de hauteur pour de bon. La page mobile s'allonge un peu ;
   c'est le prix d'un pied de page qu'on peut viser au pouce, et cela va dans le
   sens demande d'une version mobile modernisee.
   ========================================================================== */
@media(pointer:coarse){
  /* le compteur de la boutique se faisait ecraser par la grille en gabarit
     tablette : la hauteur passait bien, la largeur retombait a 33px. */
  .stepper:not(#_):not(#__) button{flex:0 0 44px!important;min-width:44px!important}
  .stepper:not(#_):not(#__) input{flex:0 0 52px!important;min-width:44px!important}

  /* listes verticales de liens : hauteur pleine, texte centre */
  .foot-col:not(#_):not(#__) a,
  .foot-brand:not(#_):not(#__) a,
  .coords:not(#_):not(#__) a,
  .bcrumb:not(#_):not(#__) a,
  #contact-rapide:not(#_):not(#__) a,
  .foot-legal:not(#_):not(#__) button,
  .jsig:not(#_):not(#__) a{min-height:44px;display:flex;align-items:center}
  .bcrumb:not(#_):not(#__) a{display:inline-flex}
  .foot-legal:not(#_):not(#__) button{display:inline-flex;justify-content:center}

  /* boutons et pastilles */
  .filters:not(#_):not(#__) .chip{min-height:44px}
  .hx-dots:not(#_):not(#__) button{min-height:44px}
  .follow-soc:not(#_):not(#__) a{min-width:44px;min-height:44px}
  .nav-search:not(#_):not(#__){min-width:44px;min-height:44px}
  .jtop:not(#_):not(#__) .jback,.jtop:not(#_):not(#__) #jlightBtn{min-width:44px;min-height:44px}
  .foot-pole:not(#_):not(#__){min-width:44px;text-align:center}
  .skip-link:not(#_):not(#__){min-height:44px}

  /* liens en fin de bloc, poses en ligne : on les passe en ligne-flex pour que
     leur remplissage compte vraiment dans la hauteur cliquable. */
  .card:not(#_):not(#__) .d a,
  .bnote:not(#_):not(#__) a,
  .layout:not(#_):not(#__) a[href*="maps"]{display:inline-flex;align-items:center;
    min-height:44px;min-width:44px;justify-content:center}
}

/* ============================================================================
   iOS / SAFARI — troisieme et derniere passe tactile — 01/08/2026
   Apres la deuxieme passe : 49 cibles distinctes sous 44px en portrait (151 au
   depart), 107 en paysage (298), 151 sur iPad (260). Le solde n'est plus une
   longue traine : c'est une dizaine de familles nommees, relevees une a une par
   l'instrument #6. On les traite ici. Ce qui restera ensuite est assume et
   consigne dans MAINTENANCE 19 : deux liens de plan d'acces et les liens en
   pleine phrase, que la recommandation d'Apple exempte explicitement.
   ========================================================================== */
@media(pointer:coarse){
  /* la ligne de liens legaux du pied de page : 21px de haut, la plus fine du site */
  .foot-legal-links:not(#_):not(#__) a{min-height:44px;display:inline-flex;align-items:center}

  /* bandeau cookies : le seul endroit ou rater la cible a une consequence */
  #ckn:not(#_):not(#__) .ck-row a,#ckn:not(#_):not(#__) .ck-row button{min-height:44px;
    display:inline-flex;align-items:center;justify-content:center}

  /* onglets de segmentation clientele, entetes depliables, fil de chaine */
  .cwt:not(#_):not(#__) button{min-height:44px}
  .minv-btn:not(#_):not(#__){min-height:44px}
  .pgc-node:not(#_):not(#__){min-height:44px;display:inline-flex;align-items:center}
  .crumb:not(#_):not(#__) a{min-height:44px;display:inline-flex;align-items:center}
  .hchain:not(#_):not(#__) a{min-height:44px}

  /* pastilles de partage, pastilles de diaporama, bouton de lecture claire */
  .share-b:not(#_):not(#__){min-width:44px;min-height:44px}
  .hx-dots:not(#_):not(#__) button{min-width:44px}
  #plightBtn:not(#_):not(#__){min-width:44px;min-height:44px}

  /* replis de fiche : 12px de remplissage donnaient 40px, il en manquait quatre */
  .ppj-tg:not(#_):not(#__){padding-top:14px!important;padding-bottom:14px!important;
    margin-top:-8px!important;margin-bottom:-8px!important}

  /* lien de rappel en fin de bloc mis en avant */
  .hx-grid:not(#_):not(#__) > div > div > a{display:inline-flex;align-items:center;min-height:44px}
}

/* Dernier rattrapage tactile : une famille d'appels a l'action s'arretait entre
   38 et 43px, soit deux a six pixels sous la recommandation d'Apple. Elles
   portent toutes un nom, on les nomme. 01/08/2026 */
@media(pointer:coarse){
  .flip-cta:not(#_):not(#__),.iv-cta:not(#_):not(#__),.hnews-all:not(#_):not(#__),
  .ppte-cta:not(#_):not(#__),.bbrand:not(#_):not(#__),.bback:not(#_):not(#__),
  .cart-btn:not(#_):not(#__),.chip:not(#_):not(#__),.btn2:not(#_):not(#__){min-height:44px}
}

/* ============================================================================
   FIL D'ARIANE SOUS LA BARRE — 01/08/2026
   Mesure : la seule regle qui degageait le haut du hero etait enfermee dans
   @media(max-width:560px). Au-dessus de 560px et jusqu'a 1240px, plus rien :
   .hero retombait a padding-top 0 alors que #nav reste fixe et mesure 93px.
   Resultat, sur /societe /clients /investisseurs /solutions /engagements
   /gouvernance /contact /carrieres, le fil d'Ariane demarrait a y=45..49 et
   passait entierement sous la barre — iPhone couche, iPad, et toute tablette.
   Au-dessus de 1241px le defaut ne se voit pas : nav_a.css donne au fil
   d'Ariane son propre remplissage de 74px, qui le fait ressortir.

   Deuxieme foyer, celui-la visible meme en portrait : les 37 pages marquees
   body.nx-clear recevaient 48px pour une barre de 77px. Leur fil d'Ariane
   etait donc recouvert a toutes les largeurs.

   On pose donc un seul decalage, deterministe, sur toute la bande <=1240px :
   96px sous 560px (la valeur qui marchait deja, on ne bouge pas les pages
   saines) et 112px au-dessus, soit la barre de 93px plus les 19px de respiration
   du gabarit telephone. Pas de !important : l'accueil garde ses 128/152px
   poses en header.hero!important, et toute page qui voudra son propre dessin
   n'aura qu'a le declarer de meme.
   ========================================================================== */
@media(max-width:560px){
  .hero:not(#_):not(#__){padding-top:96px}
}
@media(min-width:561px) and (max-width:1240px){
  .hero:not(#_):not(#__){padding-top:112px}
}

/* Note : --nav-h restait fige a 72px alors que la barre monte a 93px en
   tablette et 132px en grand ecran ; le panneau de menu mobile et le mega-menu
   en dependent et depassaient donc la fenetre de 21 a 60px. Correctif en
   JavaScript (observateur de taille) dans u_cd226c00eb4b.js, la mesure devant
   suivre la barre et non un palier de largeur. */

/* ============================================================================
   CIBLES TACTILES — quatrieme et derniere passe, tablette et paysage
   01/08/2026. Le portrait etait retombe a quatre cibles distinctes ; restaient
   81 en iPad et paysage, toutes concentrees dans six familles nommees que la
   mesure a fini par isoler : les sommaires lateraux (nav.toc, #inv-toc), la
   navigation corporate (.corp-nav), le segmenteur de la boutique (.seg), les
   pastilles sociales du pied de page (.et-soc-foot, 36x36 pour dix occurrences
   — le plus gros contingent) et les en-tetes courts de la boutique et du
   journal. On ajoute les pastilles d'appel a l'action ecrites en style en
   ligne, reconnaissables a leur border-radius:999px, qui s'arretaient a 42px.
   ========================================================================== */
@media(pointer:coarse){
  .et-soc-foot:not(#_):not(#__) a{min-width:44px;min-height:44px}
  .corp-nav:not(#_):not(#__) a{min-height:44px;display:flex;align-items:center}
  .toc:not(#_):not(#__) .toc-in a{min-height:44px;display:flex;align-items:center}
  #inv-toc:not(#_):not(#__) .ivt-in a{min-height:44px;display:flex;align-items:center}
  .seg:not(#_):not(#__) button{min-height:44px}
  .btop:not(#_):not(#__) .bback{min-width:44px;text-align:center}
  .jtop:not(#_):not(#__) .jbrand{min-height:44px;display:flex;align-items:center}
  .pof-cta:not(#_):not(#__) a{min-height:44px}
  #coeurs:not(#_):not(#__) .reveal > a{min-height:44px}
  a[style*="border-radius:999px"]:not(#_):not(#__){min-height:44px}
}


/* Rattrapage : le sommaire de /engagements et /gouvernance accroche ses liens
   directement sous nav.toc (et non sous .toc-in comme /investisseurs), et le
   sous-menu de pole s'arretait a 39px. 01/08/2026 */
@media(pointer:coarse){
  .toc:not(#_):not(#__) > a{min-height:44px;display:flex;align-items:center}
  .psn-link:not(#_):not(#__){min-height:44px;display:flex;align-items:center}
}


/* Le lien « Voir sur la carte » de /contact pointe vers OpenStreetMap et non
   vers Google Maps : la regle posee en deuxieme passe sur a[href*="maps"] ne
   l'attrapait pas. On elargit au domaine reellement utilise. 01/08/2026 */
@media(pointer:coarse){
  a[href*="openstreetmap"]:not(#_):not(#__){min-height:44px;display:inline-flex;align-items:center}
}

/* Ch257 - toTop invisible ne doit pas etre tabulable */
#toTop{visibility:hidden;transition:opacity .35s,transform .35s,box-shadow .35s,visibility .35s}#toTop.show{visibility:visible}

/* Ch319 — WCAG 1.4.1 : dans le corps de texte, un lien ne peut pas se distinguer
   par la seule couleur quand celle-ci n'atteint pas 3:1 avec le texte qui l'entoure.
   Mesure sur les 210 pages : 37 pages concernees, jusqu'au lien exactement de la
   meme couleur que sa phrase. Les liens de corps portent donc un souligne discret ;
   les liens habilles d'une classe (boutons, puces, cartes) ne sont pas touches. */
:is(p,li,dd) a:not([class]):not(#_):not(#__){text-decoration:underline;text-underline-offset:.18em;
  text-decoration-thickness:.055em;text-decoration-color:color-mix(in srgb,currentColor 42%,transparent)}
:is(p,li,dd) a:not([class]):not(#_):not(#__):hover{text-decoration-color:currentColor}

/* Ch319 (theme clair) — quelques feuilles de page annulent le souligne des liens
   de corps ; on le retablit pour eux seuls, sans toucher aux liens habilles. */
html.et-plight :is(p,li,dd) a:not([class]):not(#_):not(#__){text-decoration:underline!important;
  text-underline-offset:.18em;text-decoration-thickness:.055em;
  text-decoration-color:color-mix(in srgb,currentColor 42%,transparent)}

/* Ch531 - la colonne chaine & capacites (8 pastilles) etait plus dense que ses voisines : deux colonnes. */
footer .foot-poles:not(#_){display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;justify-items:start}
