/* Layout: white brand pages with dark full-bleed video moments; colours and fonts from lacovertina.it */
/* font ospitati sul sito (niente Google Fonts) */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(assets/f-montserrat.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:100 1000;font-display:swap;src:url(assets/f-dmsans.woff2) format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:400;font-display:swap;src:url(assets/f-caslon-400.woff2) format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:italic;font-weight:400;font-display:swap;src:url(assets/f-caslon-400i.woff2) format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:700;font-display:swap;src:url(assets/f-caslon-700.woff2) format("woff2")}
[hidden]{display:none!important}
:root{
  --blue:#2ea3f2; --blue-deep:#0089cf; --blue-ink:#0073b3; --navy:#2a3443; --ink:#121a26;
  --paper:#ffffff; --mist:#f1f5f9; --text:#2a3443; --muted:#66707d; --line:#e2e8ef;
  --display:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,56px);
  color-scheme:light;
}
*{box-sizing:border-box}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.7;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);color:var(--navy);text-wrap:balance;margin:0}
p{margin:0}
.wrap{width:min(1200px,100%);margin:0 auto;padding-inline:var(--gutter)}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor summary{cursor:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* progress */
#progress{position:fixed;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,var(--blue-deep),var(--blue));transform-origin:0 50%;transform:scaleX(0);z-index:70}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid transparent;padding-top:env(safe-area-inset-top,0px);transition:box-shadow .4s,border-color .4s}
.site-header.scrolled{border-color:var(--line);box-shadow:0 6px 30px rgba(18,26,38,.08)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:84px}
.site-header .bar>*{transition:translate .35s cubic-bezier(.2,.8,.2,1)}
.site-header.scrolled{translate:0 -20px}
.site-header.scrolled .bar>*{translate:0 10px}
.brand{display:flex;align-items:center;text-decoration:none}
.brand img{height:56px;width:auto;transform-origin:left center;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.site-header.scrolled .brand img{transform:scale(.786)}
.menu{display:flex;gap:clamp(14px,2vw,30px);align-items:center;font:600 .74rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.menu a{text-decoration:none;position:relative;padding:8px 0}
.menu a::after{content:"";position:absolute;left:0;bottom:2px;height:2px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.7,0,.2,1)}
.menu a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.menu a[aria-current="page"]{color:var(--blue-ink)}
.menu .cta{background:var(--blue);color:#fff;padding:12px 18px;border-radius:999px}
.menu .cta::after{display:none}
.burger{display:none;width:46px;height:46px;border:0;background:transparent;position:relative;padding:0}
.burger span{position:absolute;left:11px;right:11px;height:2px;background:var(--navy);transition:transform .4s,opacity .3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:960px){
  .burger{display:block}
  .menu{position:fixed;inset:0;z-index:-1;flex-direction:column;justify-content:center;gap:26px;font-size:1.1rem;background:var(--paper);clip-path:circle(0 at calc(100% - 40px) 42px);transition:clip-path .8s cubic-bezier(.7,0,.2,1)}
  .menu-open .menu{clip-path:circle(150% at calc(100% - 40px) 42px)}
}

/* curtain (page transitions) */
#curtain{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;grid-template-columns:repeat(5,1fr)}
#curtain i{background:var(--blue);transform:scaleY(0);transform-origin:bottom}
#curtain i:nth-child(even){background:var(--blue-deep)}
#curtain i:nth-child(3){background:var(--navy)}
.pre #curtain i{transform:scaleY(1)}
#curtain .cl{position:absolute;inset:0;display:grid;place-items:center;opacity:0}
#curtain .cl span{display:grid;place-items:center;width:170px;height:170px;border-radius:50%;background:#fff}
#curtain .cl img{width:112px;height:auto}

/* cursor */
.cursor,.cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:95;border-radius:50%;display:none}
.has-cursor .cursor{display:grid}.has-cursor .cursor-dot{display:block}
.cursor{width:40px;height:40px;margin:-20px 0 0 -20px;border:1.5px solid var(--blue);place-items:center;font:700 10px/1 var(--display);letter-spacing:.15em;color:#fff;transition:scale .25s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s}
.cursor .ct{transition:scale .25s cubic-bezier(.2,.8,.2,1)}
.cursor.link{scale:1.6;background:rgba(46,163,242,.12)}
.cursor.big{scale:2.4;background:var(--blue);border-color:var(--blue)}
.cursor.big .ct{scale:.42}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--blue)}

/* shared type */
.eyebrow{font:600 .74rem/1.2 var(--display);letter-spacing:.32em;text-transform:uppercase;color:var(--blue-ink);display:flex;align-items:center;gap:14px;margin:0 0 22px}
.eyebrow::before{content:"";width:30px;height:2px;background:currentColor}
.h-xl{font-weight:900;font-size:clamp(2.4rem,7vw,6rem);line-height:.95;letter-spacing:-.04em;text-transform:uppercase}
.h-l{font-weight:800;font-size:clamp(1.9rem,4.4vw,3.6rem);line-height:1.02;letter-spacing:-.03em}
.h-m{font-weight:800;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.2;letter-spacing:-.01em}
.lead{font:300 clamp(1.15rem,2.2vw,1.8rem)/1.4 var(--display);color:var(--navy);max-width:34ch}
.lead strong{font-weight:700}
.prose{max-width:66ch;color:#4a5462}
.prose p+p{margin-top:1em}
.section{padding-block:clamp(80px,11vw,150px)}
.section.mist{background:var(--mist)}
.section.dark{background:var(--ink);color:#d7dde6}
.section.dark h2,.section.dark h3,.section.dark h4{color:#fff}
.word{display:inline-block;overflow:hidden;vertical-align:top}
.word>span{display:inline-block}
.ch{display:inline-block;will-change:transform}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 26px;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font:700 .78rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;border:0;position:relative;overflow:hidden;isolation:isolate}
.btn::before{content:"";position:absolute;inset:0;background:var(--navy);transform:translateY(101%);transition:transform .3s cubic-bezier(.7,0,.2,1);z-index:-1}
.btn.ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
.btn.ghost::before{background:var(--blue)}
.btn .arr{transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.mag{display:inline-grid;place-items:center;width:150px;height:150px;border-radius:50%;background:var(--blue);color:#fff;text-decoration:none;font:800 .78rem/1.25 var(--display);letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:0 16px}
.mag.ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
.mag .t{pointer-events:none}

/* stand-in media (original photos and videos go here) */
.media{position:relative;overflow:hidden;background:var(--navy);border-radius:10px;isolation:isolate}
.media::before{content:"";position:absolute;inset:-30%;background:
  radial-gradient(40% 40% at 30% 35%,rgba(46,163,242,.75),transparent 70%),
  radial-gradient(35% 35% at 70% 65%,rgba(0,137,207,.7),transparent 70%),
  radial-gradient(30% 30% at 60% 20%,rgba(255,255,255,.25),transparent 70%);
  animation:drift 14s ease-in-out infinite alternate;z-index:-1}
.media.alt::before{background:
  radial-gradient(40% 40% at 65% 30%,rgba(46,163,242,.6),transparent 70%),
  radial-gradient(40% 40% at 25% 70%,rgba(42,52,67,.9),transparent 70%),
  radial-gradient(25% 25% at 40% 40%,rgba(255,255,255,.22),transparent 70%)}
.media .tag{position:absolute;left:14px;bottom:12px;font:600 .62rem/1.3 var(--display);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.8)}
@keyframes drift{0%{transform:translate(-4%,-3%) rotate(0deg)}100%{transform:translate(5%,4%) rotate(12deg)}}

/* footer */
.site-footer{background:var(--ink);color:#aeb8c5;padding:clamp(60px,8vw,100px) 0 calc(36px + env(safe-area-inset-bottom,0px))}
.site-footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
@media (max-width:860px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-footer .cols{grid-template-columns:1fr}}
.site-footer .f-h{font-family:var(--display);font-weight:700;color:#fff;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 16px}
.site-footer a{text-decoration:none}
.site-footer .logo-w{display:inline-grid;place-items:center;background:#fff;border-radius:14px;padding:12px 16px;margin-bottom:18px}.site-footer .logo-w img{width:96px;height:auto}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer .legal{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem}

/* inner page hero */
.page-hero{position:relative;padding:calc(84px + clamp(70px,10vw,140px)) 0 clamp(60px,8vw,110px);overflow:hidden;background:var(--mist)}
.page-hero .tagline{font:500 .9rem/1.4 var(--display);letter-spacing:.06em;color:var(--blue-ink);margin-bottom:18px}
.page-hero .bgword{position:absolute;right:-2vw;bottom:-3vw;font:900 clamp(6rem,20vw,18rem)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px rgba(46,163,242,.25);white-space:nowrap;pointer-events:none;text-transform:uppercase}
.page-hero .icon{width:65px;height:65px;margin-bottom:26px;background:var(--blue);border-radius:50%;padding:0}

/* demo bar */
.demo-bar{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;gap:8px;align-items:center;background:rgba(18,26,38,.88);backdrop-filter:blur(10px);color:#fff;border-radius:999px;padding:6px 6px 6px 14px;font:600 .68rem/1 var(--display);letter-spacing:.1em;text-transform:uppercase}
.demo-bar button{border:0;border-radius:999px;padding:9px 14px;font:inherit;letter-spacing:inherit;background:var(--blue);color:#fff}
.demo-bar button[aria-pressed="false"]{background:transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}

@media (prefers-reduced-motion:reduce){.media::before{animation:none}}

/* ---------- home ---------- */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;overflow:hidden;background:var(--ink);color:#fff;padding:140px 16px 90px}
.hero .media-wrap{position:absolute;inset:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.knock{position:absolute;inset:0;z-index:1;background:#0b111a;mix-blend-mode:multiply;display:grid;place-items:center;text-align:center;padding:0 12px;pointer-events:none}
.knock-inner{will-change:transform}
.knock .eyebrow-h{color:#fff}
.knock-title{color:#fff;font:900 clamp(2.6rem,11.5vw,11rem)/.88 var(--display);letter-spacing:-.045em;text-transform:uppercase;margin:0}
.knock-title .w{display:block;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero .hero-inner{align-self:end;margin-bottom:8vh}
.hero-inner{position:relative;z-index:2}
.eyebrow-h{font:500 clamp(.8rem,1.6vw,1.05rem)/1 var(--display);letter-spacing:.5em;text-transform:uppercase;margin:0 0 22px;color:#fff}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:42px}
.hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px #fff}
.hero .scroll{position:absolute;right:var(--gutter);bottom:28px;z-index:2;font:600 .66rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;color:#fff}
.hero .scroll::after{content:"";width:1px;height:60px;background:linear-gradient(#fff,transparent);animation:drip 2s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero .note{position:absolute;left:var(--gutter);bottom:84px;z-index:2;font:600 .62rem/1.4 var(--display);letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65);text-align:left}

.intro .year{font:900 clamp(4rem,15vw,12rem)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--navy);margin:0 0 44px;font-variant-numeric:tabular-nums}
.intro .year span{color:var(--blue-deep);-webkit-text-stroke:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);margin-top:56px}
.two>*{min-width:0}
@media (max-width:780px){.two{grid-template-columns:1fr}}

.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:56px}
@media (max-width:780px){.cards{grid-template-columns:1fr}}
.card{position:relative;display:block;text-decoration:none;padding:clamp(26px,3vw,42px);border-radius:14px;background:var(--paper);border:1px solid var(--line);overflow:hidden;transform-style:preserve-3d;min-width:0}
.card .glow{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(46,163,242,.22),transparent 65%);left:var(--mx,50%);top:var(--my,50%);transform:translate(-50%,-50%);opacity:0;transition:opacity .25s;pointer-events:none}
.card .ic{width:65px;height:65px;border-radius:50%;background:var(--blue);display:grid;place-items:center;margin-bottom:26px;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.card .ic img{width:65px;height:65px}
.card h3{font-size:clamp(1.25rem,2vw,1.55rem);font-weight:800;line-height:1.2;margin-bottom:6px}
.card .sub{font:600 .95rem/1.4 var(--body);color:var(--blue-ink);margin-bottom:14px}
.card p{color:#56606d;font-size:.96rem}
.card .more{display:inline-flex;gap:10px;margin-top:22px;font:700 .72rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.card .more i{font-style:normal;transition:transform .2s cubic-bezier(.2,.8,.2,1)}

.pf{position:relative;height:260vh;background:var(--ink)}
.pf-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.pf-frame{position:absolute;inset:0;overflow:hidden;clip-path:inset(16% 24% 16% 24% round 16px);will-change:clip-path}
.pf-frame .media{position:absolute;inset:0;border-radius:0}
.pf-frame .play{position:absolute;inset:0;display:grid;place-items:center}
.pf-frame .play span{width:90px;height:90px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #fff;display:grid;place-items:center;font:700 .7rem/1 var(--display);letter-spacing:.24em;color:#fff}
.pf-titles{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;pointer-events:none;z-index:2}
.pf-titles div{font:900 clamp(3rem,12vw,11rem)/.85 var(--display);letter-spacing:-.05em;text-transform:uppercase;white-space:nowrap;color:#fff;text-shadow:0 10px 40px rgba(0,0,0,.35)}
.pf-titles .pf-t2{text-align:right;color:transparent;-webkit-text-stroke:1.5px #fff;text-shadow:none}
.pf-caption{position:absolute;left:var(--gutter);bottom:40px;z-index:3;color:#fff;max-width:420px}
.pf-caption h3{color:#fff;font-size:1.5rem;margin-bottom:8px}
.pf-caption p{font-size:.9rem;color:rgba(255,255,255,.75)}
.pf-label{position:absolute;top:110px;left:var(--gutter);z-index:3}
.pf-label .eyebrow{color:var(--blue)}

.marquee{display:flex;white-space:nowrap;overflow:hidden;font:900 clamp(3.2rem,11vw,10rem)/1.05 var(--display);letter-spacing:-.05em;text-transform:uppercase;color:var(--navy);padding-block:10px}
.marquee .track{display:flex;flex-shrink:0;gap:.35em;padding-right:.35em}
.marquee .o{color:transparent;-webkit-text-stroke:1.5px var(--navy)}
.marquee .b{color:var(--blue-deep)}

.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,90px);align-items:start;margin-top:56px}
.contact-grid>*{min-width:0}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.kv .k{font:700 .7rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.kv .v{font:800 clamp(1.3rem,2.8vw,2.2rem)/1.15 var(--display);color:var(--navy);margin:0 0 30px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kv .v a{text-decoration:none}
.btns{display:flex;flex-wrap:wrap;gap:16px}
.map{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:
  repeating-linear-gradient(0deg,transparent 0 38px,rgba(42,52,67,.06) 38px 39px),
  repeating-linear-gradient(90deg,transparent 0 38px,rgba(42,52,67,.06) 38px 39px),var(--mist);display:grid;place-items:center;border:1px solid var(--line)}
.map .pin{width:18px;height:18px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 0 rgba(46,163,242,.6);animation:ping 2s infinite}
@keyframes ping{to{box-shadow:0 0 0 30px rgba(46,163,242,0)}}
.map small{position:absolute;left:0;right:0;bottom:16px;text-align:center;font:600 .72rem/1.4 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.map .addr{position:absolute;top:16px;left:16px;background:#fff;border-radius:10px;padding:12px 16px;font-size:.88rem;line-height:1.5;box-shadow:0 8px 30px rgba(18,26,38,.1)}

/* ---------- inner pages ---------- */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:60px}
@media (max-width:980px){.features{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.features{grid-template-columns:1fr}}
.feature{padding:28px 24px;border-radius:14px;background:var(--paper);border:1px solid var(--line);min-width:0}
.feature .n{font:900 2.4rem/1 var(--display);color:var(--blue-deep);letter-spacing:-.04em;margin-bottom:18px}
.feature h3{font-size:1.05rem;line-height:1.3;margin-bottom:10px}
.feature p{font-size:.92rem;color:#56606d}

.steps-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.steps-nav span{font:700 .7rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;padding:12px 16px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}
.step{display:grid;grid-template-columns:110px 1fr;gap:clamp(18px,4vw,60px);padding-block:56px;border-top:1px solid var(--line)}
.step>*{min-width:0}
@media (max-width:700px){.step{grid-template-columns:1fr}}
.step .num{font:900 clamp(3rem,7vw,5.5rem)/.85 var(--display);color:transparent;-webkit-text-stroke:1.5px var(--blue);letter-spacing:-.05em}
.zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:28px}
.zone{display:block;text-decoration:none;padding:16px 18px;border-radius:12px;background:var(--paper);border:1px solid var(--line);transition:border-color .2s,transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,scale .12s cubic-bezier(.2,.8,.2,1)}
.zone b{display:block;font:700 .98rem/1.3 var(--display);color:var(--navy)}
.zone span{font-size:.82rem;color:var(--muted)}
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}
@media (max-width:700px){.chips{grid-template-columns:repeat(2,1fr)}}
.chip{aspect-ratio:3/4;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;padding:16px;position:relative;overflow:hidden;font:800 .95rem/1.2 var(--display);color:var(--navy);transition:border-color .2s,scale .12s cubic-bezier(.2,.8,.2,1)}
.chip .fill{position:absolute;left:12px;right:12px;top:12px;background:rgba(46,163,242,.18);border-radius:6px}

.services6{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
@media (max-width:900px){.services6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.services6{grid-template-columns:1fr}}
.svc{padding:28px;border-radius:14px;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;gap:12px;min-width:0}
.svc h3{font-size:1.1rem}
.svc p{font-size:.93rem;color:#56606d;flex:1}
.svc .price{font:800 1.05rem/1 var(--display);color:var(--blue-ink)}
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
@media (max-width:900px){.prods{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.prods{grid-template-columns:1fr}}
.prod{border-radius:14px;overflow:hidden;background:#1a2433;border:1px solid rgba(255,255,255,.08);min-width:0}
.prod .media{aspect-ratio:16/9;border-radius:0}
.prod .body{padding:20px 22px 22px}
.prod h3{font-size:1rem;margin-bottom:10px;color:#fff}
.prod .tot{font:800 1.2rem/1 var(--display);color:var(--blue-deep)}
.prod details{margin-top:14px;font-size:.84rem;color:#b8c2cf}
.prod summary{font:700 .68rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:#fff;list-style:none;display:flex;justify-content:space-between}
.prod summary::-webkit-details-marker{display:none}
.prod summary::after{content:"+";font-size:1rem;transition:transform .3s}
.prod details[open] summary::after{transform:rotate(45deg)}
.prod ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:4px}
.prod li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed rgba(255,255,255,.08);padding-bottom:4px}
.prod li b{font-weight:600;color:#fff;white-space:nowrap}
.prod .extra{margin-top:8px;font-style:italic}

.timeline{position:relative;margin-top:60px}
.tl-item{display:grid;grid-template-columns:clamp(70px,12vw,140px) 1fr;gap:clamp(18px,4vw,50px);padding-block:44px;border-top:1px solid var(--line)}
.tl-item>*{min-width:0}
.tl-item .num{position:sticky;top:110px;align-self:start;font:900 clamp(3rem,8vw,6rem)/.85 var(--display);color:var(--blue-deep);letter-spacing:-.05em}
.tl-item h3{font-size:clamp(1.3rem,2.4vw,2rem);margin-bottom:16px}
.tl-item p{color:#4a5462;max-width:70ch}
.tl-item ul{margin:14px 0 0;padding-left:20px;color:#4a5462;max-width:70ch}
.quote{font:800 clamp(1.5rem,4vw,3rem)/1.1 var(--display);letter-spacing:-.03em;color:var(--navy);text-transform:uppercase;max-width:22ch}
.quote span{color:var(--blue-deep)}

.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:30px}
.gallery .media{aspect-ratio:1}
.gallery .media:nth-child(6n+1){grid-column:span 3;grid-row:span 2;aspect-ratio:auto}
.gallery .media:nth-child(6n+2),.gallery .media:nth-child(6n+3){grid-column:span 3;aspect-ratio:2/1}
.gallery .media:nth-child(6n+4),.gallery .media:nth-child(6n+5),.gallery .media:nth-child(6n+6){grid-column:span 2}
@media (max-width:700px){.gallery{grid-template-columns:1fr 1fr}.gallery .media{grid-column:span 1!important;grid-row:auto!important;aspect-ratio:1!important}}
.gal-h{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-top:80px}

.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.form .row{grid-template-columns:1fr}}
.form label{display:grid;gap:6px;font:700 .78rem/1.1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.form input,.form textarea,.form select{font:400 1rem/1.4 var(--body);padding:14px 16px;border-radius:10px;border:1.5px solid var(--line);background:var(--paper);color:var(--text);width:100%}
.form input:focus,.form textarea:focus{border-color:var(--blue);outline:none}
.form-note{font-size:.88rem;color:var(--blue-ink);min-height:1.4em}
.hours{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;font-variant-numeric:tabular-nums}
.hours b{font-family:var(--display);color:var(--navy)}

/* portfolio: client logo strip from the original site */
.pf2{background:#fff;overflow:hidden;padding-bottom:clamp(60px,8vw,110px)}
.pf2-title{font:900 clamp(3.2rem,12vw,11rem)/.9 var(--display);letter-spacing:-.05em;text-transform:uppercase;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px var(--navy);margin:0 0 40px}
.pf2-row{display:inline-block}
.pf2-band{position:relative;width:100%;aspect-ratio:2800/360;background:#fff;overflow:hidden}
.pf2-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:700px){.pf2-band{aspect-ratio:1400/720}}

/* ---------- zone page ---------- */
.crumbs{font:600 .72rem/1.4 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.crumbs a{text-decoration:none;color:var(--blue-ink)}
.crumbs span{margin:0 6px;color:var(--line)}
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.zone-grid>*{min-width:0}
@media (max-width:820px){.zone-grid{grid-template-columns:1fr}}
.zone-map{border-radius:18px;overflow:hidden;background:var(--mist);box-shadow:0 30px 80px rgba(18,26,38,.12)}
.zone-map img{width:100%;height:auto}
.facts{display:grid;gap:16px}
.fact{display:grid;gap:4px;padding:22px 24px;border-radius:14px;border:1px solid var(--line)}
.fact .k{font:700 .7rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.fact .v{font:900 clamp(1.8rem,4vw,3rem)/1.05 var(--display);color:var(--navy);letter-spacing:-.03em}
.fact .s{color:var(--blue-ink);font-weight:600}
a.zone.is-link{border-color:var(--blue);background:rgba(46,163,242,.06)}
a.zone.is-link span{color:var(--blue-ink);font-weight:600}
.wizard{margin-top:44px;background:var(--paper);border-radius:18px;padding:clamp(22px,4vw,44px);box-shadow:0 20px 60px rgba(18,26,38,.08);max-width:860px}
.wz-top{display:flex;align-items:center;gap:18px;margin-bottom:28px}
.wz-label{font:700 .72rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.wz-bar{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.wz-bar i{display:block;height:100%;background:var(--blue);transform:scaleX(.25);transform-origin:left;transition:transform .6s cubic-bezier(.7,0,.2,1)}
.wz-step{border:0;padding:0;margin:0;display:none}
.wz-step.is-on{display:block}
.wz-step legend{padding:0;margin-bottom:20px}
.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:700px){.opts{grid-template-columns:1fr 1fr}}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0}
.opt span{display:flex;align-items:flex-end;min-height:110px;padding:16px;border-radius:12px;border:1.5px solid var(--line);font:800 .98rem/1.2 var(--display);color:var(--navy);transition:border-color .2s,background .2s,transform .2s cubic-bezier(.2,.8,.2,1),scale .12s cubic-bezier(.2,.8,.2,1)}
.opt input:checked+span{border-color:var(--blue);background:var(--blue);color:#fff}
.opt input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}
.wz-nav{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}

/* ---------- hero: halftone field + dodging letters ---------- */
.hero .ht{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,transparent 30%,rgba(18,26,38,.85));pointer-events:none}
.hero .hero-inner{position:relative;z-index:2;align-self:center;margin:0;pointer-events:none}
.hero .hero-inner a{pointer-events:auto}
.ht-stack{position:relative}
.hero .ht-title,.hero .ht-ghost{font-family:var(--display);font-weight:900;font-size:clamp(2.2rem,9.2vw,9.5rem);line-height:.9;letter-spacing:-.045em;text-transform:uppercase;margin:0;color:#fff}
.ht-title .w,.ht-ghost .w{display:block;white-space:nowrap}
.ht-title .ch{font-variation-settings:'wght' 900;transition:color .25s}
.ht-ghost{position:absolute;inset:0;color:transparent;-webkit-text-stroke:1.5px rgba(46,163,242,.55);transform:translate(3px,3px);pointer-events:none}
.ht-hint{position:absolute;left:var(--gutter);bottom:84px;z-index:2;font:600 .64rem/1.4 var(--display);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0}
.ht-hint .m{display:none}
@media (hover:none){.ht-hint .d{display:none}.ht-hint .m{display:inline}}

/* ---------- header v2 + "prima pagina" menu ---------- */
.site-header{transition:transform .5s cubic-bezier(.7,0,.2,1),translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s,background .4s}
.site-header.hide{transform:translateY(-100%)}
.menu-ui .site-header{background:transparent;box-shadow:none;border-color:transparent;transform:none;translate:none;z-index:88}
.menu-ui .site-header .bar>*,.menu-ui .site-header .brand img{translate:none;transform:none}
.hd-right{display:flex;align-items:center;gap:14px}
.hd-cta{display:inline-flex;align-items:center;height:46px;padding:0 20px;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font:700 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;transition:opacity .3s,scale .12s cubic-bezier(.2,.8,.2,1)}
.menu-on .hd-cta{opacity:0;pointer-events:none}
@media (max-width:560px){.hd-cta{display:none}}
.menu-btn{display:inline-flex;align-items:center;gap:12px;height:46px;padding:0 8px 0 20px;border-radius:999px;border:0;background:var(--navy);color:#fff;font:700 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase}
.mb-label{display:grid;height:1em;overflow:hidden;line-height:1}
.mb-label span{grid-area:1/1;transition:transform .6s cubic-bezier(.7,0,.2,1)}
.mb-label span+span{transform:translateY(110%)}
.menu-on .mb-label span:first-child{transform:translateY(-110%)}
.menu-on .mb-label span+span{transform:translateY(0)}
.mb-icon{position:relative;width:32px;height:32px;border-radius:50%;background:var(--blue)}
.mb-icon i{position:absolute;left:9px;right:9px;height:2px;background:#fff;border-radius:2px;transition:transform .6s cubic-bezier(.7,0,.2,1),top .6s cubic-bezier(.7,0,.2,1)}
.mb-icon i:first-child{top:12px}.mb-icon i:last-child{top:18px}
.menu-on .mb-icon i:first-child{top:15px;transform:rotate(45deg)}
.menu-on .mb-icon i:last-child{top:15px;transform:rotate(-45deg)}

.menu-ov{position:fixed;inset:0;z-index:85;overflow:hidden}
.mo-cols{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr)}
.mo-cols i{background:var(--blue);transform-origin:top}
.mo-cols i:nth-child(even){background:var(--blue-deep)}.mo-cols i:nth-child(3){background:var(--navy)}
.mo-paper{position:absolute;inset:0;background:var(--mist);padding:calc(96px + env(safe-area-inset-top,0px)) var(--gutter) calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow-y:auto}
.mo-dots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:multiply;opacity:.55}
.mo-paper>*{position:relative;z-index:2}
.mo-mast{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;width:min(1200px,100%);margin:0 auto}
.mo-title{font:900 clamp(2rem,6vw,4.6rem)/.9 var(--display);letter-spacing:-.05em;color:var(--navy);text-align:center}
.mo-ed{font:600 .62rem/1.5 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.mo-ed.r{text-align:right}
.mo-ed b{color:var(--blue-ink)}
@media (max-width:760px){.mo-mast{grid-template-columns:1fr}.mo-ed{display:none}.mo-title{text-align:left}}
.mo-rule{width:min(1200px,100%);margin:18px auto 0;height:3px;background:var(--navy);transform-origin:left;box-shadow:0 6px 0 -2px var(--navy)}
.mo-body{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(24px,5vw,80px);width:min(1200px,100%);margin:clamp(20px,4vh,44px) auto 0;flex:1}
.mo-body>*{min-width:0}
@media (max-width:900px){.mo-body{grid-template-columns:1fr}}
.mo-list{list-style:none;margin:0;padding:0}
.mi{border-bottom:1px solid rgba(42,52,67,.14)}
.mi a{display:flex;align-items:center;gap:clamp(12px,2vw,26px);padding:clamp(8px,1.4vh,14px) 0;text-decoration:none;color:var(--navy)}
.mi-n{font:700 .72rem/1 var(--display);letter-spacing:.16em;color:var(--blue-ink);width:2.2em;flex-shrink:0}
.mi-t{position:relative;display:grid;overflow:hidden;padding-block:.06em;font:900 clamp(1.6rem,4.6vw,4rem)/1.08 var(--display);letter-spacing:-.04em;text-transform:uppercase;flex:1;min-width:0}
.mi-t>span{grid-area:1/1;transition:transform .6s cubic-bezier(.7,0,.2,1);overflow-wrap:anywhere}
.mi-b{color:var(--blue-deep);transform:translateY(105%)}
.mi a:focus-visible .mi-a{transform:translateY(-105%)}
.mi a:focus-visible .mi-b{transform:translateY(0)}
.mi a[aria-current="page"] .mi-a{color:transparent;-webkit-text-stroke:1.5px var(--navy)}
.mi-arr{font:700 1.6rem/1 var(--display);color:var(--blue);opacity:0;transform:translateX(-20px);transition:opacity .4s,transform .6s cubic-bezier(.7,0,.2,1)}
.mo-side{display:flex;flex-direction:column;justify-content:space-between;gap:30px;border-left:1px solid rgba(42,52,67,.14);padding-left:clamp(20px,3vw,40px)}
@media (max-width:900px){.mo-side{border-left:0;padding-left:0}.mo-prev{display:none}}
.mo-prev{position:relative}
.mo-pic{display:grid;place-items:center;width:clamp(90px,10vw,130px);aspect-ratio:1;border-radius:50%;background:var(--blue)}
.mo-pic img{width:60%;height:auto}
.mo-pn{font:900 clamp(4rem,9vw,8rem)/.85 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--blue);margin:24px 0 10px}
.mo-kick{font:600 clamp(1rem,1.6vw,1.3rem)/1.35 var(--display);color:var(--navy);max-width:24ch;min-height:2.7em}
.mo-contacts .k{font:700 .66rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.mo-contacts p{margin:0 0 18px;font-size:.92rem;line-height:1.6}
.mo-contacts a{text-decoration:none}
.mo-slogan{font:700 .8rem/1.45 var(--display);letter-spacing:.04em;text-transform:none;color:var(--navy);font-style:italic}
.mo-contacts{display:grid;grid-template-columns:1fr 1fr;gap:18px;border:2px solid var(--navy);padding:18px 20px;background:var(--paper)}
.mo-contacts p:last-child{margin-bottom:0}
@media (max-width:420px){.mo-contacts{grid-template-columns:1fr}}
.mo-foot{width:min(1200px,100%);margin:clamp(18px,3vh,30px) auto 0;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,34px);padding:14px 20px;border:2px solid var(--navy);box-shadow:inset 0 0 0 4px var(--mist),inset 0 0 0 5px var(--navy);background:var(--paper);color:var(--navy);text-align:center}
.mo-foot-t{font:900 clamp(.95rem,2.2vw,1.6rem)/1.15 var(--display);letter-spacing:-.01em;text-transform:uppercase;margin:0}
.mo-foot-ic{display:inline-flex;align-items:center;gap:6px;color:var(--blue-ink);flex-shrink:0}
.mo-foot-ic svg{width:clamp(30px,3.4vw,44px);height:auto}
.mo-foot-ic.ko b{font:900 .8rem/1 var(--display);letter-spacing:.06em;color:var(--blue-ink)}
@media (max-width:560px){.mo-foot{padding:12px}.mo-foot-ic.ko b{display:none}}
/* fit the whole front page in one screen */
.mi-t{font-size:clamp(1.5rem,min(4.4vw,5.6vh),4rem)}
.mi a{padding:clamp(4px,.9vh,12px) 0}
.mo-title{font-size:clamp(2rem,min(6vw,7.5vh),4.6rem)}
.mo-pn{font-size:clamp(3rem,min(8vw,10vh),7rem);margin:2vh 0 8px}
.mo-pic{width:clamp(70px,min(9vw,11vh),120px)}
.mo-rule{margin-top:1.6vh}
.mo-body{margin-top:clamp(12px,2.6vh,40px)}
.mo-side{gap:16px}
.mo-body{flex:1 0 auto}
.mo-mast,.mo-rule,.mo-foot{flex-shrink:0}
.mo-anim .mi-t>span,.mo-anim .mi a{transition:none!important}

/* ---------- menu v3: a newspaper page that unrolls ---------- */
.menu-ov{overflow:hidden}
.mo-back{position:absolute;inset:0;background:rgba(18,26,38,.55);backdrop-filter:blur(3px)}
.mo-sheet{position:absolute;top:calc(8px + env(safe-area-inset-top,0px));left:clamp(8px,1.6vw,22px);right:clamp(8px,1.6vw,22px);bottom:calc(8px + env(safe-area-inset-bottom,0px));
  background:#f3f1ea;box-shadow:0 30px 80px rgba(0,0,0,.35),0 0 0 1px rgba(42,52,67,.18);border-radius:2px;overflow:visible}
.mo-sheet .mo-paper{position:absolute;inset:0;background:transparent;padding-top:calc(88px + env(safe-area-inset-top,0px))}
.mo-sheet .mo-dots{position:absolute;inset:0;z-index:1}
/* paper grain + folds + worn edges */
.mo-tex{position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:2px;
  background:
   linear-gradient(90deg,transparent calc(50% - 1px),rgba(42,52,67,.10) calc(50% - 1px),rgba(255,255,255,.7) 50%,rgba(42,52,67,.05) calc(50% + 2px),transparent calc(50% + 14px)),
   linear-gradient(180deg,transparent calc(48% - 1px),rgba(42,52,67,.09) calc(48% - 1px),rgba(255,255,255,.6) 48%,transparent calc(48% + 12px)),
   linear-gradient(90deg,rgba(42,52,67,.06),transparent 40%,transparent 60%,rgba(42,52,67,.07)),
   radial-gradient(120% 90% at 50% 40%,transparent 60%,rgba(120,100,60,.12)),
   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .3 0 0 0 0 .3 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),inset 0 0 40px rgba(120,100,60,.10)}
.mo-tex::before,.mo-tex::after{content:"";position:absolute;pointer-events:none}
/* a few small creases */
.mo-tex::before{left:8%;top:62%;width:26%;height:2px;background:linear-gradient(90deg,transparent,rgba(42,52,67,.12),rgba(255,255,255,.8),transparent);transform:rotate(-8deg)}
.mo-tex::after{right:6%;top:18%;width:18%;height:2px;background:linear-gradient(90deg,transparent,rgba(42,52,67,.1),rgba(255,255,255,.8),transparent);transform:rotate(14deg)}
/* the rolled part travelling down while the page opens */
.mo-roll{position:absolute;left:-4px;right:-4px;top:0;height:46px;z-index:5;pointer-events:none;opacity:0;border-radius:23px;
  background:linear-gradient(180deg,#d9d5c8 0%,#fbfaf6 28%,#f3f1ea 45%,#c9c4b4 70%,#a9a392 86%,#d6d2c4 100%);
  box-shadow:0 14px 22px -6px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.8)}
.mo-roll::after{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(90deg,transparent 0 140px,rgba(42,52,67,.06) 140px 142px)}
.menu-ui .site-header .brand{opacity:0;transition:opacity .3s}
@media (max-width:760px){.mo-tex::after{display:none}}
.mo-sheet{transform-origin:50% 0}
.menu-ui .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}

/* worn, torn bottom edge of the page */
.mo-sheet{-webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 23px) no-repeat,url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27600%27%20height%3D%2724%27%20viewBox%3D%270%200%20600%2024%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%200H600V14L594%2010.5L588%208.1L582%2015.1L576%207.0L570%2013.5L564%2011.1L558%206.8L552%2013.1L546%206.5L540%2012.1L534%207.0L528%207.3L522%2011.9L516%2017.6L510%207.7L504%209.1L498%2014.8L492%2019.3L486%2014.1L480%2011.6L474%2019.7L468%206.7L462%2018.0L456%2010.1L450%208.0L444%207.6L438%2010.3L432%2017.4L426%208.5L420%2014.1L414%2014.9L408%2011.2L402%2013.7L396%206.9L390%206.8L384%208.9L378%2015.5L372%2012.0L366%2010.4L360%2014.2L354%2012.3L348%2010.2L342%2017.1L336%2015.8L330%209.4L324%2014.0L318%2013.4L312%2018.3L306%2016.2L300%2010.0L294%2019.7L288%207.7L282%2011.9L276%2016.6L270%208.1L264%2012.8L258%206.5L252%2015.4L246%2016.7L240%2014.0L234%2018.3L228%2010.4L222%2015.7L216%2014.3L210%2014.1L204%2012.4L198%2017.8L192%2019.2L186%2012.6L180%2015.3L174%206.8L168%2015.8L162%2015.1L156%2019.9L150%2017.5L144%2010.0L138%2011.4L132%2015.4L126%206.3L120%2012.5L114%208.4L108%207.6L102%206.8L96%2016.8L90%207.8L84%209.5L78%2011.5L72%2018.2L66%207.1L60%2012.3L54%2013.7L48%2018.4L42%2017.5L36%2018.1L30%209.9L24%2011.8L18%2011.0L12%2018.4L6%2019.4L0%208.1Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E") bottom/600px 24px repeat-x;mask:linear-gradient(#000,#000) top/100% calc(100% - 23px) no-repeat,url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27600%27%20height%3D%2724%27%20viewBox%3D%270%200%20600%2024%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%200H600V14L594%2010.5L588%208.1L582%2015.1L576%207.0L570%2013.5L564%2011.1L558%206.8L552%2013.1L546%206.5L540%2012.1L534%207.0L528%207.3L522%2011.9L516%2017.6L510%207.7L504%209.1L498%2014.8L492%2019.3L486%2014.1L480%2011.6L474%2019.7L468%206.7L462%2018.0L456%2010.1L450%208.0L444%207.6L438%2010.3L432%2017.4L426%208.5L420%2014.1L414%2014.9L408%2011.2L402%2013.7L396%206.9L390%206.8L384%208.9L378%2015.5L372%2012.0L366%2010.4L360%2014.2L354%2012.3L348%2010.2L342%2017.1L336%2015.8L330%209.4L324%2014.0L318%2013.4L312%2018.3L306%2016.2L300%2010.0L294%2019.7L288%207.7L282%2011.9L276%2016.6L270%208.1L264%2012.8L258%206.5L252%2015.4L246%2016.7L240%2014.0L234%2018.3L228%2010.4L222%2015.7L216%2014.3L210%2014.1L204%2012.4L198%2017.8L192%2019.2L186%2012.6L180%2015.3L174%206.8L168%2015.8L162%2015.1L156%2019.9L150%2017.5L144%2010.0L138%2011.4L132%2015.4L126%206.3L120%2012.5L114%208.4L108%207.6L102%206.8L96%2016.8L90%207.8L84%209.5L78%2011.5L72%2018.2L66%207.1L60%2012.3L54%2013.7L48%2018.4L42%2017.5L36%2018.1L30%209.9L24%2011.8L18%2011.0L12%2018.4L6%2019.4L0%208.1Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E") bottom/600px 24px repeat-x}
.mo-wear{position:absolute;left:0;right:0;bottom:0;height:34%;z-index:1;pointer-events:none;
  background:
   linear-gradient(180deg,transparent 70%,rgba(150,120,60,.10) 92%,rgba(120,95,50,.22)),
   linear-gradient(172deg,transparent 46%,rgba(42,52,67,.10) 46.4%,rgba(255,255,255,.75) 46.8%,transparent 48.5%),
   linear-gradient(186deg,transparent 64%,rgba(42,52,67,.09) 64.3%,rgba(255,255,255,.7) 64.7%,transparent 66.5%),
   linear-gradient(160deg,transparent 80%,rgba(42,52,67,.08) 80.2%,rgba(255,255,255,.6) 80.6%,transparent 82%)}
.mo-wear::before{content:"";position:absolute;right:0;bottom:22px;width:70px;height:70px;background:linear-gradient(225deg,transparent 49%,rgba(42,52,67,.14) 50%,#e4e0d4 51%,#f3f1ea 70%);filter:drop-shadow(-3px -3px 4px rgba(0,0,0,.12))}
.mo-wear::after{content:"";position:absolute;left:18%;bottom:30%;width:120px;height:90px;border-radius:50%;background:radial-gradient(closest-side,rgba(150,120,60,.10),transparent)}

.mo-close-zone{position:absolute;left:0;right:0;bottom:0;height:min(15%,118px);z-index:4;border:0;padding:0 0 34px;background:transparent;display:flex;align-items:flex-end;justify-content:center}
.mo-cz-hint{font:700 .64rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:rgba(42,52,67,.5);display:inline-flex;gap:8px;align-items:center;transition:color .3s}
.mo-cz-hint i{font-style:normal;font-size:.9rem;display:inline-block;animation:czb 1.6s ease-in-out infinite}
@keyframes czb{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.mo-close-zone:focus-visible .mo-cz-hint{color:var(--blue-ink)}
@media (hover:none){.mo-cz-hint{font-size:.6rem}}
@media (prefers-reduced-motion:reduce){.mo-cz-hint i{animation:none}}

/* newspaper-style page description in the menu side column */
.mo-arts{position:relative;margin-top:18px;border-top:3px double var(--navy);padding-top:12px;max-width:34ch}
.mo-art{display:none}
.mo-art.on{display:block}
.mo-art-h{font:700 1.02rem/1.15 "Libre Caslon Text",Georgia,"Times New Roman",serif;color:var(--navy);margin:0 0 8px;text-transform:none;letter-spacing:0}
.mo-art-p{font:400 .9rem/1.5 "Libre Caslon Text",Georgia,"Times New Roman",serif;color:#3a3f47;text-align:justify;hyphens:auto;-webkit-hyphens:auto;margin:0}
.mo-art-p::first-letter{float:left;font:700 2.7em/.82 "Libre Caslon Text",Georgia,serif;margin:.06em .08em 0 0;color:var(--navy)}
.mo-art-p .dl{font:700 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.mo-art-c{font:italic 400 .78rem/1.3 "Libre Caslon Text",Georgia,serif;color:var(--muted);text-align:right;margin:10px 0 0;border-top:1px solid rgba(42,52,67,.2);padding-top:6px}
@media (max-height:760px){.mo-art-p{font-size:.82rem}.mo-arts{margin-top:10px}}
.mo-side{justify-content:flex-start}
.mo-prev .mo-kick{min-height:0}
.mo-art .dl{font:700 .62rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--blue-ink);margin:0 0 6px}

/* ---------- mobile menu: same front page, stacked ---------- */
@media (max-width:900px){
  .mo-sheet .mo-paper{padding-bottom:calc(min(15%,118px) + 10px)}
  .mo-mast{grid-template-columns:1fr;gap:6px;text-align:center}
  .mo-ed,.mo-ed.r{display:block;text-align:center}
  .mo-title{text-align:center;order:-1}
  .mo-slogan{font-size:.72rem}
  .mo-body{grid-template-columns:1fr;gap:18px}
  .mo-side{border-left:0;padding-left:0;border-top:1px solid rgba(42,52,67,.14);padding-top:16px}
  .mo-prev{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center}
  .mo-pic{grid-row:1/3;width:72px}
  .mo-pn{font-size:2.6rem;margin:0}
  .mo-kick{font-size:.95rem;min-height:0}
  .mo-arts{max-width:none;margin-top:14px}
  .mi.auto a{opacity:1}
  .mi.auto .mi-n{color:var(--blue-ink)}
  .mi.auto .mi-t{color:var(--blue-ink)}
}
@media (max-width:900px) and (max-height:760px){.mi-t{font-size:clamp(1.3rem,6vw,2rem)}}
@media (max-width:900px){.mo-close-zone{background:linear-gradient(180deg,rgba(243,241,234,0),#f3f1ea 55%)}}

.mo-side-link{display:block;text-decoration:none;color:inherit;border-radius:10px;padding:10px;margin:-10px;transition:background .25s,transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.mo-side-link:focus-visible{background:rgba(255,255,255,.55);box-shadow:0 10px 30px rgba(42,52,67,.10);transform:translateY(-3px)}
.mo-side-link:focus-visible .mo-art-c{color:var(--blue-ink)}
.mo-pic{transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.mo-side-link:active{transform:translateY(0) scale(.99)}

/* ---------- original photos ---------- */
.page-hero.has-bg{background:var(--ink);color:#fff}
.page-hero.has-bg .ph-bg{position:absolute;inset:0;overflow:hidden}
.page-hero.has-bg .ph-bg img,.page-hero.has-bg .ph-bg video{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.page-hero.has-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,26,38,.88),rgba(18,26,38,.45) 70%,rgba(18,26,38,.25))}
.page-hero.has-bg .wrap{position:relative;z-index:2}
.page-hero.has-bg h1,.page-hero.has-bg .crumbs{color:#fff}
.page-hero.has-bg .tagline{color:#8fd0ff}
.page-hero.has-bg .bgword{z-index:1;-webkit-text-stroke:1.5px rgba(255,255,255,.22)}
.page-hero.has-bg .crumbs span{color:rgba(255,255,255,.4)}
.feature .f-ic{width:56px;height:56px;border-radius:50%;background:var(--blue);padding:6px;margin-bottom:14px;object-fit:contain}
.zone img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;border-radius:8px;margin-bottom:10px;background:var(--mist)}
.chip.img{aspect-ratio:auto;justify-content:flex-start;gap:10px;padding:12px}
.chip.img img{width:100%;height:auto;border-radius:6px}
.chip.img span{font:800 .95rem/1.2 var(--display);color:var(--navy)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.duo img{width:100%;height:auto;border-radius:12px;box-shadow:0 14px 40px rgba(18,26,38,.12)}
@media (max-width:560px){.duo{grid-template-columns:1fr}}
.opt span img{width:100%;height:auto;border-radius:6px;margin-bottom:10px}
.opt span{flex-direction:column;align-items:flex-start;justify-content:flex-end}
.opt span b{font:inherit}
.tl-img{margin:0 0 22px;border-radius:14px;overflow:hidden;max-width:620px;box-shadow:0 18px 50px rgba(18,26,38,.12)}
.tl-img img{width:100%;height:auto;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.webs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
@media (max-width:760px){.webs{grid-template-columns:1fr}}
.web{margin:0;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(18,26,38,.12)}
.web img{width:100%;height:auto;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.gal-one{margin:26px 0 0;border-radius:16px;overflow:hidden;max-width:760px;box-shadow:0 24px 60px rgba(18,26,38,.15)}
.gal-one img{width:100%;height:auto}
.prod-media{position:relative;display:block;aspect-ratio:280/449;overflow:hidden;background:#0d131c}
.prod-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .3s}
.pm-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(46,163,242,.92);box-shadow:0 0 0 8px rgba(46,163,242,.25);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.pm-play::after{content:"";position:absolute;left:26px;top:21px;border-left:16px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.prods{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.prods{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.prods{grid-template-columns:repeat(2,1fr)}}
.vsmart{width:min(260px,70%);height:auto;margin:0 0 34px}

/* ---------- custom video player (no third-party controls) ---------- */
.vp{position:fixed;inset:0;z-index:92;display:grid;place-items:center;padding:clamp(10px,3vw,40px)}
.vp-back{position:absolute;inset:0;background:rgba(9,13,20,.92);backdrop-filter:blur(6px)}
.vp-box{position:relative;width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;background:#0b1018;border-radius:14px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.6)}
.vp-top{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 20px;color:#fff}
.vp-title{margin:0;flex:1;min-width:0;font:700 .95rem/1.3 var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-demo{font:700 .6rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#8fd0ff;border:1px solid rgba(143,208,255,.4);border-radius:999px;padding:6px 10px;white-space:nowrap}
.vp-x{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:1rem;flex-shrink:0}
.vp-stage{position:relative;background:#000;aspect-ratio:16/9;max-height:calc(100vh - 180px);max-height:calc(100svh - 180px);display:grid;place-items:center}
.vp-video{width:100%;height:100%;object-fit:contain;display:block}
.vp-big{position:absolute;width:86px;height:86px;border-radius:50%;border:0;background:rgba(46,163,242,.95);box-shadow:0 0 0 12px rgba(46,163,242,.22);transition:transform .35s cubic-bezier(.3,1.6,.5,1),opacity .3s}
.vp-big span{position:absolute;left:34px;top:27px;border-left:24px solid #fff;border-top:16px solid transparent;border-bottom:16px solid transparent}
.vp.playing .vp-big{opacity:0;pointer-events:none;transform:scale(.7)}
.vp-load{position:absolute;width:44px;height:44px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--blue);animation:vpspin .8s linear infinite;opacity:0;pointer-events:none}
.vp.waiting .vp-load{opacity:1}
@keyframes vpspin{to{transform:rotate(360deg)}}
.vp-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#0b1018;color:#fff;transition:opacity .4s}
.vp-b{width:42px;height:42px;flex-shrink:0;border:0;border-radius:10px;background:transparent;color:#fff;display:grid;place-items:center}
.vp-b:focus-visible{background:rgba(255,255,255,.08);color:#8fd0ff}
.vp-b svg{width:24px;height:24px;fill:currentColor}
.vp-b text{fill:currentColor}
.vp .i-pause,.vp.playing .i-play{display:none}.vp.playing .i-pause{display:inline}
.vp .i-off,.vp.muted .i-on{display:none}.vp.muted .i-off{display:inline}
.vp-time{font:600 .78rem/1 var(--display);font-variant-numeric:tabular-nums;color:rgba(255,255,255,.75);padding:0 8px;white-space:nowrap}
.vp-seek{position:relative;flex:1;height:30px;cursor:pointer;touch-action:none}
.vp-seek i{position:absolute;left:0;top:13px;height:4px;border-radius:4px}
.vp-seek::before{content:"";position:absolute;left:0;right:0;top:13px;height:4px;border-radius:4px;background:rgba(255,255,255,.15)}
.vp-buf{background:rgba(255,255,255,.3);width:0}
.vp-prog{background:var(--blue);width:0}
.vp-knob{width:14px!important;height:14px!important;top:8px!important;margin-left:-7px;border-radius:50%!important;background:#fff;box-shadow:0 0 0 4px rgba(46,163,242,.4);left:0;transform:scale(0);transition:transform .2s}
.vp-seek:focus-visible .vp-knob,.vp-seek.drag .vp-knob{transform:scale(1)}
.vp-box:fullscreen{width:100%;height:100%;max-height:none;border-radius:0}
.vp-box:fullscreen .vp-stage{flex:1;max-height:none;aspect-ratio:auto}
.vp-box:fullscreen .vp-top{position:absolute;top:0;left:0;right:0;z-index:2;background:linear-gradient(rgba(0,0,0,.7),transparent)}
.vp-box:fullscreen .vp-bar{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8))}
.vp.idle .vp-box:fullscreen .vp-bar,.vp.idle .vp-box:fullscreen .vp-top{opacity:0}
.vp.idle .vp-box:fullscreen{cursor:none}
@media (max-width:600px){.vp{padding:0}.vp-box{border-radius:0}.vp-time{display:none}.vp-b{width:38px}.vp-demo{display:none}}

/* ---------- menu: the sheet scrolls when it is taller than the screen (mobile) ---------- */
.mo-sheet .mo-paper{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
@media (max-width:900px){
  .mo-close-zone{height:96px;padding-bottom:30px}
  .mo-sheet .mo-paper{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
}

/* ---------- hero: the opponent (POV boxer that takes the punches) ---------- */
.hero .boxer{position:absolute;left:50%;bottom:-3%;height:min(90%,860px);aspect-ratio:400/520;transform:translateX(-50%);transform-origin:50% 100%;opacity:.5;pointer-events:none;z-index:0;will-change:transform}
.hero .boxer svg{width:100%;height:100%;display:block;overflow:visible;transition:filter .3s}
.hero .boxer.hit svg{filter:brightness(1.8);transition:filter .05s}
@media (max-width:760px){.hero .boxer{top:-6%;bottom:auto;height:90%;opacity:.5}}
.hero .boxer .bx-eyes{transform-box:fill-box;transform-origin:50% 50%;animation:bxBlink 4.6s infinite}
.hero .boxer.hit .bx-eyes{animation:none;transform:scaleY(.12)}
@keyframes bxBlink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}

/* ---------- mobile hero: title closer to the header, boxer fills the space below ---------- */
@media (max-width:760px){
  .hero{padding-top:118px;place-items:start center}
  .hero .hero-inner{align-self:start;margin-top:0}
  .hero .boxer{top:auto;bottom:-4%;height:78%}
}

/* ---------- desktop hero: title closer to the header ---------- */
@media (min-width:761px){
  .hero{padding-top:clamp(120px,15vh,150px);place-items:start center}
  .hero .hero-inner{align-self:start;margin-top:0}
  .hero .boxer{bottom:-12%;height:min(96%,900px)}
}

/* ---------- knockout badge ---------- */
.hero .ko-badge{position:absolute;left:50%;top:50%;z-index:3;translate:-50% -50%;pointer-events:none;opacity:0;white-space:nowrap;
  font:900 clamp(6rem,24vw,24rem)/.9 var(--display);letter-spacing:-.05em;color:var(--blue);
  text-shadow:3px 0 #fff,-3px 0 #fff,0 3px #fff,0 -3px #fff,2px 2px #fff,-2px -2px #fff,2px -2px #fff,-2px 2px #fff,0 14px 60px rgba(46,163,242,.6)}
@media (max-width:760px){.hero .ko-badge{font-size:34vw}}
/* the boxer's own shapes take the clicks, so a KO only counts blows that land on him */
.hero .boxer svg *{pointer-events:visiblePainted}
/* video Vimeo nel lettore */
.vp.vp-ext .vp-video,.vp.vp-ext .vp-big,.vp.vp-ext .vp-load,.vp.vp-ext .vp-bar,.vp.vp-ext .vp-demo{display:none!important}
.vp-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* mappa Google al clic */
.map{position:relative;cursor:pointer}
.map.map-on{cursor:auto;padding:0;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* modulo contatti home */
.home-form{margin-top:clamp(50px,7vw,90px);max-width:760px}
.home-form .hp,form[data-invia] .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.home-form .form-priv{font-size:.82rem;color:var(--muted);margin:0}
.home-form .form-note{min-height:1.4em;margin:0;font-weight:600}
.home-form .form-note.ok{color:#1a8f4c}
.home-form .form-note.err{color:#c0392b}
.home-form button[disabled]{opacity:.6;cursor:wait}
/* footer compatto */
.site-footer{padding:clamp(30px,4vw,44px) 0 calc(18px + env(safe-area-inset-bottom,0px));font-size:.88rem;line-height:1.65}
.site-footer .cols{grid-template-columns:1.15fr 1.35fr 1fr;gap:clamp(18px,3vw,40px);align-items:start}
.site-footer .f-h{font-size:.68rem;margin:0 0 6px}
.site-footer p{margin:0}
.site-footer .f-brand{display:flex;gap:14px;align-items:center}
.site-footer .f-brand p{font-size:.82rem;line-height:1.5}
.site-footer .logo-w{flex:none;margin:0;padding:6px 9px;border-radius:10px}
.site-footer .logo-w img{width:58px}
.site-footer .legal{margin-top:22px;padding-top:14px;font-size:.74rem;gap:6px 18px}
@media (max-width:860px){.site-footer .cols{grid-template-columns:1fr 1fr}.site-footer .f-brand{grid-column:1/-1}}
@media (max-width:560px){.site-footer .cols{grid-template-columns:1fr;gap:14px}.site-footer .legal{flex-direction:column}}
/* portfolio: loghi clienti al posto del video */
.pf2-band{aspect-ratio:auto!important;display:grid;gap:clamp(12px,2vw,24px);padding:6px 0;background:#fff}
.lg-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.lg-track{display:flex;width:max-content;animation:lgscroll 70s linear infinite}
.lg-row.rev .lg-track{animation-direction:reverse;animation-duration:80s}
.lg-track ul{display:flex;list-style:none;margin:0;padding:0}
.lg-track li{flex:none;width:clamp(120px,14vw,200px);height:clamp(64px,7.5vw,96px);display:grid;place-items:center;padding:0 clamp(12px,1.8vw,24px)}
.lg-track img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1);opacity:.72;transition:filter .25s,opacity .25s,transform .25s cubic-bezier(.2,.8,.2,1)}
@media (hover:none){.lg-track img{filter:none;opacity:1}}
@keyframes lgscroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.lg-track{animation:none}.lg-row{overflow-x:auto}}
.pf2-names{max-width:860px;margin:26px auto 0;padding:0 16px;text-align:center;font-size:.78rem;line-height:1.6;color:var(--muted)}
.lg-txt{display:grid;justify-items:center;text-align:center;font:800 clamp(.95rem,1.3vw,1.15rem)/1.1 var(--display);letter-spacing:-.01em;color:#4a5361;opacity:.8;transition:color .35s,opacity .35s,transform .35s}
.lg-txt small{font:600 .62rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#7b8594;margin-bottom:3px}
/* fix loghi tagliati: altezza esplicita anche per l'immagine */
.lg-row{padding:8px 0}
.lg-track li{--lh:clamp(64px,7.5vw,96px);height:var(--lh);padding-block:0}
.lg-track img{max-height:var(--lh);max-width:100%}
.lg-ic{display:flex;align-items:center;gap:10px;font:800 clamp(.95rem,1.3vw,1.15rem)/1.1 var(--display);color:#4a5361}
.lg-track .lg-ic img{height:calc(var(--lh) * .62);width:auto;max-height:none}
/* modulo home a tutta larghezza */
.home-form{max-width:none;width:100%}
.home-form .row{grid-template-columns:1fr}
.home-form input,.home-form textarea{width:100%;box-sizing:border-box}
/* footer: solo logo in negativo */
.site-footer .logo-w{background:none;padding:0;border-radius:0}
.site-footer .logo-w img{width:84px;filter:brightness(0) invert(1)}
/* tendina cambio pagina: logo in negativo, senza cerchio bianco */
#curtain .cl span{background:none}
#curtain .cl img{width:150px;filter:brightness(0) invert(1)}
/* formati: solo 3 riquadri */
.chips.chips3{grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){.chips.chips3{grid-template-columns:repeat(3,1fr);gap:10px}}

/* testo zone */
.zt-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,6vw,90px);margin-top:clamp(28px,4vw,48px);align-items:start}
.zt-grid>*{min-width:0}
@media (max-width:820px){.zt-grid{grid-template-columns:1fr}}
.zt-k{font:600 .8rem/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:0 0 14px}
.zt-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.zt-list li{font-size:.9rem;padding:6px 12px;border-radius:999px;background:var(--mist);color:var(--navy)}

/* faq zone (stesso stile di faq.html) */
.fz .faq-wrap{max-width:860px}
.fz .faq-list{margin-top:clamp(24px,4vw,40px);border-top:1px solid rgba(20,20,19,.18)}
.fz .faq-item{border-bottom:1px solid rgba(20,20,19,.18)}
.fz .faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}
.fz .faq-item summary::-webkit-details-marker{display:none}
.fz .faq-item h3{margin:0;font-size:clamp(17px,2.2vw,21px);line-height:1.35;font-weight:700}
.fz .faq-ic{flex:0 0 22px;height:22px;position:relative}
.fz .faq-ic::before,.fz .faq-ic::after{content:"";position:absolute;left:3px;right:3px;top:10px;height:2px;background:currentColor;transition:transform .3s}
.fz .faq-ic::after{transform:rotate(90deg)}
.fz .faq-item[open] .faq-ic::after{transform:rotate(0)}
.fz .faq-a{padding:0 0 24px;max-width:72ch}
.fz .faq-a p{margin:0 0 12px;line-height:1.65}
.fz .faq-a a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.fz .faq-more{margin-top:28px}

/* banner cookie + note legali footer */
.ck{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:9999;display:flex;justify-content:center;pointer-events:none}
.ck-in{pointer-events:auto;max-width:640px;width:100%;background:#fff;color:var(--text);border-radius:18px;box-shadow:0 18px 60px rgba(18,26,38,.28);padding:22px 22px 18px;font:400 .9rem/1.55 var(--body)}
.ck-t{margin:0 0 6px;font:700 1rem/1.3 var(--display);color:var(--navy)}
.ck-p{margin:0 0 14px}
.ck-p a{color:var(--blue-ink)}
.ck-opt{display:grid;gap:8px;margin:0 0 14px;padding:12px 14px;background:var(--mist);border-radius:12px}
.ck-opt label{display:flex;align-items:center;gap:8px;cursor:pointer}
.ck-opt span{color:var(--muted);font-size:.82rem}
.ck-b{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.ck-btn{min-height:44px;padding:0 18px;border-radius:999px;border:0;background:var(--blue);color:#fff;font:700 .72rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.ck-btn.ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
@media (max-width:520px){.ck-b{justify-content:stretch}.ck-btn{flex:1 1 auto}}
.site-footer .f-legal{margin-top:22px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:.74rem;display:flex;flex-wrap:wrap;gap:6px 14px}
.site-footer .f-legal button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
/* pagine legali */
.legal-doc{max-width:78ch}
.legal-doc h2{font:700 clamp(1.1rem,2vw,1.35rem)/1.3 var(--display);color:var(--navy);margin:40px 0 10px}
.legal-doc p,.legal-doc li{line-height:1.7}
.legal-doc ul{padding-left:1.2em}
.legal-doc a{color:var(--blue-ink)}
.legal-doc table{width:100%;border-collapse:collapse;font-size:.9rem;margin:10px 0}
.legal-doc th,.legal-doc td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.legal-doc .upd{color:var(--muted);font-size:.85rem}

/* hover solo con mouse (su telefono restavano attivi dopo il tocco) */
@media (hover:hover) and (pointer:fine){
.menu a:hover::after{transform:scaleX(1);transform-origin:left}
.btn:hover::before{transform:translateY(0)}
.btn.ghost:hover{color:#fff;box-shadow:none}
.btn:hover .arr{transform:translateX(4px)}
.site-footer a:hover{color:var(--blue)}
.card:hover .glow{opacity:1}
.card:hover .ic{transform:rotate(-12deg) scale(1.08)}
.card:hover .more i{transform:translateX(6px)}
.kv .v a:hover{color:var(--blue-deep)}
.zone:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 10px 30px rgba(46,163,242,.15)}
.chip:hover{border-color:var(--blue)}
.opt:hover span{transform:translateY(-3px);border-color:var(--blue)}
.menu-btn:hover .mb-icon i:first-child{transform:scaleX(.6)}
.mi a:hover .mi-a{transform:translateY(-105%)}
.mi a:hover .mi-b{transform:translateY(0)}
.mi a:hover .mi-arr{opacity:1;transform:none}
.mo-list:hover .mi a{opacity:.35;transition:opacity .25s}
.mo-list:hover .mi a:hover{opacity:1}
.mo-contacts a:hover{color:var(--blue-ink)}
.mo-close-zone:hover .mo-cz-hint{color:var(--blue-ink)}
.mo-close-zone:hover~.mo-roll{opacity:.0}
.mo-side-link:hover{background:rgba(255,255,255,.55);box-shadow:0 10px 30px rgba(42,52,67,.10);transform:translateY(-3px)}
.mo-side-link:hover .mo-art-c{color:var(--blue-ink)}
.mo-side-link:hover .mo-pic{transform:scale(1.06)}
.tl-item:hover .tl-img img{transform:scale(1.04)}
.web:hover img{transform:scale(1.05)}
.prod-media:hover img{transform:scale(1.06);filter:brightness(.8)}
.prod-media:hover .pm-play{transform:scale(1.12)}
.vp-x:hover{background:var(--blue)}
.vp-big:hover{transform:scale(1.08)}
.vp-b:hover{background:rgba(255,255,255,.08);color:#8fd0ff}
.vp-seek:hover .vp-knob{transform:scale(1)}
.lg-row:hover .lg-track{animation-play-state:paused}
.lg-track li:hover img{filter:none;opacity:1;transform:scale(1.07)}
.lg-track li:hover .lg-txt{color:var(--blue-ink);opacity:1;transform:scale(1.07)}
.site-footer .f-legal a:hover,.site-footer .f-legal button:hover{color:var(--blue)}
}

/* telefono: niente lampo al tocco, risposta immediata, feedback alla pressione */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
a,button,summary,label,[role="button"]{touch-action:manipulation}
button,.btn,.mag,.chip,.opt span,.zone,.menu-btn,.hd-cta,.ck-btn{-webkit-user-select:none;user-select:none}
.btn,.mag,.ck-btn,.menu-btn{transition:scale .12s cubic-bezier(.2,.8,.2,1)}
.btn:active,.mag:active,.hd-cta:active,.ck-btn:active,.menu-btn:active{scale:.97}
.zone:active,.chip:active,.opt:active span{scale:.98}

/* icone contatti */
.nw{white-space:nowrap}
@media (max-width:360px){.nw{white-space:normal}}
.ic{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.18em;margin-right:.3em;flex:none}
.ic-link .ic{width:1.35em;height:1.35em;margin:0;vertical-align:-.3em}
.k-ic .ic{width:1.3em;height:1.3em;margin:0}
.mag .t .ic{margin-right:.45em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* scrollytelling home (scene animate) */
.scrolly{position:relative;height:100vh;height:100svh;overflow:hidden;background:#2ea3f2;--fg:#121a26;color:var(--fg)}
.scrolly .bg{position:absolute;inset:0}
.scrolly .bg.off{visibility:hidden}
.scrolly .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.scrolly .scn{position:absolute;inset:0;overflow:hidden}
.scrolly .ly{position:absolute}
.scrolly .lay{display:block;max-width:none}
.scrolly .vlay{display:block;width:100%;height:170vh;height:170svh}
.scrolly .base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scrolly .bg.nophoto .base{display:none}
.scrolly .counter2{position:absolute;left:0;right:0;top:62%;bottom:0;background:linear-gradient(rgba(255,255,255,.3) 0 8px,rgba(255,255,255,.12) 8px)}
.scrolly .counter{position:absolute;left:0;right:0;bottom:0;height:22%;background:rgba(255,255,255,.14);border-top:6px solid rgba(255,255,255,.3)}
.scrolly .beam{top:-12%;width:38vw;height:130%;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0) 80%);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);transform-origin:50% 0}
.scrolly .beam.b1{left:6%;rotate:16deg}
.scrolly .beam.b2{right:10%;rotate:-14deg}
.scrolly .gridpaper{inset:-120px;background-image:linear-gradient(rgba(18,26,38,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(18,26,38,.1) 1px,transparent 1px),linear-gradient(rgba(18,26,38,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(18,26,38,.05) 1px,transparent 1px);background-size:160px 160px,160px 160px,32px 32px,32px 32px}
.scrolly .s-bar .ly{opacity:.8}
@media (max-width:760px){.scrolly .desk{display:none}
.scrolly .s-soc .ly:last-child,.scrolly .s-gra .ly:last-child,.scrolly .s-faq .ly:last-child{opacity:.55}
.scrolly .s-bar .ly:last-child{opacity:.4}}
.scrolly .street{--ry:66%}
.scrolly .street .lay{display:block;max-width:none}
.scrolly .st-cl{position:absolute;left:0;top:calc(env(safe-area-inset-top,0px) + 70px)}
.scrolly .rocket{left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 190px)}
.scrolly .rocket svg{position:absolute;left:100%;top:0;width:170px;height:auto;rotate:8deg}
@media (max-width:760px){.scrolly .rocket{top:calc(env(safe-area-inset-top,0px) + 150px)}
.scrolly .rocket svg{width:120px}}
.scrolly .st-sun{position:absolute;right:12%;top:calc(env(safe-area-inset-top,0px) + 60px);width:90px;height:90px;border-radius:50%;background:#ffe08a;box-shadow:0 0 0 18px rgba(255,224,138,.35)}
.scrolly .st-b{position:absolute;left:0;top:calc(var(--ry) - 230px + 2px)}
.scrolly .st-n svg{overflow:visible}
.scrolly .st-n{position:absolute;left:0;top:calc(var(--ry) - 120px + 2px)}
.scrolly .st-road{position:absolute;left:0;right:0;top:var(--ry);height:44px;background:#7b8796;overflow:hidden}
.scrolly .st-l{position:absolute;left:0;top:17px}
.scrolly .st-front{position:absolute;left:0;right:0;top:calc(var(--ry) + 44px);bottom:0;background:#e3e9ee}
@media (max-width:760px){.scrolly .st-sun{width:60px;height:60px;right:22%}
.scrolly .st-cl{top:calc(env(safe-area-inset-top,0px) + 120px)}}
.scrolly .grid{position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(20px,5vw,72px);padding-block:84px 40px}
.scrolly .copies{position:relative;display:grid;min-width:0}
.scrolly .cp{grid-area:1/1;display:grid;gap:16px;align-content:center;color:var(--c)}
.scrolly .pg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font:700 .72rem/1.3 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--s)}
.scrolly .pg b{padding:5px 10px;border-radius:999px;border:1.5px solid currentColor;color:var(--c);letter-spacing:.12em}
.scrolly .cp h2{font-weight:800;font-size:clamp(2.2rem,5.6vw,4.4rem);line-height:.95;letter-spacing:-.035em;color:var(--c)}
.scrolly .cp .txt{font-size:1.05rem;max-width:42ch;opacity:.88}
.scrolly .cta{justify-self:start;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 22px;border-radius:999px;background:var(--c);color:var(--b);text-decoration:none;font:700 .74rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase}
.scrolly .cta:focus-visible{outline:2px solid var(--c);outline-offset:3px}
.scrolly .art{min-width:0;display:grid;place-items:center;height:100%}
.scrolly .art svg{width:min(100%,62vh,500px);height:auto;aspect-ratio:1;overflow:visible}
.scrolly .hud{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:50%;translate:0 -50%;display:flex;flex-direction:column;align-items:center;gap:10px;font:700 .72rem/1 var(--display);letter-spacing:.1em;color:var(--fg);font-variant-numeric:tabular-nums}
.scrolly .hud span:last-child{opacity:.5}
.scrolly .bar{width:2px;height:110px;background:currentColor;opacity:.25;position:relative}
.scrolly .bar i{position:absolute;inset:0;background:var(--fg);opacity:1;transform-origin:50% 0;transform:scaleY(0)}
.scrolly .hud .bar{opacity:1;background:transparent;box-shadow:inset 0 0 0 1px rgba(127,127,127,.35)}
@media (max-width:760px){.scrolly .grid{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding-block:70px 28px;gap:8px}
.scrolly .art{order:-1}
.scrolly .art svg{width:min(80vw,40svh)}
.scrolly .cp{gap:10px}
.scrolly .cp h2{font-size:clamp(1.9rem,9vw,2.6rem)}
.scrolly .cp .txt{font-size:.95rem}
.scrolly .hud{top:calc(78px + env(safe-area-inset-top,0px));translate:none}
.scrolly .bar{height:60px}}
.scrolly .hlay{display:block;height:100vh;height:100svh;width:auto;max-width:none}
.scrolly .cp-int{gap:18px}
.scrolly .cp-int .year{font:900 clamp(3.2rem,8.5vw,7.2rem)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--navy);font-variant-numeric:tabular-nums}
.scrolly .cp-int .year span{color:#0089cf;-webkit-text-stroke:0}
.scrolly .cp-int .lead{font:300 clamp(1.05rem,1.75vw,1.45rem)/1.4 var(--display);color:var(--navy);max-width:36ch}
.scrolly .int-prose{display:grid;gap:10px;font-size:.88rem;line-height:1.6;color:#4a5462;max-width:62ch}
@media (max-width:760px){.scrolly .cp-int{gap:10px}
.scrolly .int-prose{font-size:.8rem;line-height:1.5;gap:6px}
.scrolly .cp-int .lead{font-size:1rem}}
@media (max-width:760px) and (max-height:780px){.scrolly .int-prose p+p{display:none}}
@media (max-width:760px) and (max-height:640px){.scrolly .int-prose{display:none}}
@keyframes scRecBlink{0%,55%{opacity:1}56%,100%{opacity:.12}}
@keyframes scRecZoom{0%,55%{transform:scale(1)}20%{transform:scale(1.22)}56%,100%{transform:scale(.92)}}
.scrolly .rec-dot{animation:scRecBlink 1s infinite}
.scrolly .rec-txt{transform-box:fill-box;transform-origin:50% 50%;animation:scRecZoom 1s infinite}
@media (prefers-reduced-motion:reduce){.scrolly .rec-dot,.scrolly .rec-txt{animation:none}}
@keyframes scSteam{0%{opacity:0;transform:translateY(14px) scaleY(.8)}35%{opacity:.85}100%{opacity:0;transform:translateY(-26px) scaleY(1.1)}}
.scrolly .sw{transform-box:fill-box;transform-origin:50% 100%;animation:scSteam 2.4s ease-out infinite;opacity:0}
.scrolly .s2{animation-delay:.8s}
.scrolly .s3{animation-delay:1.6s}
@keyframes scFocus{0%,100%{transform:scale(1)}30%{transform:scale(1.28)}55%{transform:scale(.82)}75%{transform:scale(1.08)}}
@keyframes scFocus2{0%,100%{transform:scale(1)}30%{transform:scale(1.06)}55%{transform:scale(.96)}}
.scrolly .focus,.scrolly .focus2{transform-box:fill-box;transform-origin:50% 50%}
.scrolly .focus{animation:scFocus 3s ease-in-out infinite}
.scrolly .focus2{animation:scFocus2 3s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.scrolly .sw,.scrolly .focus,.scrolly .focus2{animation:none}
.scrolly .sw{opacity:.6}}
@keyframes scRing{0%,4%,8%,12%,16%,20%{transform:rotate(-14deg)}2%,6%,10%,14%,18%{transform:rotate(14deg)}24%,100%{transform:rotate(0)}}
.scrolly .ring{transform-box:fill-box;transform-origin:50% 50%;animation:scRing 2.2s ease-in-out infinite}
@keyframes scEnvbob{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(0,-3px) rotate(-1deg)}75%{transform:translate(0,2px) rotate(1deg)}}
.scrolly .env{transform-box:fill-box;transform-origin:50% 50%;animation:scEnvbob 2.2s ease-in-out infinite}
@keyframes scFlut{0%,100%{transform:rotate(-12deg) translateY(0)}50%{transform:rotate(12deg) translateY(-14px)}}
.scrolly .flut{transform-box:fill-box;transform-origin:50% 50%;animation:scFlut 2s ease-in-out infinite}
.scrolly .nw{white-space:nowrap}
.scrolly .ic{width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.3em;display:inline-block}
.scrolly .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.scrolly .con-l{line-height:1.9}
@media (prefers-reduced-motion:reduce){.scrolly .ring,.scrolly .env,.scrolly .flut{animation:none}}
.scrolly .drone{inset:0}
.scrolly .drone svg{position:absolute;left:68%;top:56%;width:170px;height:auto;rotate:-9deg}
@media (max-width:760px){.scrolly .drone svg{left:calc(50% - 60px);top:30%;width:120px;rotate:-6deg}}
@keyframes scProp{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.35)}}
.scrolly .prop{transform-box:fill-box;transform-origin:50% 50%;animation:scProp .12s linear infinite}
.scrolly .p2{animation-delay:-.06s}
@keyframes scLed{0%,49%{opacity:1}50%,100%{opacity:.15}}
.scrolly .led{animation:scLed .8s infinite}
@keyframes scHover{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.scrolly .dr-body{animation:scHover 1.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.scrolly .prop,.scrolly .led,.scrolly .dr-body{animation:none}}
@keyframes scZz{0%,100%{transform:translateX(-34px)}50%{transform:translateX(34px)}}
.scrolly .zz{animation:scZz 2s linear infinite}
@media (prefers-reduced-motion:reduce){.scrolly .zz{animation:none}}
.scrolly .gio-m{display:none}
@media (max-width:760px){.scrolly .gio-m{display:inline}.scrolly .gio-d{display:none}}
.scrolly .hud{gap:12px;font-size:.8rem}
.scrolly .hud .hud-k{font:700 .58rem/1 var(--display);letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.scrolly .hud #hn{font:800 1.9rem/1 var(--display);letter-spacing:-.02em}
.scrolly .hud .bar{width:6px;height:44vh;height:44svh;border-radius:3px;background:rgba(127,127,127,.28);box-shadow:none;overflow:visible}
.scrolly .hud .bar i{border-radius:3px}
.scrolly .hud .bar b{position:absolute;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--fg);opacity:.9;box-shadow:0 0 0 3px rgba(127,127,127,.25)}
.scrolly .hud .hud-t{font-size:.95rem;opacity:.6}
@media (max-width:760px){.scrolly .hud{gap:8px}.scrolly .hud #hn{font-size:1.4rem}.scrolly .hud .bar{height:26vh;height:26svh;width:5px}.scrolly .hud .bar b{width:10px;height:10px;margin:-5px 0 0 -5px}}
/* fine scrollytelling */

/* header stabile: su telefono sempre fisso e più basso; nello scrollytelling solo il pallino del menu */
@media (max-width:760px){
  html .site-header,html .site-header.hide,html .site-header.scrolled{transform:none;translate:none}
  html .site-header .bar{height:56px}
  html .site-header .bar>*,html .site-header.scrolled .bar>*{translate:none}
  html .site-header .brand img,html .site-header.scrolled .brand img{height:44px;transform:none}
  html .site-header .menu-btn{height:40px;padding:0 6px 0 16px}
  html .site-header .mb-icon{width:28px;height:28px}
  html .site-header .mb-icon i{left:8px;right:8px}
  html .site-header .mb-icon i:first-child{top:10px}html .site-header .mb-icon i:last-child{top:16px}
  html.menu-on .site-header .mb-icon i:first-child,html.menu-on .site-header .mb-icon i:last-child{top:13px}
}
html.in-scrolly:not(.menu-ui) .site-header{background:transparent;box-shadow:none;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none;translate:none;pointer-events:none}
html.in-scrolly:not(.menu-ui) .site-header .brand,html.in-scrolly:not(.menu-ui) .site-header .hd-cta{opacity:0;pointer-events:none}
html.in-scrolly:not(.menu-ui) .site-header .menu-btn{pointer-events:auto;padding:7px;gap:0;box-shadow:0 6px 20px rgba(18,26,38,.25)}
html.in-scrolly:not(.menu-ui) .site-header .mb-label{width:0;opacity:0}
.site-header .mb-label{transition:width .3s,opacity .3s}
h2.quote{margin-block:1em;text-wrap:wrap}

/* H1 con riga piccola inclusa (21/10/2026, SEO) */
.ph-h .tagline,.ph-h .ph-main{display:block}
.ht-h1{margin:0;font:inherit;color:inherit}
.ht-h1>.eyebrow-h,.ht-h1>.ht-stack,.ht-h1 .ht-title,.ht-h1 .ht-ghost{display:block}
.ht-h1 .eyebrow-h{line-height:1.5}
@media (max-width:700px){.ht-h1 .eyebrow-h{letter-spacing:.24em}}
.ht-h1 .ht-ghost::before{content:"Communication\A Fighters";white-space:pre}
