/* font ospitati sul sito (Inter e Space Grotesk, SIL Open Font License) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500 700;font-display:swap;src:url(fonts/spacegrotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500 700;font-display:swap;src:url(fonts/spacegrotesk-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --bg:#060907;--bg-2:#0c110d;--panel:#111712;
  --text:#f2f4ef;--muted:#a3aaa2;--dim:#6f776f;
  --green:#4dd06f;--green-2:#83ff9f;
  --line:rgba(255,255,255,.10);--line-2:rgba(255,255,255,.18);
  --max:1320px;--gut:clamp(16px,4vw,48px);
  --display:"Space Grotesk",Arial,sans-serif;--body:Inter,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{width:min(100% - 2*var(--gut),var(--max));margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--green-2)}
.eyebrow:before{content:"";width:28px;height:1px;background:currentColor}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.025em;margin:0}
h2{font-size:clamp(30px,3.4vw,46px);line-height:1.05}
.lead{font-size:clamp(16px,1.2vw,18px);color:#c9cec7;max-width:62ch;margin:0}
.btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;font-weight:600;font-size:15px;transition:.25s}
.btn-primary{background:var(--green);color:#04110a}
.btn-primary:hover{background:var(--green-2)}
.btn-ghost{border:1px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--green-2);color:var(--green-2)}
section{padding:clamp(72px,10vw,128px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:32px 64px;align-items:end;margin-bottom:48px}
.sec-head .lead{justify-self:end}

/* header */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.8,.2,1);border-bottom:1px solid transparent}
.nav.solid{background:rgba(6,9,7,.86);backdrop-filter:blur(16px);border-color:var(--line)}
.nav.hide{transform:translateY(-100%)}
.skip{position:fixed;left:16px;top:-60px;z-index:300;background:var(--green);color:#04110a;padding:10px 16px;border-radius:999px;font-weight:600;transition:top .2s}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--green-2);outline-offset:3px;border-radius:6px}
.nav-cta-m,.nav-extra,.nav-links .n{display:none}
.nav-in{height:76px;display:flex;align-items:center;gap:32px}
.nav-logo{flex-shrink:0}
.nav-logo img{height:40px;width:auto;max-width:none}
.nav-links{display:flex;gap:28px;margin-left:auto;font-size:14px;font-weight:500}
.nav-links a{position:relative;color:#cfd3cc;padding:6px 0;transition:color .25s}
.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--green);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover:after,.nav-links a.on:after{transform:scaleX(1);transform-origin:left}
.nav-links a.on{color:var(--text)}
.nav-right{display:flex;align-items:center;gap:14px}
/* selettore lingua: pillola fissa in basso a sinistra */
.lang{position:fixed;left:16px;bottom:16px;z-index:55;display:flex;font-size:12px;font-weight:600;letter-spacing:.1em;border:1px solid var(--line-2);border-radius:999px;padding:4px;
  background:rgba(6,9,7,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.lang button{background:none;border:0;color:var(--muted);padding:8px 12px;border-radius:999px;cursor:pointer;font:inherit;transition:color .2s,background .2s}
.lang button:hover{color:var(--text)}
.lang button.on{color:#04110a;background:var(--green)}
.nav .btn{height:40px;padding:0 18px;font-size:14px}
.burger{display:none;position:relative;width:44px;height:44px;border:1px solid var(--line-2);border-radius:50%;background:none;cursor:pointer}
.burger i{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:var(--text);transition:transform .35s,top .35s}
.burger i:first-child{top:17px}.burger i:last-child{top:24px}
.nav.open .burger i:first-child{top:20px;transform:rotate(45deg)}.nav.open .burger i:last-child{top:20px;transform:rotate(-45deg)}
body.menu-open{overflow:hidden}

/* hero */
.hero{min-height:100svh;display:flex;align-items:flex-end;position:relative;padding:0 0 clamp(48px,8vh,96px);isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-1;background:url(img/foto1.jpg) center/cover}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,7,.55) 0%,rgba(6,9,7,.15) 35%,rgba(6,9,7,.92) 88%,var(--bg)),linear-gradient(90deg,rgba(6,9,7,.6),transparent 65%)}
.hero h1{font-size:clamp(44px,6vw,88px);line-height:.92;margin:0 0 26px;max-width:11ch}
.hero h1 em{font-style:normal;color:var(--green-2)}
.hero .lead{color:#dfe3dc}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-meta{display:flex;gap:28px;flex-wrap:wrap;margin-top:56px;padding-top:22px;border-top:1px solid var(--line-2);font-size:13px;color:var(--muted)}
.hero-meta b{display:block;font-family:var(--display);font-size:26px;color:var(--text);font-weight:600;letter-spacing:-.02em;line-height:1.1}

/* ambiti */
.areas{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.area{position:relative;min-height:440px;border-radius:20px;overflow:hidden;display:flex;align-items:flex-end;padding:26px;border:1px solid var(--line);background:var(--panel)}
.area img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform .8s,opacity .5s}
.area:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(6,9,7,.95))}
.area:hover img{transform:scale(1.04);opacity:.75}
.area>div{position:relative;z-index:1}
.area small{color:var(--green-2);font-size:12px;font-weight:600;letter-spacing:.12em}
.area h3{font-size:22px;line-height:1.05;margin:10px 0 10px}
.area p{margin:0;font-size:14px;color:#c3c8c1;line-height:1.55}

/* filtri */
.chip{border:1px solid var(--line-2);background:none;color:#cfd3cc;padding:9px 16px;border-radius:999px;font:500 14px var(--body);cursor:pointer;transition:.2s}
.chip:hover{border-color:var(--green-2)}
.chip.on{background:var(--green);border-color:var(--green);color:#04110a}
.chip span{opacity:.6;margin-left:4px}

/* soluzioni */
.sol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sol-card{border:1px solid var(--line);border-radius:20px;background:var(--bg-2);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s,transform .25s}
.sol-card:hover{border-color:rgba(131,255,159,.4);transform:translateY(-3px)}
.sol-card .ph{aspect-ratio:16/10;overflow:hidden}
.sol-card .ph img{width:100%;height:100%;object-fit:cover}
.sol-card .bd{padding:26px;display:flex;flex-direction:column;gap:12px;flex:1}
.tag{align-self:flex-start;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-2);border:1px solid rgba(131,255,159,.3);padding:5px 10px;border-radius:999px}
.sol-card h3{font-size:23px}
.sol-card p{margin:0;color:var(--muted);font-size:15px}
.sol-card .go{margin-top:auto;padding-top:14px;font-weight:600;font-size:14px;color:var(--green-2)}

/* studio */
.studio{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.studio-text p{color:#c3c8c1;font-size:16px;margin:0 0 18px}
.steps{display:grid;gap:0;border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.step b{font-family:var(--display);font-size:24px;color:var(--green-2);font-weight:600}
.step h3{font-size:18px;margin-bottom:4px}
.step p{margin:0;color:var(--muted);font-size:15px}
.timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-top:72px;border-top:1px solid var(--line-2);position:relative}
.tl{padding:22px 16px 0 0;position:relative}
.tl:before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(77,208,111,.15)}
.tl b{display:block;font-family:var(--display);font-size:19px;font-weight:600}
.tl span{display:block;font-size:14px;color:var(--muted);margin-top:4px}

/* materiali */
.docs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.doc{border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:10px;min-height:190px;transition:.25s}
.doc:hover{border-color:rgba(131,255,159,.4);background:rgba(77,208,111,.04)}
.doc small{font-size:12px;color:var(--dim);letter-spacing:.06em}
.doc h3{font-size:20px}
.doc p{margin:0;color:var(--muted);font-size:14px}
.doc .dl{margin-top:auto;font-size:13px;font-weight:600;color:var(--green-2)}

/* contatti */
.contact{border:1px solid var(--line);border-radius:28px;padding:clamp(28px,5vw,64px);background:radial-gradient(circle at 90% 10%,rgba(77,208,111,.16),transparent 40%),var(--bg-2);display:grid;grid-template-columns:1.2fr 1fr;gap:48px}
.contact h2{margin:18px 0 18px}
.form{display:grid;gap:12px}
.form label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.form input,.form select,.form textarea{background:rgba(255,255,255,.04);border:1px solid var(--line-2);border-radius:12px;padding:13px 14px;color:var(--text);font:15px var(--body)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--green)}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .check{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}
.form .check input{width:18px;height:18px;margin:1px 0 0;padding:0;accent-color:var(--green);flex-shrink:0}
.form .check a{color:var(--green-2);text-decoration:underline}
.contact-info{display:grid;gap:22px;margin-top:34px}
.contact-info div{font-size:15px;color:#cfd3cc}
.contact-info small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:4px}

footer{border-top:1px solid var(--line);padding:48px 0 32px;color:var(--muted);font-size:14px}
.foot{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px}
.foot h4{margin:0 0 12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);font-weight:600}
.foot a{display:block;margin-bottom:8px}
.foot a:hover{color:var(--green-2)}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--dim)}

/* esito invio modulo */
.form-status{display:none;font-size:14px;line-height:1.5;padding:12px 14px;border-radius:12px}
.form-status.ok{display:block;background:rgba(77,208,111,.12);border:1px solid rgba(131,255,159,.35);color:var(--green-2)}
.form-status.err{display:block;background:rgba(255,107,107,.1);border:1px solid rgba(255,140,140,.35);color:#ffb3b3}
.form button[disabled]{opacity:.6;cursor:progress}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

/* pagine testuali (privacy, 404) */
.legal{padding:clamp(130px,16vw,180px) 0 clamp(64px,8vw,110px)}
.legal h1{font-size:clamp(40px,6vw,72px);line-height:1;margin:18px 0 18px}
.legal .upd{color:var(--dim);font-size:14px;margin:0 0 40px}
.legal h2{font-size:clamp(22px,2.4vw,28px);margin:44px 0 12px}
.legal p,.legal li{color:#c3c8c1;font-size:16px;line-height:1.7;max-width:74ch}
.legal ul{padding-left:20px}
.legal a{color:var(--green-2);text-decoration:underline}
.legal table{border-collapse:collapse;width:100%;max-width:880px;font-size:14px;margin-top:8px}
.legal th,.legal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:#c3c8c1}
.legal th{color:var(--text);font-weight:600}
.legal .tbl{overflow-x:auto}

@media(max-width:1080px){
  .areas{grid-template-columns:repeat(2,1fr)}.area{min-height:340px}
  .sol .bd{padding:22px}.sol-card h3{font-size:24px}
  .docs{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr 1fr}
  .nav-links{gap:20px}
}
@media(max-width:960px){
  .nav-links{gap:18px;font-size:13.5px}.nav-in{gap:20px}
}
@media(max-width:760px){
  .nav-cta{display:none}.burger{display:block}.nav-right{margin-left:auto}
  /* menu mobile: pannello a tutto schermo, voci numerate allineate a destra */
  .nav-links{position:fixed;inset:76px 0 0;margin:0;display:flex;flex-direction:column;align-items:stretch;gap:0;
    padding:12px var(--gut) calc(24px + env(safe-area-inset-bottom));
    background:radial-gradient(circle at 100% 100%,rgba(77,208,111,.12),transparent 60%),var(--bg);
    clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .5s cubic-bezier(.7,0,.2,1),visibility 0s .5s;
    overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
  .nav-links::-webkit-scrollbar{display:none}
  .nav.open{background:var(--bg);border-color:var(--line)}
  .nav.open .nav-links{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .5s cubic-bezier(.7,0,.2,1)}
  .nav-links>*{flex-shrink:0}
  /* voci: numero a sinistra, nome allineato a destra */
  .nav-links>a:not(.nav-cta-m){display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);
    font:600 clamp(24px,6.6vw,30px)/1.1 var(--display);letter-spacing:-.02em;color:var(--text);opacity:0;transform:translateY(12px)}
  .nav.open .nav-links>a,.nav.open .nav-extra{opacity:1;transform:none;transition:opacity .45s,transform .5s cubic-bezier(.2,.8,.2,1),color .25s;transition-delay:calc(.15s + var(--i,0)*.04s)}
  .nav-links>a:after{display:none}
  .nav-links .n{display:inline;font:500 12px var(--body);letter-spacing:.12em;color:var(--dim)}
  .nav-links a.on,.nav-links>a:active{color:var(--green-2)}
  .nav-links a.on .n{color:var(--green-2)}
  .nav-links .nav-cta-m{display:flex;align-items:center;justify-content:center;width:100%;height:54px;margin-top:22px;padding:0 24px;border-radius:999px;
    font:600 16px var(--body);color:#04110a;opacity:0;transform:translateY(12px)}
  .nav-extra{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-top:auto;padding-top:28px;font-size:14px;line-height:1.7;color:var(--muted);opacity:0;transform:translateY(12px)}
  .nav-extra .contact-m{display:grid}
  .nav-extra a{color:var(--text)}
  .nav-extra .lang-m{display:flex;gap:4px;border:1px solid var(--line-2);border-radius:999px;padding:4px}
  .lang-m button{background:none;border:0;color:var(--muted);font:600 12px var(--body);letter-spacing:.08em;padding:8px 14px;border-radius:999px;cursor:pointer}
  .lang-m button.on{background:var(--green);color:#04110a}
  body.menu-open .lang{opacity:0;pointer-events:none}
  html.menu-open{overflow:hidden}
}
@media(max-width:860px){
  .sec-head,.studio,.contact{grid-template-columns:1fr}.sec-head .lead{justify-self:start}
  .sol{grid-template-columns:1fr}.sol .ph{aspect-ratio:16/9}
  .timeline{grid-template-columns:repeat(3,1fr);row-gap:36px}
  .studio{gap:40px}
}
@media(max-width:600px){
  .areas,.sol,.docs{grid-template-columns:1fr}
  .timeline{grid-template-columns:repeat(2,1fr)}
  .form .two{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
  .nav-logo img{height:34px}.nav-in{gap:12px}.nav-right{gap:8px;margin-left:auto}

  /* apertura home su mobile: foto ben visibile in alto, testo sotto su fondo pieno */
  .hero{min-height:0;flex-direction:column;align-items:stretch;padding:0 0 44px}
  .hero-bg{position:relative;inset:auto;z-index:0;height:min(46svh,400px);min-height:290px;background-position:62% center}
  .hero-bg:after{background:linear-gradient(180deg,rgba(6,9,7,.65) 0%,rgba(6,9,7,0) 30%,rgba(6,9,7,0) 50%,var(--bg) 100%)}
  .hero .wrap{position:relative;z-index:1;margin-top:-72px}
  .hero h1{font-size:clamp(40px,11.5vw,52px);line-height:.95;margin-bottom:16px}
  .hero .lead{font-size:16px;line-height:1.55;color:#c9cec7}
  .hero-cta{margin-top:24px;flex-direction:column;align-items:stretch;gap:4px}
  .hero-cta .btn{justify-content:center}
  .hero-cta .btn-ghost{border:0;height:44px;color:var(--green-2)}
  .hero-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px;padding-top:18px;font-size:11px;line-height:1.3}
  .hero-meta b{font-size:22px;margin-bottom:2px}

}
/* barra di avanzamento lettura */
#progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:60;background:var(--green);transform-origin:left;transform:scaleX(0)}
/* ingresso pagina */
main{animation:pagein .6s ease both}
@keyframes pagein{from{opacity:0}}
/* ===== componenti condivisi ===== */
::selection{background:var(--green);color:#04110a}
body:after{content:"";position:fixed;inset:-50%;z-index:100;pointer-events:none;opacity:.05;
  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 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 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(1%,3%)}}
.nav-links a.on{color:var(--green-2)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
.rise .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.rise .w>span{display:inline-block;transform:translateY(105%);animation:rise 1s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*70ms + .1s)}
@keyframes rise{to{transform:none}}

/* copertina progetto: foto oppure generativa */
.cover{position:relative;overflow:hidden;background:#0b100c;isolation:isolate}
.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s;filter:saturate(.85)}
.cover-gen{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:18px;
  background:radial-gradient(circle at var(--x) var(--y),rgba(131,255,159,.30),transparent 42%),
             conic-gradient(from var(--r) at var(--x) var(--y),rgba(77,208,111,.16),rgba(20,60,50,.10),rgba(77,208,111,.04),rgba(77,208,111,.16)),#0a0f0b}
.cover-gen:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(131,255,159,.35) 1px,transparent 1px);background-size:16px 16px;
  mask-image:radial-gradient(circle at var(--x) var(--y),#000,transparent 60%);-webkit-mask-image:radial-gradient(circle at var(--x) var(--y),#000,transparent 60%)}
.cover-gen:after{content:"";position:absolute;left:var(--x);top:var(--y);width:9px;height:9px;margin:-4px;border-radius:50%;background:var(--green-2);box-shadow:0 0 0 6px rgba(131,255,159,.15),0 0 30px var(--green)}
.cover-mono{position:relative;align-self:flex-end;font:700 clamp(56px,9vw,120px)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(131,255,159,.45)}
.cover-coord{position:relative;font:500 11px var(--body);letter-spacing:.14em;color:rgba(131,255,159,.7)}
.cover:not(.gen) .cover-gen{visibility:hidden}

/* card progetto */
.pcard{display:flex;flex-direction:column;gap:16px;color:inherit}
.pcard .cover{aspect-ratio:4/3;border-radius:18px;border:1px solid var(--line)}
.pcard .cover:after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 50%,rgba(6,9,7,.75));opacity:0;transition:opacity .5s}
.pcard-hover{position:absolute;z-index:3;left:18px;right:18px;bottom:16px;font-size:14px;line-height:1.5;color:#e5e9e2;opacity:0;transform:translateY(12px);transition:.5s cubic-bezier(.2,.7,.2,1);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard:hover .cover>img{transform:scale(1.06)}
.pcard:hover .cover:after,.pcard:hover .pcard-hover{opacity:1;transform:none}
.pcard-meta{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}
.pcard-meta .k{color:var(--green-2)}
.pcard h3{font-size:clamp(18px,1.4vw,21px);line-height:1.12;transition:color .25s}
.pcard:hover h3{color:var(--green-2)}

/* marker mappa */
.leaflet-container{background:#0a0f0b!important;font-family:var(--body)!important}
/* mappa OpenStreetMap resa scura con un filtro, in linea con lo stile del sito */
.map-tiles{filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.35)}
.mk{background:none;border:0}
.mk b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:999px;background:var(--green);color:#04110a;font:700 12px var(--body);box-shadow:0 0 0 5px rgba(77,208,111,.18),0 0 26px rgba(77,208,111,.55);transition:transform .25s}
.mk b:before{content:"";position:absolute;inset:-5px;border-radius:inherit;border:1px solid var(--green-2);animation:pulse 2.4s ease-out infinite;opacity:0}
.mk.on b,.mk:hover b{transform:translate(-50%,-50%) scale(1.25);background:var(--green-2)}
@keyframes pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(2.2);opacity:0}}
.leaflet-tooltip.mk-tip{background:rgba(6,9,7,.92);color:var(--text);border:1px solid var(--line-2);border-radius:10px;padding:6px 10px;font:600 12px var(--body);box-shadow:none}
.leaflet-tooltip.mk-tip:before{display:none}
.leaflet-control-attribution{background:rgba(6,9,7,.6)!important;color:#667!important;font-size:10px!important}
.leaflet-control-attribution a{color:#8a8!important}
.leaflet-control-zoom a{background:rgba(6,9,7,.85)!important;color:var(--text)!important;border-color:var(--line-2)!important}

/* CTA finale */
.endcta{display:block;padding:clamp(80px,12vw,160px) 0;border-top:1px solid var(--line);position:relative;overflow:hidden}
.endcta small{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.endcta strong{display:block;margin-top:18px;font:600 clamp(36px,5vw,72px)/1 var(--display);letter-spacing:-.04em;transition:color .4s}
.endcta strong i{font-style:normal;display:inline-block;transition:transform .4s;color:var(--green-2)}
.endcta:hover strong{color:var(--green-2)}
.endcta:hover strong i{transform:translateX(18px)}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;animation:none!important}.reveal{opacity:1;transform:none}.rise .w>span{transform:none}}
