:root{--bg:#07131e;--bg2:#0c2030;--panel:#0e2637;--text:#f5f8fb;--muted:#aebdca;--green:#67e443;--cyan:#55c9ff;--line:rgba(255,255,255,.13);--max:1420px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}em{font-style:normal;color:var(--green)}.topbar{height:112px;position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;padding:0 max(28px,calc((100vw - var(--max))/2));gap:34px;transition:.35s;background:linear-gradient(#06111dcc,transparent)}.topbar.scrolled{height:86px;background:#07131ef2;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand{width:270px;display:block}.brand img{width:100%;height:98px;object-fit:contain;object-position:left center;transition:.35s}.topbar.scrolled .brand img{height:74px}.topbar nav{display:flex;gap:28px;margin:auto;font-size:14px;font-weight:650}.topbar nav a{position:relative}.topbar nav a:after{content:"";position:absolute;left:0;bottom:-10px;width:0;height:2px;background:var(--cyan);transition:.3s}.topbar nav a:hover:after{width:100%}.head-actions{display:flex;align-items:center;gap:18px;margin-left:auto}.phone{font-weight:700;font-size:14px}.outline,.glass,.primary{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 25px;font-weight:750;font-size:14px;transition:.3s;border:1px solid rgba(255,255,255,.65)}.primary{background:var(--green);color:#06111d;border-color:var(--green);box-shadow:0 12px 35px #67e44322}.primary:hover{transform:translateY(-3px);box-shadow:0 15px 40px #67e44344}.outline:hover,.glass:hover{background:#ffffff12;transform:translateY(-2px)}.menu{display:none;background:none;border:0;color:white;font-size:28px}.hero{height:780px;min-height:720px;position:relative;display:flex;align-items:center;overflow:hidden}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,11,18,.88) 0%,rgba(4,12,20,.55) 48%,rgba(4,12,20,.3)),linear-gradient(0deg,rgba(4,12,20,.7),transparent 45%)}.hero-content{position:relative;z-index:2;width:min(var(--max),calc(100% - 64px));margin:80px auto 0}.eyebrow{font-size:20px;letter-spacing:.12em;font-weight:800;color:#b9e7c2}
.hero .eyebrow{font-size:14px;letter-spacing:.22em}.hero h1{font-size:clamp(48px,5vw,78px);line-height:.98;letter-spacing:-.045em;margin:18px 0 24px;max-width:900px}.lead{font-size:18px;line-height:1.55;color:#e6edf3}.hero-buttons{display:flex;gap:16px;margin-top:30px}.glass{background:#07131e55;backdrop-filter:blur(8px)}.hero-note{position:absolute;z-index:2;right:9%;bottom:110px;font-size:15px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;text-align:center;opacity:.85;color:#d9ecdd}.hero-note i{font-style:normal;font-size:15px;letter-spacing:.14em}.scroll{position:absolute;z-index:2;left:max(30px,calc((100vw - var(--max))/2));bottom:42px;display:grid;gap:4px;font-size:11px}.scroll span{font-size:28px}.stats{min-height:150px;display:grid;grid-template-columns:repeat(3,1fr) 1.25fr;align-items:center;max-width:var(--max);margin:auto}.stats:before{content:"";position:absolute;left:0;right:0;height:150px;background:linear-gradient(100deg,#071622,#0c2435);z-index:-1}.stat{height:78px;display:flex;align-items:center;gap:22px;padding:0 34px;border-right:1px solid var(--line)}.stat>b{font-size:38px;color:var(--cyan)}.stat .bolt{color:var(--green);font-size:50px}.stat strong{font-size:34px;display:block}.stat small{color:#d1dbe3}.values{text-align:right;padding-right:30px;line-height:1.55;color:#e6edf3}.values i{display:block;width:40px;height:3px;background:var(--green);margin:14px 0 0 auto}.dark-section{background:radial-gradient(circle at 25% 10%,#123047 0,#081724 43%,#06111b 100%)}.about{min-height:620px;padding:70px max(32px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}.about h2,.where h2,.services h2,.projects h2,.contact h2{font-size:clamp(44px,4.6vw,70px);line-height:1.02;letter-spacing:-.04em;margin:12px 0 25px}.about-copy>p:not(.eyebrow),.where-copy>p,.contact-copy>p{font-size:17px;line-height:1.6;color:#d1dae2;max-width:650px}.mini-features{display:grid;grid-template-columns:repeat(4,1fr);margin-top:44px}.mini-features span{color:var(--cyan);font-size:25px;text-align:center}.mini-features small{display:block;color:white;font-size:11px;margin-top:8px}.about-media{position:relative}.about-media>img{width:100%;height:500px;object-fit:cover;border-radius:4px}.media-card{position:absolute;right:-25px;bottom:34px;background:#0a1b29e8;border:1px solid var(--line);padding:25px;display:grid;gap:24px;width:250px;box-shadow:0 20px 50px #0006}.media-card span{font-size:13px}.where{min-height:560px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;background:linear-gradient(120deg,#071521,#102d43 55%,#07131e);overflow:hidden}.map-wrap{height:560px;position:relative}.italy-map{position:absolute;inset:0;background:radial-gradient(circle at 45% 50%,#135e7d88,transparent 45%)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(#5bd1ff0c 1px,transparent 1px),linear-gradient(90deg,#5bd1ff0c 1px,transparent 1px);background-size:30px 30px;transform:perspective(500px) rotateX(55deg) scale(1.5);opacity:.7}.boot{position:absolute;width:280px;height:380px;left:27%;top:60px;background:linear-gradient(140deg,#2c8aa4,#61e45c);clip-path:polygon(35% 0,64% 4%,76% 18%,65% 33%,74% 47%,88% 58%,74% 66%,57% 60%,49% 77%,70% 91%,59% 100%,40% 89%,30% 69%,19% 54%,29% 37%,18% 22%);filter:drop-shadow(0 0 15px #58e4c6) drop-shadow(0 0 40px #2bb8ff88)}.boot:after{content:"";position:absolute;inset:8px;background:#0a2334;clip-path:inherit}.boot i{position:absolute;z-index:2;left:var(--x);top:var(--y);width:16px;height:16px;border:4px solid var(--cyan);border-radius:50%;box-shadow:0 0 14px var(--cyan)}.island{position:absolute;background:#55d8aa;filter:drop-shadow(0 0 10px #4cf)}.sicily{width:120px;height:55px;left:28%;bottom:45px;clip-path:polygon(0 20%,70% 0,100% 50%,58% 75%,25% 100%)}.sardinia{width:45px;height:80px;left:20%;bottom:120px;border-radius:45%}.where-copy{padding:70px 8vw 70px 50px}.zones{display:flex;gap:30px;margin:30px 0;color:#eaf6fc}.zones span{font-size:14px}.services{padding:70px max(32px,calc((100vw - var(--max))/2)) 80px}.section-head{display:flex;align-items:end;justify-content:space-between}.section-head>p{color:#b8c5cf;font-size:14px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.service-card{display:block;border:1px solid #345066;background:#0a1a27;min-width:0;overflow:hidden;border-radius:5px;transition:.35s;color:inherit;text-decoration:none;cursor:pointer}.service-card:hover{transform:translateY(-9px);border-color:#63d8ff;box-shadow:0 18px 50px #0007}.service-card img{width:100%;height:230px;object-fit:cover;filter:saturate(.8)}.service-card div{padding:16px;min-height:190px;position:relative}.service-card h3{font-size:16px;line-height:1.28;margin:0 0 12px}.service-card p{font-size:12px;line-height:1.45;color:#c4ced6}.service-card b{position:absolute;right:14px;bottom:12px;font-size:22px}.projects{background:#f4f6f7;color:#0c2130;padding:90px max(32px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}.projects .eyebrow{color:#27858b}.projects-copy p:not(.eyebrow){color:#435563;line-height:1.6;font-size:16.5px}.outline.dark{border-color:#5b7584}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-grid figure{margin:0;position:relative;height:380px;overflow:hidden;border-radius:8px}.project-grid img{width:100%;height:100%;object-fit:cover;transition:.6s}.project-grid figure:hover img{transform:scale(1.06)}.project-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:45px 20px 18px;background:linear-gradient(transparent,#06111ddd);color:white}.project-grid small{display:block;color:#9ee89b;margin-top:5px}.contact{padding:75px max(32px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr .8fr .38fr;gap:55px;align-items:center}.contact h3{font-size:18px}.contact-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.contact-links a,.contact-links span{font-size:12px;font-weight:800;color:#fff}.contact-links small{display:block;font-weight:400;color:#9fafbb;margin-top:6px}.form{background:#0c2130;border:1px solid #254155;padding:28px;border-radius:6px}.form label{display:grid;gap:7px;font-size:11px;color:#c4d0d9;margin-bottom:14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form input,.form select,.form textarea{width:100%;background:#071724;border:1px solid #496071;color:white;padding:11px;border-radius:2px;outline:none}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--cyan)}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}.form .primary{width:100%;border-radius:5px}.form-msg{font-size:12px!important;margin:10px 0 0!important;color:#aee8a6!important}.contact-benefits{display:grid;gap:32px;color:#d9e4eb;font-size:13px}.contact-benefits span:first-letter{color:var(--cyan)}.site-footer{background:linear-gradient(180deg,#081826,#050d16);border-top:1px solid var(--line)}.footer-top{max-width:var(--max);margin:auto;padding:60px max(32px,calc((100vw - var(--max))/2)) 40px;display:grid;grid-template-columns:1fr 1.3fr .9fr;gap:40px;align-items:center}.footer-brand img{width:100%;max-width:230px;height:auto;object-fit:contain;filter:drop-shadow(0 0 24px #67e44322)}.footer-contact{display:grid;gap:16px}.footer-contact a,.footer-contact span{font-size:13px;font-weight:800;color:#fff;display:block}.footer-contact small{display:block;font-weight:400;color:#8fa0ad;margin-top:4px}.footer-hours{background:#0d2233;border:1px solid var(--line);border-radius:8px;padding:22px}.footer-hours h4{margin:0 0 12px;font-size:12px;letter-spacing:.14em;color:var(--cyan)}.footer-hours p{margin:0 0 16px;color:#d6e1e8;font-size:13px}.footer-hours .primary{width:100%}.footer-bottom{border-top:1px solid var(--line);padding:20px max(32px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;align-items:center;color:#7f929f;font-size:11px;max-width:var(--max);margin:auto}.footer-bottom nav{display:flex;gap:10px}.footer-bottom nav a{color:#b9c5ce}.footer-bottom nav a:hover{color:var(--cyan)}.whatsapp{position:fixed;z-index:60;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#27d367;color:white;font-size:28px;box-shadow:0 10px 30px #0008}.reveal,.reveal-left,.reveal-right{opacity:0;will-change:transform,opacity}.reveal{transform:translateY(85px)}.reveal-left{transform:translateX(-200px)}.reveal-right{transform:translateX(200px)}.in{opacity:1;transform:none;transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
@media(max-width:1100px){.topbar nav{display:none}.menu{display:block;margin-left:auto}.head-actions .outline{display:none}.topbar.open nav{display:flex;position:absolute;top:72px;left:0;right:0;background:#07131ef8;flex-direction:column;padding:25px 32px}.service-grid{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(3,1fr)}.values{display:none}.about,.where,.projects,.contact{grid-template-columns:1fr}.about{gap:40px}.where-copy{padding:50px}.map-wrap{height:450px}.contact-benefits{grid-template-columns:repeat(2,1fr)}.footer-top{grid-template-columns:1fr;text-align:center;gap:26px}.footer-contact{justify-items:center}.footer-bottom{flex-direction:column;gap:10px;text-align:center}.page-hero{padding-top:150px!important}}
@media(max-width:700px){.topbar{height:88px;padding:0 18px}.brand{width:190px}.brand img{height:76px}.phone span{display:none}.hero{height:760px}.hero-content{width:calc(100% - 36px);margin-top:50px}.hero h1{font-size:45px}.lead{font-size:15px}.hero-buttons{flex-direction:column;align-items:stretch}.hero-note{display:none}.stats{grid-template-columns:1fr;min-height:auto;padding:18px}.stats:before{height:100%;min-height:290px}.stat{border-right:0;border-bottom:1px solid var(--line);padding:16px}.about,.services,.projects,.contact{padding:55px 20px}.about-media>img{height:390px}.media-card{right:8px;bottom:8px;width:210px}.mini-features{gap:8px}.where{grid-template-columns:1fr}.map-wrap{height:380px}.boot{left:20%;transform:scale(.8);transform-origin:top left}.where-copy{padding:45px 22px}.zones{display:grid;grid-template-columns:1fr 1fr}.section-head{display:block}.service-grid{grid-template-columns:1fr 1fr}.service-card img{height:150px}.project-grid{grid-template-columns:1fr}.project-grid figure{height:250px}.contact-links{grid-template-columns:1fr}.two{grid-template-columns:1fr}.contact-benefits{grid-template-columns:1fr 1fr}.whatsapp{width:50px;height:50px}.about h2,.where h2,.services h2,.projects h2,.contact h2{font-size:40px}}
@media(max-width:440px){.service-grid{grid-template-columns:1fr}.hero h1{font-size:39px}.head-actions{display:none}.contact-benefits{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal-left,.reveal-right{opacity:1;transform:none}.in{transition:none}}

/* --- v3 additions: nav active, pagine interne, mappa 3D, footer, modale contatti --- */
.page-hero{padding-top:190px}
.topbar nav a.active{color:var(--green)}.topbar nav a.active:after{width:100%;background:var(--green)}
.inner .topbar{background:#07131ef2;backdrop-filter:blur(16px);border-bottom:1px solid var(--line);height:86px}
.inner .topbar .brand img{height:74px}
.page-banner{padding:170px max(32px,calc((100vw - var(--max))/2)) 55px;background:radial-gradient(circle at 25% 10%,#123047 0,#081724 43%,#06111b 100%)}
.page-banner .eyebrow{color:#b9e7c2}
.page-banner h1{font-size:clamp(32px,4vw,54px);letter-spacing:-.03em;margin:10px 0 14px}
.page-banner p{color:#c7d3db;max-width:680px;font-size:16px;line-height:1.6}
.italy-map3d{width:min(360px,90%);margin:0 auto;display:block;filter:drop-shadow(0 26px 34px #000a)}
.map-perspective{position:relative;perspective:900px}
.map-wrap .italy-svg{width:min(380px,92%);max-width:380px;margin:0 auto;display:block;height:auto}
.pin .ring{fill:none;stroke:#55c9ff;stroke-width:1.6;opacity:.85;animation:pinpulse 2.4s ease-out infinite;transform-origin:center}
.pin .dot{fill:#79f2c0}
.pin text{fill:#eaf6fc;font-size:11px;font-weight:700}
@keyframes pinpulse{0%{transform:scale(.35);opacity:.9}70%{transform:scale(2.1);opacity:0}100%{opacity:0}}
.zone-legend{display:flex;flex-wrap:wrap;gap:14px 26px;margin:26px 0}
.zone-legend span{font-size:13px;color:#eaf6fc;display:flex;align-items:center;gap:8px}
.zone-legend i{width:9px;height:9px;border-radius:50%;background:var(--cyan);display:inline-block;box-shadow:0 0 8px var(--cyan)}
.regions-list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px}
.regions-list div{background:#0d2233;border:1px solid var(--line);border-radius:8px;padding:16px;font-size:13px;color:#d6e1e8}
.regions-list b{display:block;color:var(--cyan);font-size:12px;letter-spacing:.08em;margin-bottom:8px}
.contact-cta-box{background:linear-gradient(120deg,#0e2334,#123047);border:1px solid var(--line);border-radius:12px;padding:56px;text-align:center;max-width:760px;margin:0 auto}
.contact-cta-box h2{margin:0 0 14px}
.contact-cta-box p{color:#cfdbe3;max-width:520px;margin:0 auto 30px;line-height:1.6}
.modal-overlay{position:fixed;inset:0;background:#020609e8;backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:300;padding:20px}
.modal-overlay.open{display:flex}
.modal-box{background:#0c2130;border:1px solid #254155;border-radius:10px;max-width:600px;width:100%;padding:36px;position:relative;max-height:88vh;overflow:auto}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:0;color:#cfe0ea;font-size:26px;cursor:pointer;line-height:1}
.modal-box h3{margin-top:0}
.privacy-body{max-width:820px;margin:0 auto;padding:60px max(32px,calc((100vw - var(--max))/2)) 100px;color:#d1dae2;line-height:1.7}
.privacy-body h2{margin-top:34px}
@media(max-width:1100px){.regions-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.page-banner{padding:130px 20px 40px}.contact-cta-box{padding:36px 22px}.modal-box{padding:26px}.regions-list{grid-template-columns:1fr 1fr}}
.quicklinks{padding:70px max(32px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:repeat(4,1fr);gap:20px;background:#0a1a27}
.quicklinks a{background:#0e2237;border:1px solid #345066;border-radius:6px;padding:28px 22px;color:#fff;transition:.3s;display:block}
.quicklinks a:hover{transform:translateY(-6px);border-color:#63d8ff;box-shadow:0 18px 40px #0007}
.quicklinks span{font-size:26px;color:var(--cyan);display:block;margin-bottom:14px}
.quicklinks b{display:block;font-size:15px;margin-bottom:8px}
.quicklinks small{color:#aebdca;font-size:12.5px;line-height:1.55;display:block}
.final-cta{padding:80px max(32px,calc((100vw - var(--max))/2));text-align:center}
@media(max-width:1100px){.quicklinks{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.quicklinks{grid-template-columns:1fr;padding:50px 20px}}

/* --- v4: logo icona+testo, home completa, animazioni potenziate --- */
.brand{width:auto;display:flex;align-items:center;gap:14px}
.brand .logo-icon{height:64px;width:auto;object-fit:contain;filter:drop-shadow(0 0 14px #67e44333);transition:.35s}
.topbar.scrolled .brand .logo-icon{height:50px}
.brand .brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand .brand-text b{font-size:26px;letter-spacing:.01em;font-weight:800;background:linear-gradient(100deg,#6fe0ff 0%,#67e443 100%);-webkit-background-clip:text;background-clip:text;color:transparent;transition:.35s}
.topbar.scrolled .brand .brand-text b{font-size:21px}
.brand .brand-text small{font-size:9.5px;letter-spacing:.045em;color:#aebdca;font-weight:600;margin-top:2px;white-space:nowrap}
@media(max-width:700px){.brand .logo-icon{height:46px}.brand .brand-text b{font-size:19px}.brand .brand-text small{display:none}}

.footer-brand{display:flex;align-items:center;gap:16px}
.footer-brand .logo-icon{height:74px;width:auto;object-fit:contain;filter:drop-shadow(0 0 20px #67e44333)}
.footer-brand .brand-text b{display:block;font-size:28px;font-weight:800;background:linear-gradient(100deg,#6fe0ff 0%,#67e443 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.footer-brand .brand-text small{display:block;font-size:11.5px;color:#8fa0ad;margin-top:4px;font-weight:600;letter-spacing:.03em}
@media(max-width:1100px){.footer-brand{margin:0 auto}}

/* stats section reveal + numeri piu' vistosi */
.stats{transition:.3s}
.stat strong{font-size:38px;text-shadow:0 0 22px #55c9ff44}
.stat strong span{display:inline-block}
.stat.counting strong span{animation:countglow 2.6s ease-out}
@keyframes countglow{0%{opacity:.3;transform:translateY(6px) scale(.9)}30%{opacity:1}100%{opacity:1;transform:none}}

/* separatore leggero fra sezioni della home lunga */
.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);max-width:var(--max);margin:0 auto}

/* --- anteprima SPA (solo per il file di preview, non nel sito reale multi-pagina) --- */
.page-view{display:none}
.page-view.active{display:block}

/* --- v5: layout servizi 3x2, gallery progetti 6 immagini, icone moderne, mappa 3D migliorata --- */
.project-grid.grid-6{grid-template-columns:repeat(3,1fr)}
.project-grid.grid-6 figure{height:230px}
@media(max-width:1100px){.project-grid.grid-6{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.project-grid.grid-6{grid-template-columns:1fr}}

.mini-features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.mini-features div{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.mini-features svg{width:30px;height:30px;stroke:var(--cyan);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px #55c9ff44)}
.mini-features b{font-size:16px;font-weight:800;color:#fff;letter-spacing:.01em}
@media(max-width:700px){.mini-features{grid-template-columns:1fr 1fr}}

.media-card span{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.01em}
.media-card svg{width:22px;height:22px;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* mappa 3D con effetto estruso */
.map-perspective{perspective:none}
.italy-svg{transform:none}
.landmass .extrude{opacity:.95}
.pin .stem{stroke:#55c9ff88;stroke-width:1.2}
.pin .base{fill:#03101a;opacity:.55}

/* --- v7: mappa Italia come immagine reale (niente SVG/3D CSS) --- */
.map-photo{position:relative;max-width:440px;margin:0 auto}
.map-photo img{display:block;width:100%;height:auto;filter:drop-shadow(0 26px 40px #000a)}
.map-pin-labels{position:absolute;inset:0;pointer-events:none}
.map-pin-labels span{position:absolute;transform:translate(-50%,-100%);background:#04121cdd;border:1px solid rgba(255,255,255,.18);color:#eaf6fc;font-size:11px;font-weight:800;letter-spacing:.03em;padding:4px 10px;border-radius:999px;white-space:nowrap}
@media(max-width:700px){.map-photo{max-width:94%}.map-pin-labels span{font-size:9.5px;padding:3px 8px}}

/* --- v8: mappa 3D interattiva vera (MapLibre), centrata fra i testi --- */
.where-3d{display:block;padding:80px max(32px,calc((100vw - var(--max))/2))}
.where-top{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;max-width:var(--max);margin:0 auto}
.where-top .map3d-wrap{margin:10px 0 0;max-width:100%}
.where-top .where-intro{text-align:left;margin:0;max-width:100%;padding-top:58px}
@media(max-width:1100px){.where-top{grid-template-columns:1fr;gap:36px}.where-top .where-intro{text-align:center}}
.where-intro{max-width:720px;margin:0 auto;text-align:center}
.where-intro p:not(.eyebrow){color:#c7d3db;font-size:16px;line-height:1.6;margin-top:14px}
.map3d-wrap{max-width:960px;margin:46px auto 20px}
.map3d{width:100%;height:460px;border-radius:14px;overflow:hidden;box-shadow:0 30px 60px #000a,0 0 0 1px rgba(255,255,255,.08);background:#0a1b29}
.map3d-hint{text-align:center;color:#7f929f;font-size:12px;margin-top:12px}
.map3d-marker{width:16px;height:16px;border-radius:50%;background:#79f2c0;border:2px solid #0a1b29;box-shadow:0 0 0 4px #55c9ff55,0 0 14px #79f2c0;cursor:pointer}
.map3d-marker.hq{width:20px;height:20px;background:#67e443;box-shadow:0 0 0 5px #67e44355,0 0 18px #67e443}
.where-details{max-width:900px;margin:0 auto;text-align:center}
.where-details .zone-legend{justify-content:center}
.where-details .regions-list{text-align:left}
@media(max-width:700px){.map3d{height:340px}.where-3d{padding:50px 20px}}

/* --- v9: footer più leggibile con icone, card professionale con saltello, animazioni servizi/lavori, pin regioni, sezione perche-noi --- */
.footer-contact a,.footer-contact span{font-size:16px;font-weight:800;color:#fff;display:flex;align-items:center;gap:9px}
.footer-contact svg{width:14px;height:14px;stroke:#9fb0bb;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;opacity:.85}
.footer-contact small{display:block;font-weight:400;color:#8fa0ad;margin-top:4px;font-size:12.5px;margin-left:23px}
.footer-hours h4{margin:0 0 14px;font-size:13px;letter-spacing:.14em;color:var(--cyan)}
.footer-hours p{margin:0 0 18px;color:#d6e1e8;font-size:16px;display:flex;align-items:center;gap:9px}
.footer-hours svg{width:14px;height:14px;stroke:#9fb0bb;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.footer-bottom{font-size:12.5px}
.footer-bottom nav a{font-size:12.5px}

/* card "il quadrato" chi siamo: piu' professionale + entrata a saltello */
.media-card{background:#0a1b2988;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.media-card span{padding:2px 0}
.reveal-bounce{opacity:0;transform:translateY(86px) scale(.92)}
.reveal-bounce.in{animation:bounceIn 1.1s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes bounceIn{0%{opacity:0;transform:translateY(86px) scale(.92)}55%{opacity:1;transform:translateY(-9px) scale(1.035)}78%{transform:translateY(4px) scale(.985)}100%{opacity:1;transform:translateY(0) scale(1)}}

/* servizi: 3 dall'alto, 3 dal basso */
.reveal-top{opacity:0;transform:translateY(-200px)}
.reveal-top.in{opacity:1;transform:none;transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.16,.8,.3,1)}
.reveal-bottom{opacity:0;transform:translateY(200px)}
.reveal-bottom.in{opacity:1;transform:none;transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.16,.8,.3,1)}

/* lavori: testo da sinistra (gia' reveal-left), immagini da destra */
.project-grid.reveal-right{opacity:0;transform:translateX(200px)}
.project-grid.reveal-right.in{opacity:1;transform:none;transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}

/* pin sulla mappa, uno per regione */
.map-photo{position:relative}
.region-pin{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#79f2c0;box-shadow:0 0 0 3px #55c9ff44,0 0 10px #79f2c0cc;cursor:default;transition:.2s}
.region-pin:hover{transform:scale(1.6)}

/* sezione "perche' sceglierci" */
.why-us{padding:90px max(32px,calc((100vw - var(--max))/2));background:#0a1a27}
.why-us .why-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:20px}
.why-us p:not(.eyebrow){color:#c7d3db;font-size:16px;line-height:1.65;margin-bottom:18px}
.why-checklist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:14px}
.why-checklist li{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:#eaf6fc;font-weight:600}
.why-checklist svg{width:22px;height:22px;flex-shrink:0;stroke:var(--green);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.why-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.why-tags span{background:#123047;border:1px solid var(--line);color:#cfe3ea;font-size:12.5px;font-weight:700;padding:8px 14px;border-radius:999px}
@media(max-width:1100px){.why-us .why-grid{grid-template-columns:1fr}}

/* --- riquadri segnaposto galleria lavori (in attesa delle foto) --- */
.ph-figure{margin:0;height:380px;border-radius:8px;overflow:hidden}
.ph-box{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:repeating-linear-gradient(135deg,#e2e6e8,#e2e6e8 12px,#eceff0 12px,#eceff0 24px);border:2px dashed #b7c2c8;color:#7c8a91}
.ph-box svg{width:40px;height:40px;stroke:#8fa0ad;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ph-box span{font-size:13px;font-weight:700;letter-spacing:.02em}
@media(max-width:700px){.ph-figure{height:260px}}
.service-grid .service-card:nth-child(3n+1){transition-delay:0s}
.service-grid .service-card:nth-child(3n+2){transition-delay:.12s}
.service-grid .service-card:nth-child(3n+3){transition-delay:.24s}

/* --- v12: eyebrow hero 14px, dove-lavoriamo direzioni invertite, immagine perche-noi, footer icone 14px --- */
.why-visual{display:flex;flex-direction:column;gap:28px}
.why-photo{width:100%;height:260px;object-fit:cover;border-radius:12px;box-shadow:0 26px 50px #000a,0 0 0 1px rgba(255,255,255,.06)}
.reveal-bounce-right{opacity:0;transform:translateX(200px) scale(.94)}
.reveal-bounce-right.in{animation:bounceInRight 1.15s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes bounceInRight{0%{opacity:0;transform:translateX(200px) scale(.94)}55%{opacity:1;transform:translateX(-14px) scale(1.02)}78%{transform:translateX(6px) scale(.99)}100%{opacity:1;transform:translateX(0) scale(1)}}
@media(max-width:1100px){.why-photo{height:220px}}


/* --- v14: eyebrow "dove lavoriamo" con saltello da sinistra, spazio pulsante --- */
.dove-eyebrow{text-align:left;display:block;margin-top:0;margin-bottom:30px}
.reveal-bounce-left{opacity:0;transform:translateX(-210px) scale(.9)}
.reveal-bounce-left.in{animation:bounceInLeft 1.15s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-210px) scale(.9)}55%{opacity:1;transform:translateX(16px) scale(1.04)}78%{transform:translateX(-7px) scale(.98)}100%{opacity:1;transform:translateX(0) scale(1)}}
.cta-spaced{margin-top:28px;display:inline-block}

/* --- v21: zoom foto chi-siamo, card cliccabili servizi --- */
.reveal-zoom{opacity:0;transform:scale(.68)}
.reveal-zoom.in{opacity:1;transform:scale(1);transition:opacity 1.15s ease,transform 1.15s cubic-bezier(.16,.8,.3,1)}

/* --- v23: regions-list spostato accanto al testo "Presenti in tutta Italia" su desktop --- */
.where-intro .regions-list{grid-template-columns:repeat(2,1fr);margin-top:26px;gap:12px}
.where-intro .regions-list div{padding:13px 14px;font-size:12.5px}
@media(max-width:1100px){.where-intro .regions-list{grid-template-columns:repeat(2,1fr)}}

/* --- v25: sezione Testimonianze e FAQ --- */
.testimonials{padding:90px max(32px,calc((100vw - var(--max))/2))}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:var(--max);margin:30px auto 0}
.testimonial-card{background:#0e2237;border:1px solid var(--line);border-radius:10px;padding:30px;margin:0;display:flex;flex-direction:column;gap:18px}
.testimonial-card .stars{display:flex;gap:3px}
.testimonial-card .star{width:16px;height:16px;fill:#ffcc4d}
.testimonial-card blockquote{margin:0;font-size:15px;line-height:1.6;color:#e2ebf1;flex:1}
.testimonial-card figcaption b{display:block;font-size:14px;color:#fff}
.testimonial-card figcaption small{color:#8fa0ad;font-size:12.5px}
@media(max-width:1100px){.testimonial-grid{grid-template-columns:1fr}}

.faq{padding:90px max(32px,calc((100vw - var(--max))/2));background:#0a1a27}
.faq-list{max-width:820px;margin:30px auto 0;display:grid;gap:14px}
.faq-item{background:#0e2237;border:1px solid var(--line);border-radius:8px;padding:20px 24px}
.faq-item summary{cursor:pointer;font-weight:700;font-size:15.5px;color:#fff;list-style:none;position:relative;padding-right:30px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";position:absolute;right:0;top:-2px;font-size:22px;color:var(--cyan);transition:.3s}
.faq-item[open] summary:after{transform:rotate(45deg)}
.faq-item p{margin:14px 0 0;color:#c7d3db;font-size:14.5px;line-height:1.6}

/* --- v26: campo honeypot invisibile anti-spam --- */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* --- v27: banner cookie --- */
.cookie-banner{position:fixed;left:0;right:0;bottom:-200px;z-index:250;background:#07131ef5;backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:20px max(24px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between;gap:24px;transition:bottom .5s ease}
.cookie-banner.show{bottom:0}
.cookie-banner p{margin:0;font-size:13px;color:#d6e1e8;line-height:1.5;max-width:800px}
.cookie-banner a{color:var(--cyan);text-decoration:underline}
.cookie-banner .cookie-actions{flex-shrink:0}
.cookie-banner button{padding:11px 26px;border-radius:999px;font-size:13px}
@media(max-width:700px){.cookie-banner{flex-direction:column;align-items:stretch;text-align:center;gap:14px;padding:18px 20px}.cookie-banner button{width:100%}}
