/* 3Vision Home V4 — premium, fidèle à la charte, sans surcharge */
.vg4-home{
 --navy:#0a1331;--navy2:#0d183a;--navy3:#071025;--blue:#3aa4ff;--green:#16c784;
 --bg:#f7f9fc;--card:#fff;--border:#e6eefb;--ink:#0b1321;--muted:#5b6b85;--muted2:#94a3b8;
 --r:18px;--max:1240px;--grad:linear-gradient(135deg,#3aa4ff,#16c784);
 color:var(--ink);background:#fff;overflow:hidden;font-family:Manrope,Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
.vg4-home *{box-sizing:border-box}
.vg4-wrap{width:min(var(--max),calc(100% - 48px));margin:0 auto}
.vg4-section{padding:92px 0}.vg4-alt{background:var(--bg)}
.vg4-kicker{font-size:10px;font-weight:950;color:var(--blue);letter-spacing:.12em;text-transform:uppercase}
.vg4-head{display:grid;grid-template-columns:1fr .72fr;gap:50px;align-items:end;margin-bottom:38px}
.vg4-head h2{font-size:clamp(32px,4vw,52px);line-height:1.04;letter-spacing:-.045em;margin:11px 0 0}
.vg4-head p{color:var(--muted);font-size:14px;line-height:1.75;margin:0}
.vg4-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;font-size:13px;font-weight:900;text-decoration:none;transition:.2s}
.vg4-btn:hover{transform:translateY(-2px)}
.vg4-primary{background:var(--grad);color:#fff;box-shadow:0 10px 25px rgba(58,164,255,.24)}
.vg4-outline{border:1px solid rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.06)}
.vg4-light{border:1px solid #dbe5f3;background:#fff;color:#10213d}

/* HERO */
.vg4-hero{position:relative;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 55%,var(--navy) 100%);color:#fff;overflow:hidden}
.vg4-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:52px 52px}
.vg4-hero:after{content:"";position:absolute;width:680px;height:680px;border-radius:50%;right:-250px;top:-270px;background:radial-gradient(circle,rgba(58,164,255,.24),rgba(22,199,132,.07) 38%,transparent 68%)}
.vg4-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:82px 0 86px}
.vg4-ey{display:inline-flex;align-items:center;gap:8px;color:#b8d9ff;background:rgba(58,164,255,.11);border:1px solid rgba(58,164,255,.3);padding:7px 12px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.vg4-ey i{width:7px;height:7px;background:var(--green);border-radius:50%}
.vg4-hero h1{font-size:clamp(46px,5.8vw,76px);line-height:.98;letter-spacing:-.055em;margin:20px 0 24px}
.vg4-gradient{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.vg4-lead{color:#c5d2e8;font-size:17px;line-height:1.72;max-width:700px;margin:0}
.vg4-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:28px}
.vg4-proof{display:flex;gap:18px;flex-wrap:wrap;margin-top:30px;padding-top:23px;border-top:1px solid rgba(255,255,255,.1)}
.vg4-proof span{font-size:10px;font-weight:800;color:#8fa3c5}.vg4-proof b{color:var(--green);margin-right:6px}
.vg4-console{background:linear-gradient(180deg,#0d1c42,#08122d);border:1px solid rgba(58,164,255,.28);border-radius:20px;padding:15px;box-shadow:0 35px 80px rgba(0,0,0,.34)}
.vg4-console-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:9px;font-weight:800;color:#7890b6}
.vg4-dots{display:flex;gap:5px}.vg4-dots i{width:7px;height:7px;border-radius:50%;background:#314365}.vg4-dots i:last-child{background:var(--green)}
.vg4-system{padding:20px 5px 5px}.vg4-flow{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:center;gap:5px}
.vg4-node{background:#0a1736;border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:13px;min-height:110px}
.vg4-node small{font-size:8px;font-weight:900;color:var(--blue);letter-spacing:.05em}.vg4-node h3{font-size:13px;margin:9px 0 6px}.vg4-node p{font-size:10px;line-height:1.5;color:#8095b9;margin:0}
.vg4-arrow{height:1px;background:var(--grad)}.vg4-term{margin-top:12px;background:#05091a;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:14px;font:10px/1.8 ui-monospace,Menlo,Consolas,monospace;color:#7288ad}
.vg4-term .b{color:#79c9ff}.vg4-term .g{color:#4be1ad}.vg4-term .w{color:#d9e6fb}
.vg4-strip{background:#fff;border-bottom:1px solid var(--border)}.vg4-strip .vg4-wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.vg4-strip a{padding:19px 18px;border-right:1px solid var(--border);font-size:9px;font-weight:900;color:#74829a;text-decoration:none}.vg4-strip a:last-child{border:0}.vg4-strip strong{display:block;color:var(--ink);font-size:14px;margin-top:6px}

/* SERVICES */
.vg4-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vg4-service{display:block;text-decoration:none;color:inherit;border:1px solid var(--border);background:#fff;border-radius:var(--r);padding:26px;min-height:235px;transition:.22s;position:relative;overflow:hidden}
.vg4-service:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(10,19,49,.08);border-color:#c9dbf5}
.vg4-service:nth-child(4){background:linear-gradient(145deg,#091634,#0d2450);border-color:rgba(58,164,255,.24);color:#fff}
.vg4-service:nth-child(4) p{color:#b9c9e8}.vg4-service:nth-child(4) .vg4-icon{background:rgba(58,164,255,.14);color:#7bcaff}
.vg4-icon{width:42px;height:42px;border-radius:12px;background:#edf6ff;color:var(--blue);display:grid;place-items:center;font-size:11px;font-weight:950}
.vg4-service h3{font-size:22px;margin:24px 0 9px;letter-spacing:-.02em}.vg4-service p{font-size:13.5px;color:#697991;line-height:1.7;margin:0}
.vg4-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:17px}.vg4-tags span{font-size:8px;font-weight:900;background:#f1f5fb;color:#66758e;padding:6px 8px;border-radius:999px}
.vg4-service:nth-child(4) .vg4-tags span{background:rgba(255,255,255,.07);color:#c6d7ef}

/* AI */
.vg4-ai{background:linear-gradient(145deg,var(--navy3),var(--navy2));color:#fff;position:relative;overflow:hidden}
.vg4-ai:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,rgba(58,164,255,.13),transparent 30%),radial-gradient(circle at 85% 70%,rgba(22,199,132,.09),transparent 28%)}
.vg4-ai .vg4-wrap{position:relative}.vg4-ai .vg4-head p{color:#9eb0cf}.vg4-ai .vg4-kicker{color:#6de0b3}
.vg4-ai-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}.vg4-panel{border:1px solid rgba(255,255,255,.09);background:rgba(7,16,37,.72);border-radius:18px;padding:23px}
.vg4-panel h3{font-size:21px;margin:10px 0}.vg4-panel>p{font-size:12.5px;color:#8fa4c5;line-height:1.7}
.vg4-rag{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:22px}.vg4-rag-item{background:#0a1735;border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:12px;min-height:108px}
.vg4-rag-item b{display:block;font-size:8px;color:var(--green);margin-bottom:10px}.vg4-rag-item strong{font-size:12px}.vg4-rag-item small{display:block;font-size:9px;line-height:1.5;color:#7187ab;margin-top:6px}
.vg4-assistant{margin-top:20px;border:1px solid rgba(255,255,255,.08);border-radius:13px;overflow:hidden}.vg4-assistant .bar{height:36px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;padding:0 12px;font-size:8px;font-weight:800;color:#6f86ac}
.vg4-chat{padding:14px;display:grid;gap:9px}.vg4-bubble{max-width:85%;padding:9px 11px;border-radius:10px;background:#10214a;font-size:10px;color:#bdcae0}.vg4-bubble.ai{margin-left:auto;background:linear-gradient(135deg,rgba(58,164,255,.2),rgba(22,199,132,.15));border:1px solid rgba(58,164,255,.18)}
.vg4-seo-map{height:220px;margin-top:20px;position:relative;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:#07112b;overflow:hidden}.vg4-seo-map svg{width:100%;height:100%}
.vg4-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.vg4-metric{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px}.vg4-metric span{font-size:8px;font-weight:900;color:#7087ad}.vg4-metric strong{display:block;font-size:13px;margin-top:5px;color:#dce8fb}

/* WORK */
.vg4-work{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.vg4-case,.vg4-mini{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden}
.vg4-visual{height:260px;background:linear-gradient(145deg,#0a1331,#0d2450);padding:20px}.vg4-ui{height:100%;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:#0b1939;padding:13px;display:grid;grid-template-columns:100px 1fr;gap:12px}
.vg4-sidebar{border-right:1px solid rgba(255,255,255,.08);padding-right:10px}.vg4-sidebar i{display:block;height:7px;border-radius:5px;background:#253a66;margin:9px 0}.vg4-sidebar i:nth-child(2){background:var(--blue);width:72%}
.vg4-dash{display:grid;grid-template-rows:40px 1fr;gap:9px}.vg4-dash>i{border:1px solid rgba(255,255,255,.08);border-radius:7px}.vg4-blocks{display:grid;grid-template-columns:1.2fr .8fr;gap:9px}.vg4-blocks i{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0d1f45}
.vg4-copy{padding:22px}.vg4-copy small,.vg4-mini small{font-size:8px;font-weight:900;color:var(--blue)}.vg4-copy h3{font-size:23px;margin:9px 0}.vg4-copy p,.vg4-mini p{font-size:12px;line-height:1.65;color:#69778f}
.vg4-stack{display:grid;gap:13px}.vg4-mini{padding:21px;min-height:183px}.vg4-mini h3{font-size:19px;margin:10px 0 7px}

/* WHY + CTA */
.vg4-about-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:28px;align-items:stretch}
.vg4-team-photo{margin:0;border-radius:20px;overflow:hidden;min-height:360px;background:#0a1331;box-shadow:0 18px 48px rgba(10,19,49,.12)}
.vg4-team-photo img{display:block;width:100%;height:100%;object-fit:cover}
.vg4-why{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.vg4-why article{border-top:2px solid var(--blue);padding:18px 10px 0 0}.vg4-why b{font-size:9px;font-weight:900;color:var(--green)}.vg4-why h3{font-size:16px;margin:10px 0 7px}.vg4-why p{font-size:11.5px;line-height:1.65;color:#6a7890}
.vg4-cta{background:var(--navy);color:#fff;padding:78px 0}.vg4-cta-box{border:1px solid rgba(58,164,255,.2);border-radius:20px;background:linear-gradient(135deg,#0d1b42,#0b1737);padding:40px;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.vg4-cta-box h2{font-size:clamp(30px,4vw,42px);margin:10px 0 10px}.vg4-cta-box p{color:#9fb0cb;line-height:1.7;max-width:720px;font-size:13px;margin:0}

@media(max-width:1000px){
 .vg4-hero-grid,.vg4-head,.vg4-ai-grid,.vg4-work,.vg4-cta-box,.vg4-about-grid{grid-template-columns:1fr}
 .vg4-team-photo{min-height:320px}
 .vg4-why{grid-template-columns:repeat(2,1fr)}
 .vg4-hero-grid{padding:65px 0}.vg4-console{max-width:720px}.vg4-service{min-height:220px}
}
@media(max-width:650px){
 .vg4-wrap{width:calc(100% - 32px)}.vg4-section{padding:62px 0}
 .vg4-hero-grid{padding:48px 0 58px;gap:36px}.vg4-hero h1{font-size:44px}.vg4-lead{font-size:15px}
 .vg4-flow{grid-template-columns:1fr}.vg4-arrow{height:18px;width:1px;margin:auto}
 .vg4-term{display:none}
 .vg4-console{padding:12px;border-radius:16px}
 .vg4-proof{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
 .vg4-strip .vg4-wrap{grid-template-columns:repeat(2,1fr)}.vg4-strip a:nth-child(even){border-right:0}
 .vg4-services{grid-template-columns:1fr}.vg4-rag{grid-template-columns:repeat(2,1fr)}.vg4-metrics{grid-template-columns:1fr}
 .vg4-why{grid-template-columns:1fr}.vg4-team-photo{min-height:250px}.vg4-ui{grid-template-columns:76px 1fr}.vg4-visual{height:220px}
 .vg4-cta-box{padding:27px}.vg4-actions{display:grid}.vg4-actions .vg4-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.vg4-home *{transition:none!important;animation:none!important}}

/* ===== FINAL PREMIUM POLISH ===== */
.vg4-home{background:linear-gradient(180deg,#fff 0%,#fbfcff 100%)}
.vg4-section{position:relative}
.vg4-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(540px circle at 8% 0%,rgba(58,164,255,.035),transparent 58%)}
.vg4-section>.vg4-wrap{position:relative;z-index:1}

.vg4-hero{border-bottom:1px solid rgba(255,255,255,.06)}
.vg4-hero-grid>div:first-child{animation:vg4Rise .7s cubic-bezier(.2,.8,.2,1) both}
.vg4-console{position:relative;transform:perspective(1200px) rotateY(-2deg) rotateX(1deg);box-shadow:0 40px 90px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.025) inset}
.vg4-console:before{content:"";position:absolute;inset:-1px;border-radius:20px;padding:1px;background:linear-gradient(135deg,rgba(58,164,255,.5),rgba(255,255,255,.03),rgba(22,199,132,.34));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.vg4-node{transition:transform .2s ease,border-color .2s ease,background .2s ease}
.vg4-node:hover{transform:translateY(-3px);border-color:rgba(58,164,255,.24);background:#0c1b40}
.vg4-strip{box-shadow:0 10px 28px rgba(10,19,49,.035)}
.vg4-strip a{transition:background .18s ease,color .18s ease,transform .18s ease}
.vg4-strip a:hover{background:#f8fbff;transform:translateY(-1px);color:#4c6484}
.vg4-strip a:hover strong{color:#0b1321}

.vg4-services{gap:18px}
.vg4-service{min-height:260px;padding:28px;background:linear-gradient(180deg,#fff,#fcfdff);box-shadow:0 8px 24px rgba(10,19,49,.035)}
.vg4-service:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-95px;background:radial-gradient(circle,rgba(58,164,255,.13),rgba(58,164,255,0) 68%);transition:transform .3s ease,opacity .3s ease}
.vg4-service:after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:2px;background:linear-gradient(90deg,rgba(58,164,255,.8),rgba(22,199,132,.55),transparent);transform:scaleX(.2);transform-origin:left;opacity:.35;transition:transform .25s ease,opacity .25s ease}
.vg4-service:hover{transform:translateY(-5px);box-shadow:0 22px 54px rgba(10,19,49,.10);border-color:#cfe0f7}
.vg4-service:hover:before{transform:scale(1.15);opacity:.9}
.vg4-service:hover:after{transform:scaleX(1);opacity:1}
.vg4-service:nth-child(2):before{background:radial-gradient(circle,rgba(22,199,132,.12),rgba(22,199,132,0) 68%)}
.vg4-service:nth-child(3):before{background:radial-gradient(circle,rgba(122,89,255,.12),rgba(122,89,255,0) 68%)}
.vg4-service:nth-child(4){box-shadow:0 18px 44px rgba(7,16,37,.18)}
.vg4-service:nth-child(4):before{background:radial-gradient(circle,rgba(58,164,255,.22),rgba(58,164,255,0) 70%)}
.vg4-icon{position:relative;z-index:1;box-shadow:0 8px 18px rgba(58,164,255,.10)}
.vg4-service h3,.vg4-service p,.vg4-tags{position:relative;z-index:1}
.vg4-tags span{border:1px solid rgba(92,116,151,.08)}

.vg4-ai{box-shadow:inset 0 1px 0 rgba(255,255,255,.035),inset 0 -1px 0 rgba(255,255,255,.035)}
.vg4-panel{box-shadow:0 20px 55px rgba(0,0,0,.12);backdrop-filter:blur(10px)}
.vg4-rag-item,.vg4-metric{transition:transform .2s ease,border-color .2s ease}
.vg4-rag-item:hover,.vg4-metric:hover{transform:translateY(-2px);border-color:rgba(58,164,255,.20)}

.vg4-case,.vg4-mini{box-shadow:0 12px 34px rgba(10,19,49,.055);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.vg4-case:hover,.vg4-mini:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(10,19,49,.11);border-color:#cfdff4}
.vg4-visual{position:relative;background:radial-gradient(420px circle at 78% 15%,rgba(58,164,255,.20),transparent 45%),linear-gradient(145deg,#08132f,#102653)}
.vg4-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.04),transparent 35%,rgba(22,199,132,.04));pointer-events:none}
.vg4-ui{position:relative;z-index:1;box-shadow:0 20px 45px rgba(0,0,0,.20)}

.vg4-about-grid{align-items:stretch}
.vg4-team-photo{position:relative;box-shadow:0 24px 60px rgba(10,19,49,.14);border:1px solid #e3ebf7}
.vg4-team-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(7,16,37,.22));pointer-events:none}
.vg4-why article{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--border);border-top:2px solid var(--blue);border-radius:14px;padding:18px;box-shadow:0 8px 22px rgba(10,19,49,.035);transition:transform .2s ease,box-shadow .2s ease}
.vg4-why article:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(10,19,49,.08)}

.vg4-cta{position:relative;overflow:hidden}
.vg4-cta:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;top:-260px;background:radial-gradient(circle,rgba(58,164,255,.18),rgba(22,199,132,.04) 40%,transparent 70%)}
.vg4-cta-box{position:relative;z-index:1;box-shadow:0 30px 80px rgba(0,0,0,.18);overflow:hidden}
.vg4-cta-box:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#3aa4ff,#16c784)}

@keyframes vg4Rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media(max-width:1000px){
 .vg4-console{transform:none}
}
@media(max-width:650px){
 .vg4-hero h1{font-size:clamp(38px,11vw,46px);line-height:1.01}
 .vg4-hero-grid{padding-top:42px}
 .vg4-proof span{font-size:9px;line-height:1.35}
 .vg4-service{min-height:0;padding:24px}
 .vg4-service:after{left:24px;right:24px}
 .vg4-rag{gap:9px}
 .vg4-rag-item{min-height:96px}
 .vg4-case,.vg4-mini{border-radius:16px}
 .vg4-team-photo{min-height:230px}
 .vg4-cta{padding:60px 0}
}
