/* ── Servizi: scene animate (CSS/SVG), sfondi saturi + schede flottanti ── */
.svc-vis{position:relative;z-index:1;height:250px;margin:-32px -30px 26px;overflow:hidden;border-bottom:1px solid var(--border);background:var(--sv-a);isolation:isolate;}
.svc-vis::before{content:'';position:absolute;inset:-25%;z-index:-2;background:radial-gradient(42% 58% at 12% 18%,var(--sv-b),transparent 70%),radial-gradient(48% 62% at 92% 88%,var(--sv-c),transparent 70%);animation:sv-drift 14s ease-in-out infinite alternate;}
.svc-vis::after{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.28) 1px,transparent 1.2px);background-size:18px 18px;opacity:.55;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 10%,transparent 78%);mask-image:radial-gradient(circle at 50% 50%,#000 10%,transparent 78%);}
@keyframes sv-drift{from{transform:translate3d(-3%,-2%,0) scale(1);}to{transform:translate3d(3%,2%,0) scale(1.08);}}
.service-card:not(.visible) .svc-vis *,.service-card:not(.visible) .svc-vis::before{animation-play-state:paused!important;}
.sv1{--sv-a:#5b2bd9;--sv-b:#a78bfa;--sv-c:#4338ca;}
.sv2{--sv-a:#1d4ed8;--sv-b:#38bdf8;--sv-c:#6d28d9;}
.sv3{--sv-a:#047857;--sv-b:#34d399;--sv-c:#0891b2;}
.sv4{--sv-a:#c2410c;--sv-b:#fbbf24;--sv-c:#e11d48;}
.sv5{--sv-a:#86198f;--sv-b:#f0abfc;--sv-c:#6d28d9;height:280px;}
.sv-stage{position:absolute;left:50%;top:0;width:540px;height:250px;margin-left:-270px;transform-origin:50% 0;}
.sv-fc{position:absolute;display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:9px 14px 9px 10px;font:600 12px/1.25 'DM Sans',sans-serif;color:var(--text);white-space:nowrap;box-shadow:0 24px 44px -16px rgba(18,8,60,.55),0 1px 0 rgba(255,255,255,.5) inset;transform:rotate(var(--r,0deg));animation:sv-float 6.5s ease-in-out infinite;animation-delay:var(--d,0s);}
.sv-fc small{display:block;font-weight:500;font-size:10.5px;color:var(--muted);margin-top:1px;}
@keyframes sv-float{0%,100%{transform:translateY(0) rotate(var(--r,0deg));}50%{transform:translateY(-8px) rotate(var(--r,0deg));}}
.sv-ic{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--ic,#ede9fe);}
.sv-ic svg{width:17px;height:17px;}
.sv-ok{display:inline-block;width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.2);margin-right:2px;animation:sv-blink 2s infinite;}
@keyframes sv-blink{50%{box-shadow:0 0 0 7px rgba(16,185,129,0);}}
.sv-lines{position:absolute;inset:0;width:100%;height:100%;}
.sv-lines path{fill:none;stroke:rgba(255,255,255,.75);stroke-width:2;stroke-dasharray:4 7;stroke-linecap:round;animation:sv-dash 1.2s linear infinite;}
@keyframes sv-dash{to{stroke-dashoffset:-22;}}
/* 1 */
.sv-orb{position:absolute;left:222px;top:77px;width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 10px rgba(255,255,255,.18),0 0 0 22px rgba(255,255,255,.1),0 28px 50px -10px rgba(10,0,50,.6);animation:sv-pulse 3s ease-in-out infinite;}
.sv-orb img{width:50px;height:50px;}
@keyframes sv-pulse{50%{transform:scale(1.06);}}
/* 2 */
.sv-win{position:absolute;left:62px;top:34px;width:400px;height:196px;border-radius:14px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 30px 60px -18px rgba(8,8,60,.65);transform:perspective(900px) rotateY(-9deg) rotateX(5deg);overflow:hidden;animation:sv-tilt 8s ease-in-out infinite alternate;}
@keyframes sv-tilt{from{transform:perspective(900px) rotateY(-9deg) rotateX(5deg);}to{transform:perspective(900px) rotateY(-3deg) rotateX(2deg);}}
.sv-wbar{height:26px;display:flex;align-items:center;gap:5px;padding:0 12px;border-bottom:1px solid var(--border);}
.sv-wbar i{width:8px;height:8px;border-radius:50%;background:#f87171;}.sv-wbar i:nth-child(2){background:#fbbf24;}.sv-wbar i:nth-child(3){background:#34d399;}
.sv-wbar b{margin-left:12px;height:11px;width:130px;border-radius:6px;background:rgba(124,58,237,.14);}
.sv-wbody{display:grid;grid-template-columns:78px 1fr;height:170px;}
.sv-side{padding:12px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:9px;}
.sv-side i{height:8px;border-radius:5px;background:rgba(124,58,237,.18);}.sv-side i:first-child{background:var(--violet);width:70%;}
.sv-main{padding:12px 14px;}
.sv-tiles{display:flex;gap:8px;margin-bottom:12px;}
.sv-tiles i{flex:1;height:34px;border-radius:9px;background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(79,70,229,.08));border:1px solid rgba(124,58,237,.2);}
.sv-chart{display:flex;align-items:flex-end;gap:9px;height:70px;}
.sv-chart i{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#8b5cf6,#4f46e5);transform-origin:bottom;animation:sv-bar 5s ease-in-out infinite;animation-delay:calc(var(--i)*.18s);}
@keyframes sv-bar{0%{transform:scaleY(.15);}30%,85%{transform:scaleY(1);}100%{transform:scaleY(.15);}}
.sv-code{position:absolute;left:20px;top:150px;width:170px;padding:12px 14px;border-radius:14px;background:#0f0f17;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 44px -14px rgba(0,0,40,.7);display:flex;flex-direction:column;gap:7px;transform:rotate(-3deg);animation:sv-float 7s ease-in-out infinite;}
.sv-code i{height:6px;border-radius:4px;background:#a78bfa;width:var(--w);transform-origin:left;animation:sv-type 6s infinite;animation-delay:calc(var(--i)*.35s);}
.sv-code i:nth-child(2n){background:#38bdf8;}.sv-code i:nth-child(3){background:#34d399;}
@keyframes sv-type{0%{transform:scaleX(0);}14%,86%{transform:scaleX(1);}96%,100%{transform:scaleX(0);}}
/* 3 */
.sv-bot{position:absolute;left:30px;top:88px;width:62px;height:62px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 8px rgba(255,255,255,.2),0 20px 40px -10px rgba(0,40,30,.6);animation:sv-pulse 3.4s ease-in-out infinite;}
.sv-bot svg{width:30px;height:30px;}
.sv-tk{width:330px;}
.sv-st{margin-left:auto;position:relative;width:76px;height:22px;flex:none;}
.sv-st span{position:absolute;inset:0;display:grid;place-items:center;border-radius:20px;font:700 10.5px 'DM Sans',sans-serif;}
.sv-st .a{background:rgba(245,158,11,.16);color:#d97706;animation:sv-a 9s infinite;animation-delay:calc(var(--i)*1.7s);}
.sv-st .b{background:rgba(16,185,129,.16);color:#059669;opacity:0;animation:sv-b 9s infinite;animation-delay:calc(var(--i)*1.7s);}
@keyframes sv-a{0%,20%{opacity:1;}26%,88%{opacity:0;}96%,100%{opacity:1;}}
@keyframes sv-b{0%,20%{opacity:0;}26%,88%{opacity:1;}96%,100%{opacity:0;}}
/* 4 */
.sv-road{position:absolute;left:34px;top:30px;width:250px;padding:14px 16px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 26px 50px -16px rgba(80,20,0,.55);animation:sv-float 7s ease-in-out infinite;}
.sv-road h4{font:800 13px 'Sora',sans-serif;color:var(--text);margin:0 0 10px;letter-spacing:-.01em;}
.sv-rw{display:flex;align-items:center;gap:10px;font:600 12px 'DM Sans',sans-serif;color:var(--text);margin-bottom:9px;}
.sv-rw i{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid #f59e0b;background:#fff0;position:relative;animation:sv-step 8s infinite;animation-delay:calc(var(--i)*1.6s);}
@keyframes sv-step{0%,10%{background:#fff0;border-color:#f59e0b;}20%,88%{background:#10b981;border-color:#10b981;}96%,100%{background:#fff0;border-color:#f59e0b;}}
.sv-prog{height:7px;border-radius:5px;background:rgba(245,158,11,.2);overflow:hidden;margin-top:12px;}
.sv-prog b{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#f59e0b,#ef4444);transform-origin:left;animation:sv-fill 8s ease-in-out infinite;}
@keyframes sv-fill{0%{transform:scaleX(.08);}30%,88%{transform:scaleX(1);}100%{transform:scaleX(.08);}}
.sv-ch{position:absolute;left:306px;top:24px;width:204px;padding:12px 14px 10px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 26px 50px -16px rgba(80,20,0,.55);transform:rotate(2deg);animation:sv-float 6s ease-in-out infinite;animation-delay:-2s;}
.sv-ch h4{font:700 11px 'DM Sans',sans-serif;color:var(--muted);margin:0 0 4px;letter-spacing:.04em;text-transform:uppercase;}
.sv-ch svg{display:block;width:100%;height:62px;}
.sv-ch .ln{fill:none;stroke:#f97316;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:260;animation:sv-draw 7s ease-in-out infinite;}
.sv-ch .ar{fill:url(#svg-g);opacity:.9;}
@keyframes sv-draw{0%{stroke-dashoffset:260;}30%,88%{stroke-dashoffset:0;}100%{stroke-dashoffset:260;}}
/* 5 */
.sv-phone{position:absolute;left:50%;top:18px;width:196px;height:262px;margin-left:-98px;border-radius:30px;background:#0f0f17;padding:7px;box-shadow:0 34px 60px -14px rgba(40,0,60,.7),0 0 0 2px rgba(255,255,255,.12);animation:sv-float 8s ease-in-out infinite;}
.sv-scr{height:100%;border-radius:24px;background:var(--bg-card);overflow:hidden;display:flex;flex-direction:column;}
.sv-ph{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);font:700 11.5px 'DM Sans',sans-serif;color:var(--text);}
.sv-ph .av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#a78bfa,#6d28d9);display:grid;place-items:center;}
.sv-ph small{display:block;font-weight:500;font-size:9.5px;color:#10b981;}
.sv-msgs{flex:1;padding:10px;display:flex;flex-direction:column;gap:7px;overflow:hidden;}
.sv-m{max-width:86%;padding:7px 10px;border-radius:12px;font:500 10.5px/1.3 'DM Sans',sans-serif;animation:var(--an) 12s infinite both;}
.sv-m.u{align-self:flex-end;background:var(--violet);color:#fff;border-bottom-right-radius:3px;}
.sv-m.a{align-self:flex-start;background:rgba(124,58,237,.1);color:var(--text);border-bottom-left-radius:3px;}
.sv-m.ok{align-self:flex-start;background:rgba(16,185,129,.14);border:1px solid rgba(16,185,129,.4);color:#059669;font-weight:700;}
.sv-m.m1{--an:sv-m1}.sv-m.m2{--an:sv-m2}.sv-m.m3{--an:sv-m3}.sv-m.m4{--an:sv-m4}.sv-m.m5{--an:sv-m5}
@keyframes sv-m1{0%{opacity:0;transform:translateY(8px);}3%,90%{opacity:1;transform:none;}96%,100%{opacity:0;}}
@keyframes sv-m2{0%,13%{opacity:0;transform:translateY(8px);}16%,90%{opacity:1;transform:none;}96%,100%{opacity:0;}}
@keyframes sv-m3{0%,34%{opacity:0;transform:translateY(8px);}37%,90%{opacity:1;transform:none;}96%,100%{opacity:0;}}
@keyframes sv-m4{0%,50%{opacity:0;transform:translateY(8px);}53%,90%{opacity:1;transform:none;}96%,100%{opacity:0;}}
@keyframes sv-m5{0%,64%{opacity:0;transform:translateY(8px);}67%,90%{opacity:1;transform:none;}96%,100%{opacity:0;}}
.sv-w1{left:6%;top:52px;}.sv-w2{left:11%;top:150px;}.sv-w3{right:6%;top:46px;}.sv-w4{right:10%;top:116px;}.sv-w5{right:5%;top:186px;}
@media (min-width:901px) and (max-width:1100px){.svc-vis:not(.sv5) .sv-stage{transform:scale(.8);}.svc-vis:not(.sv5){height:215px;}}
@media (max-width:640px){.svc-vis{height:178px;}.svc-vis:not(.sv5) .sv-stage{transform:scale(.62);}.svc-vis.sv5{height:268px;}.sv-w1,.sv-w2,.sv-w3,.sv-w4,.sv-w5{display:none;}}
@media (prefers-reduced-motion:reduce){.svc-vis *,.svc-vis::before{animation:none!important;}.sv-st .a{opacity:0;}.sv-st .b{opacity:1;}.sv-rw i{background:#10b981;border-color:#10b981;}.sv-chart i{transform:none;}.sv-code i{transform:none;}.sv-ch .ln{stroke-dashoffset:0;}.sv-prog b{transform:none;}}
.service-card a.svc-more{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:.85rem;font-weight:700;color:var(--violet);text-decoration:none;}
html:not([data-theme="light"]) .service-card a.svc-more{color:#a78bfa;}
.service-card a.svc-more:hover{text-decoration:underline;text-underline-offset:3px;}

/* ── Banner nelle pagine servizio ── */
.sv6{--sv-a:#5b2bd9;--sv-b:#a78bfa;--sv-c:#0891b2;}
.sv-dsk{position:absolute;left:52px;top:30px;width:296px;height:200px;border-radius:14px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 30px 60px -18px rgba(8,8,60,.65);transform:perspective(900px) rotateY(7deg) rotateX(4deg);overflow:hidden;animation:sv-tilt2 8s ease-in-out infinite alternate;}
@keyframes sv-tilt2{from{transform:perspective(900px) rotateY(7deg) rotateX(4deg);}to{transform:perspective(900px) rotateY(2deg) rotateX(1deg);}}
.sv-dsk .tb{height:26px;display:flex;align-items:center;gap:5px;padding:0 12px;border-bottom:1px solid var(--border);font:700 10.5px 'DM Sans',sans-serif;color:var(--muted);}
.sv-dsk .tb i{width:8px;height:8px;border-radius:50%;background:#f87171;}.sv-dsk .tb i:nth-child(2){background:#fbbf24;}.sv-dsk .tb i:nth-child(3){background:#34d399;}.sv-dsk .tb span{margin-left:auto;margin-right:auto;}
.sv-dsk .bd{display:grid;grid-template-columns:76px 1fr;height:174px;}
.sv-dsk .sd{padding:10px 8px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:7px;font:600 9.5px 'DM Sans',sans-serif;color:var(--muted);}
.sv-dsk .sd b{padding:5px 7px;border-radius:7px;background:rgba(124,58,237,.14);color:var(--violet);}
.sv-dsk .sd span{padding:5px 7px;}
.sv-dsk .ch{padding:12px;display:flex;flex-direction:column;gap:8px;}
.sv-dsk .q{align-self:flex-end;max-width:90%;padding:7px 10px;border-radius:12px 12px 3px 12px;background:var(--violet);color:#fff;font:500 10.5px/1.3 'DM Sans',sans-serif;animation:sv-m1 10s infinite both;}
.sv-dsk .r{align-self:flex-start;display:flex;gap:8px;width:96%;animation:sv-m2 10s infinite both;}
.sv-dsk .r img{flex:none;width:20px;height:20px;margin-top:2px;}
.sv-dsk .r div{flex:1;display:flex;flex-direction:column;gap:6px;padding-top:4px;}
.sv-dsk .r i{height:6px;border-radius:4px;background:rgba(124,58,237,.28);width:var(--w);transform-origin:left;animation:sv-type 10s infinite;animation-delay:calc(1.6s + var(--i)*.3s);}
.sv-dsk .r i:nth-child(2n){background:rgba(79,70,229,.24);}
.page-vis{margin:30px 0 4px;}
.page-vis .svc-vis{margin:0;height:250px;border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 60px -24px rgba(60,20,160,.45);}
.page-vis .sv-side-l{left:2.5%;}.page-vis .sv-side-r{right:2.5%;}
@media (max-width:900px){.page-vis .sv-side-l,.page-vis .sv-side-r{display:none;}}
@media (max-width:640px){.page-vis .svc-vis{height:178px;border-radius:16px;}}
