/* visual-event.fr — nuit, lumière, couleur. Préfixe ve-. */

:root{
  --nuit:#05090f;
  --nuit2:#0a1420;
  --nuit3:#0f1d2e;
  --bleu:#2f6fd0;
  --bleu-vif:#4d90ff;
  --cyan:#22d3ee;
  --violet:#8b5cf6;
  --rose:#e879f9;
  --blanc:#fff;
  --texte:#9db2cc;
  --texte2:#6d829c;
  --verre:rgba(255,255,255,.045);
  --verre2:rgba(255,255,255,.08);
  --bord:rgba(255,255,255,.09);
  --degrade:linear-gradient(112deg,var(--bleu) 0%,var(--violet) 48%,var(--cyan) 100%);
  --degrade2:linear-gradient(130deg,var(--cyan),var(--bleu-vif) 45%,var(--violet) 80%,var(--rose));
  --lueur:0 0 60px rgba(47,111,208,.45);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--nuit)}
body{margin:0;background:var(--nuit);color:var(--texte);
  font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;line-height:1.72;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
/* voile de grain + halos fixes */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 82% 8%,rgba(139,92,246,.16),transparent 62%),
    radial-gradient(52vw 52vw at 8% 42%,rgba(47,111,208,.14),transparent 62%),
    radial-gradient(48vw 48vw at 92% 78%,rgba(34,211,238,.10),transparent 62%)}
body>*{position:relative;z-index:1}
img{max-width:100%;height:auto;display:block}
a{color:var(--bleu-vif);text-decoration:none}

h1,h2,h3,h4{font-family:"Bricolage Grotesque",Inter,sans-serif;color:#fff;margin:0 0 .7rem;
  font-weight:800;line-height:.96;letter-spacing:-.048em;font-optical-sizing:auto}
h1{font-size:clamp(3.1rem,8.6vw,7.4rem)}
h2{font-size:clamp(2.2rem,5.4vw,4.4rem)}
h3{font-size:1.5rem;line-height:1.08;letter-spacing:-.038em}
p{margin:0 0 1.1rem}
strong{color:#e8f0fa;font-weight:600}
:focus-visible{outline:2.5px solid var(--cyan);outline-offset:4px}
::selection{background:var(--violet);color:#fff}

.ve-conteneur{width:100%;max-width:1340px;margin:0 auto;padding:0 34px}
.ve-etroit{max-width:880px}

/* ====== Animations ====== */
.ve-anim{opacity:0;transform:translateY(42px);
  transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.ve-anim.ve-vu{opacity:1;transform:none}
.ve-anim:nth-child(2){transition-delay:.08s}.ve-anim:nth-child(3){transition-delay:.16s}
.ve-anim:nth-child(4){transition-delay:.24s}.ve-anim:nth-child(5){transition-delay:.32s}
.ve-anim:nth-child(6){transition-delay:.4s}
.ve-reveal img,.ve-reveal video{clip-path:inset(0 0 100% 0);transform:scale(1.14);
  transition:clip-path 1.4s cubic-bezier(.16,1,.3,1),transform 1.7s cubic-bezier(.16,1,.3,1)}
.ve-reveal.ve-vu img,.ve-reveal.ve-vu video{clip-path:inset(0 0 0 0);transform:scale(1)}
@media(prefers-reduced-motion:reduce){
  .ve-anim{opacity:1;transform:none;transition:none}
  .ve-reveal img,.ve-reveal video{clip-path:none;transform:none;transition:none}}

/* ====== En-tête ====== */
.ve-entete{position:sticky;top:0;z-index:80;background:rgba(5,9,15,.72);
  backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid var(--bord)}
.ve-entete__in{display:flex;align-items:center;gap:1.8rem;padding:1.05rem 0}
.ve-marque{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.3rem;
  letter-spacing:-.06em;color:#fff;white-space:nowrap;line-height:1}
.ve-marque span{background:var(--degrade2);-webkit-background-clip:text;background-clip:text;color:transparent}
.ve-menu{display:flex;gap:1.75rem;margin-left:auto;align-items:center}
.ve-menu a{color:var(--texte);font-size:.88rem;font-weight:500;white-space:nowrap;position:relative;
  padding:.25rem 0;transition:color .3s}
.ve-menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--degrade2);
  transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.16,1,.3,1);
  box-shadow:0 0 12px rgba(77,144,255,.8)}
.ve-menu a:hover{color:#fff}
.ve-menu a:hover::after,.ve-menu a.ve-actif::after{transform:scaleX(1);transform-origin:left}
.ve-menu a.ve-actif{color:#fff;font-weight:600}
.ve-entete__cta{display:flex;gap:.6rem;align-items:center}

/* ====== Boutons ====== */
.ve-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1.05rem 2rem;
  border-radius:100px;font-weight:600;font-size:.95rem;border:1.5px solid transparent;cursor:pointer;
  line-height:1.2;position:relative;overflow:hidden;letter-spacing:-.01em;
  transition:color .45s cubic-bezier(.16,1,.3,1),border-color .45s,transform .45s,box-shadow .45s}
.ve-btn>span{position:relative;z-index:2}
.ve-btn::before{content:"";position:absolute;inset:0;z-index:1;transform:translateY(101%);
  transition:transform .55s cubic-bezier(.16,1,.3,1)}
.ve-btn:hover::before{transform:translateY(0)}
.ve-btn:hover{transform:translateY(-3px)}
.ve-btn--tel{background:#fff;color:var(--nuit);box-shadow:0 8px 30px rgba(255,255,255,.14)}
.ve-btn--tel::before{background:var(--degrade2)}
.ve-btn--tel:hover{color:#fff;box-shadow:0 12px 44px rgba(77,144,255,.5)}
.ve-btn--devis{background:var(--degrade2);color:#fff;background-size:200% 200%;
  box-shadow:0 8px 34px rgba(139,92,246,.45);animation:ve-pulse 7s ease infinite}
@keyframes ve-pulse{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.ve-btn--devis::before{background:#fff}
.ve-btn--devis:hover{color:var(--nuit);box-shadow:0 14px 50px rgba(139,92,246,.62)}
.ve-btn--clair{background:var(--verre);color:#fff;border-color:var(--bord);backdrop-filter:blur(10px)}
.ve-btn--clair::before{background:#fff}
.ve-btn--clair:hover{color:var(--nuit);border-color:#fff}
.ve-btn--sm{padding:.64rem 1.3rem;font-size:.87rem}

/* ====== Hero ====== */
.ve-hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;
  background:var(--nuit);padding:8rem 0 4.5rem}
.ve-hero--court{min-height:62vh;padding:7rem 0 5rem;align-items:center}
.ve-hero__fond{position:absolute;inset:0;z-index:0}
.ve-hero__fond video,.ve-hero__fond img{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.ve-hero__voile{position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,var(--nuit) 1%,rgba(5,9,15,.78) 38%,rgba(5,9,15,.3) 100%)}
.ve-hero__lueur{position:absolute;z-index:1;width:78vw;height:78vw;max-width:1050px;max-height:1050px;
  border-radius:50%;filter:blur(130px);opacity:.75;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(139,92,246,.7),rgba(47,111,208,.35) 42%,transparent 68%);
  top:-30%;right:-16%;animation:ve-flotte 18s ease-in-out infinite}
.ve-hero::after{content:"";position:absolute;z-index:1;width:56vw;height:56vw;max-width:740px;max-height:740px;
  border-radius:50%;filter:blur(130px);opacity:.6;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(34,211,238,.55),transparent 66%);
  bottom:-26%;left:-14%;animation:ve-flotte2 23s ease-in-out infinite}
@keyframes ve-flotte{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-9%,10%) scale(1.25)}}
@keyframes ve-flotte2{0%,100%{transform:translate(0,0) scale(1.1)}50%{transform:translate(12%,-9%) scale(.92)}}
.ve-hero .ve-conteneur{position:relative;z-index:2}
.ve-hero__grille{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:end}
.ve-hero__txt{grid-column:1/span 8}
.ve-hero__aside{grid-column:10/span 3;padding-bottom:.6rem}
.ve-hero h1{color:#fff;margin:1.3rem 0 1.7rem;max-width:13ch;text-shadow:0 4px 60px rgba(0,0,0,.5)}
.ve-hero--court h1{max-width:18ch;font-size:clamp(2.7rem,6.2vw,5rem)}
.ve-hero h1 em{font-style:normal;background:var(--degrade2);background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:ve-pulse 9s ease infinite}
.ve-chapo{font-size:clamp(1.05rem,1.6vw,1.24rem);color:#b6c8de;max-width:52ch;margin-bottom:2.4rem;line-height:1.68}
.ve-chapo strong{color:#fff;font-weight:500}
.ve-surtitre{font-family:"JetBrains Mono",monospace;font-size:.68rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--cyan);font-weight:500;display:inline-block;
  text-shadow:0 0 22px rgba(34,211,238,.65)}
.ve-actions{display:flex;flex-wrap:wrap;gap:.9rem}
.ve-repere{display:flex;flex-direction:column;gap:1.1rem;font-size:.8rem;color:var(--texte2);
  font-family:"JetBrains Mono",monospace;letter-spacing:.02em}
.ve-repere span{display:block;line-height:1.45}
.ve-repere span::before{content:"";display:block;width:20px;height:2px;background:var(--degrade2);
  margin-bottom:.55rem;box-shadow:0 0 12px rgba(77,144,255,.85)}
.ve-hero__img{margin-top:3.5rem;overflow:hidden;border-radius:10px;
  box-shadow:0 40px 100px rgba(0,0,0,.6),0 0 0 1px var(--bord)}
.ve-hero__img img{width:100%;aspect-ratio:21/9;object-fit:cover}
@media(max-width:900px){
  .ve-hero__grille{grid-template-columns:1fr}
  .ve-hero__txt,.ve-hero__aside{grid-column:1}
  .ve-repere{flex-direction:row;flex-wrap:wrap;gap:1rem 2.2rem;margin-top:1rem}
}

/* ====== Ruban ====== */
.ve-ruban{background:var(--degrade2);background-size:200% 100%;animation:ve-pulse 12s ease infinite;
  color:#fff;padding:1.15rem 0;overflow:hidden;white-space:nowrap;
  box-shadow:0 0 50px rgba(139,92,246,.35)}
.ve-ruban__piste{display:inline-flex;gap:3.2rem;animation:ve-defile 38s linear infinite;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.04rem;letter-spacing:-.025em;
  text-transform:uppercase;align-items:center}
.ve-ruban__piste span{display:inline-flex;align-items:center;gap:3.2rem;color:#fff}
.ve-ruban__piste span::after{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.75)}
@keyframes ve-defile{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ve-ruban__piste,.ve-ruban,.ve-btn--devis,.ve-hero h1 em{animation:none}}

/* ====== Sections ====== */
.ve-sect{padding:8.5rem 0;position:relative}
.ve-sect--gris{background:var(--nuit2)}
.ve-sect--sombre,.ve-sombre{background:var(--nuit3)}
.ve-intro{font-size:1.18rem;max-width:56ch;margin-bottom:4rem;color:var(--texte);line-height:1.72}
.ve-titre-mono{font-family:"JetBrains Mono",monospace;font-size:.68rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--cyan);font-weight:500;display:block;margin-bottom:1.5rem;
  position:relative;padding-left:2.8rem;text-shadow:0 0 20px rgba(34,211,238,.5)}
.ve-titre-mono::before{content:"";position:absolute;left:0;top:.5em;width:2rem;height:2px;
  background:var(--degrade2);box-shadow:0 0 12px rgba(77,144,255,.8)}
.ve-entete-sect{display:grid;grid-template-columns:repeat(12,1fr);gap:2.5rem;margin-bottom:4.5rem;align-items:end}
.ve-entete-sect>div:first-child{grid-column:1/span 7}
.ve-entete-sect>div:last-child{grid-column:8/span 5;padding-bottom:.4rem}
.ve-entete-sect .ve-intro{margin-bottom:0}
@media(max-width:900px){.ve-entete-sect{grid-template-columns:1fr;gap:1.4rem;margin-bottom:3rem}
  .ve-entete-sect>div{grid-column:1 !important}}

/* ====== Bento ====== */
.ve-bento{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}
.ve-bento>*{grid-column:span 4}
.ve-bento>.ve-b8{grid-column:span 8}
.ve-bento>.ve-b6{grid-column:span 6}
@media(max-width:1000px){.ve-bento>*{grid-column:span 6 !important}}
@media(max-width:680px){.ve-bento>*{grid-column:span 12 !important}}
.ve-grille{display:grid;gap:1.8rem}
.ve-g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.ve-g3{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}

/* ====== Cartes verre ====== */
.ve-carte{background:var(--verre);border:1px solid var(--bord);border-radius:14px;padding:2.4rem;
  position:relative;overflow:hidden;backdrop-filter:blur(14px);
  transition:transform .65s cubic-bezier(.16,1,.3,1),box-shadow .65s,border-color .65s,background .65s}
.ve-carte::after{content:"";position:absolute;inset:0;border-radius:14px;padding:1px;pointer-events:none;
  background:var(--degrade2);-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 .6s}
.ve-carte:hover::after{opacity:1}
.ve-carte:hover{transform:translateY(-9px);background:var(--verre2);
  box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 70px rgba(47,111,208,.22)}
.ve-carte h3{margin-bottom:.9rem}
.ve-carte p:last-child{margin-bottom:0}
.ve-carte__lien{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.3rem;font-weight:600;
  font-size:.79rem;color:var(--cyan);font-family:"JetBrains Mono",monospace;letter-spacing:.08em;
  text-transform:uppercase}
.ve-carte__lien::after{content:"→";transition:transform .5s cubic-bezier(.16,1,.3,1)}
.ve-carte:hover .ve-carte__lien::after{transform:translateX(8px)}
.ve-carte--img{padding:0;display:flex;flex-direction:column}
.ve-carte__media{aspect-ratio:4/3;overflow:hidden;background:var(--nuit2);flex:none;position:relative}
.ve-b8 .ve-carte__media,.ve-b6 .ve-carte__media{aspect-ratio:16/9}
.ve-carte__media::before{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(to top,rgba(5,9,15,.75),transparent 55%);pointer-events:none}
.ve-carte__media img,.ve-carte__media video{width:100%;height:107%;object-fit:cover;
  filter:saturate(1.2) contrast(1.06);transform:translateY(var(--par,0));
  transition:transform 1.3s cubic-bezier(.16,1,.3,1),filter .7s}
.ve-carte:hover .ve-carte__media img,.ve-carte:hover .ve-carte__media video{
  transform:translateY(var(--par,0)) scale(1.07);filter:saturate(1.35) contrast(1.1)}
.ve-carte__corps{padding:2.1rem;flex:1}
.ve-carte__corps>*:last-child{margin-bottom:0}
.ve-carte--texte{padding:2.4rem}
.ve-carte--accent{background:linear-gradient(150deg,rgba(47,111,208,.22),rgba(139,92,246,.14) 60%,var(--verre));
  border-color:rgba(139,92,246,.35)}
.ve-carte--accent strong{color:var(--cyan)}
.ve-num{font-family:"Bricolage Grotesque",sans-serif;font-size:3.4rem;font-weight:800;line-height:.82;
  background:var(--degrade2);-webkit-background-clip:text;background-clip:text;color:transparent;
  display:block;margin-bottom:1.2rem;letter-spacing:-.07em}

/* ====== Listes ====== */
.ve-liste{list-style:none;padding:0;margin:0}
.ve-liste li{position:relative;padding-left:1.9rem;margin-bottom:.85rem}
.ve-liste li::before{content:"";position:absolute;left:0;top:.66em;width:12px;height:2px;
  background:var(--degrade2);box-shadow:0 0 10px rgba(77,144,255,.7)}
.ve-liste--non li::before{background:var(--texte2);box-shadow:none}
.ve-liste--ok li::before{width:9px;height:9px;border-radius:50%;top:.55em}

/* ====== Étapes ====== */
.ve-etapes{counter-reset:e;list-style:none;padding:0;margin:0}
.ve-etapes li{counter-increment:e;position:relative;padding-left:5.4rem;margin-bottom:2.4rem;
  padding-bottom:2.4rem;border-bottom:1px solid var(--bord)}
.ve-etapes li:last-child{border-bottom:none;padding-bottom:0}
.ve-etapes li::before{content:counter(e,decimal-leading-zero);position:absolute;left:0;top:-.15em;
  font-family:"Bricolage Grotesque",sans-serif;font-size:2.1rem;font-weight:800;letter-spacing:-.06em;
  background:var(--degrade2);-webkit-background-clip:text;background-clip:text;color:transparent}
.ve-etapes strong{display:block;color:#fff;margin-bottom:.45rem;font-size:1.3rem;font-weight:800;
  font-family:"Bricolage Grotesque",sans-serif;letter-spacing:-.038em;line-height:1.1}

/* ====== Tableaux ====== */
.ve-tab{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:1rem;background:var(--verre);
  border:1px solid var(--bord);border-radius:14px;overflow:hidden;backdrop-filter:blur(12px)}
.ve-tab th,.ve-tab td{text-align:left;padding:1.35rem 1.6rem;border-bottom:1px solid var(--bord);vertical-align:top}
.ve-tab th{font-family:"JetBrains Mono",monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--texte2);font-weight:500;background:rgba(255,255,255,.03)}
.ve-tab td{color:var(--texte)}
.ve-tab tr:last-child td{border-bottom:none}
.ve-tab tbody tr{transition:background .35s}
.ve-tab tbody tr:hover{background:rgba(255,255,255,.04)}
.ve-tab .ve-prix{font-family:"Bricolage Grotesque",sans-serif;white-space:nowrap;font-weight:800;
  font-size:1.6rem;letter-spacing:-.045em;background:var(--degrade2);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ve-tab small{display:block;color:var(--texte2);font-size:.87rem;margin-top:.3rem;line-height:1.5}
.ve-tab-wrap{overflow-x:auto}

/* ====== Chiffres ====== */
.ve-chiffres{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ve-chiffre{padding:2.6rem 1.8rem;background:var(--verre);border:1px solid var(--bord);border-radius:14px;
  backdrop-filter:blur(12px);transition:background .45s,transform .5s,box-shadow .5s}
.ve-chiffre:hover{background:var(--verre2);transform:translateY(-6px);box-shadow:0 30px 70px rgba(0,0,0,.5)}
.ve-chiffre b{display:block;font-family:"Bricolage Grotesque",sans-serif;
  font-size:clamp(2.9rem,5.2vw,4.4rem);line-height:.86;margin-bottom:.7rem;font-weight:800;letter-spacing:-.06em;
  background:var(--degrade2);-webkit-background-clip:text;background-clip:text;color:transparent}
.ve-chiffre span{font-size:.88rem;color:var(--texte2);line-height:1.5;display:block}

/* ====== Encadrés ====== */
.ve-note{position:relative;background:var(--verre);padding:2rem 2.2rem;margin:2.4rem 0;font-size:1.02rem;
  border-radius:12px;border:1px solid var(--bord);overflow:hidden}
.ve-note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--degrade2);
  box-shadow:0 0 22px rgba(77,144,255,.7)}
.ve-note p:last-child{margin-bottom:0}
.ve-bandeau{background:linear-gradient(120deg,rgba(47,111,208,.22),rgba(139,92,246,.14));
  border:1px solid rgba(139,92,246,.3);color:var(--texte);padding:2.8rem;border-radius:16px;
  display:flex;flex-wrap:wrap;gap:2rem;align-items:center;justify-content:space-between;
  position:relative;overflow:hidden;backdrop-filter:blur(12px)}
.ve-bandeau p{margin:0;max-width:58ch}
.ve-visuel{overflow:hidden;border-radius:14px;box-shadow:0 34px 80px rgba(0,0,0,.55);border:1px solid var(--bord)}
.ve-visuel img{width:100%;filter:saturate(1.15)}
.ve-visuel figcaption{padding:1.2rem 1.5rem;font-size:.9rem;color:var(--texte2);background:var(--verre)}
.ve-duo{display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:center}

/* ====== FAQ ====== */
.ve-faq{border-top:1px solid var(--bord)}
.ve-faq details{border-bottom:1px solid var(--bord)}
.ve-faq summary{cursor:pointer;padding:1.8rem 0;font-family:"Bricolage Grotesque",sans-serif;font-weight:700;
  color:#fff;list-style:none;display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;
  letter-spacing:-.032em;font-size:1.28rem;line-height:1.18;transition:color .35s}
.ve-faq summary:hover{color:var(--cyan)}
.ve-faq summary::-webkit-details-marker{display:none}
.ve-faq summary::after{content:"";width:13px;height:13px;flex:none;margin-top:.4em;
  background:linear-gradient(var(--cyan),var(--cyan)) center/100% 2px no-repeat,
             linear-gradient(var(--cyan),var(--cyan)) center/2px 100% no-repeat;
  transition:transform .55s cubic-bezier(.16,1,.3,1)}
.ve-faq details[open] summary::after{transform:rotate(135deg)}
.ve-faq details>div{padding-bottom:1.8rem;max-width:72ch}
.ve-faq details>div p:last-child{margin-bottom:0}

/* ====== CTA ====== */
.ve-cta{position:relative;padding:4.8rem;overflow:hidden;border-radius:20px;color:var(--texte);
  background:linear-gradient(135deg,rgba(47,111,208,.3),rgba(139,92,246,.2) 55%,rgba(34,211,238,.14));
  border:1px solid rgba(139,92,246,.32);display:flex;flex-wrap:wrap;gap:2.5rem;align-items:center;
  justify-content:space-between;backdrop-filter:blur(14px)}
.ve-cta::before{content:"";position:absolute;width:820px;height:820px;border-radius:50%;filter:blur(130px);
  background:radial-gradient(circle,rgba(139,92,246,.6),transparent 66%);top:-65%;right:-8%;
  mix-blend-mode:screen}
.ve-cta>*{position:relative;z-index:1}
.ve-cta h2{color:#fff;margin-bottom:.8rem}
.ve-cta p{margin:0;max-width:50ch;color:#c3d3e6}

/* ====== Formulaire ====== */
.ve-champ{margin-bottom:1.6rem}
.ve-champ label{display:block;font-weight:500;color:#dbe6f2;margin-bottom:.5rem;font-size:.7rem;
  font-family:"JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase}
.ve-champ input,.ve-champ select,.ve-champ textarea{width:100%;padding:1.05rem 1.2rem;font-size:16px;
  font-family:inherit;color:#fff;background:var(--verre);border:1.5px solid var(--bord);border-radius:10px;
  transition:border-color .3s,box-shadow .3s,background .3s}
.ve-champ input::placeholder,.ve-champ textarea::placeholder{color:var(--texte2)}
.ve-champ input:focus,.ve-champ select:focus,.ve-champ textarea:focus{border-color:var(--cyan);outline:none;
  background:var(--verre2);box-shadow:0 0 0 4px rgba(34,211,238,.13)}
.ve-champ select option{background:var(--nuit2);color:#fff}
.ve-ligne{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ve-cases{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ve-cases label{display:flex;gap:.7rem;align-items:flex-start;font-weight:400;font-size:.95rem;cursor:pointer;
  padding:.95rem 1.1rem;border:1.5px solid var(--bord);border-radius:10px;background:var(--verre);
  color:var(--texte);text-transform:none;font-family:Inter,sans-serif;letter-spacing:0;
  transition:border-color .3s,background .3s,color .3s}
.ve-cases label:hover{border-color:var(--cyan);background:var(--verre2);color:#fff}
.ve-cases input{width:auto;margin-top:.25rem;accent-color:var(--cyan)}
.ve-oblig{color:var(--cyan)}

/* ====== Pied ====== */
.ve-pied{background:var(--nuit2);color:var(--texte2);padding:6rem 0 2.4rem;font-size:.95rem;
  position:relative;overflow:hidden;border-top:1px solid var(--bord)}
.ve-pied::before{content:"";position:absolute;width:900px;height:900px;border-radius:50%;filter:blur(150px);
  background:radial-gradient(circle,rgba(47,111,208,.26),transparent 70%);bottom:-75%;left:-18%;
  mix-blend-mode:screen}
.ve-pied>*{position:relative;z-index:1}
.ve-pied__g{display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));margin-bottom:4rem}
.ve-pied h4{color:var(--cyan);font-family:"JetBrains Mono",monospace;font-size:.64rem;letter-spacing:.24em;
  text-transform:uppercase;margin-bottom:1.4rem;font-weight:500}
.ve-pied a{color:var(--texte2);display:block;padding:.3rem 0;transition:color .3s,transform .4s}
.ve-pied a:hover{color:#fff;transform:translateX(5px)}
.ve-pied__bas{border-top:1px solid var(--bord);padding-top:1.8rem;display:flex;flex-wrap:wrap;
  gap:.8rem 2rem;justify-content:space-between;font-size:.82rem;color:#566d87}

/* ====== Barre fixe mobile ====== */
.ve-barre{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;gap:1px;background:var(--bord);
  box-shadow:0 -6px 34px rgba(0,0,0,.6)}
.ve-barre a{flex:1;padding:1.15rem;text-align:center;font-weight:700;font-size:.95rem;
  font-family:"Bricolage Grotesque",sans-serif;letter-spacing:-.025em}
.ve-barre a:first-child{background:var(--nuit2);color:#fff}
.ve-barre a:last-child{background:var(--degrade2);color:#fff}

/* ====== Fil d'Ariane ====== */
.ve-fil{font-size:.72rem;color:var(--texte2);padding:1.3rem 0 0;font-family:"JetBrains Mono",monospace;
  letter-spacing:.12em;text-transform:uppercase}
.ve-fil a{color:var(--texte2)}
.ve-fil a:hover{color:var(--cyan)}

/* ====== Chiffres en grand ====== */
.ve-roi{position:relative;overflow:hidden;border-radius:20px;padding:4rem 3.5rem;
  background:linear-gradient(135deg,rgba(47,111,208,.26),rgba(139,92,246,.16) 55%,rgba(34,211,238,.1));
  border:1px solid rgba(139,92,246,.3);backdrop-filter:blur(14px)}
.ve-roi::before{content:"";position:absolute;width:840px;height:840px;border-radius:50%;filter:blur(140px);
  background:radial-gradient(circle,rgba(139,92,246,.5),transparent 66%);top:-62%;right:-10%;
  mix-blend-mode:screen}
.ve-roi>*{position:relative;z-index:1}
.ve-roi__grille{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:3rem}
.ve-roi__item b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(3.4rem,7vw,5.6rem);line-height:.84;letter-spacing:-.065em;margin-bottom:.8rem;
  background:var(--degrade2);-webkit-background-clip:text;background-clip:text;color:transparent}
.ve-roi__item strong{display:block;color:#fff;font-size:1.02rem;font-weight:600;margin-bottom:.35rem;
  letter-spacing:-.015em}
.ve-roi__item span{display:block;font-size:.9rem;color:var(--texte2);line-height:1.5}
@media(max-width:640px){.ve-roi{padding:2.4rem 1.8rem}.ve-roi__grille{gap:2rem;margin-top:2rem}}

/* ====== Mosaïque de reportage ====== */
.ve-mosaique{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;grid-auto-flow:dense}
.ve-mosaique figure{margin:0;position:relative;overflow:hidden;border-radius:12px;border:1px solid var(--bord);
  background:var(--nuit2)}
.ve-mosaique img{width:100%;height:100%;object-fit:cover;filter:saturate(1.18) contrast(1.05);
  transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .6s}
.ve-mosaique figure::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,9,15,.7),transparent 48%);opacity:0;transition:opacity .5s}
.ve-mosaique figure:hover::after{opacity:1}
.ve-mosaique figure:hover img{transform:scale(1.07);filter:saturate(1.4)}
.ve-mosaique figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.2rem 1rem;z-index:2;
  font-family:"JetBrains Mono",monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.ve-mosaique figure:hover figcaption{opacity:1;transform:none}
.ve-mosaique .ve-m2{grid-column:span 2}
.ve-mosaique .ve-m2h{grid-row:span 2}
.ve-mosaique figure{aspect-ratio:4/3}
.ve-mosaique .ve-m2h{aspect-ratio:auto}
@media(max-width:900px){.ve-mosaique{grid-template-columns:repeat(2,1fr)}
  .ve-mosaique .ve-m2{grid-column:span 2}.ve-mosaique .ve-m2h{grid-row:span 1;aspect-ratio:4/3}}
@media(max-width:560px){.ve-mosaique{grid-template-columns:1fr}
  .ve-mosaique .ve-m2{grid-column:span 1}}

/* ====== Projecteur qui suit la souris ====== */
.ve-carte{--mx:50%;--my:50%}
.ve-carte::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  opacity:0;transition:opacity .5s;
  background:radial-gradient(420px circle at var(--mx) var(--my),rgba(77,144,255,.16),transparent 62%)}
.ve-carte:hover::before{opacity:1}
.ve-carte>*{position:relative;z-index:1}

/* ====== Barre de progression ====== */
.ve-progres{position:fixed;top:0;left:0;height:2px;width:0;z-index:100;background:var(--degrade2);
  box-shadow:0 0 14px rgba(77,144,255,.9);transition:width .1s linear}

/* ====== Galerie défilante ====== */
.ve-galerie{overflow:hidden;padding:0;position:relative}
.ve-galerie::before,.ve-galerie::after{content:"";position:absolute;top:0;bottom:0;width:14vw;z-index:2;
  pointer-events:none}
.ve-galerie::before{left:0;background:linear-gradient(90deg,var(--nuit),transparent)}
.ve-galerie::after{right:0;background:linear-gradient(270deg,var(--nuit),transparent)}
.ve-galerie__piste{display:flex;gap:1.1rem;animation:ve-defile 52s linear infinite;width:max-content}
.ve-galerie__piste:hover{animation-play-state:paused}
.ve-galerie__piste figure{margin:0;flex:none;width:clamp(240px,26vw,380px);border-radius:12px;
  overflow:hidden;border:1px solid var(--bord);position:relative}
.ve-galerie__piste img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(1.2) contrast(1.05);
  transition:filter .5s,transform .8s cubic-bezier(.16,1,.3,1)}
.ve-galerie__piste figure:hover img{transform:scale(1.06);filter:saturate(1.4)}
.ve-galerie__piste figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.2rem .9rem;
  font-family:"JetBrains Mono",monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;background:linear-gradient(to top,rgba(5,9,15,.92),transparent)}
@media(prefers-reduced-motion:reduce){.ve-galerie__piste{animation:none}}

/* ====== Bande immersive ====== */
.ve-immersif{position:relative;min-height:74vh;display:flex;align-items:center;overflow:hidden;
  background:var(--nuit)}
.ve-immersif__fond{position:absolute;inset:0;z-index:0}
.ve-immersif__fond img{width:100%;height:100%;object-fit:cover;filter:saturate(1.25) contrast(1.08)}
.ve-immersif__voile{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(5,9,15,.95) 0%,rgba(5,9,15,.78) 42%,rgba(5,9,15,.25) 100%)}
.ve-immersif .ve-conteneur{position:relative;z-index:2}
.ve-immersif h2{max-width:16ch;margin-bottom:1.2rem}
.ve-immersif p{max-width:46ch;font-size:1.12rem;color:#c3d3e6}
@media(max-width:640px){.ve-immersif{min-height:auto;padding:4rem 0}
  .ve-immersif__voile{background:linear-gradient(0deg,rgba(5,9,15,.96) 20%,rgba(5,9,15,.7) 100%)}}

@media(max-width:1080px){
  .ve-entete__in{flex-wrap:wrap;gap:.8rem 1rem;padding:.9rem 0}
  .ve-entete__cta{margin-left:auto}
  .ve-menu{order:3;width:100%;margin-left:0;gap:1.4rem;padding:.2rem 0 .3rem;overflow-x:auto;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ve-menu::-webkit-scrollbar{display:none}
  .ve-barre{display:flex}
  body{padding-bottom:62px}
  .ve-sect{padding:5.5rem 0}
}
@media(max-width:520px){.ve-entete__cta .ve-btn--devis{display:none}}
@media(max-width:640px){
  body{font-size:16px}
  .ve-conteneur{padding:0 20px}
  .ve-sect{padding:4.2rem 0}
  .ve-hero{min-height:90vh;padding:6rem 0 3rem}
  .ve-hero--court{min-height:auto;padding:4.5rem 0 3.5rem}
  .ve-cta{padding:2.2rem;flex-direction:column;align-items:flex-start}
  .ve-bandeau{padding:2rem;flex-direction:column;align-items:flex-start}
  .ve-actions .ve-btn{flex:1 1 100%}
  .ve-carte,.ve-carte--texte{padding:1.8rem}
  .ve-etapes li{padding-left:0;padding-top:3rem}
  .ve-etapes li::before{top:0}
}
