/* =====================================================================
   Ï-NAYA — SECTION « VOS ENJEUX » · frise animée Aujourd’hui → Demain
   ===================================================================== */

/* ---------- 0. SOCLE COMMUN (identique au hero : peut être chargé 2 fois) ---------- */
.nx-scope{--nx-navy:#0A2A43;--nx-night:#081F38;--nx-cyan:#00D1C1;--nx-cyan-2:#22E4EC;--nx-teal:#007D79;--nx-blue:#1D7BE8;--nx-violet:#7B6CFF;
  --nx-paper:#F7FAFC;--nx-line:#DBE6ED;--nx-muted:#4F6577;--nx-ease:cubic-bezier(.2,.8,.2,1);--nx-ease-out:cubic-bezier(.16,1,.3,1);
  --nx-font:"Plus Jakarta Sans",Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--nx-gutter:clamp(20px,5.2vw,80px);
  font-family:var(--nx-font);color:var(--nx-navy);-webkit-font-smoothing:antialiased}
.nx-scope *,.nx-scope *::before,.nx-scope *::after{box-sizing:border-box}
.nx-scope img,.nx-scope svg{display:block;max-width:100%}
:where(.nx-scope) a{color:inherit;text-decoration:none}
:where(.nx-scope) h2,:where(.nx-scope) h3,:where(.nx-scope) h4,:where(.nx-scope) p{margin:0}
.nx-scope :focus-visible{outline:3px solid var(--nx-cyan);outline-offset:4px;border-radius:12px}
@property --nx-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes nxSpin{to{--nx-angle:360deg}}
@keyframes nxDraw{to{stroke-dashoffset:0}}
@keyframes nxPing{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.9);opacity:0}}
@keyframes nxRot{to{transform:rotate(360deg)}}

.nx-btn{--h:54px;position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;height:var(--h);border-radius:999px;
  font:700 14.5px/1 var(--nx-font);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;border:0;isolation:isolate;
  transition:transform .35s var(--nx-ease),box-shadow .35s var(--nx-ease)}
.nx-btn__icon{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex-shrink:0}
.nx-btn__icon svg{width:18px;height:18px;grid-area:1/1;transition:transform .5s var(--nx-ease)}
.nx-btn__icon svg+svg{transform:translateX(-160%)}
.nx-btn:hover .nx-btn__icon svg:first-child{transform:translateX(160%)}
.nx-btn:hover .nx-btn__icon svg+svg{transform:none}
.nx-btn--primary{padding:0 8px 0 24px;color:var(--nx-navy);background:linear-gradient(180deg,#2BE6D6 0%,var(--nx-cyan) 55%,#00BFB1 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 14px 34px -12px rgba(0,209,193,.75),0 2px 6px rgba(8,31,56,.12)}
.nx-btn--primary .nx-btn__icon{background:var(--nx-navy);color:var(--nx-cyan)}
.nx-btn--primary::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%) no-repeat;background-size:250% 100%;background-position:130% 0;animation:nxSheen 5.5s 1.5s ease-in-out infinite}
@keyframes nxSheen{0%,70%{background-position:130% 0}100%{background-position:-130% 0}}
.nx-btn--primary:hover{box-shadow:0 20px 44px -12px rgba(0,209,193,.9),0 0 0 6px rgba(0,209,193,.16)}
.nx-btn--ghost{padding:0 8px 0 24px;color:var(--nx-navy);border:1.5px solid transparent;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(var(--nx-angle),#BCD0DC,var(--nx-cyan),var(--nx-blue),#BCD0DC) border-box;animation:nxSpin 6s linear infinite;box-shadow:0 8px 24px -16px rgba(8,31,56,.35)}
.nx-btn--ghost .nx-btn__icon{background:var(--nx-navy);color:#fff}
.nx-btn--ghost:hover{box-shadow:0 16px 36px -16px rgba(8,31,56,.45)}


/* ---------- SECTION « VOS ENJEUX » ---------- */
.nxv{--v-ink:#0B2238;--v-txt:#4E6375;--v-teal:#14B8A6;--v-cyan:#22D3C5;--v-blue:#2F8BFF;--v-blue-d:#1565D8;--v-grey:#6B7C8C;
  position:relative;isolation:isolate;overflow:hidden;background:#F6F9FC;padding:clamp(56px,6vw,90px) 0 clamp(48px,5vw,80px)}
.nxv-shell{width:min(1640px,calc(100% - 2 * clamp(16px,2.4vw,40px)));margin-inline:auto;position:relative;z-index:2}

/* Fond : brume, montagnes (vraies photos teintées), grain */
.nxv-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.nxv-bg__m{position:absolute;top:14%;bottom:8%;width:34%;background-size:cover;background-position:center;opacity:.55;will-change:transform}
.nxv-bg__m--l{left:-4%;background-image:var(--img-l);-webkit-mask-image:radial-gradient(ellipse 85% 70% at 0% 45%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse 85% 70% at 0% 45%,#000 25%,transparent 72%)}
.nxv-bg__m--r{right:-4%;background-image:var(--img-r);opacity:.62;-webkit-mask-image:radial-gradient(ellipse 85% 70% at 100% 40%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse 85% 70% at 100% 40%,#000 25%,transparent 72%)}
.nxv-bg__fog{position:absolute;left:-10%;right:-10%;height:40%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0));filter:blur(20px);animation:nxvFog 30s ease-in-out infinite alternate}
.nxv-bg__fog--1{top:30%}.nxv-bg__fog--2{top:62%;animation-duration:38s;animation-direction:alternate-reverse}
@keyframes nxvFog{to{transform:translateX(6%)}}
.nxv-bg__glow{position:absolute;right:-8%;top:10%;width:40vw;height:40vw;border-radius:50%;background:radial-gradient(circle,rgba(34,211,197,.22),transparent 65%);filter:blur(40px)}
.nxv-bg__grain{position:absolute;inset:-60px;opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* En-tête */
.nxv-head{text-align:center;max-width:1100px;margin:0 auto}
.nxv-eyebrow{font-size:13px;font-weight:700;letter-spacing:.42em;text-transform:uppercase;color:#0E9F94;margin-bottom:18px}
.nxv-title{font-size:clamp(30px,3.5vw,58px);line-height:1.08;font-weight:800;letter-spacing:-.045em;color:var(--v-ink)}
.nxv-title .ln{display:inline-block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em;vertical-align:bottom}
.nxv-title .ln>span{display:inline-block}
.nxv-title em{font-style:normal;color:transparent;background:linear-gradient(95deg,#0EA5A0 0%,#1FD3C4 50%,#0EA5A0 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:nxvText 6s ease-in-out infinite alternate}
@keyframes nxvText{to{background-position:100% 0}}
.nxv-sub{margin:20px auto 0;max-width:800px;font-size:clamp(15px,1.25vw,20px);line-height:1.55;color:var(--v-txt)}

/* ---------- Frise ---------- */
.nxv-stage{position:relative;margin-top:clamp(-40px,-2vw,-10px);display:grid;grid-template-columns:.95fr repeat(6,minmax(0,1fr)) .95fr;column-gap:0}
.nxv-track{position:absolute;left:0;right:0;top:0;height:300px;z-index:1;pointer-events:none}
.nxv-track svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.nxv-track path{fill:none;stroke-linecap:round}
.nxv-track .halo{stroke:url(#nxvLine);stroke-width:14;opacity:.18;filter:blur(6px)}
.nxv-track .line{stroke:url(#nxvLine);stroke-width:5}
.nx-js .nxv-track .line,.nx-js .nxv-track .halo{stroke-dasharray:var(--len,3000);stroke-dashoffset:var(--len,3000)}
.nx-js .nxv.is-in .nxv-track .line,.nx-js .nxv.is-in .nxv-track .halo{animation:nxvDraw 2.6s .4s cubic-bezier(.45,0,.2,1) forwards}
@keyframes nxvDraw{to{stroke-dashoffset:0}}
.nxv-track .comet{stroke:#fff;stroke-width:4;stroke-dasharray:70 var(--len,3000);filter:drop-shadow(0 0 6px #22D3C5) drop-shadow(0 0 2px #fff);opacity:0}
.nx-js .nxv.is-in .nxv-track .comet{animation:nxvComet 5s 3s linear infinite}
@keyframes nxvComet{0%{stroke-dashoffset:calc(var(--len,3000) + 70px);opacity:1}100%{stroke-dashoffset:0;opacity:1}}

/* Jalons */
.nxv-node{position:absolute;left:var(--x);top:var(--y);z-index:3;transform:translate(-50%,-50%)}
.nxv-node__dot{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff;color:var(--c,#1565D8);
  box-shadow:0 0 0 6px rgba(255,255,255,.7),0 0 0 7px rgba(47,139,255,.15),0 14px 28px -12px rgba(21,101,216,.45);transition:transform .45s var(--nx-ease),box-shadow .45s}
.nxv-node__dot svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nxv-node__num{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);display:grid;justify-items:center;font-size:15px;font-weight:800;color:var(--c,#1565D8)}
.nxv-node__num::after{content:"";width:0;height:22px;border-left:2px dashed currentColor;opacity:.6;margin-top:4px}
.nxv-node.is-hot .nxv-node__dot,.nxv-node:hover .nxv-node__dot{transform:scale(1.12);box-shadow:0 0 0 6px rgba(255,255,255,.8),0 0 0 9px color-mix(in srgb,var(--c) 30%,transparent),0 18px 34px -12px rgba(21,101,216,.55)}
.nxv-node__dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--c);opacity:0}
.nxv-node.is-hot .nxv-node__dot::after{animation:nxvPing 1.6s ease-out infinite}
@keyframes nxvPing{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.5);opacity:0}}
.nx-js .nxv .nxv-node{opacity:0;scale:.4}
.nx-js .nxv.is-in .nxv-node{animation:nxvPop .7s cubic-bezier(.3,1.6,.5,1) forwards;animation-delay:var(--d)}
@keyframes nxvPop{to{opacity:1;scale:1}}

/* Repères Aujourd'hui / Demain */
.nxv-pin{position:absolute;left:var(--x);top:var(--y);z-index:3;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:6px}
.nxv-pin small{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#5E6E7C}
.nxv-pin b{padding:11px 22px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;white-space:nowrap}
.nxv-pin i{width:0;height:30px;border-left:2px solid currentColor}
.nxv-pin::after{content:"";width:16px;height:16px;border-radius:50%;margin-top:-4px;transform:translateY(50%)}
.nxv-pin--l{color:#5E6E7C}
.nxv-pin--l b{background:linear-gradient(180deg,#5D6B79,#46525E);box-shadow:0 10px 20px -10px rgba(40,50,60,.7)}
.nxv-pin--l::after{background:#2F8BFF;box-shadow:0 0 0 5px rgba(255,255,255,.9),0 0 0 7px rgba(47,139,255,.25);animation:nxvBlink 2s ease-in-out infinite}
@keyframes nxvBlink{50%{box-shadow:0 0 0 5px rgba(255,255,255,.9),0 0 0 11px rgba(47,139,255,.1)}}
.nxv-pin--r{color:#0E9F94}
.nxv-pin--r small{color:#0E7F78}
.nxv-pin--r b{background:linear-gradient(180deg,#26D7C8,#10A99C);box-shadow:0 12px 26px -10px rgba(16,169,156,.8)}
.nxv-pin--r::after{background:#0E9F94;box-shadow:0 0 0 5px rgba(255,255,255,.85)}
.nxv-radar{position:absolute;left:var(--x);top:var(--y);z-index:2;transform:translate(-50%,-50%);width:120px;height:120px;pointer-events:none}
.nxv-radar span{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(20,184,166,.55);animation:nxvRadar 3.6s ease-out infinite}
.nxv-radar span:nth-child(2){animation-delay:1.2s}.nxv-radar span:nth-child(3){animation-delay:2.4s}
@keyframes nxvRadar{0%{transform:scale(.15);opacity:1}100%{transform:scale(1);opacity:0}}
.nx-js .nxv .nxv-pin--r,.nx-js .nxv .nxv-radar{opacity:0}
.nx-js .nxv.is-in .nxv-pin--r,.nx-js .nxv.is-in .nxv-radar{animation:nxvFade .8s 2.9s forwards}
@keyframes nxvFade{to{opacity:1}}

/* Listes latérales */
.nxv-side{grid-row:1;position:relative;z-index:2;padding-top:var(--top,190px);font-size:clamp(13px,.95vw,15.5px);line-height:1.4}
.nxv-side--l{grid-column:1;color:#4C5B69;padding-right:14px}
.nxv-side--r{grid-column:8;color:#2E4556;padding-left:clamp(10px,1.4vw,28px)}
.nxv-side ul{list-style:none;margin:0;padding:0;display:grid;gap:clamp(14px,1.6vw,24px)}
.nxv-side--l li{position:relative;transition:color .4s,opacity .4s}
.nx-js .nxv.is-in .nxv-side--l li{animation:nxvDim 1s forwards;animation-delay:calc(var(--i) * 200ms + 2.4s)}
@keyframes nxvDim{to{opacity:.6}}
.nxv-side--r li{display:flex;gap:12px;align-items:flex-start}
.nxv-side--r li i{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#E3F8F5;color:#0EA597;box-shadow:0 0 0 4px rgba(14,165,151,.08)}
.nxv-side--r li i svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.nx-js .nxv .nxv-side--r li{opacity:0;translate:-10px 0}
.nx-js .nxv.is-in .nxv-side--r li{animation:nxvIn .6s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--i) * 160ms + 3.1s)}
@keyframes nxvIn{to{opacity:1;translate:0 0}}

/* Cartes */
.nxv-col{grid-row:1;position:relative;z-index:2;padding:var(--top) clamp(5px,.45vw,9px) 0}
.nxv-card{--cx:50%;--cy:0%;position:relative;height:auto;border-radius:20px;padding:clamp(16px,1.3vw,22px) clamp(14px,1.2vw,20px) clamp(18px,1.4vw,24px);background:rgba(255,255,255,.92);border:1px solid #E4ECF3;
  box-shadow:0 1px 0 #fff inset,0 24px 50px -34px rgba(11,34,56,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:hidden;isolation:isolate;transition:transform .5s var(--nx-ease),box-shadow .5s,border-color .4s}
.nxv-card::after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .45s;background:radial-gradient(360px circle at var(--cx) var(--cy),color-mix(in srgb,var(--c) 14%,transparent),transparent 60%)}
.nxv-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--c) 35%,#E4ECF3);box-shadow:0 1px 0 #fff inset,0 34px 60px -34px rgba(11,34,56,.5)}
.nxv-card:hover::after{opacity:1}
.nxv-tag{display:inline-block;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;margin-bottom:12px}
.nxv-tag--fin{background:#E8F1FF;color:#1565D8}
.nxv-tag--data{background:#DDF7F2;color:#0B8E83}
.nxv-tag--ia{background:#E3F4FF;color:#1B7FD6}
.nxv-tag--gov{background:#DDF7F2;color:#0B8E83}
.nxv-card h3{font-size:clamp(16px,1.25vw,21px);line-height:1.25;font-weight:800;letter-spacing:-.02em;color:var(--v-ink);margin-bottom:10px}
.nxv-card p{font-size:clamp(12.5px,.88vw,15px);line-height:1.6;color:var(--v-txt)}
.nx-js .nxv .nxv-card{opacity:0;translate:0 30px}
.nx-js .nxv.is-in .nxv-card{animation:nxvIn2 .9s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--d) + 120ms)}
@keyframes nxvIn2{to{opacity:1;translate:0 0}}

/* Bandeau final */
.nxv-close{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(18px,2.4vw,40px);max-width:1280px;margin:clamp(36px,4vw,60px) auto 0;padding:clamp(18px,2vw,28px) clamp(20px,4vw,72px);border-radius:28px;background:#fff;box-shadow:0 30px 70px -40px rgba(11,34,56,.35),0 1px 0 #fff inset;border:1px solid #EDF2F7}
.nxv-target{position:relative;flex-shrink:0;width:clamp(64px,5.4vw,90px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#1E8BFF,#14C9B8);box-shadow:0 18px 34px -14px rgba(20,140,220,.7)}
.nxv-target svg{width:52%;height:52%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nxv-target .arrow{transform-origin:12px 12px}
.nx-js .nxv.is-in .nxv-target .arrow{animation:nxvShoot .9s 3.4s cubic-bezier(.3,1.5,.5,1) both}
@keyframes nxvShoot{from{transform:translate(9px,-9px);opacity:0}to{transform:none;opacity:1}}
.nxv-target::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(30,139,255,.25);animation:nxvPing 2.6s ease-out infinite}
.nxv-close__sep{width:1px;align-self:stretch;background:#E2E9EF}
.nxv-close h3{font-size:clamp(20px,2vw,36px);font-weight:800;letter-spacing:-.035em;color:var(--v-ink);line-height:1.15}
.nxv-close h3 em{font-style:normal;color:#14B8A6}
.nxv-close p{margin-top:8px;font-size:clamp(14px,1.2vw,19px);color:var(--v-txt)}
.nx-js .nxv .nxv-close{opacity:0;translate:0 26px}
.nx-js .nxv.is-in .nxv-close{animation:nxvIn2 1s 3s cubic-bezier(.16,1,.3,1) forwards}

/* Entrées en-tête */
.nx-js .nxv [data-in]{opacity:0;translate:0 24px}
.nx-js .nxv.is-in [data-in]{animation:nxvIn2 1s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--d,0s)}
.nx-js .nxv .nxv-title .ln>span{transform:translateY(110%)}
.nx-js .nxv.is-in .nxv-title .ln>span{animation:nxvRise 1.1s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--i) * 120ms + .1s)}
@keyframes nxvRise{to{transform:none}}

/* ---------- Responsive : frise verticale ---------- */
@media (max-width:1100px){
  .nxv-stage{grid-template-columns:1fr;margin-top:36px;padding-left:46px}
  .nxv-track,.nxv-node,.nxv-radar{display:none}
  .nxv-stage::before{content:"";position:absolute;left:18px;top:0;bottom:0;width:4px;border-radius:4px;background:linear-gradient(180deg,#9AA9B7 0%,#5FB3FF 30%,#2F8BFF 55%,#22D3C5 100%)}
  .nxv-pin{position:relative;left:auto;top:auto;transform:none;justify-items:start;grid-column:1;margin-left:-12px;padding-left:0}
  .nxv-pin i,.nxv-pin::after{display:none}
  .nxv-side,.nxv-col{grid-column:1!important;grid-row:auto!important;padding:0!important;margin-bottom:16px}
  .nxv-side--l{order:1}.nxv-pin--l{order:0}
  .nxv-col{order:2}
  .nxv-pin--r{order:3;margin-top:10px}.nxv-side--r{order:4}
  .nxv-side ul{grid-template-columns:1fr 1fr;gap:10px 18px;margin:10px 0 18px}
  .nxv-col::before{content:attr(data-n);position:absolute;left:-46px;top:16px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c);font-weight:800;font-size:13px;box-shadow:0 0 0 4px #F6F9FC,0 6px 16px -6px rgba(11,34,56,.4)}
  .nxv-pin--r b,.nxv-pin--l b{font-size:12px;padding:9px 16px}
  .nxv-close{flex-wrap:wrap}
  .nxv-close__sep{display:none}
  .nxv-bg__m{width:70%;opacity:.35}
}
@media (max-width:560px){.nxv-side ul{grid-template-columns:1fr}.nxv-close{padding:20px}}

@media (prefers-reduced-motion:reduce){
  .nxv *,.nxv *::before,.nxv *::after{animation:none!important;transition:none!important}
  .nx-js .nxv [data-in],.nx-js .nxv .nxv-card,.nx-js .nxv .nxv-node,.nx-js .nxv .nxv-side--r li,.nx-js .nxv .nxv-close,.nx-js .nxv .nxv-pin--r,.nx-js .nxv .nxv-radar{opacity:1!important;translate:none!important;scale:none!important}
  .nx-js .nxv .nxv-title .ln>span{transform:none!important}
  .nx-js .nxv-track .line,.nx-js .nxv-track .halo{stroke-dashoffset:0!important}
}
.nxv.is-paused *,.nxv.is-paused *::before,.nxv.is-paused *::after{animation-play-state:paused!important}
