/* home: animazioni. Attive solo con la classe .mv sull'html (aggiunta da movimento.js) */
html.mv .reveal{animation:none}

/* ---------- hero: entrata ---------- */
.mv .hero-copy .eyebrow{animation:mvSinistra .8s .05s cubic-bezier(.2,.7,.2,1) both}
.mv-parola{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .02em .1em;margin-bottom:-.1em}
.mv-parola>span{display:inline-block;animation:mvParola 1s cubic-bezier(.2,.8,.2,1) both}
.mv .hero-copy .intro{animation:mvSu .9s .75s cubic-bezier(.2,.7,.2,1) both}
.mv .hero-slogan{animation:mvSlogan 1.2s .55s cubic-bezier(.2,.8,.2,1) both,mvOndeggia 7s 1.8s ease-in-out infinite}
.mv .hero-photo>img{animation:mvKen 24s ease-in-out infinite alternate}

/* ---------- hero: movimento continuo ---------- */
.mv-deco{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.mv-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.32;animation:mvVaga 18s ease-in-out infinite}
.mv-blob.b1{left:-150px;top:-130px;width:430px;height:430px;background:#ff8a3d}
.mv-blob.b2{left:28%;bottom:-200px;width:380px;height:380px;background:#7fb1ff;opacity:.22;animation-duration:23s;animation-delay:-9s}
.mv-anello{position:absolute;left:41%;top:12%;width:110px;height:110px;border:2px solid rgba(255,101,8,.35);border-radius:50%;animation:mvAnello 4.5s ease-out infinite}
.mv-anello.a2{animation-delay:-2.25s}
.mv-punto{position:absolute;width:10px;height:10px;border-radius:50%;background:#ff6508;opacity:.55;animation:mvFluttua 6s ease-in-out infinite}
.mv-punto.p1{left:6%;top:64%}
.mv-punto.p2{left:46%;top:46%;width:7px;height:7px;background:#1272b8;animation-delay:-2s}
.mv-punto.p3{left:34%;top:7%;width:6px;height:6px;animation-delay:-4s}
.mv-punto.p4{left:22%;top:88%;width:8px;height:8px;background:#ffb27a;animation-delay:-3s;animation-duration:8s}
.mv .banks>span{position:relative;overflow:hidden;animation:mvGalleggia 6s ease-in-out infinite;animation-delay:calc(var(--mv-n,0) * -1s)}
.mv .banks>span:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg);animation:mvRiflesso 7s ease-in-out infinite;animation-delay:calc(2s + var(--mv-n,0) * .25s)}
.mv .benefits .icon-circle{position:relative;animation:mvGalleggia 5s ease-in-out infinite;animation-delay:calc(var(--mv-n,0) * -1.3s)}
.mv .benefits .icon-circle:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(255,101,8,.35);animation:mvAnelloPiccolo 3s ease-out infinite;animation-delay:calc(var(--mv-n,0) * .6s)}

/* ---------- comparse allo scorrimento ---------- */
.mv .mv-entra{opacity:0;translate:0 30px;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--mv-d,0s),translate .9s cubic-bezier(.2,.7,.2,1) var(--mv-d,0s),transform .3s ease}
.mv .mv-entra.mv-visto{opacity:1;translate:0 0}
.mv .budget-copy.mv-entra{translate:-40px 0}
.mv .budget-visual.mv-entra{translate:40px 0}
.mv .budget-copy.mv-visto,.mv .budget-visual.mv-visto{translate:0 0}

/* titoli di sezione: sottolineatura che si disegna */
.mv .section-heading h2{background:linear-gradient(#ff6508,#ff6508) no-repeat 0 100%/0 4px;padding-bottom:6px;transition:background-size 1s cubic-bezier(.6,.1,.2,1) .35s}
.mv .section-heading.mv-visto h2{background-size:64px 4px}

/* schede che seguono il mouse */
.mv .city-card,.mv .article-card,.mv .hw-card{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;will-change:transform}
.mv .city-card img,.mv .article-card img{transition:scale .8s cubic-bezier(.2,.7,.2,1)}
.mv .city-card:hover img,.mv .article-card:hover img{scale:1.08}

/* numeri e icone delle statistiche */
.mv .stat .icon-circle{animation:mvGalleggia 5.5s ease-in-out infinite;animation-delay:calc(var(--mv-n,0) * -1.6s)}
.mv .stat h3 strong{font-variant-numeric:tabular-nums}

/* come funziona: frecce che si disegnano e poi spingono */
.mv .hw-card .hw-wave path{stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1.3s cubic-bezier(.6,.1,.2,1) calc(var(--mv-d,0s) + .4s)}
.mv .hw-card.mv-visto .hw-wave path{stroke-dashoffset:0}
.mv .hw-card.mv-visto .hw-wave path:last-child{animation:mvSpinta 1.8s ease-in-out infinite;animation-delay:calc(var(--mv-d,0s) + 1.8s)}
.mv .hw-icon{animation:mvGalleggia 5s ease-in-out infinite;animation-delay:calc(var(--mv-n,0) * -1.2s)}

/* sezione budget */
.mv .property-teaser{animation:mvGalleggia 5.5s ease-in-out infinite}
.mv .budget-slider{animation:mvGalleggia 7s ease-in-out infinite;animation-delay:-2s}
.mv .budget-visual>img{animation:mvKen 28s ease-in-out infinite alternate}
.mv #budget-range::-webkit-slider-thumb{animation:mvPulsa 2.2s ease-out infinite}
.mv #budget-range::-moz-range-thumb{animation:mvPulsa 2.2s ease-out infinite}
.mv-bump{display:inline-block;animation:mvBump .35s cubic-bezier(.2,.9,.3,1.4)}

/* pulsanti: riflesso di luce */
.mv .button:not(.outline){position:relative;overflow:hidden;isolation:isolate}
.mv-luce{position:absolute;top:0;bottom:0;left:-70%;z-index:0;width:45%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);pointer-events:none;animation:mvRiflesso 6s ease-in-out infinite}

/* barra di avanzamento */
.mv-progresso{position:fixed;top:0;left:0;right:0;z-index:300;height:3px;background:linear-gradient(90deg,#ff6508,#ff8a3d,#ffb27a);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* footer: la filigrana scorre */
.mv .ft-mark{animation:mvDeriva 32s ease-in-out infinite alternate}

/* ---------- keyframes ---------- */
@keyframes mvParola{from{opacity:0;transform:translateY(110%) rotate(5deg)}to{opacity:1;transform:none}}
@keyframes mvSinistra{from{opacity:0;transform:translateX(-24px);letter-spacing:4px}to{opacity:1;transform:none}}
@keyframes mvSu{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes mvSlogan{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
@keyframes mvOndeggia{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes mvKen{from{scale:1}to{scale:1.07}}
@keyframes mvVaga{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(70px,40px) scale(1.1)}66%{transform:translate(-40px,60px) scale(.94)}}
@keyframes mvAnello{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.2);opacity:0}}
@keyframes mvAnelloPiccolo{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes mvFluttua{0%,100%{transform:translate(0,0)}50%{transform:translate(8px,-16px)}}
@keyframes mvGalleggia{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes mvRiflesso{0%,70%{left:-70%}100%{left:130%}}
@keyframes mvSpinta{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@keyframes mvPulsa{0%{box-shadow:0 0 0 0 rgba(255,101,8,.45)}100%{box-shadow:0 0 0 14px rgba(255,101,8,0)}}
@keyframes mvBump{0%{transform:scale(1)}50%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes mvDeriva{from{translate:-60px 0}to{translate:60px 0}}

@media (max-width:760px){
 .mv-anello,.mv-punto.p2{display:none}
 .mv-blob.b1{width:300px;height:300px}
}
@media (prefers-reduced-motion:reduce){
 .mv *,.mv *:before,.mv *:after{animation:none!important;transition:none!important}
 .mv .mv-entra{opacity:1!important;translate:none!important}
}
/* niente sbordamenti orizzontali dalle animazioni di entrata */
html.mv,html.mv body{overflow-x:clip}
.mv .budget{overflow-x:clip}
/* parallax piu marcato: foto piu alta del riquadro, puo scendere fino al 25% senza scoprire il bordo */
.hero-photo.has-parallax>img{position:absolute;left:0;top:-25%;width:100%;height:125%;transform:translate3d(0,var(--parallax-y,0px),0)}
@media (prefers-reduced-motion:reduce){.hero-photo.has-parallax>img{position:static;height:100%;transform:none}}

/* sezione agenzie v2 */
section#agenzie.agency{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px 36px;align-items:center;margin:40px auto 56px;padding:40px 44px;border:0;border-radius:28px;background:linear-gradient(135deg,#172a52 0%,#141f38 100%);color:#fff;box-shadow:0 24px 60px rgba(23,37,65,.18)}
section#agenzie.agency::before{content:"";position:absolute;width:480px;height:480px;right:-130px;top:-230px;border-radius:50%;background:radial-gradient(circle,rgba(232,93,9,.38),transparent 65%);pointer-events:none;animation:agGlow 9s ease-in-out infinite alternate}
@keyframes agGlow{to{transform:translate(-50px,34px) scale(1.12)}}
section#agenzie .agency-copy{position:relative;z-index:1;grid-column:1;grid-row:1}
section#agenzie .eyebrow{color:#ff8a3d;font-size:12px;letter-spacing:1.6px;font-weight:800;margin:0 0 12px}
section#agenzie h2{color:#fff;font-size:clamp(26px,3vw,34px);font-weight:800;letter-spacing:-.6px;line-height:1.12;margin:0}
section#agenzie .agency-copy>p:last-child{color:rgba(255,255,255,.78);font-size:16px;line-height:1.55;margin:14px 0 0;max-width:520px}
section#agenzie ul{grid-column:1;grid-row:2;position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;font-size:14px}
section#agenzie ul li{display:inline-flex;align-items:center;gap:9px;margin:0;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;font-weight:600;transition:transform .2s ease,background .2s ease}
section#agenzie ul li:hover{transform:translateY(-2px);background:rgba(255,255,255,.16)}
section#agenzie ul [data-icon]{color:#ff8a3d;font-size:16px}
section#agenzie .button{grid-column:1;grid-row:3;position:relative;z-index:1;justify-self:start;display:inline-flex;align-items:center;gap:10px;margin:4px 0 0;padding:15px 26px;font-size:15px;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease}
section#agenzie .button:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(232,93,9,.35)}
@media (max-width:820px){section#agenzie.agency{grid-template-columns:1fr;padding:30px 24px;gap:14px}section#agenzie>.ag-visual{grid-column:1;grid-row:2;height:170px}section#agenzie .agency-copy{grid-row:1}section#agenzie ul{grid-row:3}section#agenzie .button{grid-row:4;justify-self:stretch;justify-content:center}}
@media (prefers-reduced-motion:reduce){section#agenzie.agency::before{animation:none}}

/* sezione agenzie: visual creato in CSS (niente foto) */
section#agenzie>.ag-visual{position:relative;z-index:1;grid-column:2;grid-row:1/4;height:270px;min-height:220px}
section#agenzie .ag-card{position:absolute;display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.97);color:#172541;box-shadow:0 16px 36px rgba(0,0,0,.25);font-size:13px;line-height:1.3;animation:agFloat 6s ease-in-out infinite}
section#agenzie .ag-card strong{display:block;font-size:14px;font-weight:800;white-space:nowrap}
section#agenzie .ag-card small{display:block;color:#6b7488;font-size:12px;white-space:nowrap}
section#agenzie .ag-c1{left:0;top:0;width:94%}
section#agenzie .ag-c2{right:0;top:84px;width:82%;flex-direction:column;align-items:stretch;gap:10px;animation-delay:-2s}
section#agenzie .ag-c3{left:0;bottom:0;width:90%;animation-delay:-4s}
section#agenzie .ag-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:12px;background:#fff1e8;color:#e85d09}
section#agenzie .ag-ico svg{width:18px;height:18px;fill:currentColor}
section#agenzie .ag-ok{margin-left:auto;color:#1a9e5c}
section#agenzie .ag-ok svg{width:20px;height:20px;fill:currentColor}
section#agenzie .ag-bars{display:flex;align-items:flex-end;gap:7px;height:56px}
section#agenzie .ag-bars i{flex:1;height:var(--h);border-radius:6px 6px 3px 3px;background:linear-gradient(#ff8a3d,#e85d09);transform-origin:bottom;animation:agBar 2.6s ease-in-out infinite alternate}
section#agenzie .ag-bars i:nth-child(2){animation-delay:.25s}
section#agenzie .ag-bars i:nth-child(3){animation-delay:.5s}
section#agenzie .ag-bars i:nth-child(4){animation-delay:.75s}
section#agenzie .ag-bars i:nth-child(5){animation-delay:1s}
@keyframes agFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes agBar{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){section#agenzie .ag-card,section#agenzie .ag-bars i{animation:none}}
@media (max-width:820px){section#agenzie>.ag-visual{height:auto;min-height:0;display:flex;flex-direction:column;gap:10px}section#agenzie .ag-card{position:relative;inset:auto;width:100%;box-sizing:border-box;animation-delay:0s}section#agenzie .ag-card strong,section#agenzie .ag-card small{white-space:normal}section#agenzie .ag-c2 .ag-bars{height:44px}}

