/* Font Montserrat ospitato sul sito (niente server Google). Licenza: fonts/OFL.txt */
@font-face{font-family:Montserrat;font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/montserrat.woff) format("woff")}
@font-face{font-family:Montserrat;font-style:italic;font-weight:800 900;font-display:swap;src:url(fonts/montserrat-italic.woff) format("woff")}
/* MDX Design — stile condiviso. Layout: fasce piene grafite/bianco, diagonale lime della "X" come filo conduttore. */
:root{
  --lime:#95c11f;
  --lime-ink:#8cb91b;
  --graphite:#1b1c1e;
  --graphite-2:#26272a;
  --ink:#1d1d1f;
  --paper:#fbfbfd;
  --paper-2:#f0f1ec;
  --muted:#6e6e73;
  --muted-dark:#a1a1a6;
  --line:#dcded6;
  --line-dark:#3a3b3f;
  --f-display:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --f-body:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --gutter:clamp(16px,4vw,48px);
  --max:1240px;
  --glow:149,193,31;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
main{overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}
p{margin:0}
section{padding-block:clamp(64px,9vw,120px)}
.dark{background:var(--graphite);color:var(--paper)}
.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--lime-ink)}
.dark .eyebrow{color:var(--lime)}
.h2{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,5vw,3.6rem);line-height:.98;letter-spacing:-.01em}
.h2 em{font-style:italic;color:var(--lime-ink)}
.dark .h2 em{color:var(--lime)}
.lead{font-size:clamp(1rem,1.4vw,1.15rem);color:var(--muted);max-width:60ch}
.dark .lead{color:var(--muted-dark)}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(32px,5vw,56px)}
.sec-head.split{grid-template-columns:1fr;align-items:end}
@media(min-width:900px){.sec-head.split{grid-template-columns:1.1fr 1fr;gap:48px}}

/* Bottoni */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-body);font-weight:700;font-size:.92rem;letter-spacing:.02em;padding:15px 24px;border-radius:2px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s;position:relative;overflow:hidden}
.btn svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-lime{background:var(--lime);color:var(--graphite)}
.btn-lime:hover{background:#a6d42a;transform:translateY(-2px)}
.btn-ghost{border-color:currentColor;color:inherit;background:transparent}
.btn-ghost:hover{background:var(--paper);color:var(--graphite);border-color:var(--paper)}
.btn-dark{background:var(--graphite);color:var(--paper)}
.btn-dark:hover{background:#000;transform:translateY(-2px)}
.link-arrow{display:inline-flex;gap:8px;align-items:center;font-weight:700;font-size:.9rem;text-decoration:none;color:var(--lime-ink)}
.dark .link-arrow{color:var(--lime)}
.link-arrow span{transition:transform .25s var(--ease)}
.link-arrow:hover span{transform:translateX(5px)}

/* Transizione tra pagine: pannello grafite con bordo lime */
.wipe{position:fixed;inset:0;z-index:1000;background:var(--graphite);display:grid;place-items:center;transform:translateY(101%);pointer-events:none;visibility:hidden}
html.entering .wipe,html.leaving .wipe{visibility:visible}
.wipe::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--lime)}
.wipe img{width:min(240px,50vw);opacity:0}
html.entering .wipe{animation:wipeOut .7s var(--ease) both}
html.entering .wipe img{animation:logoOut .45s ease both}
html.leaving .wipe{animation:wipeIn .42s var(--ease) both}
html.leaving .wipe img{animation:logoIn .3s .15s ease both}
@keyframes wipeIn{from{transform:translateY(101%)}to{transform:translateY(0)}}
@keyframes wipeOut{from{transform:translateY(0)}to{transform:translateY(-101%)}}
@keyframes logoIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes logoOut{from{opacity:1}to{opacity:0}}

/* Intro animata del logo (solo prima visita) */
.intro-ov{display:none}
html.has-intro .intro-ov{display:block;position:fixed;inset:0;z-index:1100;pointer-events:auto;cursor:pointer;animation:ioGone 0s 2.25s forwards}
.io-a,.io-b{position:absolute;inset:0;background:var(--graphite)}
.io-a{clip-path:polygon(0 0,78% 0,22% 100%,0 100%);animation:ioL .85s 1.35s cubic-bezier(.77,0,.18,1) both}
.io-b{clip-path:polygon(78% 0,100% 0,100% 100%,22% 100%);animation:ioR .85s 1.35s cubic-bezier(.77,0,.18,1) both}
.io-sw{position:absolute;inset:0;filter:drop-shadow(0 0 14px rgba(149,193,31,.6));animation:ioFade .3s 1.3s forwards}
.io-slash{position:absolute;inset:0;background:var(--lime);clip-path:polygon(21.4% 100%,22.6% 100%,22.6% 100%,21.4% 100%);animation:ioDraw .65s .1s cubic-bezier(.65,0,.35,1) forwards}
.io-logo{position:absolute;left:50%;top:50%;width:min(360px,62vw);transform:translate(-50%,-50%);opacity:0;animation:ioLogo .55s .45s var(--ease) forwards,ioFade .3s 1.25s forwards}
@keyframes ioDraw{to{clip-path:polygon(77.4% 0,78.6% 0,22.6% 100%,21.4% 100%)}}
@keyframes ioLogo{from{opacity:0;transform:translate(-50%,-40%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes ioFade{to{opacity:0}}
@keyframes ioL{to{transform:translate(-80%,0)}}
@keyframes ioR{to{transform:translate(80%,0)}}
@keyframes ioGone{to{visibility:hidden;pointer-events:none}}
html.has-intro .load-in{animation-delay:calc(var(--d,0s) + 1.55s)}
html.has-intro-done .intro-ov{display:none}

/* Interruttore notte */
.top .wrap{gap:12px}
.night-btn{order:3;flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line-dark);background:transparent;color:#d8d8dc;cursor:pointer;display:grid;place-items:center;position:relative;overflow:hidden;transition:border-color .3s,color .3s,box-shadow .3s}
.night-btn:hover{border-color:var(--lime);color:var(--lime)}
.night-btn svg{position:absolute;width:20px;height:20px;transition:transform .5s var(--ease),opacity .4s}
.night-btn .moon{fill:currentColor}
.night-btn .sun{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;opacity:0;transform:rotate(-90deg) scale(.4)}
html[data-night] .night-btn{border-color:var(--lime);color:var(--lime);box-shadow:0 0 14px rgba(149,193,31,.45)}
html[data-night] .night-btn .moon{opacity:0;transform:rotate(90deg) scale(.4)}
html[data-night] .night-btn .sun{opacity:1;transform:none}
.nav{order:2;margin-left:auto}
.brand{order:1}
.menu-btn{order:4}
@media(max-width:920px){.night-btn{margin-left:auto}}

html.theming,html.theming *{transition:background-color .5s ease,color .5s ease,border-color .5s ease,box-shadow .5s ease!important}

/* Header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(27,28,30,.92);color:var(--paper);border-bottom:1px solid var(--line-dark);transition:transform .35s var(--ease)}
.top.hide{transform:translateY(-100%)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}
.brand img{height:38px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px)}
.nav a{white-space:nowrap;text-decoration:none;font-size:.86rem;font-weight:600;color:#d8d8dc;transition:color .2s;position:relative;padding-block:6px}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--lime);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
.nav a:not(.btn):hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav a:hover,.nav a[aria-current="page"]{color:var(--paper)}
.nav .btn{padding:11px 18px;color:var(--graphite)}
.progress{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--lime);transform:scaleX(0);transform-origin:left}
.menu-btn{display:none;background:none;border:0;color:var(--paper);padding:8px;cursor:pointer}
.menu-btn svg{width:28px;height:28px}
@media(max-width:920px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--graphite);padding:8px var(--gutter) 24px;border-bottom:3px solid var(--lime);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.25s var(--ease)}
  .nav.open{transform:none;opacity:1;pointer-events:auto}
  .nav a{padding:15px 0;border-bottom:1px solid var(--line-dark);font-size:1.05rem}
  .nav a:not(.btn)::after{display:none}
  .nav a[aria-current="page"]{color:var(--lime)}
  .nav .btn{margin-top:16px;justify-content:center;border-bottom:0}
}

/* Menu: tendina Servizi */
.nav{gap:clamp(18px,2.6vw,34px)}
.dd{position:relative}
.dd-t{display:inline-flex!important;align-items:center;gap:6px}
.dd-t .chev{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}
.dd.open .dd-t .chev{transform:rotate(180deg)}
.dd-p{position:absolute;top:calc(100% + 22px);left:50%;width:min(640px,92vw);display:grid;grid-template-columns:1.25fr 1fr;gap:18px;padding:22px;border-radius:14px;background:#1b1c1e;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 60px -20px rgba(0,0,0,.6),0 0 0 1px rgba(149,193,31,.12);opacity:0;visibility:hidden;transform:translate(-42%,10px);transition:opacity .3s var(--ease),transform .4s var(--ease),visibility 0s .4s;z-index:60}
.dd-p::before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px}
.dd-p::after{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--lime),transparent);box-shadow:0 0 12px rgba(149,193,31,.7)}
.dd.open .dd-p{opacity:1;visibility:visible;transform:translate(-42%,0);transition:opacity .3s var(--ease),transform .4s var(--ease),visibility 0s}
.dd-h{font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--lime);margin:0 0 8px 10px}
.dd-list{display:grid;align-content:start}
.nav .dd-list a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;font-size:.88rem;font-weight:600;color:#d8d8dc;white-space:nowrap;transition:background .2s,color .2s,transform .3s var(--ease)}
.nav .dd-list a::after{display:none}
.nav .dd-list a svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--lime);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.nav .dd-list a:hover,.nav .dd-list a[aria-current="page"]{background:rgba(149,193,31,.1);color:#fff;transform:translateX(4px)}
.dd-side{display:grid;gap:10px;align-content:start}
.nav .dd-card{position:relative;display:block;height:118px;border-radius:10px;overflow:hidden;padding:0}
.nav .dd-card::after{display:none}
.dd-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.dd-card:hover img{transform:scale(1.07)}
.dd-card span{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:12px 14px;background:linear-gradient(0deg,rgba(16,17,18,.92),rgba(16,17,18,.15) 75%);font-size:.78rem;font-weight:500;color:#c9cacd;line-height:1.3}
.dd-card b{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.05rem;color:#fff;letter-spacing:-.01em}
.nav .dd-card[aria-current="page"]{box-shadow:0 0 0 2px var(--lime)}
.nav .dd-all{display:inline-flex;gap:8px;justify-content:flex-end;font-size:.86rem;font-weight:800;color:var(--lime);padding:6px 4px}
.nav .dd-all::after{display:none}
.dd-all span{transition:transform .3s var(--ease)}.dd-all:hover span{transform:translateX(5px)}
@media(max-width:920px){
  .dd-t{justify-content:space-between;width:100%}
  .dd-p{position:static;width:auto;transform:none!important;opacity:1;visibility:visible;display:none;grid-template-columns:1fr;padding:6px 0 14px;background:none;border:0;box-shadow:none;border-radius:0}
  .dd-p::after,.dd-p::before{display:none}
  .dd.open .dd-p{display:grid}
  .nav .dd-list a{padding:11px 4px;border-bottom:0;font-size:.98rem}
  .dd-side{grid-template-columns:1fr 1fr}
  .nav .dd-card{height:96px;border-bottom:0}
  .dd-all{grid-column:1/-1}
  .dd-h{display:none}
  .nav{max-height:calc(100svh - 72px);overflow-y:auto;overscroll-behavior:contain}
}

/* Hero home: apertura scura + striscia + inizio sezione bianca nella prima schermata */
.first{display:flex;flex-direction:column;height:calc(100svh - 72px - env(safe-area-inset-top,0px) - clamp(170px,27vh,320px));min-height:430px;max-height:860px}
.first .hero{flex:1;display:flex;min-height:0}
.first .hero>.wrap{display:flex;flex-direction:column;width:100%;padding-block:clamp(16px,4vh,48px) 0!important}
.first .hero h1{max-width:none!important;font-size:clamp(1.9rem,min(5vw,8.2vh),5.6rem)!important;margin-top:clamp(6px,1.4vh,14px)!important}
.first .hero p.sub{margin-top:clamp(10px,1.8vh,20px)!important}
.first .ctas{margin-top:clamp(12px,2.6vh,28px)!important}
.first .trio{margin-top:auto!important}
.first .trio div{padding-block:clamp(10px,1.8vh,20px) clamp(12px,2vh,22px)}
.first .ticker{flex:none;padding-block:clamp(9px,1.4vh,14px)}
.home-intro{padding-block:clamp(28px,6vh,90px)!important}
.home-intro .rotator{font-size:clamp(2rem,min(4.6vw,8vh),4.2rem)}
@media(max-width:640px){
  .first{height:auto;max-height:none}
  .first .hero h1{font-size:clamp(1.9rem,8.4vw,3rem)!important}
  .first .trio{grid-template-columns:repeat(3,1fr);margin-top:28px!important}
  .first .trio div,.first .trio div+div{padding:12px 8px 14px 0;border-top:0;border-left:0}
  .first .trio div+div{padding-left:8px;border-left:1px solid rgba(255,255,255,.18)}
  .first .trio b{font-size:.82rem}.first .trio span{font-size:.7rem;line-height:1.35}
}
/* "a domicilio" al neon, come nella pagina Grafica */
.hero h1 .neon{color:#b6ec2c;text-shadow:0 0 6px rgba(149,193,31,.9),0 0 18px rgba(149,193,31,.6),0 0 42px rgba(149,193,31,.35);animation:neonOn 2.2s .7s both}
html.has-intro .hero h1 .neon{animation-delay:2.2s}
/* ===== Modalità notte ===== */
html[data-night]{--paper:#111315;--paper-2:#1a1d20;--ink:#f1f2ee;--muted:#a3a5a0;--line:#2a2e33;--lime-ink:#b6ec2c;color-scheme:dark}
html[data-night] .tg{--paper:#0e1013;--paper-2:#171a1f;--line:#262b31}
html[data-night] :is(.dark,.hero,.phero,.sp-hero,footer,.top,.wipe,.sp-bar,.studio,.cinema,.reel,.work,.oth,dialog,.stage-badge,.views button.on){--paper:#fbfbfd;--ink:#1d1d1f}
html[data-night] .tg :is(.dark,.phero){--paper:#fbfbfd}
html[data-night] body{background:var(--paper);background-image:radial-gradient(60% 40% at 80% 0%,rgba(149,193,31,.07),transparent 70%)}
html[data-night] form,html[data-night] .qa,html[data-night] .flow-i,html[data-night] .incl-row,html[data-night] .tg .what{background:#181b1f;border-color:#2a2e33}
html[data-night] form{box-shadow:0 0 0 1px rgba(149,193,31,.2),0 30px 60px -30px rgba(0,0,0,.8)}
html[data-night] input,html[data-night] select,html[data-night] textarea,html[data-night] .drop{background:#101215;border-color:#30353b;color:var(--ink)}
html[data-night] .ok{background:rgba(149,193,31,.12);color:var(--ink)}
html[data-night] .subnav{background:rgba(17,19,21,.92);border-color:var(--line)}
html[data-night] .subnav a{border-color:var(--line);color:var(--ink)}
html[data-night] .subnav a:hover,html[data-night] .subnav a.on{background:var(--lime);border-color:var(--lime);color:#111315}
html[data-night] .stage3d{background:#0f1113}
html[data-night] .views{background:rgba(24,27,31,.92)}
html[data-night] .views button{color:var(--ink)}
html[data-night] .views button:hover{background:#2a2e33}
html[data-night] .btn-ghost-dark{border-color:var(--ink);color:var(--ink)}
html[data-night] .btn-ghost-dark:hover{background:var(--ink);color:#111315}
html[data-night] .clients figure{background:#f4f5f2}
html[data-night] .opt.on{background:var(--lime);border-color:var(--lime);color:#111315}
html[data-night] .opt.on span{color:#2a2c2f}
html[data-night] .qa summary span::before,html[data-night] .qa summary span::after{background:var(--ink)}
html[data-night] .qa[open] summary span::before,html[data-night] .qa[open] summary span::after{background:#111315}
/* dettagli al neon */
html[data-night] .h2 em,html[data-night] .rotator .w span,html[data-night] .sp-hero h1 em,html[data-night] .phero h1 em,html[data-night] .hero h1 .g,html[data-night] .cinema-tx h2 em{color:#b6ec2c;text-shadow:0 0 6px rgba(149,193,31,.85),0 0 18px rgba(149,193,31,.5),0 0 40px rgba(149,193,31,.28)}
html[data-night] .eyebrow{color:#b6ec2c;text-shadow:0 0 12px rgba(149,193,31,.5)}
html[data-night] .step .k,html[data-night] .f-stat b,html[data-night] .sv-tx .n,html[data-night] .cnt-i b{color:#b6ec2c;text-shadow:0 0 10px rgba(149,193,31,.6),0 0 26px rgba(149,193,31,.3)}
html[data-night] .steps::before{background:linear-gradient(90deg,#b6ec2c,rgba(149,193,31,.2));box-shadow:0 0 12px rgba(149,193,31,.6)}
html[data-night] .step::before,html[data-night] .sp-list li::before,html[data-night] .sv-tx li::before,html[data-night] .v .tick{filter:drop-shadow(0 0 5px rgba(149,193,31,.9))}
html[data-night] .link-arrow{color:#b6ec2c;text-shadow:0 0 10px rgba(149,193,31,.45)}
html[data-night] .btn-lime{box-shadow:0 0 18px rgba(149,193,31,.45)}
html[data-night] .btn-lime:hover{box-shadow:0 0 30px rgba(149,193,31,.8)}
html[data-night] .services{background:#22262b}
html[data-night] .svc{background:#15171a}
html[data-night] .svc:hover{box-shadow:inset 0 0 0 1px rgba(149,193,31,.5),0 0 30px -6px rgba(149,193,31,.5)}
html[data-night] .svc::after,html[data-night] .sv-ph::after{box-shadow:0 0 14px rgba(149,193,31,.9)}
html[data-night] .sv{border-color:var(--line)}
html[data-night] .sv-ph{box-shadow:0 0 0 1px rgba(149,193,31,.15),0 30px 60px -30px rgba(0,0,0,.9)}
html[data-night] .materials,html[data-night] .sp-extra{background:#181b1f}
html[data-night] .chip{background:#111315;border-color:#30353b}
html[data-night] .chip:hover{border-color:var(--lime);box-shadow:0 0 12px rgba(149,193,31,.4)}
html[data-night] .contact{background:var(--line)}
html[data-night] .contact div{background:#15171a}
html[data-night] .qa[open]{box-shadow:0 0 0 1px rgba(149,193,31,.45),0 0 26px -8px rgba(149,193,31,.5)}
html[data-night] .ticker{box-shadow:0 0 30px rgba(149,193,31,.35)}
html[data-night] .cta-band{box-shadow:0 0 60px -10px rgba(149,193,31,.5)}
html[data-night] .about-ph::before{filter:drop-shadow(0 0 8px rgba(149,193,31,.9))}
html[data-night] .f-portrait{box-shadow:0 0 0 1px rgba(149,193,31,.25),0 0 40px -10px rgba(149,193,31,.4)}
html[data-night] .work:hover{box-shadow:0 0 0 2px rgba(149,193,31,.85),0 0 30px rgba(149,193,31,.45)}
html[data-night] .top{border-bottom-color:rgba(149,193,31,.25)}
html[data-night] .progress{box-shadow:0 0 10px rgba(149,193,31,.9)}

@media (prefers-reduced-motion:reduce){.hero h1 .neon{animation:none}}
/* Hero home */
.hero{position:relative;background:var(--graphite);color:var(--paper);overflow:hidden;padding:0}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:60% 70%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,19,20,.94) 0%,rgba(18,19,20,.78) 38%,rgba(18,19,20,.12) 75%),linear-gradient(0deg,rgba(18,19,20,.9) 0%,rgba(18,19,20,0) 40%)}
.hero .wrap{position:relative;padding-block:clamp(72px,12vw,150px) 0}
.hero h1{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.9rem,8.4vw,6.6rem);line-height:.9;letter-spacing:-.02em;max-width:11ch;margin-top:14px}
.hero h1 span{display:block}
.hero h1 .g{color:var(--lime)}
.hero p.sub{margin-top:24px;font-size:clamp(1.02rem,1.6vw,1.25rem);color:#e2e2e6;max-width:44ch}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.trio{margin-top:clamp(56px,8vw,96px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.18)}
.trio div{padding:22px 20px 26px 0;display:grid;gap:4px}
.trio div+div{padding-left:20px;border-left:1px solid rgba(255,255,255,.18)}
.trio b{font-size:clamp(1.1rem,2vw,1.5rem);font-weight:900;font-style:italic;text-transform:uppercase;color:var(--lime)}
.trio span{font-size:.86rem;color:#c9c9ce}
@media(max-width:640px){.trio{grid-template-columns:1fr}.trio div+div{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.18)}}
.scroll-cue{position:absolute;right:var(--gutter);bottom:28px;width:26px;height:42px;border:2px solid rgba(255,255,255,.5);border-radius:14px}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--lime)}
@media(max-width:640px){.scroll-cue{display:none}}

/* Hero pagine interne: taglio diagonale della X */
.phero{position:relative;background:var(--graphite);color:var(--paper);overflow:hidden;padding-block:clamp(64px,9vw,120px) clamp(56px,7vw,96px)}
.phero .wrap{position:relative;z-index:1}
.phero h1{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2.6rem,8vw,6rem);line-height:.92;letter-spacing:-.02em;margin-top:14px;max-width:12ch}
.phero h1 em{font-style:italic;color:var(--lime)}
.phero p{margin-top:20px;color:#d2d2d6;max-width:46ch;font-size:clamp(1rem,1.5vw,1.15rem)}
.phero .ph{position:absolute;top:0;right:0;bottom:0;width:50%;clip-path:polygon(28% 0,100% 0,100% 100%,0 100%)}
.phero .ph img{width:100%;height:100%;object-fit:cover}
.phero .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,28,30,.7),rgba(27,28,30,.1))}
.phero .slash{position:absolute;top:0;bottom:0;right:calc(50% - 4px);width:8px;background:var(--lime);transform:skewX(-15.6deg);transform-origin:bottom;z-index:1}
@media(max-width:800px){.phero .ph{width:100%;opacity:.28;clip-path:none}.phero .slash{display:none}}
.crumb{font-size:.8rem;color:var(--muted-dark)}
.crumb a{text-decoration:none;color:var(--muted-dark)}
.crumb a:hover{color:var(--lime)}

/* Ticker */
.ticker{background:var(--lime);color:var(--graphite);overflow:hidden;white-space:nowrap;padding-block:14px;font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.05rem;letter-spacing:.02em}
.ticker .run{display:inline-flex;gap:32px;padding-left:32px;animation:slide 34s linear infinite}
.ticker i{font-style:normal;opacity:.55}
@keyframes slide{to{transform:translateX(-50%)}}

/* Parola che ruota */
.rotator{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,4.6vw,4.2rem);line-height:1;letter-spacing:-.02em}
.rotator .w{display:inline-grid;vertical-align:bottom;overflow:hidden;height:1.05em;color:var(--lime-ink)}
.rotator .w span{grid-area:1/1;transform:translateY(-105%);transition:transform .6s var(--ease)}
.rotator .w span.on{transform:none}
.rotator .w span.out{transform:translateY(105%)}
.rotator .w span.reset{transition:none}
.intro{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,5vw,72px);align-items:end}
.intro .lead{color:var(--muted)}
@media(max-width:860px){.intro{grid-template-columns:1fr}}

/* Servizi (anteprima home) */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line)}
@media(max-width:1000px){.services{grid-template-columns:repeat(2,1fr)}}
.svc{position:relative;background:var(--paper);display:flex;flex-direction:column;text-decoration:none;color:inherit;min-width:0;overflow:hidden}
.svc .ph{aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.svc .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.svc:hover .ph img{transform:scale(1.07)}
.svc .tx{padding:20px 20px 24px;display:grid;gap:6px;flex:1;align-content:start}
.svc .n{font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--muted)}
.svc h3{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.15rem;line-height:1.05}
.svc p{font-size:.88rem;color:var(--muted)}
.svc::after{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.svc:hover::after,.svc:focus-visible::after{transform:scaleX(1)}
@media(max-width:560px){.services{grid-template-columns:1fr}.svc{flex-direction:row}.svc .ph{width:38%;aspect-ratio:auto;flex:none}.svc .tx{padding:16px}}
.more-row{margin-top:28px;display:flex;justify-content:flex-end}

/* Strumenti: icone grandi affiancate, nome sotto, alone tenue */
.tg .tools-wrap{grid-template-columns:1fr;gap:clamp(36px,5vw,56px)}
.tg .tools-wrap>div:first-child{max-width:640px}
.tg .tools{grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,48px)}
.tg .tool{grid-template-columns:1fr;justify-items:center;text-align:center;gap:20px;padding:0;background:none;box-shadow:none;border:0}
.tg .tools .tool{background:none;border:0;box-shadow:none}
.tg .tools .tool::before{display:none}
.tg .tool:hover{transform:translateY(-8px)}
.tg .ti{width:clamp(96px,11vw,136px);height:clamp(96px,11vw,136px);border-radius:24px;animation:none;
  box-shadow:0 0 28px -6px rgba(var(--glow),.4),0 18px 36px -18px rgba(0,0,0,.6);transition:box-shadow .4s var(--ease)}
.tg .ti svg{width:46%;height:46%}
.tg .tool:hover .ti{box-shadow:0 0 40px -4px rgba(var(--glow),.55),0 22px 40px -18px rgba(0,0,0,.6)}
.tg .tool h3{font-size:clamp(1rem,1.6vw,1.2rem)}
.tg .tool p{max-width:28ch;margin-inline:auto}
@media(max-width:640px){.tg .tools{grid-template-columns:1fr;gap:36px}}

/* Home: servizi come schede bianche con ombre (palette originale) */
.svc-sec{background:linear-gradient(180deg,var(--paper) 0%,#eef0ea 100%)}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:1060px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sgrid{grid-template-columns:1fr}}
.sc{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:6px;text-decoration:none;color:inherit;min-width:0;
  box-shadow:0 1px 2px rgba(27,28,30,.06),0 10px 28px -10px rgba(27,28,30,.22);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.sc:hover,.sc:focus-visible{transform:translateY(-8px);box-shadow:0 0 0 1px rgba(149,193,31,.55),0 0 34px -8px rgba(149,193,31,.55),0 30px 50px -20px rgba(27,28,30,.35)}
.sc-ph{aspect-ratio:16/10;overflow:hidden;border-radius:6px 6px 0 0;background:var(--paper-2)}
.sc-ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.sc:hover .sc-ph img{transform:scale(1.07)}
.sc-tx{position:relative;padding:40px 22px 24px;display:grid;gap:8px;flex:1;align-content:start}
.sc-ic{position:absolute;left:20px;top:-27px;width:54px;height:54px;border-radius:6px;background:var(--graphite);color:var(--lime);display:grid;place-items:center;
  box-shadow:0 0 0 3px #fff,0 8px 18px -6px rgba(27,28,30,.45);transition:background .3s,color .3s,box-shadow .3s}
.sc-ic svg{width:28px;height:28px}
.sc:hover .sc-ic{background:var(--lime);color:var(--graphite);box-shadow:0 0 0 3px #fff,0 0 24px rgba(149,193,31,.75)}
.sc-tx h3{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.12rem;line-height:1.05}
.sc-tx p{font-size:.9rem;color:var(--muted)}
.sc-go{margin-top:6px;font-size:.82rem;font-weight:700;color:var(--ink);display:inline-flex;gap:6px;align-items:center}
.sc-go span{color:var(--lime);transition:transform .3s var(--ease)}
.sc:hover .sc-go span{transform:translateX(5px)}

/* sezione studio su fondo chiaro */

/* Home: servizi, tessere + vetrina */
.sc-sec{position:relative;overflow:hidden;isolation:isolate}
.sc-grid{position:absolute;inset:0;z-index:-1;pointer-events:none}
.sc-dots{position:absolute;right:-60px;top:40px;width:520px;height:420px;background:radial-gradient(circle,rgba(29,29,31,.16) 1.6px,transparent 2px) 0 0/14px 14px;-webkit-mask-image:radial-gradient(circle at 70% 30%,#000 0,transparent 70%);mask-image:radial-gradient(circle at 70% 30%,#000 0,transparent 70%)}
.sc-curves{position:absolute;inset:0;width:100%;height:100%}
.cv{fill:none;stroke-linecap:round}
.cv.c1{stroke:var(--lime);stroke-width:2.5;stroke-dasharray:1800;stroke-dashoffset:1800;animation:cvDraw 3.2s var(--ease) .3s forwards,cvFloat 9s ease-in-out 3.5s infinite alternate}
.cv.c2{stroke:rgba(149,193,31,.35);stroke-width:1.5;stroke-dasharray:6 10;animation:cvDash 30s linear infinite}
.cv.c3{stroke:rgba(29,29,31,.12);stroke-width:1.5;stroke-dasharray:1400;stroke-dashoffset:1400;animation:cvDraw 3s var(--ease) .8s forwards}
@keyframes cvDraw{to{stroke-dashoffset:0}}
@keyframes cvDash{to{stroke-dashoffset:-800}}
@keyframes cvFloat{to{transform:translateY(-18px)}}
.anc{opacity:0;animation:ancIn .6s var(--ease) 3s forwards}
.sc-sec:not(.go) .cv,.sc-sec:not(.go) .anc{animation-play-state:paused}
.anc line{stroke:rgba(29,29,31,.35);stroke-width:1}
.anc rect{fill:var(--paper);stroke:var(--lime-ink);stroke-width:2}
.anc circle{fill:var(--lime);stroke:none}
@keyframes ancIn{to{opacity:1}}
.crop{position:absolute;width:26px;height:26px;border:0 solid rgba(29,29,31,.28)}
.crop.tl{left:24px;top:24px;border-left-width:1.5px;border-top-width:1.5px}
.crop.tr{right:24px;top:24px;border-right-width:1.5px;border-top-width:1.5px}
.crop.bl{left:24px;bottom:24px;border-left-width:1.5px;border-bottom-width:1.5px}
.crop.br{right:24px;bottom:24px;border-right-width:1.5px;border-bottom-width:1.5px}
.reg{position:absolute;right:56px;bottom:40px;width:34px;height:34px;fill:none;stroke:rgba(29,29,31,.3);stroke-width:1.2;animation:regSpin 24s linear infinite}
@keyframes regSpin{to{transform:rotate(360deg)}}
.sc-glow{position:absolute;width:520px;height:520px;left:var(--gx,30%);top:var(--gy,55%);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(149,193,31,.22),rgba(149,193,31,0) 65%);transition:left 1.2s var(--ease),top 1.2s var(--ease);animation:glowPulse 7s ease-in-out infinite}
@keyframes glowPulse{50%{opacity:.6;transform:translate(-50%,-50%) scale(1.15)}}
.showcase{display:grid;grid-template-columns:minmax(300px,.85fr) 1.15fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.sc-list{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:12px}
.sc-item{position:relative;display:grid;grid-template-rows:auto 1fr auto;align-content:start;gap:10px;padding:16px 16px 18px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--paper) 82%,transparent);font:inherit;text-align:left;color:var(--ink);cursor:pointer;overflow:hidden;transition:transform .35s var(--ease),border-color .3s,background .35s,color .3s,box-shadow .35s}
.sc-n{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--muted);transition:color .3s}
.sc-ico{position:absolute;top:14px;right:14px;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.55;transition:opacity .3s,color .3s,transform .4s var(--ease)}
.sc-t{align-self:end;font-weight:800;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.15;letter-spacing:-.01em;padding-right:6px}
.sc-item:hover{transform:translateY(-3px);border-color:rgba(149,193,31,.6);box-shadow:0 14px 30px -18px rgba(27,28,30,.35)}
.sc-item:hover .sc-ico{opacity:1;color:var(--lime-ink);transform:rotate(-6deg) scale(1.08)}
.sc-item.on{background:var(--graphite);border-color:var(--graphite);color:#fbfbfd;box-shadow:0 18px 36px -18px rgba(27,28,30,.6)}
.sc-item.on .sc-n,.sc-item.on .sc-ico{color:var(--lime);opacity:1}
.sc-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--lime);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.sc-item.on::before{transform:none}
.sc-bar{position:absolute;left:0;right:0;bottom:0;height:3px;overflow:hidden}
.sc-bar i{display:block;height:100%;background:var(--lime);transform:scaleX(0);transform-origin:left}
.sc-item.on .sc-bar i{animation:scFill var(--dur,6s) linear forwards}
.showcase.paused .sc-item.on .sc-bar i{animation-play-state:paused}
@keyframes scFill{to{transform:scaleX(1)}}
.sc-stage{position:relative;min-height:clamp(380px,42vw,560px);border-radius:10px;overflow:hidden;background:var(--graphite);box-shadow:0 30px 60px -30px rgba(27,28,30,.55)}
.sc-panel{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility 0s .7s}
.sc-panel.on{opacity:1;visibility:visible;transition:opacity .7s var(--ease),visibility 0s}
.sc-img{position:absolute;inset:0}
.sc-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 6s ease-out}
.sc-panel.on .sc-img img{transform:scale(1)}
.sc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,19,20,.95) 0%,rgba(18,19,20,.6) 38%,rgba(18,19,20,0) 70%)}
.sc-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,3vw,36px);color:#fbfbfd;display:grid;gap:10px}
.sc-cap>*{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.sc-panel.on .sc-cap>*{opacity:1;transform:none}
.sc-panel.on .sc-cap>*:nth-child(2){transition-delay:.08s}.sc-panel.on .sc-cap>*:nth-child(3){transition-delay:.16s}.sc-panel.on .sc-cap>*:nth-child(4){transition-delay:.24s}
.sc-k{font-size:.74rem;font-weight:800;letter-spacing:.16em;color:var(--lime)}
.sc-cap h3{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,3rem);line-height:.95;max-width:16ch}
.sc-cap p{color:#d6d6da;max-width:46ch}
.sc-btns{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:6px}
.link-arrow.light{color:var(--lime)}
@media(max-width:860px){
  .showcase{grid-template-columns:1fr}
  .sc-list{display:flex;overflow-x:auto;gap:8px;padding:2px 2px 6px;scrollbar-width:none}
  .sc-list::-webkit-scrollbar{display:none}
  .sc-item{flex:none;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px}
  .sc-item:hover{transform:none}
  .sc-ico{position:static;width:18px;height:18px}.sc-n{display:none}
  .sc-item::before{display:none}.sc-t{font-size:.85rem;white-space:nowrap}.sc-bar{left:16px;right:16px;bottom:4px;height:2px}
  .sc-stage{min-height:440px}
  .sc-dots,.reg,.anc{display:none}.crop{width:16px;height:16px}.crop.tl,.crop.tr{top:12px}.crop.tl,.crop.bl{left:8px}.crop.tr,.crop.br{right:8px}
}
html[data-night] .sc-dots{background-image:radial-gradient(circle,rgba(255,255,255,.14) 1.6px,transparent 2px)}
html[data-night] .cv.c1{filter:drop-shadow(0 0 6px rgba(149,193,31,.9))}
html[data-night] .cv.c3,html[data-night] .anc line{stroke:rgba(255,255,255,.18)}
html[data-night] .crop{border-color:rgba(255,255,255,.25)}html[data-night] .reg{stroke:rgba(149,193,31,.55)}
html[data-night] .sc-item.on{background:#1f2326;border-color:rgba(149,193,31,.55);box-shadow:0 0 24px -6px rgba(149,193,31,.45)}
html[data-night] .sc-item.on .sc-ico{filter:drop-shadow(0 0 6px rgba(149,193,31,.9))}
html[data-night] .sc-stage{box-shadow:0 0 0 1px rgba(149,193,31,.25),0 0 40px -10px rgba(149,193,31,.4)}
html[data-night] .sc-item.on::before,html[data-night] .sc-bar i{box-shadow:0 0 10px rgba(149,193,31,.9)}
@media (prefers-reduced-motion:reduce){.sc-glow,.cv,.reg,.anc{animation:none!important;stroke-dashoffset:0!important;opacity:1}.sc-item.on .sc-bar i{animation:none}.sc-img img{transition:none}}

/* versione compatta */
.sc-sec{padding-block:clamp(48px,5vw,72px)}
.sc-sec .sec-head{margin-bottom:clamp(22px,3vw,34px)}
.sc-sec .h2{font-size:clamp(2rem,4.4vw,3.6rem)}
@media(min-width:861px){
.showcase{grid-template-columns:minmax(280px,.8fr) 1.2fr;gap:clamp(16px,2.4vw,28px)}
.sc-list{gap:8px;grid-auto-rows:auto;align-content:stretch}
.sc-item{gap:6px;padding:12px 14px 14px;min-height:0}
.sc-ico{top:11px;right:11px;width:22px;height:22px}
.sc-t{font-size:clamp(.88rem,1vw,.98rem)}
.sc-stage{min-height:clamp(300px,30vw,400px)}}
.sc-cap{gap:8px;padding:clamp(18px,2.4vw,28px)}
.sc-cap h3{font-size:clamp(1.5rem,2.8vw,2.3rem)}
.sc-sec .more-row{margin-top:18px}
@media(max-width:860px){.sc-item{padding:9px 14px}.sc-stage{min-height:380px}.sc-sec .sec-head{margin-bottom:18px}}
/* Home: servizi in schede che scorrono di lato */
.hs-sec{position:relative;padding:0;height:auto}
.hs-pin{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(56px,7vw,96px)}
.hs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.hs-meta{display:grid;justify-items:end;gap:10px;text-align:right}
.hs-meta .lead{margin:0}
.hs-count{display:flex;align-items:baseline;gap:8px;font-weight:900;font-style:italic;line-height:1}
.hs-count b{font-size:clamp(2.6rem,5vw,4.2rem);color:var(--lime-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.hs-count span{font-size:1.1rem;color:var(--muted)}
.hs-view{margin-top:clamp(24px,3.5vw,44px);overflow:hidden}
.hs-track{display:flex;gap:clamp(14px,1.8vw,24px);padding-inline:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));will-change:transform}
.hs-card{position:relative;flex:none;width:clamp(280px,27vw,400px);height:clamp(380px,56vh,540px);border-radius:16px;overflow:hidden;background:var(--graphite);color:#fbfbfd;text-decoration:none;box-shadow:0 30px 60px -32px rgba(27,28,30,.6);transform:translateZ(0);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.hs-card:hover{transform:translateY(-8px);box-shadow:0 40px 70px -30px rgba(27,28,30,.7),0 0 0 2px var(--lime)}
.hs-img{position:absolute;inset:0;overflow:hidden}
.hs-img img{position:absolute;top:0;left:-12%;width:124%;max-width:none;height:100%;object-fit:cover;transform:translateX(var(--px,0px)) scale(1.04);transition:scale .8s var(--ease)}
.hs-card:hover .hs-img img{scale:1.08}
.hs-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,17,18,.96) 0%,rgba(16,17,18,.55) 42%,rgba(16,17,18,0) 72%)}
.hs-tx{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,2.2vw,28px);display:grid;gap:8px}
.hs-n{font-size:.78rem;font-weight:800;letter-spacing:.16em;color:var(--lime)}
.hs-card h3{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.5rem,2.3vw,2.1rem);line-height:.98;letter-spacing:-.01em}
.hs-card p{font-size:.92rem;color:#d4d5d8;line-height:1.45;max-width:34ch}
.hs-go{display:inline-flex;gap:8px;align-items:center;font-weight:800;font-size:.9rem;color:var(--lime);margin-top:4px}
.hs-go span{transition:transform .3s var(--ease)}.hs-card:hover .hs-go span{transform:translateX(6px)}
.hs-card.on .hs-n{text-shadow:0 0 12px rgba(149,193,31,.8)}
.hs-end{margin-right:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));background:linear-gradient(150deg,#22282e,#141719);border:1px solid rgba(149,193,31,.35)}
.hs-end .hs-tx{top:0;align-content:center;justify-items:start}
.hs-end h3{font-size:clamp(1.9rem,3vw,2.7rem);margin:6px 0 18px}
.hs-end .hs-n{letter-spacing:.08em;text-transform:none;font-size:.95rem}
.hs-foot{display:flex;align-items:center;gap:24px;margin-top:clamp(22px,3vw,34px)}
.hs-bar{flex:1;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.hs-bar i{display:block;height:100%;width:100%;background:var(--lime);transform-origin:left;transform:scaleX(.08);box-shadow:0 0 10px rgba(149,193,31,.7)}
/* versione "bloccata": la sezione resta ferma e le schede sfilano */
.hs-sec.pin .hs-pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:72px 28px}
@media(max-width:860px){
  .hs-view{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hs-view::-webkit-scrollbar{display:none}
  .hs-card{scroll-snap-align:center;width:78vw;height:440px}
  .hs-meta{justify-items:start;text-align:left}
  .hs-head{align-items:flex-start}
}
html[data-night] .hs-card{box-shadow:0 0 0 1px rgba(149,193,31,.18),0 30px 60px -30px rgba(0,0,0,.8)}
html[data-night] .hs-card:hover{box-shadow:0 0 0 2px var(--lime),0 0 40px -6px rgba(149,193,31,.55)}
html[data-night] .hs-count b{text-shadow:0 0 18px rgba(149,193,31,.6)}
@media (prefers-reduced-motion:reduce){.hs-img img{transform:none}}
/* Nastro foto che scorre */
.reel{overflow:hidden;padding-block:8px}
.reel .track{display:flex;gap:14px;width:max-content;animation:slide 60s linear infinite}
.reel:hover .track{animation-play-state:paused}
.reel a{display:block;width:clamp(240px,30vw,420px);aspect-ratio:4/3;overflow:hidden;position:relative;flex:none}
.reel img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .4s}
.reel a:hover img{transform:scale(1.05)}
.reel a span{position:absolute;left:12px;bottom:12px;background:var(--graphite);color:var(--paper);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px}

/* Metodo: 4 fasi */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}
.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ink);transform-origin:left;transform:scaleX(var(--line,1));transition:transform 1.1s var(--ease)}
.steps.armed::before{--line:0}
.steps.go::before{--line:1}
.step{padding:28px 26px 30px 0;display:grid;gap:10px;align-content:start;position:relative}
.step::before{content:"";position:absolute;top:-6px;left:0;width:14px;height:14px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
.step+.step{padding-left:26px}
.step+.step::before{left:26px}
.step .k{font-weight:900;font-style:italic;font-size:2.8rem;line-height:1;color:var(--lime-ink)}
.step h3{font-weight:800;font-size:1.15rem;text-transform:uppercase;letter-spacing:.02em}
.step p{font-size:.93rem;color:var(--muted)}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}.step+.step{padding-left:0}.step+.step::before{left:0}.step:nth-child(even){padding-left:22px}.step:nth-child(even)::before{left:22px}}
@media(max-width:560px){.steps{grid-template-columns:1fr}.step:nth-child(even){padding-left:0}.step:nth-child(even)::before{left:0}}

/* Home: mappa e numeri */
.map-sec{position:relative;overflow:hidden}
.map-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
@media(max-width:860px){.map-grid{grid-template-columns:1fr}}
.map-tx{display:grid;gap:20px;align-content:center}
.counters{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;border-top:1px solid var(--line-dark);padding-top:26px}
.cnt-i{display:grid;gap:6px}
.cnt-i b{font-weight:900;font-style:italic;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:.95;color:var(--lime);font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(var(--glow),.3)}
.cnt-i span{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-dark)}
.map-wrap{max-width:540px;justify-self:center;width:100%}
.itmap{width:100%;height:auto;overflow:visible}
.itmap .regions path{fill:rgba(255,255,255,.035);stroke:rgba(var(--glow),.28);stroke-width:.8;stroke-linejoin:round;transition:fill .3s}
.itmap .regions path:hover{fill:rgba(var(--glow),.08)}
.itmap .arc{fill:none;stroke:rgba(var(--glow),.5);stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:0}
.itmap .pt .dot{fill:var(--lime);filter:drop-shadow(0 0 4px rgba(var(--glow),.9))}
.itmap .pt .ring{fill:none;stroke:var(--lime);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center;animation:ping 2.6s ease-out infinite;animation-delay:calc(var(--i)*.17s)}
.itmap .pt.hq .dot{fill:#fff;filter:drop-shadow(0 0 6px rgba(var(--glow),1)) drop-shadow(0 0 14px rgba(var(--glow),.8))}
.itmap .pt.hq .ring{stroke-width:2}
.itmap .pt text{font-family:var(--f-body);font-size:13px;font-weight:700;fill:var(--paper);opacity:0;transition:opacity .25s;paint-order:stroke;stroke:var(--graphite);stroke-width:4px}
.itmap .pt.hq text{opacity:1;font-size:15px;fill:var(--lime)}
.itmap .pt:hover text{opacity:1}
.itmap .pt{cursor:default}
@keyframes ping{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(2.2)}}
.rv-wait[data-rv="map"]{opacity:1;transform:none}
.rv-wait[data-rv="map"] .arc{stroke-dashoffset:1}
.rv-wait[data-rv="map"] .pt .dot{opacity:0}
.rv-in[data-rv="map"]{animation:hold 3.2s both}
.rv-in[data-rv="map"] .arc{animation:arcDraw 1.1s cubic-bezier(.65,0,.35,1) both;animation-delay:calc(.2s + var(--i)*.09s)}
.rv-in[data-rv="map"] .pt .dot{animation:dotIn .4s var(--ease) both;animation-delay:calc(.9s + var(--i)*.09s)}
@keyframes arcDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes dotIn{from{opacity:0}to{opacity:1}}

.itmap .arc.ext{stroke:#b6ec2c;stroke-width:1.6;filter:drop-shadow(0 0 4px rgba(149,193,31,.7))}
.itmap .pt.ext .dot{fill:#fff;filter:drop-shadow(0 0 5px rgba(149,193,31,1)) drop-shadow(0 0 12px rgba(149,193,31,.7))}
.itmap .pt.ext .ring{stroke-width:1.6}
.itmap .pt.ext text{opacity:1;paint-order:stroke;stroke:var(--graphite);stroke-width:5px}
.itmap .pt.ext .cty{font-size:14px;font-weight:900;font-style:italic;letter-spacing:.06em;fill:#b6ec2c}
.itmap .pt.ext .sub{font-size:11px;font-weight:600;fill:#c9c9ce}
.itmap .arrow{fill:#b6ec2c;filter:drop-shadow(0 0 5px rgba(149,193,31,.9))}
.rv-wait[data-rv="map"] .pt.ext text,.rv-wait[data-rv="map"] .arrow{opacity:0}
.rv-in[data-rv="map"] .pt.ext text,.rv-in[data-rv="map"] .arrow{animation:dotIn .5s var(--ease) both;animation-delay:calc(1.1s + var(--i)*.09s)}
.itmap .regions path.pie{fill:rgba(149,193,31,.2);stroke:#b6ec2c;stroke-width:1.6;filter:drop-shadow(0 0 6px rgba(149,193,31,.8)) drop-shadow(0 0 16px rgba(149,193,31,.45));animation:piePulse 3s ease-in-out infinite}
.itmap .regions path.pie:hover{fill:rgba(149,193,31,.3)}
@keyframes piePulse{0%,100%{fill-opacity:.75}50%{fill-opacity:1;stroke-width:2.2}}
@media (prefers-reduced-motion:reduce){.itmap .regions path.pie{animation:none}}

/* Banda CTA */
.cta-band{background:var(--lime);color:var(--graphite);position:relative;overflow:hidden}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band h2{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.9rem,5vw,3.6rem);line-height:.95;max-width:16ch}
.cta-band::after{content:"";position:absolute;right:-80px;top:-40%;width:260px;height:180%;background:rgba(27,28,30,.08);transform:skewX(-20deg)}

/* Pagina servizi */
.subnav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 72px);z-index:20;background:rgba(251,251,253,.94);border-bottom:1px solid var(--line);transition:top .35s var(--ease)}
.subnav.up{top:env(safe-area-inset-top,0px)}
.subnav .wrap{display:flex;gap:8px;overflow-x:auto;padding-block:12px;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;text-decoration:none;font-size:.8rem;font-weight:700;padding:8px 14px;border:1px solid var(--line);border-radius:999px;transition:.2s}
.subnav a:hover,.subnav a.on{background:var(--graphite);border-color:var(--graphite);color:var(--paper)}
.sv{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px);border-bottom:1px solid var(--line)}
.sv:nth-child(even) .sv-ph{order:2}
.sv-ph{position:relative;overflow:hidden;aspect-ratio:5/4}
.sv-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.sv:hover .sv-ph img{transform:scale(1.04)}
.sv-ph::after{content:"";position:absolute;left:0;bottom:0;width:38%;height:8px;background:var(--lime)}
.sv-tx{display:grid;gap:16px;min-width:0}
.sv-tx .n{font-weight:900;font-style:italic;font-size:1rem;color:var(--lime-ink);letter-spacing:.08em}
.sv-tx h2{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1}
.sv-tx p{color:var(--muted);max-width:52ch}
.sv-tx ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sv-tx li{display:grid;grid-template-columns:20px 1fr;gap:8px;font-size:.95rem}
.sv-tx li::before{content:"";width:12px;height:12px;margin-top:6px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
.sv-tx .btn{justify-self:start}
@media(max-width:820px){.sv{grid-template-columns:1fr}.sv:nth-child(even) .sv-ph{order:0}}
.materials{margin-top:clamp(40px,6vw,64px);display:grid;grid-template-columns:auto 1fr;gap:16px 32px;align-items:center;padding:26px 28px;background:var(--paper-2)}
.materials .eyebrow{color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:.8rem;font-weight:600;padding:7px 12px;background:var(--paper);border:1px solid var(--line);border-radius:999px;transition:.2s}
.chip:hover{border-color:var(--lime);transform:translateY(-2px)}
@media(max-width:700px){.materials{grid-template-columns:1fr}}

/* Pagina lavori */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{font:inherit;font-size:.84rem;font-weight:700;padding:10px 16px;border-radius:999px;border:1px solid var(--line-dark);background:transparent;color:#d8d8dc;cursor:pointer;transition:.2s}
.filters button:hover{border-color:var(--lime);color:var(--paper)}
.filters button[aria-pressed="true"]{background:var(--lime);border-color:var(--lime);color:var(--graphite)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-flow:dense;gap:12px}
.work{position:relative;overflow:hidden;background:var(--graphite-2);aspect-ratio:1/1;min-width:0;margin:0;transition:opacity .35s,transform .35s var(--ease)}
.work.wide{grid-column:span 2;aspect-ratio:2/1}
@media(max-width:600px){.work.wide{grid-column:auto;aspect-ratio:1/1}}
.work button{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.work button:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}
.work img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.work:hover img{transform:scale(1.05)}
.work figcaption{position:absolute;inset:auto 0 0 0;padding:40px 16px 14px;background:linear-gradient(0deg,rgba(18,19,20,.92),rgba(18,19,20,0));color:var(--paper);display:grid;gap:2px;pointer-events:none;transform:translateY(6px);transition:transform .35s var(--ease)}
.work:hover figcaption{transform:none}
.work figcaption b{font-size:.98rem;font-weight:800}
.work figcaption span{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.work.fade{opacity:0;transform:scale(.96)}
.note{margin-top:22px;font-size:.84rem;color:var(--muted-dark);display:flex;gap:10px;align-items:flex-start}
.note::before{content:"";flex:none;width:10px;height:10px;margin-top:6px;background:var(--lime);transform:skewX(-20deg)}

/* Chi siamo */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.about .big{font-size:clamp(1.3rem,2.4vw,1.85rem);font-weight:500;line-height:1.35}
.about .big b{font-weight:900;font-style:italic;color:var(--lime-ink)}
.about-ph{position:relative}
.about-ph img{width:100%;aspect-ratio:4/3;object-fit:cover}
.about-ph::before{content:"";position:absolute;left:-14px;top:-14px;width:40%;height:40%;border-left:6px solid var(--lime);border-top:6px solid var(--lime)}
@media(max-width:860px){.about{grid-template-columns:1fr}}
.values{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
@media(max-width:860px){.values{grid-template-columns:1fr}}
.v{padding:22px 0;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:auto 1fr;gap:6px 18px}
.v:first-child{border-top:1px solid var(--line-dark)}
.v .tick{grid-row:span 2;width:14px;height:14px;margin-top:7px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
.v h3{font-size:1.1rem;font-weight:800;text-transform:uppercase}
.v p{color:var(--muted-dark);font-size:.94rem}
blockquote{margin:0;position:relative;padding-top:64px}
blockquote::before{content:"\201C";position:absolute;top:-36px;left:-6px;font-family:var(--f-display);font-weight:900;font-size:10rem;line-height:1;color:var(--lime)}
blockquote p{font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:500;line-height:1.35}
blockquote cite{display:block;margin-top:16px;font-style:normal;font-weight:700;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.clients{display:grid;grid-template-columns:1fr 1.25fr;gap:2px;background:var(--line)}
.clients figure{margin:0;background:#fff;padding:clamp(18px,3vw,36px);display:grid;place-items:center}
.clients img{max-height:540px;width:auto;object-fit:contain}
@media(max-width:760px){.clients{grid-template-columns:1fr}}

/* Chi siamo: il titolare */
.founder-sec{padding-top:0}
.founder{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,88px);align-items:center}
@media(max-width:860px){.founder{grid-template-columns:1fr}}
.f-portrait{position:relative;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:radial-gradient(120% 90% at 20% 0%,#2b2d31,var(--graphite) 65%);box-shadow:0 2px 6px rgba(27,28,30,.15),0 40px 70px -30px rgba(27,28,30,.55)}
.f-portrait::after{content:"";position:absolute;right:-12%;bottom:-6%;width:62%;height:70%;background:var(--lime);clip-path:polygon(55% 0,100% 0,45% 100%,0 100%);opacity:.9}
.f-mono{position:absolute;inset:0;display:grid;place-items:center}
.f-mono span{font-weight:900;font-style:italic;font-size:clamp(5rem,13vw,10rem);line-height:1;color:var(--paper);letter-spacing:-.04em;text-shadow:0 20px 40px rgba(0,0,0,.4)}
.f-note{position:absolute;left:18px;bottom:16px;z-index:1;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bdbdc2}
.f-tx{display:grid;gap:18px;min-width:0}
.f-role{font-weight:700;font-size:1rem;color:var(--muted)}
.f-stat{display:flex;align-items:center;gap:16px;padding-block:6px}
.f-stat b{font-weight:900;font-style:italic;font-size:clamp(3rem,6vw,4.6rem);line-height:.9;color:var(--lime-ink)}
.f-stat span{font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.4;color:var(--ink)}

/* Contatti + preventivo */
.quote-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,80px);align-items:start}
@media(max-width:900px){.quote-grid{grid-template-columns:1fr}}
.qinfo{display:grid;gap:22px;position:sticky;top:110px}
@media(max-width:900px){.qinfo{position:static}}
.qinfo ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.qinfo li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:.95rem;color:var(--muted)}
.qinfo li::before{content:"";width:12px;height:12px;margin-top:6px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
form{background:#fff;color:var(--ink);padding:clamp(22px,4vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:5px solid var(--lime);box-shadow:0 30px 60px -40px rgba(27,28,30,.35)}
.f{display:grid;gap:6px;min-width:0}
.f.full{grid-column:1/-1}
@media(max-width:560px){form{grid-template-columns:1fr}}
label{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
label small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
input,select,textarea{font:inherit;font-size:.95rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:2px;padding:12px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 3px rgba(149,193,31,.25)}
textarea{min-height:120px;resize:vertical}
.drop{border:2px dashed var(--line);padding:18px;text-align:center;font-size:.88rem;color:var(--muted);cursor:pointer;transition:.2s;background:var(--paper);text-transform:none;letter-spacing:0;font-weight:500}
.drop:hover,.drop.over{border-color:var(--lime);color:var(--ink)}
.drop strong{color:var(--lime-ink)}
.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.files span{font-size:.78rem;background:var(--paper-2);padding:4px 10px;border-radius:999px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:500}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--lime-ink);flex:none}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.ok{grid-column:1/-1;background:#eef6d9;border-left:4px solid var(--lime);padding:14px 16px;font-size:.92rem}
.err{color:#b3261e;font-size:.82rem}
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
.contact div{background:var(--paper);padding:28px;display:grid;gap:6px;align-content:start}
.contact b{font-size:1.15rem;font-weight:800;word-break:break-word}
.contact .copy,.contact a.small{justify-self:start;margin-top:8px;font:inherit;font-size:.78rem;font-weight:700;color:var(--lime-ink);background:none;border:0;padding:0;cursor:pointer;text-decoration:none}
@media(max-width:820px){.contact{grid-template-columns:1fr}}

/* Footer */
footer{background:var(--graphite);color:#bdbdc2;position:relative;overflow:hidden;padding-block:72px 40px}
footer::before{content:"";position:absolute;right:-60px;bottom:-40px;width:340px;height:340px;background:var(--lime);clip-path:polygon(40% 100%,100% 0,100% 100%)}
footer .wrap{position:relative;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
footer .big{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;align-items:end;justify-content:space-between;padding-bottom:40px;margin-bottom:8px;border-bottom:1px solid var(--line-dark)}
footer .big a{text-decoration:none;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.8rem,5vw,3.6rem);line-height:.95;color:var(--paper);transition:color .2s}
footer .big a span{color:var(--lime);display:inline-block;transition:transform .3s var(--ease)}
footer .big a:hover span{transform:translateX(10px)}
footer img{height:44px;width:auto}
footer h4{margin:0 0 10px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper)}
footer p,footer a{font-size:.88rem;line-height:1.8;text-decoration:none}
footer .cols a:hover{color:var(--lime)}
footer .legal{grid-column:1/-1;border-top:1px solid var(--line-dark);padding-top:20px;font-size:.78rem;color:#8a8a90;max-width:70%}
@media(max-width:760px){footer .wrap{grid-template-columns:1fr}footer .legal{max-width:none}footer::before{width:180px;height:180px}}

/* Pulsante WhatsApp sempre visibile */
.wa{position:fixed;z-index:60;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;height:56px;padding:0 20px 0 14px;border-radius:999px;background:var(--lime);color:var(--graphite);text-decoration:none;font-weight:800;font-size:.88rem;
  box-shadow:0 0 0 4px rgba(149,193,31,.18),0 14px 30px -10px rgba(0,0,0,.45);animation:waIn .6s 1.2s var(--ease) backwards;transition:transform .25s var(--ease),box-shadow .25s}
.wa svg{width:28px;height:28px;flex:none}
.wa:hover{transform:translateY(-3px);box-shadow:0 0 0 6px rgba(149,193,31,.22),0 0 28px rgba(149,193,31,.55),0 18px 34px -10px rgba(0,0,0,.5)}
.wa::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(149,193,31,.6);animation:waPing 2.8s 2.5s ease-out infinite;pointer-events:none}
@keyframes waIn{from{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:none}}
@keyframes waPing{0%{box-shadow:0 0 0 0 rgba(149,193,31,.55)}70%,100%{box-shadow:0 0 0 16px rgba(149,193,31,0)}}
html.has-intro .wa{animation-delay:2.6s}
@media(max-width:640px){.wa{width:56px;padding:0;justify-content:center}.wa span{display:none}}

/* Configuratore */
.cfg-sec{background:#fff;padding-top:clamp(32px,4vw,56px)}
.cfg{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,36px)}
.cfg-stage{display:grid;gap:10px}
.stage{position:relative;padding:clamp(28px,4vw,56px) 0 clamp(8px,1vw,16px);background:#fff}
.stage-note{font-size:.8rem;color:var(--muted);max-width:80ch;text-align:center;margin-inline:auto}
.van{width:100%;max-height:68vh;height:auto;display:block;overflow:visible;--c1:#95c11f;--c2:#1b1c1e;--base:#f4f5f2;--gloss:1}
.van .skid path{fill:none;stroke:#1b1c1e;stroke-width:5;stroke-dasharray:9 5;opacity:.5}
.van .skid path.b{stroke-width:4;opacity:.32;stroke-dasharray:7 6}
.van .v-base{fill:var(--base);transition:fill .4s}
.van .c1{fill:var(--c1);transition:fill .4s}
.van .hx{fill:var(--c2);fill-opacity:.1;stroke:var(--c2);stroke-opacity:.45;stroke-width:1.4;transition:fill .4s,stroke .4s}
.van .glow-s{stop-color:var(--c2)}
.van .d{opacity:0;transition:opacity .5s}
.van[data-pkg="easy1"] .d-rwin,.van[data-pkg="easy2"] .d-rwin,.van[data-pkg="easy3"] .d-panel,.van[data-pkg="easy4"] .d-full{opacity:1}
.van .rwin-edge{fill:none;stroke:rgba(0,0,0,.35);stroke-width:2}
.van text{font-family:var(--f-display);transition:fill .3s}
.van .t-name{font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-.3px}
.van .t-l{font-weight:700}
.van .t-tel{font-weight:800}
.van .t-slogan{font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-.3px;transition:opacity .4s,fill .3s}
.van .ph-logo .pl1{fill:var(--logo-a,#1b1c1e);transition:fill .3s}.van .ph-logo .pl2{fill:var(--logo-b,#95c11f);transition:fill .3s}
.van .v-gloss{opacity:var(--gloss);transition:opacity .4s;mix-blend-mode:soft-light}
.van .v-line{fill:none;stroke:rgba(0,0,0,.35);stroke-width:2}
.van .v-win{fill:#15171a;stroke:#0b0c0d;stroke-width:2}
.van .v-sep{fill:none;stroke:rgba(0,0,0,.28);stroke-width:2}
.van .v-handle{fill:rgba(0,0,0,.45)}
.van .v-bump{fill:#2a2b2f}
.van .v-light{fill:#f3f0e0;stroke:rgba(0,0,0,.3)}.van .v-tail{fill:#c4161c}
.van .v-mirror{fill:#232428}
.van .wheel circle{fill:#141517}.van .wheel .rim{fill:#9a9ea4;stroke:#55585d;stroke-width:3}.van .wheel .hub{fill:#3b3d41}
.cfg-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
@media(max-width:1000px){.cfg-panel{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.cfg-panel{grid-template-columns:1fr}}
.cfg-panel fieldset{background:var(--paper)!important}
.cfg-go{grid-column:1/-1;justify-self:center;padding-inline:32px}
.cfg-panel fieldset{margin:0;border:0;padding:18px 18px 20px;background:#fff;border-radius:8px;box-shadow:0 1px 2px rgba(27,28,30,.06),0 10px 24px -14px rgba(27,28,30,.25);display:grid;gap:12px;min-width:0}
.cfg-panel legend{float:left;width:100%;padding:0;margin-bottom:2px;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opts.row3{grid-template-columns:repeat(3,1fr)}
.opt{font:inherit;text-align:left;display:grid;gap:2px;padding:10px 12px;border-radius:6px;border:1.5px solid var(--line);background:var(--paper);cursor:pointer;color:var(--ink);transition:border-color .2s,background .2s,transform .2s}
.opt:hover{border-color:var(--lime)}
.opt b{font-size:.86rem;font-weight:800}
.opt span{font-size:.72rem;color:var(--muted);line-height:1.35}
.opt.on{border-color:var(--graphite);background:var(--graphite);color:var(--paper)}
.opt.on span{color:var(--muted-dark)}
.opt.sm{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.opt.sm i{width:16px;height:16px;border-radius:50%;background:var(--c);border:1px solid rgba(0,0,0,.25)}
.sws{display:flex;flex-wrap:wrap;gap:8px}
.sw{width:34px;height:34px;border-radius:50%;border:2px solid #fff;background:var(--c);box-shadow:0 0 0 1px var(--line);cursor:pointer;transition:transform .2s,box-shadow .2s}
.sw:hover{transform:scale(1.1)}
.sw.on{box-shadow:0 0 0 2px var(--graphite),0 0 0 4px var(--lime)}
.sw-custom{position:relative;width:34px;height:34px;border-radius:50%;background:conic-gradient(red,#ff0,lime,cyan,blue,#f0f,red);display:grid;place-items:center;cursor:pointer;box-shadow:0 0 0 1px var(--line);text-transform:none;letter-spacing:0}
.sw-custom span{width:22px;height:22px;border-radius:50%;background:#fff;display:grid;place-items:center;font-weight:900;font-size:.9rem;color:var(--ink)}
.sw-custom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;border:0}
.cfg-f{display:grid;gap:5px;min-width:0}
.cfg-f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:420px){.cfg-f2{grid-template-columns:1fr}}
.cfg-f input{padding:10px 12px}
.drop.sm{padding:12px}
.cfg-go{justify-content:center;text-align:center}

/* Configuratore 3D */
.stage3d{position:relative;height:clamp(340px,52vw,640px);max-height:74vh;background:#fff;border-radius:10px;overflow:hidden}
.stage3d canvas{display:block;width:100%;height:100%;cursor:grab;outline:none}
.stage3d canvas:active{cursor:grabbing}
.stage3d .stage-badge{top:14px}
.views{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:6px;padding:5px;border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 8px 24px -10px rgba(27,28,30,.35);max-width:calc(100% - 24px);overflow-x:auto}
.views button{font:inherit;font-size:.8rem;font-weight:700;padding:8px 14px;border-radius:999px;border:0;background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.views button:hover{background:var(--paper-2)}
.views button.on{background:var(--graphite);color:var(--lime)}
.drag-hint{position:absolute;right:16px;top:16px;font-size:.72rem;font-weight:600;color:var(--muted)}
@media(max-width:760px){.drag-hint{display:none}.stage3d{height:clamp(300px,78vw,420px)}.stage3d .stage-badge{top:10px}}
.loading3d{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.85rem;font-weight:700;color:var(--muted);display:flex;gap:8px;align-items:center}
.loading3d b{color:var(--lime-ink)}
.loading3d[hidden]{display:none}
.no3d{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--muted);background:var(--paper)}
.no3d[hidden]{display:none}

/* Configuratore: soluzioni */
.cfg-panel .span3{grid-column:1/-1}
.pkgs{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
@media(max-width:1100px){.pkgs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:620px){.pkgs{grid-template-columns:1fr 1fr}}
.opt.pkg b{font-size:.95rem;font-style:italic;font-weight:900;text-transform:uppercase}
.incl-row{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;align-items:start;padding:14px 16px;background:#fff;border-radius:6px;border:1px solid var(--line)}
@media(max-width:760px){.incl-row{grid-template-columns:1fr}}
.incl-t{font-size:.82rem;font-weight:700;color:var(--muted)}
.incl-t b{color:var(--ink);font-style:italic;text-transform:uppercase}
.incl{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.incl li{font-size:.8rem;font-weight:700;padding:6px 12px 6px 28px;border-radius:999px;position:relative;background:var(--paper-2);color:#a5a7a0;transition:background .3s,color .3s}
.incl li::before{content:"";position:absolute;left:11px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;border:1.5px solid currentColor}
.incl li.on{background:var(--graphite);color:var(--paper)}
.incl li.on::before{background:var(--lime);border-color:var(--lime)}
.sub-l{font-size:.74rem;font-weight:700;color:var(--muted);margin-top:2px}
.cfg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:760px){.cfg-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.cfg-grid{grid-template-columns:1fr}}

/* Configuratore: messaggi "personalizzazioni infinite" */
.stage{position:relative}
.stage-badge{position:absolute;z-index:1;left:50%;top:0;transform:translateX(-50%);white-space:nowrap;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:999px;background:var(--graphite);color:var(--lime)}
@media(max-width:600px){.stage-badge{font-size:.6rem;padding:5px 9px}}
.cfg-hint{font-size:.82rem;color:var(--muted);background:var(--paper-2);border-left:3px solid var(--lime);padding:10px 12px;border-radius:0 6px 6px 0}
.cfg-hint b{color:var(--ink)}
.more-chips{display:flex;flex-wrap:wrap;gap:10px}
.more-chips span{font-size:.9rem;font-weight:700;padding:11px 18px;border-radius:999px;border:1px solid rgba(149,193,31,.35);background:rgba(149,193,31,.06);color:var(--paper);transition:background .25s,transform .25s}
.more-chips span:hover{background:rgba(149,193,31,.18);transform:translateY(-2px)}
.more-chips span:last-child{background:var(--lime);color:var(--graphite);border-color:var(--lime)}

/* Pagine dei singoli servizi */
.sp-hero{position:relative;background:var(--graphite);color:var(--paper);overflow:hidden;padding-block:clamp(64px,9vw,120px) clamp(48px,6vw,80px)}
.sp-media{position:absolute;inset:0}
.sp-media img{width:100%;height:100%;object-fit:cover;animation:zoom 16s ease-out both}
.sp-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,19,20,.95) 0%,rgba(18,19,20,.82) 42%,rgba(18,19,20,.25) 100%)}
.sp-hero .wrap{position:relative}
.sp-hero h1{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2.4rem,7vw,5.6rem);line-height:.92;letter-spacing:-.02em;margin-top:14px;max-width:13ch}
.sp-hero h1 em{font-style:italic;color:var(--lime)}
.sp-sub{margin-top:20px;color:#dadade;max-width:50ch;font-size:clamp(1rem,1.5vw,1.15rem)}
.sp-trust{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.85rem;font-weight:700;color:#d8d8dc}
.sp-trust li{display:flex;gap:8px;align-items:center}
.sp-trust li::before{content:"";width:10px;height:10px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
.sp-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:start}
@media(max-width:860px){.sp-intro{grid-template-columns:1fr}}
.sp-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
@media(max-width:560px){.sp-list{grid-template-columns:1fr}}
.sp-list li{display:grid;grid-template-columns:20px 1fr;gap:8px;font-weight:600}
.sp-list li::before{content:"";width:12px;height:12px;margin-top:6px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
.pros{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:980px){.pros{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pros{grid-template-columns:1fr}}
.pro{display:grid;gap:10px;align-content:start;padding:24px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid rgba(149,193,31,.18);transition:border-color .3s,transform .3s var(--ease)}
.pro:hover{border-color:rgba(149,193,31,.55);transform:translateY(-4px)}
.pro-i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--graphite)}
.pro-i svg{width:20px;height:20px}
.pro h3{font-size:1.05rem;font-weight:800;text-transform:uppercase}
.pro p{font-size:.9rem;color:var(--muted-dark)}
.sp-extra{margin-top:40px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;padding:24px 28px;border-radius:8px;background:var(--paper-2);border-left:5px solid var(--lime)}
.sp-extra b{font-size:1.1rem;font-weight:900;font-style:italic;text-transform:uppercase}
.sp-extra p{color:var(--muted);font-size:.92rem;margin-top:4px}
.btn-ghost-dark{border-color:var(--graphite);color:var(--graphite);background:transparent}
.btn-ghost-dark:hover{background:var(--graphite);color:var(--paper)}
.sp-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:start}
@media(max-width:860px){.sp-faq{grid-template-columns:1fr}}
.qas{display:grid;gap:10px}
.qa{border-radius:8px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px -16px rgba(27,28,30,.35);transition:border-color .2s}
.qa[open]{border-color:var(--lime)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 20px;font-weight:800}
.qa summary::-webkit-details-marker{display:none}
.qa summary span{flex:none;width:28px;height:28px;border-radius:50%;background:var(--paper-2);position:relative;transition:background .2s,transform .3s var(--ease)}
.qa summary span::before,.qa summary span::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--ink)}
.qa summary span::after{transform:rotate(90deg);transition:transform .3s var(--ease)}
.qa[open] summary span{background:var(--lime)}
.qa[open] summary span::after{transform:rotate(0)}
.qa p{padding:0 20px 18px;color:var(--muted)}
.others-sec{padding-block:clamp(40px,6vw,72px)}
.others{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-top:18px}
@media(max-width:1000px){.others{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.others{grid-template-columns:1fr 1fr}}
.oth{position:relative;display:block;aspect-ratio:1;border-radius:8px;overflow:hidden;text-decoration:none;color:var(--paper)}
.oth img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.oth::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,19,20,.9),rgba(18,19,20,.1) 70%)}
.oth span{position:absolute;z-index:1;left:12px;right:12px;bottom:12px;font-weight:800;font-size:.85rem;line-height:1.2}
.oth:hover img{transform:scale(1.07)}
.sp-bar{position:fixed;z-index:55;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom,0px);background:rgba(27,28,30,.94);color:var(--paper);border-top:2px solid var(--lime);transform:translateY(110%);transition:transform .45s var(--ease)}
.sp-bar.on{transform:none}
.sp-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;padding-right:calc(var(--gutter) + 230px)}
.sp-bar span{font-size:.9rem;color:#d8d8dc}
.sp-bar b{color:var(--paper)}
.sp-bar .btn{padding:11px 18px;white-space:nowrap}
@media(max-width:640px){.sp-bar span{display:none}.sp-bar .wrap{padding-right:calc(var(--gutter) + 70px)}.sp-bar .btn{flex:1;justify-content:center}}
body.bar-on .wa{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
.sv-btns{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:center;margin-top:6px}
.sv-tx h2 a{text-decoration:none;transition:color .2s}
.sv-tx h2 a:hover{color:var(--lime-ink)}
a.sv-ph{display:block}

/* Pagine servizi: disegni e dettagli in movimento */
.sp-intro{grid-template-columns:1fr 1fr!important;align-items:center!important}
@media(max-width:860px){.sp-intro{grid-template-columns:1fr!important}}
.illu{position:relative;border-radius:10px;padding:clamp(14px,2vw,26px);background:#0f1216;color:#fff;box-shadow:0 0 0 1px rgba(149,193,31,.22),0 0 46px -10px rgba(149,193,31,.45),0 40px 70px -30px rgba(0,0,0,.6);overflow:hidden}
.illu::before{content:"";position:absolute;width:60%;aspect-ratio:1;left:-20%;top:-30%;border-radius:50%;background:radial-gradient(circle,rgba(149,193,31,.22),transparent 65%);animation:orb 14s ease-in-out infinite;pointer-events:none}
.illu svg{position:relative;width:100%;height:auto;display:block;overflow:visible}
.illu .ln{fill:none;stroke:#b6ec2c;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(149,193,31,.9)) drop-shadow(0 0 14px rgba(149,193,31,.5))}
.illu .l2{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.illu .l2.dash{stroke-dasharray:.012 .012!important;stroke-opacity:.3}
.illu .l2.cap{stroke-width:8}
.illu .an{fill:#0f1216;stroke:#b6ec2c;stroke-width:2.5;filter:drop-shadow(0 0 5px rgba(149,193,31,.9))}
.illu .hd{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:1.5}
.illu .spark{fill:#fff;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px rgba(149,193,31,1))}
.illu .ln,.illu .l2:not(.dash){stroke-dasharray:1;stroke-dashoffset:0}
.rv-wait[data-rv="draw2"]{opacity:1;transform:none}
.rv-wait[data-rv="draw2"] .ln,.rv-wait[data-rv="draw2"] .l2:not(.dash){stroke-dashoffset:1}
.rv-wait[data-rv="draw2"] .an,.rv-wait[data-rv="draw2"] .hd,.rv-wait[data-rv="draw2"] .spark,.rv-wait[data-rv="draw2"] .l2.dash{opacity:0}
.rv-in[data-rv="draw2"]{animation:hold 3s both}
.rv-in[data-rv="draw2"] .ln,.rv-in[data-rv="draw2"] .l2:not(.dash){animation:draw1 1.5s cubic-bezier(.65,0,.35,1) both;animation-delay:calc(.15s + var(--i,0)*.28s)}
.rv-in[data-rv="draw2"] .l2.dash{animation:fadeIn .6s .1s both}
.rv-in[data-rv="draw2"] .an,.rv-in[data-rv="draw2"] .hd{animation:fadeIn .5s 1.8s both}
.rv-in[data-rv="draw2"] .spark{animation:fadeIn .4s 2.1s both}
@keyframes draw1{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.illu .an{animation:anPulse 2.6s ease-in-out infinite}
@keyframes anPulse{0%,100%{opacity:.75}50%{opacity:1}}
/* striscia scorrevole */
.sp-ticker{background:var(--graphite);color:var(--paper);overflow:hidden;white-space:nowrap;padding-block:16px;border-block:1px solid var(--line-dark)}
.sp-ticker .run{display:inline-flex;align-items:center;gap:28px;padding-left:28px;animation:slide 40s linear infinite}
.sp-ticker span{font-weight:800;font-style:italic;text-transform:uppercase;font-size:.95rem;letter-spacing:.02em}
.sp-ticker i{width:12px;height:12px;background:var(--lime);clip-path:polygon(0 100%,60% 0,100% 0,40% 100%)}
/* segni fluttuanti e diagonale nell'apertura */
.floaters{position:absolute;inset:0;pointer-events:none}
.floaters i{position:absolute;width:6px;height:46px;background:var(--lime);opacity:.5;transform:skewX(-24deg);border-radius:2px;animation:drift 12s ease-in-out infinite;box-shadow:0 0 12px rgba(149,193,31,.6)}
.floaters i:nth-child(1){left:62%;top:18%;animation-delay:-1s}.floaters i:nth-child(2){left:74%;top:62%;height:28px;animation-delay:-4s}
.floaters i:nth-child(3){left:86%;top:30%;height:64px;animation-delay:-7s;opacity:.35}.floaters i:nth-child(4){left:55%;top:78%;height:22px;animation-delay:-2.5s}
.floaters i:nth-child(5){left:92%;top:74%;height:34px;animation-delay:-9s;opacity:.3}.floaters i:nth-child(6){left:68%;top:8%;height:18px;animation-delay:-5.5s}
.floaters i:nth-child(7){left:80%;top:48%;height:12px;width:12px;transform:none;border-radius:50%;animation-delay:-3s}
@keyframes drift{0%,100%{translate:0 0}25%{translate:14px -18px}50%{translate:-8px -30px}75%{translate:-16px -8px}}
.hero-slash{position:absolute;right:6%;top:0;height:100%;width:min(220px,22vw);pointer-events:none;overflow:visible}
.hero-slash path{fill:none;stroke:var(--lime);stroke-width:5;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 8px rgba(149,193,31,.8));animation:draw1 1.6s .5s cubic-bezier(.65,0,.35,1) forwards}
.hero-slash path+path{stroke-width:2;opacity:.6;animation-delay:.8s}
@media(max-width:700px){.hero-slash{display:none}.floaters i:nth-child(n+4){display:none}}
/* icone dei vantaggi che saltano, FAQ fluide */
.pros .pro.rv-in .pro-i{animation:pop .7s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--d,0s) + .25s)}
@keyframes pop{0%{transform:scale(0) rotate(-30deg)}100%{transform:none}}
.pro-i{box-shadow:0 0 0 0 rgba(149,193,31,.5);transition:box-shadow .3s}
.pro:hover .pro-i{box-shadow:0 0 0 8px rgba(149,193,31,.15)}
.qa[open] p{animation:qaIn .45s var(--ease) both}
@keyframes qaIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.qa summary:hover{color:var(--lime-ink)}
.oth span{transition:transform .35s var(--ease)}
.oth:hover span{transform:translateY(-4px)}
@media (prefers-reduced-motion:reduce){.floaters,.hero-slash{display:none}.sp-ticker .run{animation:none}}

/* Lightbox */
dialog{border:0;padding:0;background:transparent;max-width:min(1300px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(12,12,14,.88)}
dialog[open]{animation:pop .35s var(--ease)}
@keyframes pop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
#lb img{max-height:84vh;width:auto;margin:0 auto}
#lb p{color:var(--paper);text-align:center;padding:12px;font-weight:700}
.x{position:absolute;top:10px;right:10px;width:42px;height:42px;border:0;background:var(--graphite);color:var(--paper);font-size:1.4rem;cursor:pointer;z-index:2}
.lb-nav{position:absolute;top:50%;width:46px;height:46px;margin-top:-23px;border:0;background:var(--lime);color:var(--graphite);font-size:1.3rem;font-weight:900;cursor:pointer}
.lb-prev{left:10px}.lb-next{right:10px}

/* Animazioni di apparizione */
.rv-wait{opacity:0;transform:translateY(36px)}
.rv-wait[data-rv="left"]{transform:translateX(-48px)}
.rv-wait[data-rv="right"]{transform:translateX(48px)}
.rv-wait[data-rv="scale"]{transform:scale(.94)}
.rv-in{animation:rise .8s var(--ease) both;animation-delay:var(--d,0s)}
.rv-in[data-rv="left"]{animation-name:fromLeft}
.rv-in[data-rv="right"]{animation-name:fromRight}
.rv-in[data-rv="scale"]{animation-name:scaleIn}
@keyframes rise{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes fromLeft{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:none}}
@keyframes fromRight{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes scaleIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.load-in{animation:rise .9s var(--ease) both;animation-delay:var(--d,0s)}
@keyframes zoom{from{transform:scale(1.1)}to{transform:scale(1)}}
.scroll-cue::after{animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}

/* ===== Effetti cinematografici ===== */
/* Apertura: foto in dissolvenza con zoom lento (Ken Burns) */
.hero-media{will-change:transform}
.hero-media .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--ox,50%) var(--oy,50%);opacity:0;transition:opacity 1.8s ease;transform:scale(1.04)}
.hero-media .slide.on{opacity:1;animation:kenburns 8s ease-out both}
@keyframes kenburns{from{transform:scale(1.16) translate(var(--kx,0),var(--ky,0))}to{transform:scale(1.03) translate(0,0)}}
.reel-ui{position:absolute;z-index:2;right:var(--gutter);top:clamp(16px,4vh,40px);display:flex;align-items:center;gap:12px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#e6e6ea}
.reel-ui .cnt{color:var(--lime);font-style:italic;font-weight:900;font-size:.9rem}
.reel-ui .bar{width:70px;height:2px;background:rgba(255,255,255,.25);overflow:hidden}
.reel-ui .bar i{display:block;height:100%;background:var(--lime);transform-origin:left;animation:fill 6s linear both}
.reel-ui .lab{display:inline-block;min-width:9ch}
.reel-ui.swap .lab{animation:labIn .6s var(--ease) both}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes labIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:640px){.reel-ui{display:none}}
/* Grana pellicola */
.grain{position:absolute;inset:-50%;z-index:1;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .9s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-2%)}60%{transform:translate(-2%,-4%)}80%{transform:translate(4%,2%)}100%{transform:translate(0,0)}}
.hero .wrap,.hero .scroll-cue{z-index:2}
/* Titoli che emergono da una maschera */
.rv-wait[data-rv="mask"]{opacity:1;transform:translateY(40%);clip-path:inset(0 0 100% 0)}
.rv-in[data-rv="mask"]{animation:maskUp 1s var(--ease) both}
@keyframes maskUp{from{transform:translateY(40%);clip-path:inset(0 0 100% 0)}to{transform:none;clip-path:inset(-20% -10% -20% -10%)}}
/* Sipario sulle foto */
.curtain{position:absolute;inset:0;z-index:2;background:var(--graphite);transform:scaleX(0);transform-origin:right;pointer-events:none}
.curtain::before{content:"";position:absolute;inset:0;background:var(--lime);transform:scaleX(0);transform-origin:inherit}
.curtain.r{transform-origin:left}
.rv-wait[data-rv="clip"]{opacity:1;transform:none}
.rv-wait[data-rv="clip"] .curtain{transform:scaleX(1)}
.rv-in[data-rv="clip"]{animation:hold 1.5s both}
.rv-in[data-rv="clip"] .curtain{animation:curtain 1.1s cubic-bezier(.77,0,.18,1) both}
.rv-in[data-rv="clip"] .curtain::before{animation:curtainLime 1.1s cubic-bezier(.77,0,.18,1) both}
.rv-in[data-rv="clip"] img{animation:imgSettle 1.5s var(--ease) both}
@keyframes hold{from{opacity:1}to{opacity:1}}
@keyframes curtain{0%{transform:scaleX(1)}35%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes curtainLime{0%{transform:scaleX(0)}35%{transform:scaleX(1)}100%{transform:scaleX(1)}}
@keyframes imgSettle{from{transform:scale(1.25)}to{transform:scale(1)}}
/* Sezione cinema: l'immagine si apre a tutto schermo scorrendo */
.cinema{position:relative;height:190vh;background:var(--paper);padding:0}
.cinema-stick{position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden}
.cinema-frame{position:relative;width:100%;height:100%;clip-path:inset(var(--cy,18%) var(--cx,14%) var(--cy,18%) var(--cx,14%));background:var(--graphite)}
.cinema-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 60%;transform:scale(var(--cs,1.25))}
.cinema-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,19,20,.85),rgba(18,19,20,.2) 70%)}
.cinema-tx{position:absolute;z-index:1;left:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)));top:50%;transform:translateY(calc(-50% + var(--ty,40px)));opacity:var(--to,0);color:var(--paper);display:grid;gap:16px;max-width:min(620px,calc(100% - 2*var(--gutter)))}
.cinema-tx h2{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2.4rem,7vw,6rem);line-height:.92}
.cinema-tx h2 em{color:var(--lime);font-style:italic}
.cinema-tx p:last-child{color:#dcdce0;font-size:clamp(1rem,1.4vw,1.15rem);max-width:40ch}
@media(max-width:640px){.cinema{height:150vh}}
/* Parallasse */
[data-parallax]{will-change:transform}

/* ===== Studio grafico ===== */
/* Variante di palette per la grafica: grafite blu notte, fondo salvia, lime tenue */
.tg{--graphite:#15181d;--graphite-2:#1e232a;--paper:#f2f4ee;--paper-2:#e6eadd;--line:#d5dacb;--line-dark:#2c323b;--lime-soft:#e3efbd;
  --sh-1:0 1px 2px rgba(21,24,29,.06),0 8px 24px -8px rgba(21,24,29,.18);
  --sh-2:0 2px 4px rgba(21,24,29,.08),0 24px 48px -16px rgba(21,24,29,.35);
  --sh-3:0 4px 8px rgba(0,0,0,.25),0 40px 80px -24px rgba(0,0,0,.6);
  background:var(--paper)}
.tg .dark{background:radial-gradient(120% 90% at 85% 0%,#232a33 0%,var(--graphite) 55%)}
.tg .phero{background:radial-gradient(120% 120% at 0% 100%,#1f262e 0%,var(--graphite) 60%)}
.g-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
@media(max-width:860px){.g-intro{grid-template-columns:1fr}}
.pen-wrap{background:#fff;border-radius:6px;box-shadow:var(--sh-2);padding:clamp(14px,2vw,24px);color:var(--graphite)}
.pen{width:100%;height:auto;display:block;overflow:visible}
.pen .curve{fill:none;stroke:var(--lime);stroke-width:6;stroke-linecap:round}
.pen .handle{fill:none;stroke:var(--graphite);stroke-width:1.5;stroke-opacity:.55}
.pen .anchor{fill:#fff;stroke:var(--graphite);stroke-width:2.5}
.pen .hdot{fill:var(--graphite)}
.rv-wait[data-rv="draw"]{opacity:1;transform:none}
.rv-wait[data-rv="draw"] .curve{stroke-dasharray:900;stroke-dashoffset:900}
.rv-wait[data-rv="draw"] .handle,.rv-wait[data-rv="draw"] .anchor,.rv-wait[data-rv="draw"] .hdot{opacity:0}
.rv-in[data-rv="draw"]{animation:hold 2.4s both}
.rv-in[data-rv="draw"] .curve{stroke-dasharray:900;animation:draw 1.8s .3s cubic-bezier(.65,0,.35,1) both}
.rv-in[data-rv="draw"] .anchor,.rv-in[data-rv="draw"] .handle,.rv-in[data-rv="draw"] .hdot{animation:fadeIn .5s 1.6s both}
@keyframes draw{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.whats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.whats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.whats{grid-template-columns:1fr}}
.what{background:#fff;border-radius:6px;padding:28px 26px;display:grid;gap:10px;align-content:start;box-shadow:var(--sh-1);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.what:hover{transform:translateY(-6px);box-shadow:var(--sh-2)}
.wi{width:56px;height:56px;border-radius:6px;background:var(--lime-soft);color:var(--graphite);display:grid;place-items:center;margin-bottom:8px}
.wi svg,.ti svg{width:30px;height:30px}
.what h3{font-weight:800;font-size:1.08rem;text-transform:uppercase;letter-spacing:.01em}
.what p{font-size:.93rem;color:var(--muted)}
.tools-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:start}
@media(max-width:860px){.tools-wrap{grid-template-columns:1fr}}
.tools{display:grid;gap:16px}
.tool{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;padding:22px 24px;border-radius:6px;background:linear-gradient(180deg,#232932,#1b2027);border:1px solid rgba(255,255,255,.06);box-shadow:var(--sh-3);transition:transform .35s var(--ease)}
.tool:hover{transform:translateX(8px)}
.ti{width:64px;height:64px;border-radius:8px;display:grid;place-items:center;background:var(--lime);color:var(--graphite);box-shadow:0 10px 24px -8px rgba(149,193,31,.55)}
.tool h3{font-weight:800;font-size:1.12rem;color:var(--paper)}
.tool p{font-size:.9rem;color:var(--muted-dark);margin-top:4px}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:f}
@media(max-width:900px){.flow{grid-template-columns:1fr 1fr}}
.flow-i{position:relative;background:#fff;border-radius:6px;padding:26px 24px 28px;text-decoration:none;display:grid;gap:6px;box-shadow:var(--sh-1);transition:transform .35s var(--ease),box-shadow .35s var(--ease);overflow:hidden}
.flow-i::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--lime);transform:scaleY(.3);transform-origin:top;transition:transform .4s var(--ease)}
.flow-i:hover{transform:translateY(-6px);box-shadow:var(--sh-2)}
.flow-i:hover::before{transform:scaleY(1)}
.flow-i b{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.4rem}
.flow-i span{font-size:.88rem;color:var(--muted)}
.tg .work{border-radius:6px;box-shadow:var(--sh-3)}
.tg .cta-band{box-shadow:inset 0 30px 60px -40px rgba(0,0,0,.35)}
/* ===== Dettagli luminosi (pagina Grafica) ===== */
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
.tg{--glow:149,193,31}
.tg .dark,.tg .phero{position:relative;overflow:hidden}
.tg .dark .h2 em,.tg .phero h1 em{color:#b6ec2c;text-shadow:0 0 6px rgba(var(--glow),.9),0 0 18px rgba(var(--glow),.6),0 0 42px rgba(var(--glow),.35)}
.tg .phero h1 em{animation:neonOn 2.2s .5s both}
@keyframes neonOn{0%,8%,14%,22%{opacity:.25;text-shadow:none}10%,18%,26%,100%{opacity:1}}
.tg .eyebrow{text-shadow:0 0 12px rgba(var(--glow),.45)}
/* griglia luminosa e luci soffuse in movimento */
.neon-zone::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(var(--glow),.07) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--glow),.07) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent);mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent)}
.neon-zone>.wrap{position:relative;z-index:1}
.orb{position:absolute;width:42vw;max-width:560px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(var(--glow),.32),rgba(var(--glow),0) 65%);filter:blur(20px);pointer-events:none;animation:orb 16s ease-in-out infinite}
.orb.o1{left:-12%;top:-20%}.orb.o2{right:-14%;bottom:-25%;animation-delay:-6s}.orb.o3{right:10%;top:-30%;animation-delay:-11s;background:radial-gradient(circle,rgba(120,220,255,.18),rgba(120,220,255,0) 65%)}
@keyframes orb{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(8%,10%) scale(1.15)}66%{transform:translate(-6%,4%) scale(.9)}}
.tg .phero .slash{box-shadow:0 0 14px rgba(var(--glow),.9),0 0 40px rgba(var(--glow),.5)}
/* curva della penna al neon */
.tg .pen-wrap{background:#0f1216;color:#fff;box-shadow:0 0 0 1px rgba(var(--glow),.25),0 0 40px -6px rgba(var(--glow),.45),var(--sh-3)}
.tg .pen .curve{stroke:#b6ec2c;filter:drop-shadow(0 0 6px rgba(var(--glow),.95)) drop-shadow(0 0 16px rgba(var(--glow),.6))}
.tg .pen .handle{stroke:#fff;stroke-opacity:.35}
.tg .pen .anchor{fill:#0f1216;stroke:#b6ec2c;filter:drop-shadow(0 0 5px rgba(var(--glow),.9))}
.tg .pen .hdot{fill:#fff;animation:pulse 2.4s ease-in-out infinite}
.tg .pen .spark{fill:#fff;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px rgba(var(--glow),1))}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}
/* schede "cosa progettiamo" in vetro con luce che segue il mouse */
.tg .dark .what{background:rgba(255,255,255,.035);border:1px solid rgba(var(--glow),.18);box-shadow:var(--sh-3);position:relative;overflow:hidden;color:var(--paper)}
.tg .dark .what::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px circle at var(--mx,50%) var(--my,-40%),rgba(var(--glow),.18),transparent 60%);opacity:0;transition:opacity .3s}
.tg .dark .what:hover{border-color:rgba(var(--glow),.6);box-shadow:0 0 0 1px rgba(var(--glow),.35),0 0 36px -4px rgba(var(--glow),.45),var(--sh-3)}
.tg .dark .what:hover::after{opacity:1}
.tg .dark .what p{color:var(--muted-dark)}
.tg .dark .wi{background:rgba(var(--glow),.12);color:#b6ec2c;box-shadow:inset 0 0 0 1px rgba(var(--glow),.45),0 0 22px -4px rgba(var(--glow),.7)}
.tg .dark .wi svg{filter:drop-shadow(0 0 4px rgba(var(--glow),.9))}
/* strumenti: bordo luminoso che ruota */
.tg .tool{position:relative;border:0;background:#181d24;isolation:isolate}
.tg .tool::before{content:"";position:absolute;inset:-1px;border-radius:7px;padding:1px;background:conic-gradient(from var(--a),rgba(var(--glow),0) 0deg,rgba(var(--glow),.95) 60deg,rgba(120,220,255,.6) 110deg,rgba(var(--glow),0) 170deg,rgba(var(--glow),0) 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 5s linear infinite;z-index:-1}
.tg .tool:nth-child(2)::before{animation-delay:-1.6s}.tg .tool:nth-child(3)::before{animation-delay:-3.3s}
@keyframes spin{to{--a:360deg}}
.tg .ti{box-shadow:0 0 18px rgba(var(--glow),.75),0 0 46px -6px rgba(var(--glow),.8);animation:tiGlow 3s ease-in-out infinite}
@keyframes tiGlow{0%,100%{box-shadow:0 0 14px rgba(var(--glow),.55),0 0 36px -8px rgba(var(--glow),.6)}50%{box-shadow:0 0 24px rgba(var(--glow),.9),0 0 60px -6px rgba(var(--glow),.9)}}
/* Software: entrata cinematografica */
.tg .tools.cine{position:relative}
.ti-wrap{position:relative;display:grid;place-items:center}
.ti-ring,.ti-flare{position:absolute;pointer-events:none;opacity:0}
.ti-ring{inset:-6px;border-radius:30px;border:2px solid rgba(var(--glow),.9);box-shadow:0 0 20px rgba(var(--glow),.8)}
.ti-flare{left:50%;top:50%;width:340%;height:3px;transform:translate(-50%,-50%) scaleX(0);background:linear-gradient(90deg,transparent,rgba(var(--glow),.2) 20%,#fff 50%,rgba(var(--glow),.2) 80%,transparent);filter:blur(.5px);box-shadow:0 0 18px rgba(var(--glow),.9)}
.tools-beam{position:absolute;left:0;right:0;top:calc(clamp(96px,11vw,136px)/2);height:1px;background:linear-gradient(90deg,transparent,rgba(var(--glow),.6),transparent);transform:scaleX(0);opacity:0;z-index:-1}
.tool .ch{display:inline-block}
.js-cine .tools.cine .ch{opacity:0;transform:translateY(.7em);filter:blur(6px)}
.js-cine .tools.cine p{opacity:0;transform:translateY(14px)}
.tools.cine.play .tool{--t:calc(var(--k)*1.7s + .2s);--hit:calc(var(--t) + 1.75s)}
/* scena di ogni programma */
.ti-act{position:absolute;left:50%;top:50%;width:220%;height:220%;transform:translate(-50%,-50%);overflow:visible;pointer-events:none;opacity:0;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ti-act *{transform-box:fill-box;transform-origin:center}
.tools.cine.play .ti-act{animation:actLife 2.15s var(--ease) var(--t) both}
@keyframes actLife{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:none}100%{opacity:0;transform:translate(-50%,-50%) scale(.3);filter:blur(4px) brightness(2)}}
/* Photoshop */
.act-ps .lay rect{stroke:rgba(var(--glow),.6);stroke-width:1.5;fill:rgba(20,24,28,.85)}
.act-ps .l1 rect.ph-bg{fill:#2a3440;stroke:none}
.act-ps .ph-mt{fill:#56606b}.act-ps .ph-sun{fill:#8a929b}
.act-ps .l1 rect.ph-fix{fill:rgba(149,193,31,.55);stroke:none;mix-blend-mode:screen;transform-origin:left center;transform:scaleX(0)}
.act-ps .l1 rect.ph-fr{fill:none;stroke:#fff;stroke-width:2}
.act-ps .brush{transform-box:view-box;transform-origin:0 0;offset-path:path("M40,70 C80,60 120,120 160,110 S150,70 160,70");offset-rotate:0deg;opacity:0}
.act-ps .brush circle{stroke:#fff;stroke-width:1.4;fill:rgba(255,255,255,.08)}.act-ps .brush .bdot{fill:#fff}
.tools.cine.play .act-ps .brush{animation:brushGo .9s ease-in-out calc(var(--t) + .25s) both}
.tools.cine.play .act-ps .ph-fix{animation:fixGo .9s ease-in-out calc(var(--t) + .25s) both}
.tools.cine.play .act-ps .l2{animation:layA .6s cubic-bezier(.2,.9,.3,1) calc(var(--t) + 1.1s) both}
.tools.cine.play .act-ps .l3{animation:layB .6s cubic-bezier(.2,.9,.3,1) calc(var(--t) + 1.1s) both}
.tools.cine.play .act-ps .l1{animation:layC .6s cubic-bezier(.2,.9,.3,1) calc(var(--t) + 1.1s) both}
@keyframes brushGo{0%{opacity:0;offset-distance:0%}10%{opacity:1}90%{opacity:1}100%{opacity:0;offset-distance:100%}}
@keyframes fixGo{to{transform:scaleX(1)}}
@keyframes layA{0%{transform:none}100%{transform:translate(0,-16px) skewX(-10deg)}}
@keyframes layB{0%{transform:none}100%{transform:translate(0,-32px) skewX(-10deg)}}
@keyframes layC{0%{transform:none}100%{transform:translate(0,10px) skewX(-10deg)}}
/* Illustrator */
.act-ai .ai-curve{stroke:var(--lime);stroke-width:3.5;stroke-dasharray:330;stroke-dashoffset:330;filter:drop-shadow(0 0 6px rgba(var(--glow),.9))}
.act-ai .ai-h line{stroke:rgba(255,255,255,.55);stroke-width:1}.act-ai .ai-h circle{fill:var(--lime)}
.act-ai .ai-h,.act-ai .ai-a{opacity:0}
.act-ai .ai-a{fill:#14181c;stroke:#fff;stroke-width:1.6}
.act-ai .nib{transform-box:view-box;transform-origin:0 0;offset-path:path("M30,140 C55,40 105,40 115,100 S165,160 175,70");offset-rotate:0deg;opacity:0}
.act-ai .nib path{fill:#f4f5f2;stroke:none}.act-ai .nib circle{fill:#14181c}
.tools.cine.play .act-ai .ai-curve{animation:draw 1.2s ease-in-out calc(var(--t) + .2s) both}
.tools.cine.play .act-ai .nib{animation:nibGo 1.2s ease-in-out calc(var(--t) + .2s) both}
.tools.cine.play .act-ai .a1{animation:pop .3s ease-out calc(var(--t) + .2s) both}
.tools.cine.play .act-ai .h1{animation:pop .3s ease-out calc(var(--t) + .35s) both}
.tools.cine.play .act-ai .a2{animation:pop .3s ease-out calc(var(--t) + .8s) both}
.tools.cine.play .act-ai .h2{animation:pop .3s ease-out calc(var(--t) + .9s) both}
.tools.cine.play .act-ai .a3{animation:pop .3s ease-out calc(var(--t) + 1.35s) both}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes nibGo{0%{opacity:0;offset-distance:0%}8%{opacity:1}92%{opacity:1}100%{opacity:0;offset-distance:100%}}
@keyframes pop{0%{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.4)}100%{opacity:1;transform:scale(1)}}
/* InDesign */
.act-id .pg{fill:#f4f5f2}.act-id .pg2{fill:#b9bdb6}
.act-id .ln{fill:#2a2f35}.act-id .b-h{fill:#95c11f}.act-id .b-img{fill:#55606b}
.act-id .blk,.act-id .ln,.act-id .pg2{opacity:0}
.act-id .ln{transform-origin:left center}
.tools.cine.play .act-id .b-h{animation:dropIn .45s cubic-bezier(.2,.9,.3,1.3) calc(var(--t) + .25s) both}
.tools.cine.play .act-id .b-img{animation:dropIn .45s cubic-bezier(.2,.9,.3,1.3) calc(var(--t) + .45s) both}
.tools.cine.play .act-id .ln{animation:lnIn .3s ease-out calc(var(--t) + .65s + var(--j)*.06s) both}
.tools.cine.play .act-id .pg2{animation:flip .55s ease-out calc(var(--t) + 1.3s) both}
@keyframes dropIn{0%{opacity:0;transform:translateY(-24px)}100%{opacity:1;transform:none}}
@keyframes lnIn{0%{opacity:1;transform:scaleX(0)}100%{opacity:1;transform:scaleX(1)}}
@keyframes flip{0%{opacity:0;transform:translateX(-30px) rotate(-8deg)}100%{opacity:1;transform:none}}
/* trasformazione nell'icona */
.js-cine .tools.cine .ti{opacity:0;transform:scale(.2)}
.tools.cine.play .ti{animation:tiIn .8s cubic-bezier(.2,.9,.3,1.2) calc(var(--hit) - .1s) both,tiGlow 3s ease-in-out calc(var(--hit) + 1s) infinite}
.tools.cine.play .ti-flare{animation:flare .7s cubic-bezier(.16,1,.3,1) var(--hit) both}
.tools.cine.play .ti-ring{animation:ring .9s ease-out var(--hit) both}
.tools.cine.play .ti-ring.r2{animation-delay:calc(var(--hit) + .12s)}
.tools.cine.play .ch{animation:chIn .6s cubic-bezier(.16,1,.3,1) calc(var(--hit) + .2s + var(--c)*.028s) both}
.tools.cine.play p{animation:pIn .8s var(--ease) calc(var(--hit) + .5s) both}
.tools.cine.play .tools-beam{animation:beam 1.6s var(--ease) 6s both}
@keyframes tiIn{0%{opacity:0;transform:scale(.2) rotate(-20deg);filter:blur(6px) brightness(3)}50%{opacity:1;filter:brightness(2)}100%{opacity:1;transform:none;filter:none}}
@keyframes flare{0%{opacity:0;transform:translate(-50%,-50%) scaleX(0)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scaleX(1)}}
@keyframes ring{0%{opacity:0;transform:scale(.85)}8%{opacity:.9;transform:scale(.9)}100%{opacity:0;transform:scale(1.7)}}
@keyframes chIn{to{opacity:1;transform:none;filter:none}}
@keyframes pIn{to{opacity:1;transform:none}}
@keyframes beam{0%{opacity:0;transform:scaleX(0)}40%{opacity:1}100%{opacity:.5;transform:scaleX(1)}}
@media(max-width:640px){.tools-beam{display:none}}
@media (prefers-reduced-motion:reduce){.ti-act,.ti-crack{display:none}.js-cine .tools.cine .ti,.js-cine .tools.cine .ch,.js-cine .tools.cine p{opacity:1;transform:none;filter:none;animation:none!important}}
/* passaggi e portfolio */
.tg .flow-i::before{box-shadow:0 0 14px rgba(var(--glow),.9)}
.tg .flow-i:hover{box-shadow:0 0 0 1px rgba(var(--glow),.5),0 0 30px -6px rgba(var(--glow),.55),var(--sh-2)}
.tg .work{transition:box-shadow .35s}
.tg .work:hover{box-shadow:0 0 0 2px rgba(var(--glow),.85),0 0 34px rgba(var(--glow),.45),var(--sh-3)}
.tg .btn-lime{box-shadow:0 0 18px rgba(var(--glow),.55)}
.tg .btn-lime:hover{box-shadow:0 0 28px rgba(var(--glow),.85)}
.tg .cta-band{overflow:hidden}
.tg .cta-band::before{content:"";position:absolute;top:0;bottom:0;width:30%;left:-40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:shine 5s ease-in-out infinite;pointer-events:none}
@keyframes shine{0%,55%{left:-40%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){.orb,.tg .phero::after,.tg .cta-band::before{display:none}.tg .tool::before{animation:none}}

/* Home: sezione studio grafico */
.studio-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:center}
@media(max-width:860px){.studio-grid{grid-template-columns:1fr}}
.tchips{display:flex;flex-wrap:wrap;gap:8px}
.tchip{font-size:.8rem;font-weight:700;padding:8px 14px;border-radius:999px;background:rgba(149,193,31,.12);color:var(--lime);border:1px solid rgba(149,193,31,.35)}
.mosaic{position:relative;height:clamp(320px,38vw,480px)}
.mosaic a{position:absolute;display:block;border-radius:6px;overflow:hidden;box-shadow:0 4px 10px rgba(0,0,0,.3),0 40px 70px -20px rgba(0,0,0,.7);transition:transform .5s var(--ease)}
.mosaic img{width:100%;height:100%;object-fit:cover}
.mosaic .m1{left:0;top:6%;width:46%;aspect-ratio:1;z-index:2;rotate:-4deg}
.mosaic .m2{right:0;top:0;width:58%;aspect-ratio:4/3;z-index:1;rotate:3deg}
.mosaic .m3{left:30%;bottom:0;width:40%;aspect-ratio:1;z-index:3;rotate:2deg}
.mosaic a:hover{transform:translateY(-10px) scale(1.03);z-index:4}
.mosaic a{animation:float 7s ease-in-out infinite}
.mosaic .m2{animation-delay:-2.5s}.mosaic .m3{animation-delay:-5s}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -10px}}

@media (prefers-reduced-motion:reduce){
  .grain{display:none}
  .cinema{height:auto}.cinema-stick{position:static;height:70vh}.cinema-frame{clip-path:none}.cinema-tx{opacity:1;transform:translateY(-50%)}

  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .rv-wait{opacity:1;transform:none}
  .wipe{display:none}
}

/* Lenis: scorrimento morbido */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.hs-card{will-change:transform}

.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Configuratore: furgone 2D realistico */
.van2d{background:#fff}
.van2d canvas{display:block;width:100%;height:100%;object-fit:contain;cursor:default;transition:opacity .26s var(--ease),transform .5s var(--ease)}
.van2d canvas.out{opacity:0;transform:scale(.985)}
.van2d .views{bottom:14px}
html[data-night] .van2d{background:#fff}
@media(max-width:760px){.van2d.stage3d{height:auto;max-height:none}.van2d canvas{height:auto;margin-top:30px}.van2d .views{position:static;transform:none;margin:6px auto 12px;width:max-content;max-width:calc(100% - 16px);overflow-x:auto}.van2d .views button{padding:8px 11px}}
.van2d canvas{touch-action:none}
.van2d canvas.dragging{cursor:grabbing!important}
.pos-ctl{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 22px;margin:14px 0 10px}
.pos-hint{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--ink);margin:0}
.pos-hint svg{width:18px;height:18px;fill:none;stroke:var(--lime-ink);stroke-width:2;stroke-linecap:round}
.pos-size{display:flex;align-items:center;gap:10px;font-size:.82rem;font-weight:700;color:var(--muted)}
.pos-size input{accent-color:var(--lime);width:150px}
.pos-reset{font:inherit;font-size:.8rem;font-weight:700;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.pos-reset:hover{border-color:var(--lime);color:var(--lime-ink)}
/* Configuratore: avviso bozza */
.draft-note{display:flex;gap:18px;align-items:flex-start;padding:20px 24px;margin-bottom:18px;border-radius:14px;background:linear-gradient(135deg,#1b1c1e,#24292e);color:#fbfbfd;border:2px solid var(--lime);box-shadow:0 0 0 4px rgba(149,193,31,.15),0 24px 50px -28px rgba(27,28,30,.7);position:relative;overflow:hidden}
.draft-note::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(149,193,31,.25),transparent 70%);pointer-events:none}
.dn-ico{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--lime);box-shadow:0 0 18px rgba(149,193,31,.6)}
.dn-ico svg{width:24px;height:24px;fill:none;stroke:#1b1c1e;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dn-t{margin:0;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.05rem,1.9vw,1.45rem);line-height:1.15;letter-spacing:-.01em}
.dn-t em{color:var(--lime);font-style:italic}
.dn-p{margin:8px 0 0;font-size:.95rem;line-height:1.55;color:#d6d7da;max-width:78ch}
.dn-p b{color:#fff}
.dn-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:14px 0 0}
.dn-chips li{font-size:.76rem;font-weight:700;padding:6px 12px;border-radius:999px;border:1px solid rgba(149,193,31,.5);color:#e9f5c8;background:rgba(149,193,31,.08)}
@media(max-width:600px){.draft-note{flex-direction:column;gap:12px;padding:18px}.dn-ico{width:40px;height:40px}}
html[data-night] .draft-note{--paper:#fbfbfd}
/* Configuratore: anteprima sempre visibile mentre si compila */
.cfg-sec .draft-note{margin-bottom:clamp(20px,3vw,32px)}
.cfg{align-items:start}
.cfg-pin{display:grid;gap:8px;background:#fff}
.cfg-panel{grid-template-columns:1fr!important}
.cfg-panel .pkgs{grid-template-columns:repeat(4,1fr)}
@media(min-width:1101px){
  .cfg{grid-template-columns:minmax(0,1.45fr) minmax(360px,1fr)}
  .cfg-stage{position:sticky;top:84px;align-self:start}
  .cfg-pin .stage3d{height:auto;max-height:none}
  .cfg-pin .van2d canvas{height:auto}
  .cfg-pin .van2d .views{position:static;transform:none;margin:4px auto 14px;width:max-content}
  .cfg-pin .stage-badge{top:10px}
  .cfg-pin .pos-ctl{margin:4px 0 0}
  .cfg-panel .cfg-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:1100px){
  .cfg-stage{position:sticky;top:64px;z-index:5;margin-inline:calc(var(--gutter) * -1);padding:4px var(--gutter) 6px;background:#fff;box-shadow:0 14px 24px -18px rgba(27,28,30,.45)}
  .cfg-pin .stage-note,.cfg-pin .pos-hint,.cfg-pin .stage-badge{display:none}
  .cfg-pin .van2d.stage3d{height:auto;max-height:none}
  .cfg-pin .van2d canvas{height:auto;margin-top:0;max-height:34vh;object-fit:contain}
  .cfg-pin .van2d .views{position:static;transform:none;margin:2px auto 4px}
  .cfg-pin .van2d .views button{padding:6px 10px;font-size:.74rem}
  .cfg-pin .pos-ctl{margin:2px 0 0;gap:8px 14px}
  .cfg-pin .pos-size input{width:110px}
}
html[data-night] .cfg-pin{background:transparent}
html[data-night] .cfg-stage{background:var(--paper)}
html[data-night] .van2d.stage3d{border-radius:12px;box-shadow:0 0 0 1px rgba(149,193,31,.25),0 20px 40px -24px rgba(0,0,0,.8)}
html[data-night] .pos-hint,html[data-night] .pos-reset{color:var(--ink)}
html[data-night] .pos-size,html[data-night] .stage-note{color:var(--muted)}
html[data-night] .pos-reset{border-color:var(--line)}
.cfg-panel .incl-row{grid-template-columns:1fr}
.cfg-stage{transition:top .35s var(--ease)}
@media(min-width:1101px){.cfg-pin .stage-badge{position:static;transform:none;display:block;width:max-content;margin:0 auto 4px}.hdr-hidden .cfg-stage{top:16px}}
@media(max-width:1100px){.hdr-hidden .cfg-stage{top:0}}
html[data-night] .cfg-sec{background:var(--paper)}
html[data-night] .views button.on{background:var(--lime);color:#111315}
html[data-night] .incl li{background:#202428;color:#8f9296;border-color:#2a2e33}
html[data-night] .incl li.on{background:var(--lime);color:#111315;border-color:var(--lime)}
.views .play-btn{background:var(--lime);color:#111315;margin-left:4px}
.views .play-btn:hover{background:#a8d42a}
.views .play-btn.on{background:var(--graphite);color:var(--lime)}
html[data-night] .views .play-btn{background:var(--lime);color:#111315}
html[data-night] .views .play-btn.on{background:#2a2e33;color:var(--lime)}
.van2d canvas.playing{cursor:default}
.views.playing [data-view="sx"],.views.playing [data-view="dx"]{display:none}
/* Preventivo: configurazione allegata */
.cfg-att .lbl{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.cfg-att .lbl small{text-transform:none;letter-spacing:0;font-weight:600;color:var(--muted)}
.cfg-card{display:flex;gap:18px;align-items:center;margin-top:8px;padding:12px;border:2px solid var(--lime);border-radius:10px;background:rgba(149,193,31,.06)}
.cfg-thumb{flex:none;width:min(300px,45%);padding:0;border:0;border-radius:6px;overflow:hidden;cursor:zoom-in;background:#fff;box-shadow:0 8px 20px -12px rgba(0,0,0,.45)}
.cfg-thumb img{display:block;width:100%;height:auto;transition:transform .4s var(--ease)}
.cfg-thumb:hover img{transform:scale(1.04)}
.cfg-meta{display:grid;gap:4px;min-width:0}
.cfg-meta b{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.05rem}
.cfg-meta>span{font-size:.82rem;color:var(--muted)}
.cfg-acts{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:6px;align-items:center}
.cfg-acts button,.cfg-acts a{font:inherit;font-size:.85rem;font-weight:700;background:none;border:0;padding:0;cursor:pointer;color:var(--lime-ink);text-decoration:none}
.cfg-acts .cfg-rm{color:var(--muted)}.cfg-acts .cfg-rm:hover{color:#c0392b}
@media(max-width:560px){.cfg-card{flex-direction:column;align-items:stretch}.cfg-thumb{width:100%}}
.cfg-lb{max-width:min(1200px,94vw);padding:0;border:0;border-radius:10px;background:#fff}
.cfg-lb::backdrop{background:rgba(10,11,12,.8)}
.cfg-lb img{display:block;width:100%;height:auto}
.cfg-lb .x{position:absolute;right:10px;top:8px;width:40px;height:40px;border-radius:50%;border:0;background:#1b1c1e;color:#fff;font-size:1.5rem;cursor:pointer}
.cfg-att[hidden]{display:none!important}
/* Configuratore: scelta del veicolo */
.veh-pick{text-align:center;margin-bottom:clamp(24px,3vw,40px)}
.vp-step{font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--lime-ink);margin:0}
.vp-t{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1;margin:10px 0 24px}
.vp-t em{color:var(--lime-ink)}
.vp-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px);max-width:920px;margin:0 auto}
.vp-card{font:inherit;color:var(--ink);text-align:left;display:grid;gap:4px;padding:16px 18px 18px;border-radius:14px;border:2px solid var(--line);background:#fff;cursor:pointer;transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
.vp-card:hover{transform:translateY(-4px);border-color:var(--lime);box-shadow:0 18px 36px -20px rgba(27,28,30,.45)}
.vp-card.on{border-color:var(--lime);box-shadow:0 0 0 4px rgba(149,193,31,.2),0 18px 36px -20px rgba(27,28,30,.45)}
.vp-img{display:block;aspect-ratio:16/7;overflow:hidden;margin-bottom:8px}
.vp-img img{width:100%;height:100%;object-fit:contain;transition:transform .5s var(--ease)}
.vp-card:hover .vp-img img{transform:scale(1.04)}
.vp-card b{font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.5rem;line-height:1}
.vp-sub{font-size:.88rem;color:var(--muted)}
.vp-go{font-size:.86rem;font-weight:800;color:var(--lime-ink);margin-top:6px}
.vp-card.on .vp-go{color:var(--ink)}
.vp-card.on .vp-go>span{display:none}
.vp-more{margin:18px 0 0;font-size:.88rem;color:var(--muted)}
.vp-more a{color:var(--lime-ink);font-weight:700}
.cfg:not(.chosen){display:none}
.cfg.chosen{animation:cfgIn .7s var(--ease) both}
@keyframes cfgIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.veh-pick:has(+ .cfg.chosen) .vp-cards{max-width:620px}
.veh-pick:has(+ .cfg.chosen) .vp-img{aspect-ratio:16/5}
@media(max-width:560px){.vp-cards{grid-template-columns:1fr 1fr;gap:10px}.vp-card{padding:10px}.vp-card b{font-size:1.1rem}.vp-sub{display:none}}
html[data-night] .vp-card{background:#181b1f}
html[data-night] .vp-img{background:#fff;border-radius:8px}
/* Configuratore: titoli delle sezioni ben visibili */
.cfg-panel legend{display:flex;align-items:center;gap:14px;margin-bottom:10px;padding-bottom:12px;border-bottom:2px solid var(--line);font-size:inherit;letter-spacing:0;text-transform:none}
.cfg-panel .lg-n{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:#111315;font-weight:900;font-size:1.1rem;box-shadow:0 0 0 4px rgba(149,193,31,.18),0 0 18px rgba(149,193,31,.45)}
.cfg-panel .lg-t{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.cfg-panel fieldset{padding:22px 22px 24px;border-left:4px solid var(--lime)}
/* foto scontornate: intere, su fondo chiaro */
.work.cut{background:#fff}
.work.cut img{object-fit:contain;padding:7%;box-sizing:border-box}
.work.cut:hover img{transform:scale(1.04)}
html[data-night] .work.cut{background:#fff}
/* fascia loghi clienti */
.lg-band{padding:clamp(56px,7vw,96px) 0;overflow:hidden}
.lg-run{display:flex;gap:14px;margin-top:clamp(28px,4vw,44px);-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.lg-track{display:flex;gap:14px;list-style:none;margin:0;padding:0;flex:none;animation:lgrun 70s linear infinite}
.lg-run:hover .lg-track{animation-play-state:paused}
.lg-track li,.lg-grid li{flex:none;width:176px;height:96px;display:grid;place-items:center;background:#fff;border-radius:10px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 8px 24px -14px rgba(0,0,0,.25);transition:transform .35s var(--ease),box-shadow .35s}
.lg-track img,.lg-grid img{max-width:78%;max-height:62%;object-fit:contain;transition:filter .35s,opacity .35s}
@media(hover:hover) and (pointer:fine){.lg-track img,.lg-grid img{filter:grayscale(1) contrast(1.1);opacity:.8}}
.lg-track li:hover img,.lg-grid li:hover img{filter:none;opacity:1}
.lg-track li:hover,.lg-grid li:hover{transform:translateY(-3px);box-shadow:0 0 0 2px rgba(149,193,31,.8),0 12px 30px -12px rgba(149,193,31,.55)}
@keyframes lgrun{to{transform:translateX(calc(-100% - 14px))}}
@media(prefers-reduced-motion:reduce){.lg-track{animation:none}.lg-run{overflow-x:auto}}
.lg-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.lg-grid li{width:auto}
/* laboratorio */
.lab{display:grid;grid-template-columns:1.25fr 1fr;gap:12px}
.lab figure{margin:0;overflow:hidden;border-radius:6px;height:clamp(240px,32vw,460px)}
.lab img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.lab{grid-template-columns:1fr}}
/* banner configuratore (car & truck wrapping) */
.cfg-promo{background:var(--lime);color:#121314;padding:clamp(44px,6vw,80px) 0;position:relative;overflow:hidden}
.cfg-promo::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(0,0,0,.05) 0 2px,transparent 2px 26px);pointer-events:none}
.cp-in{position:relative;display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:center}
.cp-tag{display:inline-flex;align-items:center;gap:10px;font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;background:#121314;color:var(--lime);padding:8px 14px;border-radius:99px;margin:0}
.cp-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(149,193,31,.8);animation:cpPulse 1.6s infinite}
@keyframes cpPulse{70%{box-shadow:0 0 0 10px rgba(149,193,31,0)}100%{box-shadow:0 0 0 0 rgba(149,193,31,0)}}
.cp-h{font-family:Montserrat,sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2.2rem,5.4vw,4.6rem);line-height:.95;letter-spacing:-.02em;margin:18px 0 16px}
.cp-h em{color:#fff;font-style:italic;-webkit-text-stroke:0;text-shadow:3px 3px 0 #121314}
.cp-p{font-size:1.08rem;line-height:1.55;max-width:46ch;margin:0 0 26px;color:#1d1f21}
.cfg-promo .cp-btn{background:#121314;color:var(--lime);font-size:1.05rem;padding:18px 28px}
.cfg-promo .cp-btn:hover{background:#000;color:#fff}
.cp-img{position:relative;display:block;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(0,0,0,.55);transform:rotate(-1.5deg);transition:transform .5s var(--ease)}
.cp-img:hover{transform:rotate(0) scale(1.02)}
.cp-img img{display:block;width:100%;height:auto}
.cp-badge{position:absolute;left:16px;top:14px;background:#121314;color:var(--lime);font-weight:800;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border-radius:6px}
.cp-hbtn{border-color:var(--lime)!important;color:var(--lime)!important}
@media(max-width:820px){.cp-in{grid-template-columns:1fr}.cp-img{order:-1}}
html[data-night] .cfg-promo{background:var(--lime);color:#121314}
/* home: griglia lavori fissa (al posto della striscia scorrevole) */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,16vw,240px);gap:12px;margin-top:clamp(28px,4vw,48px)}
.bt{position:relative;display:block;overflow:hidden;border-radius:8px;background:var(--graphite-2)}
.bt-big{grid-column:span 2;grid-row:span 2}
.bt-wide{grid-column:span 2}
.bt img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.bt:hover img{transform:scale(1.06)}
.bt-cap{position:absolute;inset:auto 0 0 0;padding:44px 16px 14px;background:linear-gradient(0deg,rgba(18,19,20,.9),rgba(18,19,20,0));color:#fff;display:grid;gap:2px;transform:translateY(8px);opacity:.92;transition:transform .4s var(--ease),opacity .4s}
.bt:hover .bt-cap{transform:none;opacity:1}
.bt-cap i{font-style:normal;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.bt-cap b{font-size:.98rem;font-weight:800}
.bt-big .bt-cap b{font-size:1.25rem}
.bt:hover{box-shadow:0 0 0 2px rgba(149,193,31,.85),0 0 30px rgba(149,193,31,.35)}
@media(max-width:760px){.bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.bt-wide{grid-column:span 2}}
/* loghi più grandi */
.lg-track li{width:clamp(200px,17vw,250px);height:clamp(112px,9.5vw,140px)}
.lg-track img{max-width:82%;max-height:70%}
.lg-run{margin-top:clamp(32px,4vw,52px)}
.lg-track li{width:clamp(220px,20vw,300px);height:clamp(124px,11vw,170px)}
.lg-track img{max-width:84%;max-height:74%}
.lg-band{padding-bottom:clamp(44px,5vw,72px)}
@media(max-width:760px){.bt-cap{padding:30px 10px 10px}.bt-cap i{font-size:.6rem;letter-spacing:.1em}.bt-cap b{font-size:.82rem;line-height:1.25}.bt-big .bt-cap b{font-size:1.05rem}.lg-track li{width:190px;height:110px}}
.lg-band{padding-bottom:0}
.work.shot{background:#eceee8}
.work.shot img{object-fit:contain}
.work.shot:hover img{transform:scale(1.03)}
/* Lavori: griglia a schede come "Marchi che abbiamo firmato" */
.lav-sec .filters button{color:var(--ink);border-color:rgba(0,0,0,.14);background:#fff}
.lav-sec .filters button:hover{border-color:var(--lime);color:var(--ink)}
.tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-flow:row;gap:14px}
.tiles .work,.tiles .work.wide{grid-column:auto;aspect-ratio:auto;background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 rgba(0,0,0,.04),0 8px 24px -14px rgba(0,0,0,.25);transition:transform .35s var(--ease),box-shadow .35s,opacity .35s}
.tiles .work button{height:auto;aspect-ratio:4/3;overflow:hidden;background:#fff}
.tiles .work img{object-fit:cover}
.tiles .work.cut img{object-fit:contain;padding:6%}
.tiles .work figcaption{position:static;background:none;color:#1d1f21;padding:12px 16px 16px;transform:none;pointer-events:auto}
.tiles .work figcaption b{font-size:.95rem;line-height:1.3}
.tiles .work figcaption span{color:#6b8e12}
.tiles .work:hover{transform:translateY(-4px);box-shadow:0 0 0 2px rgba(149,193,31,.85),0 14px 34px -12px rgba(149,193,31,.55)}
.tiles .work:hover img{transform:scale(1.04)}
.tiles .work.fade{opacity:0;transform:scale(.96)}
html[data-night] .lav-sec .filters button{background:#2a2c2f;color:#e8e8ea;border-color:rgba(255,255,255,.14)}
.lav-sec .filters button[aria-pressed="true"]{background:var(--lime);color:#121314;border-color:var(--lime)}
@media(max-width:600px){
.tiles{grid-template-columns:1fr 1fr;gap:10px}
.tiles .work figcaption{padding:9px 10px 11px}
.tiles .work figcaption span{font-size:.58rem;letter-spacing:.08em}
.tiles .work figcaption b{font-size:.8rem}
.lav-sec .filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding:2px 16px 6px;scrollbar-width:none}
.lav-sec .filters::-webkit-scrollbar{display:none}
.lav-sec .filters button{flex:none}
}
/* Home: lavori a schede come i loghi */
.htiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(28px,4vw,48px)}
.ht{display:flex;flex-direction:column;background:#fff;border-radius:10px;overflow:hidden;color:#1d1f21;text-decoration:none;box-shadow:0 1px 0 rgba(0,0,0,.04),0 10px 28px -16px rgba(0,0,0,.5);transition:transform .35s var(--ease),box-shadow .35s}
.ht-img{display:block;aspect-ratio:4/3;overflow:hidden}
.ht-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ht-cap{display:grid;gap:3px;padding:12px 16px 16px}
.ht-cap i{font-style:normal;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#6b8e12}
.ht-cap b{font-size:.95rem;font-weight:800;line-height:1.3}
.ht:hover{transform:translateY(-4px);box-shadow:0 0 0 2px rgba(149,193,31,.85),0 14px 34px -12px rgba(149,193,31,.55)}
.ht:hover img{transform:scale(1.05)}
@media(max-width:900px){.htiles{grid-template-columns:repeat(2,1fr);gap:10px}}
@media(max-width:600px){.ht-cap{padding:9px 10px 11px}.ht-cap i{font-size:.58rem;letter-spacing:.08em}.ht-cap b{font-size:.8rem}}
.vp-cards{grid-template-columns:repeat(3,1fr);max-width:1180px}
.veh-pick:has(+ .cfg.chosen) .vp-cards{max-width:860px}
@media(max-width:560px){.vp-cards{grid-template-columns:repeat(3,1fr);gap:8px}.vp-card{padding:8px}.vp-card b{font-size:.95rem}}
/* Home: schede lavori scure, senza bianco */
.ht{background:#232528;color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 14px 34px -18px rgba(0,0,0,.7)}
.ht-cap i{color:var(--lime)}
.ht-cap b{color:#fff}
html[data-night] .ht{background:#232528}
/* anteprime della configurazione: niente "salva immagine" */
.nosave,#van{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.cfg-thumb canvas{display:block;width:100%;height:auto}
.cfg-lb canvas{display:block;width:100%;height:auto}
/* soluzioni: Base e Premium */
.pk-g{margin:2px 0 8px;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pk-g.prem-t{margin-top:16px;background:linear-gradient(90deg,#a8692c,#c9ccd1 50%,#d9b24c);-webkit-background-clip:text;background-clip:text;color:transparent}
.pkgs{grid-template-columns:repeat(3,1fr)!important}
@media(max-width:520px){.pkgs{grid-template-columns:1fr!important}}
.opt.pkg{text-align:left}
.opt.pkg.prem{position:relative;overflow:hidden;border:0;color:#1b1c1e;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 6px 16px -10px rgba(0,0,0,.5)}
.opt.pkg.prem::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 48%,transparent 60%);transform:translateX(-120%);transition:transform .9s var(--ease);pointer-events:none}
.opt.pkg.prem:hover::after,.opt.pkg.prem.on::after{transform:translateX(120%)}
.opt.pkg.bronze{background:linear-gradient(135deg,#7a4a22,#c7894a 38%,#e9b27a 52%,#a0622f 75%,#6e4120)}
.opt.pkg.silver{background:linear-gradient(135deg,#8d9096,#d9dce1 38%,#f4f5f7 52%,#b4b8be 75%,#888b91)}
.opt.pkg.gold{background:linear-gradient(135deg,#8a6a1d,#d4af37 38%,#f6dc83 52%,#c39a2c 75%,#7f601a)}
.opt.pkg.bronze b,.opt.pkg.bronze span{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.35)}
.opt.pkg.prem span{color:rgba(27,28,30,.8)}
.opt.pkg.bronze span{color:rgba(255,255,255,.92)}
.opt.pkg.prem.on{outline:3px solid var(--ink);outline-offset:2px}
html[data-night] .opt.pkg.prem.on{outline-color:#fff}
/* riepilogo con pallini */
.incl-box{margin-top:14px;padding:16px 18px;border-radius:8px;background:#fff;border:1px solid var(--line)}
.ib-t{margin:0 0 10px;font-size:.82rem;font-weight:700;color:var(--muted)}
.ib-t b{color:var(--ink);font-style:italic;text-transform:uppercase;font-weight:900;font-size:1rem;margin-left:4px}
.ib-l{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ib-l li{position:relative;padding-left:20px;font-size:.92rem;font-weight:600;color:var(--ink)}
.ib-l li::before{content:"";position:absolute;left:2px;top:.42em;width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px rgba(149,193,31,.22)}
.ib-inc{margin:12px 0 0;padding-top:10px;border-top:1px dashed var(--line);font-size:.84rem;color:var(--muted)}
.ib-inc b{color:var(--ink)}
.incl-box.bronze .ib-l li::before{background:#c7894a;box-shadow:0 0 0 3px rgba(199,137,74,.25)}
.incl-box.silver .ib-l li::before{background:#a9adb3;box-shadow:0 0 0 3px rgba(169,173,179,.3)}
.incl-box.gold .ib-l li::before{background:#d4af37;box-shadow:0 0 0 3px rgba(212,175,55,.28)}
.incl-box.bronze{border-color:#c7894a}.incl-box.silver{border-color:#b4b8be}.incl-box.gold{border-color:#d4af37}
html[data-night] .incl-box{background:#181b1f;border-color:#2a2e33}
html[data-night] .opt.pkg.bronze{background:linear-gradient(135deg,#7a4a22,#c7894a 38%,#e9b27a 52%,#a0622f 75%,#6e4120)}
html[data-night] .opt.pkg.silver{background:linear-gradient(135deg,#8d9096,#d9dce1 38%,#f4f5f7 52%,#b4b8be 75%,#888b91)}
html[data-night] .opt.pkg.gold{background:linear-gradient(135deg,#8a6a1d,#d4af37 38%,#f6dc83 52%,#c39a2c 75%,#7f601a)}
html[data-night] .opt.pkg.silver span,html[data-night] .opt.pkg.gold span{color:rgba(27,28,30,.8)}
html[data-night] .opt.pkg.prem b{color:#1b1c1e}html[data-night] .opt.pkg.bronze b{color:#fff}
/* la casella "cosa include" si apre sotto la soluzione cliccata */
.incl-box{position:relative;margin:12px 0 4px}
.incl-box::before{content:"";position:absolute;top:-8px;left:var(--ax,50%);width:14px;height:14px;background:inherit;border-left:1px solid;border-top:1px solid;border-color:inherit;transform:translateX(-50%) rotate(45deg);transition:left .35s var(--ease)}
.incl-box.pop{animation:ibOpen .45s var(--ease) both}
.incl-box.pop .ib-l li{animation:ibLi .4s var(--ease) both}
.incl-box.pop .ib-l li:nth-child(2){animation-delay:.05s}.incl-box.pop .ib-l li:nth-child(3){animation-delay:.1s}.incl-box.pop .ib-l li:nth-child(4){animation-delay:.15s}.incl-box.pop .ib-l li:nth-child(5){animation-delay:.2s}.incl-box.pop .ib-l li:nth-child(6){animation-delay:.25s}
@keyframes ibOpen{from{opacity:0;transform:translateY(-8px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-20px 0 0 0)}}
@keyframes ibLi{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
.pk-g.prem-t{margin-top:18px}
@media(max-width:520px){.incl-box::before{display:none}}
/* titoli Base e Premium in evidenza */
.pk-g{display:flex;align-items:center;gap:12px;margin:6px 0 12px;font-size:1.15rem;font-style:italic;font-weight:900;letter-spacing:.04em;color:var(--ink)}
.pk-g::before{content:"";width:12px;height:12px;border-radius:3px;background:var(--lime);transform:rotate(45deg);flex:none;box-shadow:0 0 0 4px rgba(149,193,31,.2)}
.pk-g::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--line),transparent)}
.pk-g.prem-t{margin-top:22px;font-size:1.3rem;background:linear-gradient(90deg,#8a5424,#5f6268 45%,#9a7414 80%);-webkit-background-clip:text;background-clip:text;color:transparent}
.pk-g.prem-t::before{background:linear-gradient(135deg,#c7894a,#f4f5f7 50%,#d4af37);box-shadow:0 0 0 4px rgba(212,175,55,.25)}
.pk-g.prem-t::after{background:linear-gradient(90deg,#d4af37,transparent)}
.col-note{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;border-radius:8px;background:rgba(149,193,31,.12);border:1px solid rgba(149,193,31,.45);font-size:.86rem;line-height:1.45;color:var(--ink)}
.col-note svg{flex:none;width:22px;height:22px;fill:none;stroke:#6b8e12;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.col-note b{font-weight:800}
html[data-night] .col-note{background:rgba(149,193,31,.1);color:#e8e8ea}
/* interruttore "grafica personalizzata" */
.cust{margin:0 0 16px}
.cust-btn{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;border:2px dashed rgba(149,193,31,.7);background:rgba(149,193,31,.08);cursor:pointer;transition:background .25s,border-color .25s,box-shadow .25s}
.cust-btn:hover{background:rgba(149,193,31,.16)}
.cust-btn:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
.cust-btn svg{flex:none;width:28px;height:28px;fill:none;stroke:#6b8e12;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cust-btn span{display:grid;gap:3px;flex:1}
.cust-btn b{font-style:italic;font-weight:900;text-transform:uppercase;font-size:.95rem;color:var(--ink)}
.cust-btn small{font-size:.8rem;line-height:1.4;color:var(--muted)}
.cust-sw{flex:none;width:46px;height:26px;border-radius:99px;background:#cfd2cc;position:relative;transition:background .25s}
.cust-sw::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s var(--ease)}
.cust-btn.on{border-style:solid;border-color:var(--lime);background:rgba(149,193,31,.18);box-shadow:0 0 0 4px rgba(149,193,31,.18)}
.cust-btn.on .cust-sw{background:var(--lime)}
.cust-btn.on .cust-sw::after{transform:translateX(20px)}
.cust-more{margin-top:10px;display:grid;gap:6px;animation:ibOpen .4s var(--ease) both}
.cust-more label{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.cust-more label small{text-transform:none;letter-spacing:0;font-weight:600;color:var(--muted)}
.cust-more textarea{font:inherit;font-size:.92rem;padding:10px 12px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);resize:vertical}
.cust-more p{margin:0;font-size:.8rem;color:var(--muted)}
.cust-more[hidden]{display:none!important}
.cust-on .sws{opacity:.55;transition:opacity .3s}
html[data-night] .cust-btn b{color:#fff}html[data-night] .cust-more textarea{background:#14171a;color:#e8e8ea;border-color:#2a2e33}
/* grafica personalizzata: spariscono i colori */
.cust-on .sws,.cust-on .sub-l{display:none!important}
/* ===== Natale ===== */
.xmas-band,.xhero{position:relative;overflow:hidden;background:radial-gradient(120% 140% at 85% 20%,#2a1418 0%,#141516 55%,#0e0f10 100%);color:#fff}
.xmas-band{padding:clamp(44px,6vw,80px) 0}
.xmas-band::after,.xhero::after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,#b8141f,#d4af37,#95c11f,#d4af37,#b8141f)}
.snow{position:absolute;inset:0;pointer-events:none}
.snow i{position:absolute;top:-10px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:#fff;opacity:.75;animation:snow var(--d) linear var(--dl) infinite}
@keyframes snow{to{transform:translate3d(30px,110vh,0)}}
@media(prefers-reduced-motion:reduce){.snow{display:none}}
.xb-in,.xh-in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
@media(max-width:820px){.xb-in,.xh-in{grid-template-columns:1fr}.xb-art,.xh-art{order:-1}}
.xb-tag{display:inline-flex;align-items:center;gap:8px;margin:0;padding:7px 14px;border-radius:99px;background:rgba(212,175,55,.16);border:1px solid rgba(212,175,55,.55);color:#f2d675;font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.xb-tag span{color:#d4af37}
.xb-h{font-family:Montserrat,sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,4.8vw,3.9rem);line-height:.98;margin:16px 0 14px;color:#fff}
.xb-h em,.xhero h1 em{color:#d4af37;font-style:italic}
.xb-p{max-width:46ch;font-size:1.05rem;line-height:1.55;color:#d9dadc;margin:0 0 24px}
.xb-btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.xb-note{font-size:.84rem;color:#a9abae}
.xstack{position:relative;height:clamp(240px,28vw,360px)}
.xs{position:absolute;filter:drop-shadow(0 18px 30px rgba(0,0,0,.55));transition:transform .6s var(--ease)}
.xs .xp{display:block;width:100%;height:auto;transform:rotate(var(--r))}
.xs.s1{width:30%;left:4%;top:24%}.xs.s2{width:36%;left:30%;top:8%;z-index:2}.xs.s3{width:44%;right:2%;top:2%}
.xb-art:hover .s1,.xh-art:hover .s1{transform:translate(-10px,6px) rotate(-3deg)}
.xb-art:hover .s3,.xh-art:hover .s3{transform:translate(10px,-6px) rotate(2deg)}
.xb-art{display:block}
.xhero{padding:clamp(120px,14vw,170px) 0 clamp(56px,7vw,90px)}
.xhero .crumb a,.xhero .crumb{color:#a9abae}
.xhero h1{font-family:Montserrat,sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2.4rem,5.6vw,4.8rem);line-height:.95;margin:14px 0 16px;color:#fff}
.xh-p{max-width:50ch;color:#d9dadc;font-size:1.08rem;line-height:1.55}
.xsizes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:end;margin-top:clamp(24px,4vw,44px)}
@media(max-width:700px){.xsizes{grid-template-columns:1fr}}
.xsc{background:#fff;border-radius:12px;padding:22px;display:grid;gap:4px;justify-items:start;box-shadow:0 10px 30px -18px rgba(0,0,0,.35);border:1px solid var(--line)}
.xsc-art{width:100%;display:grid;place-items:center;min-height:200px;background:radial-gradient(circle at 50% 60%,#f4efe4,#fff);border-radius:8px;margin-bottom:10px}
.xsc-art .xp{filter:drop-shadow(0 10px 16px rgba(0,0,0,.25))}
.xsc b{font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;color:#1d1f21}
.xsc span{color:var(--muted);font-weight:700}
.xsc strong{font-size:1.6rem;font-weight:900;color:#b8141f}
.xsc p{margin:2px 0 0;font-size:.9rem;color:var(--muted)}
.xsteps{margin-top:clamp(36px,5vw,60px)}
.xorder{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,56px);align-items:start}
@media(max-width:900px){.xorder{grid-template-columns:1fr}}
.xo-l{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.xo-l li{position:relative;padding-left:26px;color:#d9dadc}
.xo-l li::before{content:"★";position:absolute;left:0;color:#d4af37}
#nform .lbl{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#95c11f}
.xszs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
@media(max-width:520px){.xszs{grid-template-columns:1fr}}
.xsz{position:relative;display:grid;justify-items:center;gap:2px;padding:14px 10px;border-radius:10px;border:2px solid var(--line);background:#fff;cursor:pointer;text-align:center;transition:border-color .2s,box-shadow .2s,transform .2s;color:#1d1f21}
.xsz input{position:absolute;opacity:0;pointer-events:none}
.xsz-art{height:96px;display:grid;place-items:end center}
.xsz-art .xp{height:auto;max-height:96px;width:auto;max-width:100%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}
.xsz b{font-style:italic;font-weight:900;text-transform:uppercase}
.xsz-dim{font-size:.8rem;color:#6b6d68;font-weight:700}
.xsz-pr{font-weight:900;color:#b8141f}
.xsz-d{display:none}
.xsz:hover{transform:translateY(-2px)}
.xsz:has(input:checked){border-color:#95c11f;box-shadow:0 0 0 4px rgba(149,193,31,.25)}
.xsz:has(input:focus-visible){outline:3px solid #95c11f;outline-offset:2px}
.nthumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.nthumbs figure{position:relative;margin:0;width:96px;height:96px;border-radius:8px;overflow:hidden;background:#222;box-shadow:0 6px 14px -8px rgba(0,0,0,.6)}
.nthumbs img{width:100%;height:100%;object-fit:cover}
.nthumbs button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.7);color:#fff;cursor:pointer;line-height:1}
.xtot{display:flex;justify-content:flex-end}
.xtot div{display:grid;justify-items:end;gap:2px;padding:12px 16px;border-radius:8px;background:rgba(149,193,31,.1);border:1px solid rgba(149,193,31,.4)}
.xtot span{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#95c11f}
.xtot b{font-size:1.7rem;font-weight:900}
.xtot small{font-size:.78rem;opacity:.75}
.dd-xmas{background:linear-gradient(135deg,#2a1418,#141516);color:#fff}
.dd-xmas .dd-xi{display:grid;place-items:center;width:52px;height:52px;border-radius:8px;background:rgba(212,175,55,.18);color:#d4af37;font-size:1.5rem;flex:none}
/* Natale come prima schermata della Home */
.xmas-top{min-height:calc(100svh - 72px);display:flex;align-items:center;padding:clamp(40px,6vh,80px) 0}
.xmas-top .xb-in{width:100%}
.xmas-top .xb-h{font-size:clamp(2.3rem,5.6vw,4.8rem)}
.xmas-top .xstack{height:clamp(260px,34vw,440px)}
.xmas-top .xb-scroll{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:grid;justify-items:center;gap:6px;color:#a9abae;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.xmas-top .xb-scroll i{width:2px;height:28px;background:linear-gradient(#d4af37,transparent);animation:xbs 1.8s ease-in-out infinite}
@keyframes xbs{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(6px);opacity:1}}
@media(max-width:820px){.xmas-top{min-height:auto}}
@media(max-width:820px){.xmas-top .xb-scroll{display:none}}
/* ===== Pagina Natale più natalizia ===== */
.xhero.xpage{background:radial-gradient(90% 120% at 80% 30%,#9b1020 0%,#5e0a14 45%,#2a0509 100%)}
.xhero.xpage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 85%,rgba(212,175,55,.18),transparent 40%),radial-gradient(circle at 90% 10%,rgba(255,255,255,.08),transparent 35%);pointer-events:none}
.xpage .crumb,.xpage .crumb a{color:#f2c9cd}
.xpage h1 em{color:#f6d36b}
.xpage .xh-p{color:#f5dfe1}
.xlights{position:absolute;left:0;right:0;top:72px;height:44px;pointer-events:none;z-index:1}
.xlights svg{position:absolute;inset:0;width:100%;height:100%}
.xlights i{position:absolute;left:var(--x);top:var(--y);width:10px;height:14px;border-radius:50% 50% 45% 45%;background:var(--c);box-shadow:0 0 12px 3px var(--c);animation:twinkle 1.6s ease-in-out var(--dl) infinite alternate}
.xlights i::before{content:"";position:absolute;left:3px;top:-4px;width:4px;height:5px;background:#2b3a2f;border-radius:1px}
@keyframes twinkle{from{opacity:.35;box-shadow:0 0 4px 1px var(--c)}to{opacity:1;box-shadow:0 0 16px 5px var(--c)}}
@media(prefers-reduced-motion:reduce){.xlights i{animation:none}}
.xbaub{position:absolute;top:72px;right:6%;display:flex;gap:28px;pointer-events:none;z-index:1}
.xbaub span{position:relative;display:block;width:2px;background:rgba(255,255,255,.35);transform-origin:top center;animation:swing 4s ease-in-out infinite alternate}
.xbaub .b1{height:90px}.xbaub .b2{height:150px;animation-delay:-1.2s}.xbaub .b3{height:60px;animation-delay:-2.4s}
.xbaub i{position:absolute;left:50%;bottom:-34px;width:38px;height:38px;margin-left:-19px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff8,transparent 30%),radial-gradient(circle at 50% 55%,#e8c14a,#9a7414);box-shadow:0 8px 18px rgba(0,0,0,.45)}
.xbaub .b2 i{width:48px;height:48px;margin-left:-24px;bottom:-44px;background:radial-gradient(circle at 32% 30%,#fff8,transparent 30%),radial-gradient(circle at 50% 55%,#2fa055,#0f4d27)}
.xbaub .b3 i{background:radial-gradient(circle at 32% 30%,#fff8,transparent 30%),radial-gradient(circle at 50% 55%,#f1f1f1,#9da3ab)}
.xbaub i::before{content:"";position:absolute;left:50%;top:-6px;width:10px;height:7px;margin-left:-5px;background:#c9a23a;border-radius:2px}
@keyframes swing{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
@media(max-width:820px){.xbaub{display:none}}
.xh-art{position:relative}
.xbow{position:absolute;width:clamp(70px,9vw,120px);right:12%;top:-2%;z-index:4;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4));transform:rotate(12deg)}
.xformati{background:#fbf5ec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c8102e' stroke-opacity='.07' stroke-width='2'%3E%3Cpath d='M30 18v24M18 30h24M21.5 21.5l17 17M38.5 21.5l-17 17'/%3E%3Cpath d='M90 78v24M78 90h24M81.5 81.5l17 17M98.5 81.5l-17 17'/%3E%3C/g%3E%3C/svg%3E")}
.xformati .h2 em{color:#c8102e}
.xformati .eyebrow{color:#c8102e}
.xformati .xsc{border:2px solid #e6d3a3;position:relative;overflow:visible}
.xformati .xsc::before{content:"";position:absolute;left:0;right:0;top:44%;height:10px;background:#c8102e;opacity:.9}
.xformati .xsc::after{content:"";position:absolute;top:-14px;left:50%;width:34px;height:24px;margin-left:-17px;background:radial-gradient(circle at 50% 70%,#e0213f 5px,transparent 6px),radial-gradient(ellipse at 22% 50%,#c8102e 9px,transparent 10px),radial-gradient(ellipse at 78% 50%,#c8102e 9px,transparent 10px)}
.xformati .xsc-art{position:relative;z-index:1}
.xformati .step .k{color:#c8102e}
.xformati .step::before{background:#c8102e}
.xordina{background:radial-gradient(100% 120% at 0% 0%,#14402a 0%,#0c2618 55%,#08170f 100%)}
.xordina .eyebrow{color:#f6d36b}
.xordina .h2 em{color:#f6d36b}
.xordina #nform{border-top-color:#c8102e}
.xformati .xsc::before{display:none}
/* testo in rosso acceso (lo sfondo resta quello di prima) */
.xpage h1 em{color:#ff2b40;text-shadow:0 0 22px rgba(255,43,64,.55),0 2px 0 rgba(0,0,0,.35)}
.xformati .h2 em,.xformati .eyebrow,.xformati .step .k,.xsc strong{color:#e3061b}
/* più scuro dietro al testo dell'apertura di Natale */
.xhero.xpage{background:radial-gradient(ellipse 60% 75% at 24% 58%,rgba(18,0,4,.72) 0%,rgba(18,0,4,.45) 45%,transparent 75%),radial-gradient(90% 120% at 80% 30%,#9b1020 0%,#5e0a14 45%,#2a0509 100%)}
@media(max-width:820px){.xhero.xpage{background:linear-gradient(180deg,transparent 0%,rgba(18,0,4,.35) 35%,rgba(18,0,4,.7) 70%),radial-gradient(90% 120% at 80% 30%,#9b1020 0%,#5e0a14 45%,#2a0509 100%)}}
/* foto natalizia come sfondo dell'apertura */
.xhero.xpage{background:linear-gradient(90deg,rgba(10,4,6,.86) 0%,rgba(10,4,6,.66) 38%,rgba(10,4,6,.2) 70%,rgba(10,4,6,.35) 100%),url(img/natale-bg.jpg) center/cover no-repeat}
.xhero.xpage::before{background:linear-gradient(0deg,rgba(10,4,6,.55),transparent 30%)}
@media(max-width:820px){.xhero.xpage{background:linear-gradient(180deg,rgba(10,4,6,.3) 0%,rgba(10,4,6,.6) 40%,rgba(10,4,6,.85) 75%),url(img/natale-bg.jpg) 30% center/cover no-repeat}}
/* Natale: galleria foto */
.xgal{background:#fff}
.xgal .h2 em{color:#e3061b}.xgal .eyebrow{color:#e3061b}
.xg{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin-top:clamp(24px,4vw,44px)}
.xg figure{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 18px 40px -24px rgba(0,0,0,.5)}
.xg .xg-a{aspect-ratio:auto}
.xg img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.xg figure:hover img{transform:scale(1.05)}
.xg figcaption{position:absolute;inset:auto 0 0 0;padding:48px 18px 16px;background:linear-gradient(0deg,rgba(20,6,8,.85),transparent);color:#fff;display:grid;gap:2px;font-size:.88rem}
.xg figcaption b{font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.05rem;color:#fff}
@media(max-width:760px){.xg{grid-template-columns:1fr 1fr}.xg .xg-a{grid-column:1/-1;aspect-ratio:16/10}}
/* Home: casetta degli elfi come sfondo */
.xmas-top{background:linear-gradient(90deg,rgba(8,20,40,.88) 0%,rgba(8,20,40,.6) 40%,rgba(8,20,40,0) 68%),url(img/natale-casa.jpg) 70% center/cover no-repeat}
.xmas-top .xb-art{visibility:hidden}
@media(max-width:820px){.xmas-top{background:linear-gradient(180deg,rgba(8,20,40,.15) 0%,rgba(8,20,40,.55) 45%,rgba(8,20,40,.9) 80%),url(img/natale-casa.jpg) 82% center/cover no-repeat}.xmas-top .xb-art{display:block;height:220px}.xmas-top .xstack{display:none}}
/* formati: foto del quadro in tre misure */
.xsc-art{min-height:0;padding:0;overflow:hidden;background:none;aspect-ratio:3/2}
.xsc-art img{width:100%;height:100%;object-fit:cover;display:block}
.xsizes{align-items:stretch}
.xsz-art{height:auto;width:100%;display:block;border-radius:6px;overflow:hidden;aspect-ratio:3/2;margin-bottom:6px}
.xsz-art img{width:100%;height:100%;object-fit:cover;display:block}
.xsc-art{aspect-ratio:1/1}.xsz-art{aspect-ratio:1/1}
/* Natale: pronto da appendere */
.xhang{background:#0c2618;color:#fff;position:relative;overflow:hidden}
.xhang::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 20%,rgba(212,175,55,.16),transparent 60%);pointer-events:none}
.xhang-in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
@media(max-width:860px){.xhang-in{grid-template-columns:1fr}}
.xhang-ph{position:relative;margin:0;border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.7);aspect-ratio:4/3}
.xhang-ph img{width:100%;height:100%;object-fit:cover}
.xhang-badge{position:absolute;left:16px;bottom:16px;background:#e3061b;color:#fff;font-weight:900;font-style:italic;text-transform:uppercase;font-size:.85rem;padding:10px 14px;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.xhang .h2{color:#fff}.xhang .h2 em{color:#ff2b40}
.xhang .lead{color:#dfe8e2}
.xhang-l{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px}
.xhang-l li{position:relative;padding-left:44px;display:grid;gap:2px;color:#c9d6cd;font-size:.95rem}
.xhang-l li b{color:#fff;font-size:1.02rem}
.xhang-l li::before{content:"✓";position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#95c11f;color:#0c2618;font-weight:900}
.xhang-n{margin:20px 0 0;font-size:.88rem;color:#a9bbb0}
/* Natale: ricordi */
.xmem{background:#fbf5ec}
.xmem .h2 em,.xmem .eyebrow{color:#e3061b}
.xm{display:grid;grid-template-columns:.8fr 1.1fr 1.1fr;gap:14px;margin-top:clamp(24px,4vw,44px)}
.xm figure{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:#fff;padding:10px 10px 44px;box-shadow:0 14px 34px -20px rgba(0,0,0,.45);transform:rotate(var(--r,0deg));transition:transform .4s var(--ease)}
.xm figure:nth-child(1){--r:-2deg}.xm figure:nth-child(2){--r:1.5deg}.xm figure:nth-child(3){--r:-1deg}
.xm figure:hover{transform:rotate(0) translateY(-6px)}
.xm img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.xm figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-style:italic;font-weight:900;text-transform:uppercase;color:#1d1f21}
@media(max-width:760px){.xm{grid-template-columns:1fr 1fr}.xm figure:nth-child(1){grid-column:1/-1;aspect-ratio:4/3}}
.xm{grid-template-columns:repeat(3,1fr);align-items:start}
.xm figure{aspect-ratio:auto;height:clamp(300px,32vw,460px)}
.xm img{height:100%}
@media(max-width:760px){.xm{grid-template-columns:1fr}.xm figure,.xm figure:nth-child(1){aspect-ratio:auto;height:360px}}
.xformati{padding-bottom:clamp(48px,6vw,80px)}
.xsteps-sec{background:#fbf5ec;padding:clamp(48px,6vw,80px) 0}
.xsteps-sec .xsteps{margin-top:0}
.xsteps-sec .step .k{color:#e3061b}
/* formati + "basta un chiodo" affiancati */
.xbuy{display:grid;grid-template-columns:3fr 1.15fr;gap:16px;align-items:stretch;margin-top:clamp(24px,4vw,44px)}
.xbuy .xsizes{margin-top:0}
@media(max-width:1100px){.xbuy{grid-template-columns:1fr}}
.xnail{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:#0c2618;color:#fff;box-shadow:0 18px 40px -22px rgba(0,0,0,.55);border:2px solid #d4af37}
.xnail-ph{position:relative;aspect-ratio:4/3;overflow:hidden}
.xnail-ph img{width:100%;height:100%;object-fit:cover}
.xnail-ph span{position:absolute;left:10px;bottom:10px;background:#e3061b;color:#fff;font-weight:900;font-style:italic;text-transform:uppercase;font-size:.72rem;padding:7px 10px;border-radius:6px}
.xnail-tx{padding:16px 18px 20px}
.xnail h3{margin:0 0 12px;font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.45rem;line-height:1;color:#fff}
.xnail h3 em{color:#ff2b40;font-style:italic}
.xnail ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.xnail li{position:relative;padding-left:30px;font-size:.88rem;line-height:1.35;color:#cfdcd3}
.xnail li b{color:#fff}
.xnail li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#95c11f;color:#0c2618;font-weight:900;font-size:.75rem}
@media(max-width:1100px) and (min-width:640px){.xnail{flex-direction:row}.xnail-ph{width:42%;aspect-ratio:auto}.xnail-tx{flex:1;align-self:center}}
.xsc{align-content:start}
/* "basta un chiodo" come fascia sotto i prezzi */
.xbuy{grid-template-columns:1fr;gap:18px}
.xnail{flex-direction:row;align-items:stretch}
.xnail-ph{width:clamp(200px,24%,300px);aspect-ratio:auto;flex:none}
.xnail-tx{flex:1;display:flex;align-items:center;gap:clamp(18px,3vw,40px);padding:18px clamp(18px,3vw,32px)}
.xnail h3{margin:0;font-size:clamp(1.4rem,2.2vw,1.9rem);flex:none}
.xnail ul{grid-template-columns:repeat(3,1fr);gap:16px;flex:1}
.xsc-art{aspect-ratio:4/3}
@media(max-width:900px){.xnail-tx{flex-direction:column;align-items:flex-start}.xnail ul{grid-template-columns:1fr}}
@media(max-width:600px){.xnail{flex-direction:column}.xnail-ph{width:100%;aspect-ratio:16/10}}
.xsc-art{aspect-ratio:5/4}.xsc-art img{object-position:center 85%}
.xsc-art{aspect-ratio:1/1}.xsc-art img{object-position:center}
/* card formato cliccabili + finestra con foto */
button.xsc{font:inherit;text-align:left;cursor:pointer;width:100%;transition:transform .3s var(--ease),box-shadow .3s}
button.xsc:hover{transform:translateY(-4px);box-shadow:0 0 0 2px #e3061b,0 18px 36px -18px rgba(227,6,27,.5)}
button.xsc:focus-visible{outline:3px solid #e3061b;outline-offset:3px}
.xsc .xsc-art{display:block}
.xsc-d{font-size:.9rem;color:var(--muted)}
.xsc-go{margin-top:8px;font-weight:800;font-size:.85rem;color:#e3061b;text-transform:uppercase;letter-spacing:.06em}
.xsc-go i{font-style:normal;display:inline-block;transition:transform .3s}
.xsc:hover .xsc-go i{transform:translateX(4px)}
.xdlg{width:min(1060px,94vw);max-height:92vh;padding:0;border:0;border-radius:14px;background:#fff;overflow:auto}
.xdlg::backdrop{background:rgba(20,6,8,.8)}
.xdlg .x{position:absolute;right:12px;top:10px;z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:#1b1c1e;color:#fff;font-size:1.5rem;cursor:pointer}
.xd-in{display:grid;grid-template-columns:1.15fr 1fr}
@media(max-width:760px){.xd-in{grid-template-columns:1fr}}
.xd-media{background:#f2f2f0;padding:14px}
.xd-media>img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;display:block}
.xd-th{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.xd-th button{padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;cursor:pointer;background:none;aspect-ratio:1/1}
.xd-th button.on{border-color:#e3061b}
.xd-th img{width:100%;height:100%;object-fit:cover;display:block}
.xd-tx{padding:28px 26px;display:flex;flex-direction:column;gap:6px;color:#1d1f21}
.xd-tx .xb-tag{align-self:flex-start;background:rgba(227,6,27,.08);border-color:rgba(227,6,27,.4);color:#e3061b}
.xd-tx h3{margin:10px 0 0;font-style:italic;font-weight:900;text-transform:uppercase;font-size:2.2rem;line-height:1}
.xd-dim{margin:0;font-weight:800;color:#6b6d68}
.xd-pr{margin:6px 0 0;font-size:1.9rem;font-weight:900;color:#e3061b}
.xd-desc{margin:0 0 6px;color:#555}
.xd-tx ul{list-style:none;margin:6px 0 16px;padding:0;display:grid;gap:8px}
.xd-tx li{position:relative;padding-left:26px;font-size:.92rem}
.xd-tx li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#95c11f;color:#0c2618;font-weight:900;font-size:.7rem}
.xd-tx .btn{align-self:flex-start}
.xd-note{margin:8px 0 0;font-size:.8rem;color:#888}
.xd-main{position:relative}
.xd-main>img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;display:block}
.xd-media>img{display:none}
.xd-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#1d1f21;font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);display:grid;place-items:center;padding-bottom:4px;transition:background .2s,color .2s,transform .2s}
.xd-nav:hover{background:#e3061b;color:#fff;transform:translateY(-50%) scale(1.06)}
.xd-prev{left:12px}.xd-next{right:12px}
.xd-cnt{position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.6);color:#fff;font-size:.78rem;font-weight:800;padding:5px 10px;border-radius:99px}
/* apertura Natale: quadretti sparsi */
.xframes{position:relative;height:clamp(320px,36vw,500px)}
.qf{position:absolute;margin:0;padding:0;background:#fff;box-shadow:0 22px 40px -14px rgba(0,0,0,.7),0 0 0 1px rgba(0,0,0,.08);transform:rotate(var(--r));transition:transform .6s var(--ease)}
.qf img{display:block;width:100%;height:100%;object-fit:cover}
.qf::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.28),transparent 40%);pointer-events:none}
.qf.q1{width:46%;aspect-ratio:3/2;left:30%;top:4%;--r:-3deg;z-index:3}
.qf.q2{width:30%;aspect-ratio:2/3;left:2%;top:18%;--r:-8deg;z-index:2}
.qf.q3{width:32%;aspect-ratio:4/5;right:0;top:34%;--r:7deg;z-index:2}
.qf.q4{width:34%;aspect-ratio:1/1;left:28%;top:52%;--r:4deg;z-index:4}
.xh-art:hover .q1{transform:rotate(-1deg) translateY(-6px)}
.xh-art:hover .q2{transform:rotate(-10deg) translateX(-6px)}
.xh-art:hover .q3{transform:rotate(9deg) translateX(6px)}
.xh-art:hover .q4{transform:rotate(2deg) translateY(6px)}
.xh-art .xbow{right:auto;left:62%;top:0;z-index:5}
@media(max-width:820px){.xframes{height:340px}}
.qf{box-shadow:3px 4px 0 rgba(255,255,255,.85),4px 6px 0 rgba(0,0,0,.25),0 26px 44px -14px rgba(0,0,0,.75)}
/* quadretti più morbidi sullo sfondo */
.xframes::before{content:"";position:absolute;inset:-12% -10%;background:radial-gradient(closest-side,rgba(255,190,90,.32),rgba(255,160,60,.12) 55%,transparent 75%);filter:blur(10px);pointer-events:none}
.qf{box-shadow:2px 3px 0 rgba(60,30,10,.5),0 18px 50px -10px rgba(0,0,0,.55),0 0 40px rgba(255,180,80,.18)}
.qf img{filter:brightness(.88) saturate(.92) sepia(.12) contrast(.94)}
.qf::after{background:linear-gradient(135deg,rgba(255,220,160,.22),transparent 45%),radial-gradient(120% 90% at 50% 120%,rgba(30,10,5,.35),transparent 60%)}
/* un solo quadro elegante */
.xframes.one{display:grid;place-items:center;height:clamp(340px,38vw,520px)}
.xframes.one::before{inset:-8% -6%;background:radial-gradient(closest-side,rgba(255,200,110,.38),rgba(255,170,70,.12) 60%,transparent 78%)}
.qf.qbig{position:relative;width:min(100%,520px);aspect-ratio:3/2;--r:-1.5deg;padding:10px;background:linear-gradient(135deg,#f6dc83,#c39a2c 45%,#8a6a1d 70%,#d4af37);box-shadow:0 30px 60px -20px rgba(0,0,0,.75),0 0 60px rgba(255,190,90,.25)}
.qf.qbig img{filter:none;border:1px solid rgba(0,0,0,.25)}
.qf.qbig::after{inset:10px;background:linear-gradient(130deg,rgba(255,255,255,.18),transparent 35%)}
.xh-art:hover .qbig{transform:rotate(0) translateY(-4px)}
.xh-art .xbow{left:auto;right:6%;top:4%}
/* fluidità */
img.img-wait{opacity:0}
img[loading="lazy"]{transition:opacity .5s ease}
.rv-wait{transform:translateY(22px)}
.rv-wait[data-rv="left"]{transform:translateX(-28px)}.rv-wait[data-rv="right"]{transform:translateX(28px)}
@keyframes twinkle{from{opacity:.35}to{opacity:1}}
.xlights i{box-shadow:0 0 12px 3px var(--c);will-change:opacity}
.snow i{will-change:transform}
.xframes::before{filter:none}
.xg figure,.xm figure,.ht,.xsc-art,.work button{background-color:#ececea}
/* Natale: fascia video */
.xvid{position:relative;overflow:hidden;min-height:clamp(420px,62vh,640px);display:flex;align-items:center;color:#fff;background:#14080a}
.xv-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.xvid::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,6,8,.88) 0%,rgba(20,6,8,.62) 42%,rgba(20,6,8,.1) 75%)}
.xv-in{position:relative;z-index:2;display:grid;justify-items:start;gap:16px;padding-block:clamp(56px,8vw,96px)}
.xv-h{margin:0;font-family:Montserrat,sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,4.6vw,3.8rem);line-height:.98;color:#fff;max-width:14ch}
.xv-h em{color:#ff2b40;font-style:italic}
.xv-p{margin:0;max-width:42ch;font-size:1.08rem;color:#f1e7e8}
@media(max-width:760px){.xvid::before{background:linear-gradient(0deg,rgba(20,6,8,.9) 15%,rgba(20,6,8,.45) 70%,rgba(20,6,8,.25))}.xvid{align-items:flex-end}.xv-bg{object-position:70% 30%}}
.xv-in{width:100%}
/* Natale: 4 passi come cartellini regalo */
.xsteps-sec{background:#fbf5ec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c8102e' stroke-opacity='.06' stroke-width='2'%3E%3Cpath d='M30 18v24M18 30h24M21.5 21.5l17 17M38.5 21.5l-17 17'/%3E%3C/g%3E%3C/svg%3E")}
.xpath{text-align:center;display:grid;justify-items:center}
.xpath .xb-tag{background:rgba(227,6,27,.08);border-color:rgba(227,6,27,.4);color:#e3061b}
.xpath .h2 em{color:#e3061b}
.xtags{list-style:none;margin:clamp(36px,5vw,60px) 0 0;padding:0;width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px);position:relative}
.xtags::before{content:"";position:absolute;left:6%;right:6%;top:22px;height:3px;background:repeating-linear-gradient(90deg,#e3061b 0 14px,transparent 14px 24px);z-index:0}
.xtag{position:relative;z-index:1;background:#fff;border-radius:14px 14px 14px 14px;padding:42px 20px 24px;text-align:center;display:grid;justify-items:center;gap:8px;box-shadow:0 16px 34px -20px rgba(120,20,20,.45);border:1px solid #f0e2c4;transform:rotate(var(--r,0deg));transition:transform .4s var(--ease),box-shadow .4s}
.xtag:nth-child(1){--r:-2deg}.xtag:nth-child(2){--r:1.5deg}.xtag:nth-child(3){--r:-1deg}.xtag:nth-child(4){--r:2deg}
.xtag:hover{transform:rotate(0) translateY(-6px);box-shadow:0 22px 40px -18px rgba(227,6,27,.45)}
.xt-hole{position:absolute;top:14px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#fbf5ec;border:3px solid #d4af37}
.xt-hole::before{content:"";position:absolute;left:50%;bottom:100%;width:2px;height:22px;margin-left:-1px;background:#e3061b}
.xt-n{position:absolute;top:10px;right:14px;font-style:italic;font-weight:900;font-size:1.1rem;color:#e3061b;opacity:.9}
.xt-ico{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ff4d5e,#c4041a);box-shadow:0 10px 20px -8px rgba(227,6,27,.6);margin-top:6px}
.xt-ico svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.xtag h3{margin:6px 0 0;font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.05rem;color:#1d1f21}
.xtag p{margin:0;font-size:.9rem;line-height:1.45;color:#6b6d68}
@media(max-width:900px){.xtags{grid-template-columns:1fr 1fr}.xtags::before{display:none}}
@media(max-width:520px){.xtags{grid-template-columns:1fr}}
/* "Come funziona" su sfondo rosso con rami */
.xsteps-sec{background:#c8102e url(img/natale-rosso.jpg) left center/cover no-repeat;position:relative}
.xsteps-sec::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(90,0,10,.15),transparent 40%);pointer-events:none}
.xsteps-sec .wrap{position:relative}
.xpath .xb-tag{background:rgba(255,255,255,.14);border-color:rgba(255,230,150,.8);color:#fff1b8}
.xpath .h2{color:#fff}
.xpath .h2 em{color:#ffe07a}
.xtags::before{background:repeating-linear-gradient(90deg,#ffe07a 0 14px,transparent 14px 24px)}
.xt-hole{background:#c8102e}
.xt-hole::before{background:#ffe07a}
.xtag{box-shadow:0 20px 40px -18px rgba(60,0,8,.6);border-color:#fff}
@media(max-width:900px){.xsteps-sec{background-position:20% center}}
.xg figure img[src*="appendi"]{object-position:45% center}
/* "Dal telefono alla parete": sfondo caldo con luci sfocate */
.xgal{position:relative;overflow:hidden;background:
 radial-gradient(circle at 8% 18%,rgba(212,175,55,.22) 0 60px,transparent 61px),
 radial-gradient(circle at 92% 12%,rgba(227,6,27,.12) 0 90px,transparent 91px),
 radial-gradient(circle at 85% 88%,rgba(212,175,55,.18) 0 70px,transparent 71px),
 radial-gradient(circle at 15% 92%,rgba(227,6,27,.10) 0 50px,transparent 51px),
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23c39a2c' stroke-opacity='.14' stroke-width='1.6'%3E%3Cpath d='M40 26v28M26 40h28M30 30l20 20M50 30L30 50'/%3E%3Cpath d='M120 106v28M106 120h28M110 110l20 20M130 110l-20 20'/%3E%3C/g%3E%3C/svg%3E"),
 linear-gradient(180deg,#fff8ee,#f6ead6)}
.xgal::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 40%,rgba(255,215,140,.35),transparent 45%);filter:blur(30px);pointer-events:none}
.xgal .wrap{position:relative}
.xgal{background:
 radial-gradient(circle at 6% 20%,rgba(212,175,55,.28),transparent 18%),
 radial-gradient(circle at 94% 14%,rgba(227,6,27,.14),transparent 22%),
 radial-gradient(circle at 88% 90%,rgba(212,175,55,.22),transparent 20%),
 radial-gradient(circle at 12% 94%,rgba(227,6,27,.10),transparent 16%),
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23c39a2c' stroke-opacity='.14' stroke-width='1.6'%3E%3Cpath d='M40 26v28M26 40h28M30 30l20 20M50 30L30 50'/%3E%3Cpath d='M120 106v28M106 120h28M110 110l20 20M130 110l-20 20'/%3E%3C/g%3E%3C/svg%3E"),
 linear-gradient(180deg,#fff8ee,#f6ead6)}
/* "Tre misure": legno chiaro con decorazioni */
.xformati{background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.25) 40%,rgba(255,255,255,.35) 100%),url(img/natale-legno.jpg) left top/cover no-repeat}
@media(max-width:900px){.xformati{background:linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)),url(img/natale-legno.jpg) left top/cover no-repeat}}
.xformati{background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.15) 30%,rgba(255,255,255,0) 60%),url(img/natale-legno.jpg) right top/cover no-repeat}
@media(max-width:900px){.xformati{background:linear-gradient(rgba(255,255,255,.5),rgba(255,255,255,.5)),url(img/natale-legno.jpg) right top/cover no-repeat}}
.xformati .sec-head .lead{background:rgba(255,255,255,.88);padding:16px 20px;border-radius:10px;box-shadow:0 10px 30px -18px rgba(0,0,0,.35);color:#444}
/* Natale: perché regalare una foto */
.xwhy{background:radial-gradient(80% 100% at 50% 0%,#3a0a12 0%,#1a0508 70%);color:#fff;position:relative;overflow:hidden}
.xwhy-h{text-align:center;display:grid;justify-items:center;max-width:760px;margin:0 auto}
.xwhy .h2{color:#fff}.xwhy .h2 em{color:#ff2b40}
.xwhy .lead{color:#f1dfe1;margin-top:14px}
.xwhy-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(32px,5vw,56px)}
@media(max-width:900px){.xwhy-g{grid-template-columns:1fr 1fr}}@media(max-width:560px){.xwhy-g{grid-template-columns:1fr}}
.xw{padding:26px 24px;border-radius:14px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(212,175,55,.35);transition:transform .35s var(--ease),border-color .35s,background .35s}
.xw:hover{transform:translateY(-5px);border-color:#d4af37;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.03))}
.xw-i{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ff4d5e,#c4041a);box-shadow:0 10px 22px -8px rgba(227,6,27,.7)}
.xw-i svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.xw h3{margin:16px 0 6px;font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.12rem;color:#fff}
.xw p{margin:0;color:#e3cfd2;font-size:.95rem;line-height:1.55}
.xwhy-q{margin:clamp(36px,5vw,56px) auto 0;text-align:center;font-style:italic;font-weight:800;font-size:clamp(1.2rem,2.4vw,1.7rem);color:#fff;max-width:30ch}
.xwhy-q em{color:#f6d36b}
/* Natale: chi c'è dietro */
.xtrust{background:#141516;color:#fff}
.xtr-in{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
@media(max-width:900px){.xtr-in{grid-template-columns:1fr}}
.xtrust .h2{color:#fff}.xtrust .h2 em{color:var(--lime)}
.xtrust .lead{color:#cfd0d3;margin-top:14px}
.xtrust .xb-tag{background:rgba(149,193,31,.12);border-color:rgba(149,193,31,.5);color:var(--lime)}
.xtr-l{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.xtr-l li{position:relative;padding-left:30px;color:#dcdde0}
.xtr-l li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:#141516;font-weight:900;font-size:.75rem}
.xtr-btns{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:28px}
.xtr-st{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.xtr-st div{padding:18px 12px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);text-align:center;display:grid;gap:4px}
.xtr-st b{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900;font-style:italic;color:var(--lime)}
.xtr-st span{font-size:.8rem;color:#b9babd}
.xtr-st img{grid-column:1/-1;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
/* "perché una foto" compatta */
.xwhy{padding:clamp(44px,6vw,72px) 0}
.xwhy-q{margin:0 auto;font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.15;max-width:26ch;text-transform:uppercase;font-weight:900}
.xwhy-g{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(24px,3.5vw,40px)}
@media(max-width:900px){.xwhy-g{grid-template-columns:1fr 1fr}}
.xw{display:flex;gap:12px;align-items:center;padding:14px 16px}
.xw:hover{transform:none}
.xw-i{width:40px;height:40px;flex:none}.xw-i svg{width:19px;height:19px}
.xw h3{margin:0 0 2px;font-size:.92rem}
.xw p{font-size:.82rem;line-height:1.35}
@media(max-width:520px){.xwhy-g{grid-template-columns:1fr}.xw{padding:12px 14px}}
.xb-price{margin:16px 0 -4px;font-family:Montserrat,sans-serif;font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.6rem);color:#fff;letter-spacing:.01em}
.xb-price b{display:inline-block;margin-left:6px;padding:4px 14px;border-radius:8px;background:#e3061b;color:#fff;font-weight:900;font-size:1.35em;box-shadow:0 10px 24px -10px rgba(227,6,27,.8);transform:rotate(-2deg)}
/* ===== Natale su telefono: più compatto ===== */
.xsticky{display:none}
@media(max-width:700px){
  .xhero{padding-top:96px}
  .xframes.one{height:230px}
  .qf.qbig{width:84%}
  .xh-art .xbow{width:60px}
  /* prezzi: schede orizzontali */
  .xsizes{grid-template-columns:1fr!important;gap:10px}
  button.xsc{display:grid;grid-template-columns:118px 1fr;grid-template-rows:auto;column-gap:14px;row-gap:0;padding:12px;align-items:center}
  button.xsc .xsc-art{grid-row:1/span 5;margin:0;aspect-ratio:1/1}
  button.xsc b{font-size:1.05rem}
  button.xsc strong{font-size:1.35rem}
  button.xsc .xsc-d{font-size:.78rem;line-height:1.3}
  button.xsc .xsc-go{margin-top:4px;font-size:.72rem}
  .xformati .xsc::after{display:none}
  .xnail-ph{aspect-ratio:16/8}
  /* 4 passi: 2x2 compatti */
  .xtags{grid-template-columns:1fr 1fr!important;gap:10px;margin-top:28px}
  .xtag{padding:30px 10px 14px;gap:4px;--r:0deg!important}
  .xt-ico{width:46px;height:46px}.xt-ico svg{width:22px;height:22px}
  .xtag h3{font-size:.85rem}
  .xtag p{font-size:.76rem;line-height:1.35}
  .xt-n{font-size:.9rem;top:8px;right:10px}
  /* modulo: formati su 3 colonne piccole */
  .xszs{grid-template-columns:repeat(3,1fr)!important;gap:6px}
  .xsz{padding:8px 4px}
  .xsz-art{aspect-ratio:1/1;margin-bottom:4px}
  .xsz b{font-size:.78rem}.xsz-dim{font-size:.62rem}.xsz-pr{font-size:.78rem}
  /* barra fissa */
  .xsticky{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:60;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-radius:12px;background:#e3061b;color:#fff;text-decoration:none;box-shadow:0 12px 30px -8px rgba(0,0,0,.5);transform:translateY(140%);transition:transform .35s var(--ease)}
  .xsticky.on{transform:none}
  .xsticky span{font-size:.9rem}.xsticky b{font-weight:900}
  .xsticky strong{background:#fff;color:#e3061b;padding:8px 12px;border-radius:8px;font-weight:900;font-size:.85rem;text-transform:uppercase}
  body:has(.xsticky.on) .wa-float,body:has(.xsticky.on) [class*="wa-"]{bottom:84px}
}
@media(max-width:700px){body:has(.xsticky.on) .wa{bottom:84px;transition:bottom .35s}}
/* ===== Natale su telefono: tutto più leggero ===== */
.xh-p-m{display:none}
@media(max-width:700px){
  .xhero~section,.xwhy,.xformati,.xsteps-sec,.xtrust,.xmem,.xvid,.xgal,.xordina{padding-top:40px!important;padding-bottom:40px!important}
  .xhero~section .h2{font-size:1.65rem!important;line-height:1.02}
  .xhero~section .lead{font-size:.95rem;margin-top:8px}
  .xhero~section .sec-head{gap:10px;margin-bottom:0}
  .xhero~section .eyebrow{font-size:.62rem}
  .xb-tag{font-size:.62rem;padding:5px 10px}
  /* apertura */
  .xhero{padding-top:84px!important;padding-bottom:36px!important}
  .xhero .crumb,.xlights,.xbaub{display:none}
  .xframes.one{height:190px}
  .xhero h1{font-size:2.1rem!important;margin:10px 0 8px}
  .xh-p{display:none}.xh-p-m{display:block;font-size:.95rem;color:#f5dfe1;margin:0}
  .xhero .ctas{margin-top:16px}
  .xhero .ctas .btn{padding:13px 16px;font-size:.88rem}
  /* frase emotiva */
  .xwhy-q{font-size:1.25rem}
  .xwhy-g{grid-template-columns:1fr 1fr!important;gap:8px;margin-top:18px}
  .xw{flex-direction:column;align-items:flex-start;gap:6px;padding:10px}
  .xw-i{width:30px;height:30px}.xw-i svg{width:15px;height:15px}
  .xw h3{font-size:.78rem}.xw p{font-size:.72rem}
  /* formati */
  .xformati .sec-head .lead{display:none}
  .xbuy{margin-top:16px;gap:10px}
  button.xsc{grid-template-columns:92px 1fr;padding:10px;column-gap:12px}
  button.xsc b{font-size:.95rem}button.xsc strong{font-size:1.2rem}
  button.xsc>span:not(.xsc-art):not(.xsc-go):not(.xsc-d){font-size:.78rem}
  button.xsc .xsc-d{display:none}
  .xnail-ph{display:none}
  .xnail-tx{padding:14px 16px;gap:10px}
  .xnail h3{font-size:1.2rem}
  .xnail ul{gap:6px}.xnail li{font-size:.8rem}
  /* passi */
  .xtags{margin-top:18px}
  .xtag{padding:24px 8px 10px}
  .xt-ico{width:38px;height:38px}.xt-ico svg{width:18px;height:18px}
  .xtag p{display:none}
  .xtag h3{font-size:.78rem}
  .xtags::before,.xt-hole::before{display:none}
  /* chi c'è dietro */
  .xtrust .lead,.xtr-st img{display:none}
  .xtr-l{margin-top:12px;gap:6px}.xtr-l li{font-size:.85rem}
  .xtr-btns{margin-top:16px;gap:12px}
  .xtr-st{gap:6px}.xtr-st div{padding:10px 6px}.xtr-st b{font-size:1.3rem}.xtr-st span{font-size:.66rem}
  .xtr-in{gap:18px}
  /* ricordi e galleria: scorrono di lato */
  .xmem .lead,.xgal .lead{display:none}
  .xm,.xg{display:flex!important;overflow-x:auto;gap:10px;margin:16px -16px 0;padding:6px 16px 10px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .xm::-webkit-scrollbar,.xg::-webkit-scrollbar{display:none}
  .xm figure,.xm figure:nth-child(1),.xg figure,.xg .xg-a{flex:0 0 62%;height:260px!important;aspect-ratio:auto!important;scroll-snap-align:start}
  .xg figcaption{padding:30px 12px 10px;font-size:.75rem}.xg figcaption b{font-size:.85rem}
  /* video */
  .xvid{min-height:340px}
  .xv-h{font-size:1.6rem}.xv-p{font-size:.88rem}
  /* ordine */
  .xo-l{margin-top:12px;gap:6px}.xo-l li{font-size:.82rem}
  #nform{padding:18px 14px!important}
}
/* Natale: anteprima del quadro con la foto del cliente */
.npv{margin-top:16px;border-radius:16px;background:#f3eee6;color:#1d1f21;padding:16px;display:grid;gap:12px}
.npv[hidden]{display:none}
.npv-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.npv-head b{font-weight:900;font-size:1.05rem}
.npv-ql{font-size:.78rem;font-weight:800;padding:5px 11px;border-radius:999px;background:#e3f1c4;color:#456b06}
.npv-ql.mid{background:#fff1c7;color:#7a5a00}.npv-ql.low{background:#ffd9d9;color:#a3101c}
.npv-stage{position:relative;height:380px;border-radius:12px;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 35%,#fbf8f2 0%,#ece5d8 70%,#e2d9c9 100%)}
.npv-art{position:relative;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset,3px 4px 0 #d9d2c4,6px 10px 18px rgba(0,0,0,.18),14px 26px 40px -10px rgba(0,0,0,.35)}
.npv-art:active{cursor:grabbing}
.npv-img{position:absolute;inset:0;background-repeat:no-repeat;background-color:#ddd}
.npv-art::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.32),rgba(255,255,255,0) 38%,rgba(255,255,255,0) 70%,rgba(255,255,255,.08));opacity:var(--gloss,1);transition:opacity .3s}
.npv-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);white-space:nowrap;font-size:.72rem;font-weight:700;color:#fff;background:rgba(0,0,0,.55);padding:5px 10px;border-radius:999px;pointer-events:none;transition:opacity .4s}
.npv-hint.off{opacity:0}
.npv-err{position:absolute;inset:auto 20px;text-align:center;font-weight:700;color:#6b6d68;max-width:340px;margin:auto}
.npv-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.npv-b{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #cfc6b6;background:#fff;color:#1d1f21;border-radius:999px;padding:8px 14px;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer}
.npv-b svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.npv-b:hover{border-color:#1d1f21}
.npv-z{flex:1;min-width:150px;display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:800}
.npv-z input{flex:1;accent-color:#c8102e}
.npv-wall{position:relative;height:150px;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#e9e2d4,#ddd4c3)}
.npv-wa{position:absolute;left:50%;transform:translateX(-50%);background-repeat:no-repeat;background-color:#ddd;box-shadow:2px 3px 0 #cfc7b8,3px 6px 10px rgba(0,0,0,.25)}
.npv-mob{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:34px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#a67c52,#8a6340);box-shadow:0 -2px 0 #b98d60 inset}
.npv-wl{position:absolute;left:0;right:0;bottom:9px;text-align:center;font-size:.68rem;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);pointer-events:none}
.npv-note{font-size:.8rem;color:#6b6d68;margin:0}
.nthumbs figure{cursor:pointer}
.nthumbs figure.on{outline:3px solid #c8102e;outline-offset:2px}
@media(max-width:700px){.npv-z{order:3;flex-basis:100%}.npv{padding:12px;margin-left:-4px;margin-right:-4px}.npv-stage{height:300px}.npv-wall{height:120px}.npv-mob{height:30px}.npv-wl{bottom:8px;font-size:.6rem}}

/* Loghi clienti: logo sempre intero e centrato nel riquadro */
.lg-track li,.lg-grid li{display:flex;align-items:center;justify-content:center;padding:12px 16px;box-sizing:border-box;overflow:hidden}
.lg-track img,.lg-grid img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;margin:auto}

/* Filtri lavori: le schede nascoste devono sparire davvero */
.work[hidden],.tiles .work[hidden]{display:none!important}

/* Pagine legali */
.lg-hero{background:var(--graphite,#1b1c1e);color:#fff;padding:clamp(110px,14vw,160px) 0 clamp(36px,5vw,56px)}
.lg-hero .crumb a{color:inherit;opacity:.7}
.lg-hero h1{font-family:var(--f-display);font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(34px,6vw,64px);line-height:.95;margin:14px 0 0}
.lg-hero h1 em{color:#95c11f}
.lg-upd{opacity:.65;margin-top:14px;font-size:14px}
.legal-doc{max-width:760px;padding-top:clamp(32px,5vw,56px);padding-bottom:clamp(56px,8vw,96px);font-size:16px;line-height:1.65}
.legal-doc h2{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,2.4vw,23px);margin:34px 0 10px;line-height:1.2}
.legal-doc ul{padding-left:20px;margin:8px 0 14px}.legal-doc li{margin:6px 0}
.legal-doc a{color:#6f9417;text-decoration:underline;text-underline-offset:2px}
.legal-doc p{margin:10px 0}
footer .legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}
label.check a{color:inherit;text-decoration:underline}

/* Spunta "Non ho file: progettate voi la grafica" accanto al titolo Allegati */
.att-head{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-bottom:8px}
.att-head>label:first-child{margin:0}
.pill-check{position:relative;display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 7px;border:1.5px solid #95c11f;border-radius:999px;background:rgba(149,193,31,.08);color:var(--ink,#1b1c1e);font-size:.8rem;font-weight:700;letter-spacing:0;text-transform:none;cursor:pointer;user-select:none;transition:background .25s,color .25s,border-color .25s,transform .2s}
.pill-check:hover{background:rgba(149,193,31,.18)}
.pill-check:active{transform:scale(.97)}
.pill-check input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pc-box{width:20px;height:20px;border-radius:50%;border:1.5px solid #95c11f;background:#fff;display:grid;place-items:center;flex:none;transition:background .25s,border-color .25s}
.pc-box::after{content:"";width:9px;height:5px;border:2.2px solid #95c11f;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px) scale(0);transition:transform .2s}
.pill-check:has(input:checked){background:#95c11f;border-color:#95c11f;color:#1b1c1e}
.pill-check input:checked+.pc-box{background:#1b1c1e;border-color:#1b1c1e}
.pill-check input:checked+.pc-box::after{transform:rotate(-45deg) translate(1px,-1px) scale(1)}
.pill-check:has(input:focus-visible){outline:2px solid #1b1c1e;outline-offset:3px}
.design-note{display:none;margin:10px 0 0;padding:10px 14px;border-left:3px solid #95c11f;background:rgba(149,193,31,.1);font-size:.84rem;line-height:1.5}
.f:has(#q-design:checked) .design-note{display:block}
.f:has(#q-design:checked) .drop{opacity:.6}
:root[data-night] .pill-check{color:inherit}
:root[data-night] .pill-check:has(input:checked){color:#1b1c1e}
:root[data-night] .pc-box{background:transparent}

/* Prestazioni: animazioni in pausa fuori schermo; luci senza sfocatura pesante (il gradiente è già morbido) */
.orb{filter:none;will-change:transform}
.nf{min-height:72vh;display:flex;align-items:center}
.nf-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.nf .btn-ghost{color:#fff;border:1.5px solid rgba(255,255,255,.6)}

/* Finestra informativa privacy */
.pop-dlg{width:min(720px,calc(100vw - 24px));max-height:min(86vh,900px);padding:0;border:0;border-radius:14px;background:var(--paper,#fbfbfd);color:var(--ink,#1b1c1e);box-shadow:0 30px 80px -20px rgba(0,0,0,.6);display:flex;flex-direction:column;overflow:hidden}
.pop-dlg:not([open]){display:none}
.pop-dlg::backdrop{background:rgba(12,12,14,.7)}
.pop-body{overflow:auto;padding:26px clamp(18px,4vw,34px) 10px;font-size:15px;line-height:1.6;overscroll-behavior:contain}
.pop-body h2{font-family:var(--f-display);font-weight:800;font-size:18px;margin:24px 0 8px}
.pop-body .pop-t{font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(24px,4vw,32px);margin:4px 40px 14px 0;line-height:1}
.pop-body .pop-t em{color:#6f9417}
.pop-body ul{padding-left:20px}.pop-body li{margin:5px 0}.pop-body a{color:#6f9417;text-decoration:underline}
.pop-x{position:absolute;top:10px;right:12px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.06);font-size:24px;line-height:1;cursor:pointer;color:inherit}
.pop-foot{padding:12px clamp(18px,4vw,34px) 18px;border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:flex-end}
:root[data-night] .pop-dlg{background:#1f2023;color:#eee}
:root[data-night] .pop-x{background:rgba(255,255,255,.1)}
:root[data-night] .pop-foot{border-top-color:rgba(255,255,255,.1)}

/* Telefono ed email cliccabili (aprono chiamata / app della mail) */
.ct-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.ct-link:hover,.ct-link:focus-visible{color:#95c11f;border-bottom-color:currentColor}

/* Foto in caricamento: riquadro con riflesso che scorre (si capisce che la foto sta arrivando), poi dissolvenza */
.work button:has(img.img-wait),.hs-img:has(img.img-wait),.oth:has(img.img-wait){background:linear-gradient(100deg,#e6e7e3 30%,#f3f4f1 50%,#e6e7e3 70%) 0 0/250% 100%!important;animation:imgShim 1.2s linear infinite}
:root[data-night] .work button:has(img.img-wait){background:linear-gradient(100deg,#232427 30%,#2e3034 50%,#232427 70%) 0 0/250% 100%!important}
@keyframes imgShim{from{background-position:100% 0}to{background-position:-150% 0}}
.work img{transition:transform .7s var(--ease),opacity .45s ease}

/* Pop-up "Nuovo: configuratore" */
.promo{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:16px;pointer-events:none}
.promo-bg{position:absolute;inset:0;background:rgba(12,12,14,.62);opacity:0;transition:opacity .35s ease;pointer-events:auto}
.promo-card{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--paper,#fbfbfd);color:var(--ink,#1b1c1e);border-radius:16px;box-shadow:0 40px 90px -30px rgba(0,0,0,.7);pointer-events:auto;opacity:0;transform:translateY(24px) scale(.97);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.promo.on .promo-bg{opacity:1}.promo.on .promo-card{opacity:1;transform:none}
.promo-img{position:relative;background:#fff;padding:40px 22px 8px;border-bottom:4px solid #95c11f}
.promo-img img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 18px rgba(0,0,0,.18))}
.promo-new{position:absolute;top:14px;left:16px;display:inline-flex;align-items:center;gap:7px;background:#1b1c1e;color:#95c11f;font:900 italic 13px/1 var(--f-display,Montserrat,sans-serif);letter-spacing:.08em;text-transform:uppercase;padding:8px 13px 8px 11px;border-radius:999px;box-shadow:0 0 0 0 rgba(149,193,31,.6);animation:promoPulse 2s ease-out infinite}
.promo-new i{width:8px;height:8px;border-radius:50%;background:#95c11f;box-shadow:0 0 10px #95c11f}
@keyframes promoPulse{0%{box-shadow:0 0 0 0 rgba(149,193,31,.55)}70%{box-shadow:0 0 0 12px rgba(149,193,31,0)}100%{box-shadow:0 0 0 0 rgba(149,193,31,0)}}
.promo-tx{padding:20px 26px 24px}
.promo-k{margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6f9417}
.promo-tx h2{margin:8px 0 10px;font-family:var(--f-display);font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(24px,5.4vw,32px);line-height:.98}
.promo-tx h2 em{color:#95c11f}
.promo-tx p{margin:0;font-size:15px;line-height:1.55;color:var(--muted,#55575b)}
.promo-btns{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.promo-later{all:unset;cursor:pointer;font-weight:700;font-size:14px;color:var(--muted,#55575b);padding:10px 4px;border-bottom:1px solid transparent}
.promo-later:hover,.promo-later:focus-visible{color:var(--ink,#1b1c1e);border-bottom-color:currentColor}
.promo-x{position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:rgba(27,28,30,.08);color:inherit;font-size:24px;line-height:1;cursor:pointer}
.promo-x:hover{background:rgba(27,28,30,.16)}
@media(max-width:600px){.promo{place-items:end center;padding:0}.promo-card{width:100%;border-radius:18px 18px 0 0;max-height:92dvh;transform:translateY(100%)}.promo-img{padding:42px 16px 8px}.promo-tx{padding:16px 18px calc(18px + env(safe-area-inset-bottom,0px))}.promo-btns .btn{flex:1;justify-content:center}}
:root[data-night] .promo-card{background:#1f2023;color:#f2f2f2}
:root[data-night] .promo-img{background:#fff}
:root[data-night] .promo-tx p,:root[data-night] .promo-later{color:#b9bbbe}
:root[data-night] .promo-x{background:rgba(255,255,255,.1)}
@media(prefers-reduced-motion:reduce){.promo-card,.promo-bg{transition:none}.promo-new{animation:none}}
.promo-card:focus{outline:none}
