@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/instrumentserif-regular.woff2') format('woff2');}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/instrumentserif-italic.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('/assets/fonts/dmsans-latin.woff2') format('woff2');}
.w2{ --acc:#0E4D64; --acc2:#1C7A93; --aqua:#7fd0e6; --navy:#06212f; --bg:#F4F7F8; --bg2:#E9F0F2; --text:#14202A; --muted:#5A6B73; --line:rgba(20,32,42,.10);
  font-family:'DM Sans',sans-serif; color:var(--text); border-radius:14px; overflow:hidden; box-shadow:0 40px 100px rgba(6,33,47,.22); }
.w2 .serif{ font-family:'Instrument Serif',Georgia,serif; font-weight:400; }
.w2 .eye{ font-size:11px; letter-spacing:3px; text-transform:uppercase; display:inline-flex; align-items:center; gap:10px; }
.w2 .eye::before{ content:''; width:28px; height:1px; background:currentColor; opacity:.6; }
.w2 h2{ font-family:'Instrument Serif',serif; font-weight:400; font-size:44px; line-height:1.03; margin:12px 0 14px; }
.w2 p{ color:var(--muted); font-size:14px; line-height:1.7; text-align:justify; }
.w2 .btn{ display:inline-block; padding:14px 28px; border-radius:40px; font-size:13px; font-weight:600; text-decoration:none; transition:.3s cubic-bezier(.2,.8,.2,1); }
.w2 .btn.primary{ background:#fff; color:var(--acc); }
.w2 .btn.primary:hover{ transform:translateY(-3px) scale(1.03); box-shadow:0 16px 36px rgba(0,0,0,.3); }
.w2 .btn.ghost{ border:1px solid rgba(255,255,255,.55); color:#fff; margin-left:10px; }
.w2 .btn.ghost:hover{ background:rgba(255,255,255,.12); }
.w2 .btn.solid{ background:var(--acc); color:#fff; }
.w2 .btn.solid:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(14,77,100,.4); }

/* reveal */
.w2.js .reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.w2.js .reveal.in{ opacity:1; transform:none; }
.w2.js .reveal.d1{ transition-delay:.12s } .w2.js .reveal.d2{ transition-delay:.24s } .w2.js .reveal.d3{ transition-delay:.36s }

/* HERO */
.w2 .hero{ position:relative; min-height:100vh; display:flex; flex-direction:column; color:#fff; overflow:hidden; }
.w2 .hero::before{ content:''; position:absolute; inset:0; background:image-set(url('/assets/img/hero-1920.webp') type('image/webp'), url('/assets/img/hero-1920.jpg') type('image/jpeg')) center/cover; animation:kb 22s ease-in-out infinite alternate; z-index:0; }
.w2 .hero::after{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(115deg, rgba(4,22,32,.95) 0%, rgba(8,41,59,.66) 46%, rgba(28,122,147,.18) 100%); }
@keyframes kb{ from{ transform:scale(1) translateY(0) } to{ transform:scale(1.14) translateY(-12px) } }
.w2 .topnav{ position:relative; z-index:3; display:flex; justify-content:space-between; align-items:center; padding:24px 44px; }
.w2 .topnav .brand{ font-weight:700; letter-spacing:4px; font-size:16px; }
.w2 .topnav .links{ display:flex; gap:28px; font-size:13px; align-items:center; }
.w2 .topnav .links a{ color:rgba(255,255,255,.9); text-decoration:none; transition:.2s; }
.w2 .topnav .links a:hover{ color:#fff }
.w2 .topnav .pill{ border:1px solid rgba(255,255,255,.5); padding:9px 18px; border-radius:30px; }
.w2 .hero-in{ position:relative; z-index:2; margin-top:auto; padding:0 44px 26px; }
.w2 .hero .eye{ color:var(--aqua); }
.w2 .hero h1{ font-family:'Instrument Serif',serif; font-weight:400; font-size:72px; line-height:1.0; margin:18px 0 20px; max-width:16ch; letter-spacing:-.5px; }
.w2 .hero h1 em{ font-style:italic; background:linear-gradient(90deg,var(--aqua),#bfe2ea); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.w2 .hero p{ color:#e4f0f3; font-size:17px; max-width:56ch; margin-bottom:26px; }
.w2 .glass{ display:flex; margin-top:36px; border-radius:16px; overflow:hidden; backdrop-filter:blur(10px); background:rgba(7,28,40,.55); border:1px solid rgba(255,255,255,.22); width:fit-content; text-align:center; }
.w2 .glass > div{ padding:16px 30px; border-right:1px solid rgba(255,255,255,.16); }
.w2 .glass > div:last-child{ border-right:0; }
.w2 .glass .n{ font-family:'Instrument Serif',serif; font-size:30px; }
.w2 .glass .l{ font-size:11px; color:#d8eef4; letter-spacing:.5px; }
.w2 .cue{ position:absolute; z-index:3; bottom:18px; left:50%; transform:translateX(-50%); width:26px; height:42px; border:1.5px solid rgba(255,255,255,.6); border-radius:14px; }
.w2 .cue::before{ content:''; position:absolute; left:50%; top:8px; width:3px; height:7px; margin-left:-1.5px; background:#fff; border-radius:2px; animation:cue 1.6s ease-in-out infinite; }
@keyframes cue{ 0%{ opacity:0; transform:translateY(0) } 30%{ opacity:1 } 100%{ opacity:0; transform:translateY(14px) } }

/* MARQUEE */
.w2 .marq{ background:var(--acc); color:#e3f2f6; overflow:hidden; white-space:nowrap; padding:11px 0; }
.w2 .marq .trk{ display:flex; width:max-content; animation:mv 34s linear infinite; }
.w2 .marq .grp{ display:flex; align-items:center; gap:26px; padding-right:26px; font-size:12px; letter-spacing:2px; text-transform:uppercase; }
.w2 .marq .grp span{ opacity:1 } .w2 .marq .dot{ color:var(--aqua); opacity:1 }
@keyframes mv{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }

/* SERVIZI bento */
.w2 .sec{ padding:70px 44px; background:var(--bg); }
.w2 .sec .eye{ color:var(--acc); }
.w2 .bento{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:32px; }
.w2 .tile{ position:relative; border-radius:18px; overflow:hidden; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; }
.w2 .tile .bgimg{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease; }
.w2 .tile:hover .bgimg{ transform:scale(1.08); }
.w2 .tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,33,47,.32) 0%, rgba(6,33,47,.76) 52%, rgba(6,33,47,.97) 100%); }
.w2 .tile > *{ position:relative; z-index:2; }
.w2 .tile .tag, .w2 .tile h3, .w2 .tile p{ text-shadow:0 1px 12px rgba(0,0,0,.65); }
.w2 .tile .tag{ font-size:10px; letter-spacing:2px; text-transform:uppercase; color:#d8eef4; }
.w2 .tile h3{ font-family:'Instrument Serif',serif; font-weight:400; margin:6px 0 4px; }
.w2 .tile{ min-height:380px; }
.w2 .immo h3, .w2 .web h3{ font-size:27px }
.w2 .immo .bgimg{ background-image:url('/assets/img/immo.webp') }
.w2 .web .bgimg{ background-image:url('/assets/img/web.webp') }
.w2 .tile p{ color:rgba(255,255,255,.92); font-size:12px; }
.w2 .softnote{ margin-top:24px; font-size:13px; color:var(--muted); text-align:center; }
.w2 .softnote b{ color:var(--acc); }

/* DEEP immobiliare */
.w2 .split{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.w2 .frame{ position:relative; }
.w2 .frame img{ width:100%; border-radius:18px; box-shadow:0 30px 70px rgba(6,33,47,.28); display:block; position:relative; z-index:2; }
.w2 .frame::before{ content:''; position:absolute; left:-16px; top:-16px; width:120px; height:120px; border-top:2px solid var(--acc2); border-left:2px solid var(--acc2); border-radius:6px 0 0 0; z-index:1; }
.w2 .feat{ columns:2; column-gap:26px; margin:16px 0 0; padding:0; list-style:none; }
.w2 .feat li{ font-size:13px; padding:8px 0; border-bottom:1px solid var(--line); break-inside:avoid; }
.w2 .feat li.wide{ column-span:all; }
.w2 .feat li::before{ content:'—'; color:var(--acc2); margin-right:8px; }

/* DEEP web dark + blobs */
.w2 .dark{ position:relative; background:var(--navy); color:#fff; padding:74px 44px; overflow:hidden; }
.w2 .blob{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; z-index:0; }
.w2 .blob.b1{ width:340px; height:340px; background:#0E6a86; top:-80px; right:-60px; animation:fl 9s ease-in-out infinite alternate; }
.w2 .blob.b2{ width:280px; height:280px; background:#103a52; bottom:-90px; left:-40px; animation:fl 11s ease-in-out infinite alternate-reverse; }
@keyframes fl{ from{ transform:translate(0,0) } to{ transform:translate(30px,24px) } }
.w2 .dark > *{ position:relative; z-index:1; }
.w2 .dark .eye{ color:var(--aqua); } .w2 .dark h2{ color:#fff } .w2 .dark p{ color:rgba(255,255,255,.8) }
.w2 .dark .frame img{ box-shadow:0 30px 70px rgba(0,0,0,.5) } .w2 .dark .frame::before{ border-color:var(--aqua) }
.w2 .dark .feat li{ color:rgba(255,255,255,.92); border-bottom:1px solid rgba(255,255,255,.14); }

/* STATS */
.w2 .band{ position:relative; padding:66px 44px; color:#fff; text-align:center;
  background:linear-gradient(rgba(6,33,47,.84),rgba(6,33,47,.84)), url('/assets/img/band.webp') center/cover fixed; }
.w2 .band .row{ display:flex; justify-content:center; gap:72px; }
.w2 .band .n{ font-family:'Instrument Serif',serif; font-size:56px; line-height:1; }
.w2 .band .l{ font-size:12px; color:var(--aqua); letter-spacing:1.5px; margin-top:8px; }

/* CHI */
.w2 .chi{ position:relative; padding:84px 44px; background:#fff; text-align:center; overflow:hidden; }
.w2 .chi .wm{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Instrument Serif',serif; font-size:160px; color:rgba(14,77,100,.05); white-space:nowrap; }
.w2 .chi .in2{ position:relative; }
.w2 .chi .greek{ font-family:'Instrument Serif',serif; font-size:30px; color:var(--acc); font-style:italic; }
.w2 .chi h2{ max-width:20ch; margin:10px auto 14px; } .w2 .chi p{ max-width:62ch; margin:0 auto; font-size:15px; }

/* CONTATTI */
.w2 .contact{ padding:70px 44px; background:var(--bg2); display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:start; }
.w2 .form{ background:#fff; border-radius:18px; padding:30px; box-shadow:0 26px 60px rgba(6,33,47,.12); }
.w2 .field{ border:1px solid var(--line); border-radius:11px; padding:14px; font-size:13px; color:var(--muted); margin-bottom:13px; }
.w2 .cinfo h3{ font-family:'Instrument Serif',serif; font-weight:400; font-size:26px; color:var(--acc); }
.w2 .footer{ background:#041722; color:#9fc0cc; font-size:11px; line-height:1.8; padding:26px 44px; text-align:center; }
.w2 .footer b{ color:#cfe3ea; }

.w2 .burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.w2 .burger span{ width:24px; height:2px; background:#fff; border-radius:2px; }
.w2 .mobnav{ position:fixed; inset:0; background:rgba(6,33,47,.97); backdrop-filter:blur(6px); z-index:60; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.w2 .mobnav.open{ opacity:1; pointer-events:auto; }
.w2 .mobnav a{ color:#eaf4f7; text-decoration:none; font-family:'Instrument Serif',serif; font-size:30px; }
.w2 .mobnav .close{ position:absolute; top:20px; right:24px; background:none; border:0; color:#fff; font-size:34px; line-height:1; cursor:pointer; }
@media (max-width:760px){
  .w2 .topnav{ padding:16px 20px; }
  .w2 .topnav .links{ display:none; }
  .w2 .burger{ display:flex; }
  .w2 .hero-in{ padding:0 22px 26px; }
  .w2 .hero h1{ font-size:40px; max-width:100%; }
  .w2 .hero p{ font-size:15px; max-width:100%; }
  .w2 .glass{ width:100%; }
  .w2 .glass > div{ flex:1; padding:12px 6px; }
  .w2 .glass .n{ font-size:24px; }
  .w2 .sec,.w2 .dark,.w2 .chi{ padding:46px 22px; }
  .w2 .band{ padding:46px 22px; }
  .w2 .bento{ grid-template-columns:1fr; }
  .w2 .tile{ min-height:300px; }
  .w2 .split{ grid-template-columns:1fr; gap:24px; }
  .w2 .dark .frame{ order:-1; }
  .w2 h2{ font-size:30px; }
  .w2 .feat{ columns:1; }
  .w2 .band .row{ gap:30px; flex-wrap:wrap; }
  .w2 .band .n{ font-size:40px; }
  .w2 .contact{ grid-template-columns:1fr; gap:26px; }
  .w2 .cinfo{ text-align:left; }
  .w2 .chi .wm{ font-size:92px; }
}
@media (max-width:430px){
  .w2 .hero h1{ font-size:33px; }
  .w2 h2{ font-size:26px; }
  .w2 .band .row{ gap:20px; }
}

@media (prefers-reduced-motion: reduce){
  .w2 *, .w2 *::before, .w2 *::after{ animation:none !important; transition:none !important; }
  .w2 .reveal{ opacity:1 !important; transform:none !important; }
}

.cookie-banner{ position:fixed; left:16px; right:16px; bottom:16px; max-width:760px; margin:0 auto; z-index:200;
  background:#06212f; color:#dceef3; border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:16px 18px;
  display:flex; gap:14px; align-items:center; justify-content:space-between; flex-wrap:wrap; box-shadow:0 20px 50px rgba(0,0,0,.35); font-family:'DM Sans',sans-serif; }
.cookie-banner p{ margin:0; font-size:13px; color:#dceef3; text-align:left; }
.cookie-banner a{ color:#7fd0e6; }
.cb-actions{ display:flex; gap:10px; }
.cookie-banner button{ border:0; border-radius:24px; padding:9px 18px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; }
.cb-no{ background:transparent; color:#dceef3; border:1px solid rgba(255,255,255,.4) !important; }
.cb-yes{ background:#fff; color:#0E4D64; }

/* Pagine legali (privacy / cookie) */
.w2 .legal{ max-width:860px; margin:0 auto; padding-top:54px; padding-bottom:54px; }
.w2 .legal h1{ font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-size:40px; color:var(--acc); margin:8px 0 6px; }
.w2 .legal .lead{ font-size:15px; line-height:1.7; color:var(--text); text-align:left; }
.w2 .legal .updated{ font-size:12px; color:var(--muted); margin:6px 0 22px; text-align:left; }
.w2 .legal h2{ font-family:'DM Sans',sans-serif; font-size:18px; font-weight:700; color:var(--acc); margin:28px 0 8px; }
.w2 .legal h3{ font-size:15px; font-weight:600; color:var(--text); margin:18px 0 6px; }
.w2 .legal p, .w2 .legal li{ font-size:14px; line-height:1.7; color:var(--text); text-align:left; }
.w2 .legal ul, .w2 .legal ol{ padding-left:20px; margin:6px 0; }
.w2 .legal li{ margin:5px 0; }
.w2 .legal a{ color:var(--acc2); }
.w2 .legal code{ background:var(--bg2); padding:1px 6px; border-radius:4px; font-size:12.5px; color:var(--acc); }
.w2 .legal table{ width:100%; border-collapse:collapse; margin:12px 0; font-size:12.5px; }
.w2 .legal th, .w2 .legal td{ border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
.w2 .legal th{ background:var(--bg2); color:var(--acc); font-weight:600; }
.w2 .legal .back{ margin-top:26px; }
@media (max-width:760px){
  .w2 .legal{ padding-left:22px; padding-right:22px; }
  .w2 .legal h1{ font-size:32px; }
  .w2 .legal thead{ display:none; }
  .w2 .legal table, .w2 .legal tbody, .w2 .legal tr, .w2 .legal td{ display:block; width:auto; }
  .w2 .legal tr{ border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin:0 0 12px; }
  .w2 .legal td{ border:0; padding:3px 0; }
  .w2 .legal td:first-child{ font-weight:700; color:var(--acc); }
}
