/* effetti dinamici */
.fx-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#0b4fd6,#38bdf8);z-index:200;pointer-events:none}
header.top{transition:box-shadow .3s ease,background-color .3s ease}
header.top.scrolled{box-shadow:0 8px 30px -18px rgba(11,79,214,.45)}
.hero .ph{will-change:transform}
.hero .ph img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.hero .ph:hover img{transform:scale(1.03)}
.shots .ph{overflow:hidden;border-radius:16px;cursor:zoom-in;position:relative}
.shots .ph img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.shots figure:hover .ph img{transform:scale(1.06)}
.shots .ph::after{content:"";position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4fd6' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M20 20l-4-4M11 8v6M8 11h6'/%3E%3C/svg%3E") center/18px no-repeat;opacity:0;transform:translateY(6px);transition:.3s}
.shots figure:hover .ph::after{opacity:1;transform:none}
.btn{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -14px rgba(11,79,214,.6)}
.btn:active{transform:translateY(0)}
.pillar,.price-card,.compare{position:relative;transition:transform .35s ease,box-shadow .35s ease}
.pillar:hover{transform:translateY(-6px);box-shadow:0 24px 40px -26px rgba(11,79,214,.45)}
.pillar::before,.price-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(56,189,248,.18),transparent 70%)}
.pillar:hover::before,.price-card:hover::before{opacity:1}
.steps li,.incl li{transition:transform .3s ease}
.steps li:hover,.incl li:hover{transform:translateX(4px)}
details{transition:background-color .3s}
details[open]{background:rgba(207,233,255,.18)}
.fx-lb{position:fixed;inset:0;z-index:300;background:rgba(10,18,36,.88);display:none;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .25s}
.fx-lb.open{display:flex}.fx-lb.show{opacity:1}
.fx-lb img{max-width:min(92vw,1100px);max-height:82vh;border-radius:12px;background:#fff;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);transform:scale(.96);transition:transform .3s}
.fx-lb.show img{transform:none}
.fx-lb .cap{position:absolute;left:0;right:0;bottom:18px;text-align:center;color:#fff;font-size:.95rem;padding:0 60px}
.fx-lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:46px;height:46px;border-radius:50%;font-size:22px;cursor:pointer;transition:background .2s}
.fx-lb button:hover{background:rgba(255,255,255,.3)}
.fx-lb .x{top:16px;right:16px}.fx-lb .p{left:16px;top:50%;margin-top:-23px}.fx-lb .n{right:16px;top:50%;margin-top:-23px}
.rv-fallback .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.rv-fallback .reveal.in{opacity:1;transform:none}
@media(max-width:860px){.fx-lb .p{left:6px}.fx-lb .n{right:6px}}
@media(prefers-reduced-motion:reduce){.fx-progress{display:none}.shots figure:hover .ph img,.hero .ph:hover img,.pillar:hover,.btn:hover{transform:none}.rv-fallback .reveal{opacity:1;transform:none}}
html,body{overflow-x:clip}
.logo-sub{font-weight:500;color:var(--muted)}
@media(max-width:560px){.logo{white-space:nowrap;font-size:.95rem;gap:7px}.logo-sub{font-size:.7rem}}
.top .wrap{padding-block:8px}
.logo img{display:block;height:74px;width:auto}
.foot-brand{display:flex;align-items:center;gap:16px}
.foot-brand img{height:96px;width:auto}
@media(max-width:560px){.logo img{height:60px}.foot-brand img{height:76px}}
.logo-text{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap;font-size:1.15rem}
.logo-sub{display:block;color:var(--muted);font-weight:500;font-size:.82rem;letter-spacing:.01em}
.nav a{white-space:nowrap}
@media(max-width:1060px){.nav{gap:16px}}
@media(max-width:980px){.nav a:not(.btn){display:none}}
@media(max-width:560px){.logo-text{font-size:.95rem}.logo-sub{font-size:.7rem}}
