/* Montserrat self-hosted: zero richieste a CDN esterni */
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('/fonts/montserrat-var.woff2') format('woff2-variations');
}
/* cursor espliciti su tutto ciò che è cliccabile */
[data-go],[data-wnext],[data-wgo],[data-reqshow],[data-wreset],.langsel{cursor:pointer;}
  :root{
    --ink:#0A1128; --navy:#122350; --blue:#16307A; --blue2:#2C57B8; --gold:#E4A93C; --gold2:#F0C05C;
    --paper:#F7F4ED; --paper2:#EFEAE0; --card:#FFFFFF; --line:#E4DECE; --mut:#6E6A5E; --tx:#221E33;
    --green:#1F7A5C; --cream:#F3EFE3;
    --sans:'Montserrat','Avenir Next','Century Gothic','Segoe UI',system-ui,sans-serif;
    --sh:0 2px 4px rgba(10,17,40,.05), 0 24px 60px rgba(10,17,40,.10);
    --sh2:0 2px 4px rgba(10,17,40,.06), 0 32px 72px rgba(10,17,40,.16);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--sans); color:var(--tx); background:var(--paper); line-height:1.65; -webkit-font-smoothing:antialiased;}
  .wrap{max-width:1140px; margin:0 auto; padding:0 28px;}
  ::selection{background:var(--gold); color:var(--ink);}

  /* ---------- tipografia ---------- */
  .kick{display:inline-flex; align-items:center; gap:10px; font-size:.72rem; font-weight:800; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:16px;}
  .kick::before{content:""; width:9px; height:9px; border-radius:50%; background:var(--gold);}
  .kick .num{color:var(--mut);}
  h1{font-size:clamp(2.2rem,4.8vw,3.55rem); line-height:1.08; font-weight:800; letter-spacing:-.025em; color:var(--ink);}
  h1 em, h2 em{font-style:normal; color:var(--ink); background:linear-gradient(transparent 62%, rgba(228,169,60,.5) 62%); padding:0 .1em;}
  h2{font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:800; line-height:1.12; color:var(--ink); letter-spacing:-.02em; margin-bottom:10px;}
  .sub{color:var(--mut); max-width:660px; margin:14px 0 44px; font-size:1.02rem;}
  .lede{font-size:1.1rem; color:var(--mut); max-width:560px; margin:20px 0 28px;}

  /* ---------- nav ---------- */
  nav{position:sticky; top:0; z-index:40; background:rgba(247,244,237,.85); backdrop-filter:blur(14px); border-bottom:1px solid var(--line);}
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:70px;}
  .logo{display:flex; align-items:center; gap:11px; font-size:1.22rem; font-weight:800; color:var(--ink); cursor:pointer; letter-spacing:-.02em;}
  .logo svg{color:var(--gold);}
  .menu{display:flex; gap:4px; align-items:center;}
  .menu a{color:var(--mut); text-decoration:none; font-size:.83rem; font-weight:700; letter-spacing:.05em; padding:9px 14px; border-radius:999px; cursor:pointer; transition:.2s; white-space:nowrap; flex:none;}
  .menu a:hover{color:var(--ink); background:rgba(10,17,40,.06);}
  .menu a.act{color:var(--ink); background:#fff; box-shadow:var(--sh);}
  .langsel{font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--ink); background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:8px 12px; cursor:pointer; margin-left:6px;}
  .langsel:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(228,169,60,.16);}
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; font-family:var(--sans); background:var(--ink); color:var(--cream); font-weight:700; letter-spacing:.02em; padding:14px 28px; border-radius:999px; text-decoration:none; font-size:.92rem; cursor:pointer; border:none; transition:.25s;}
  .btn:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(10,17,40,.28);}
  .btn.gold{background:var(--gold); color:var(--ink);}
  .btn.gold:hover{background:var(--gold2); box-shadow:0 14px 30px rgba(228,169,60,.4);}
  .btn.ghost{background:transparent; border:1.5px solid rgba(10,17,40,.25); color:var(--ink);}
  .btn.ghost:hover{border-color:var(--ink); background:rgba(10,17,40,.04); box-shadow:none;}

  /* ---------- pagine ---------- */
  .page{display:none;}
  .page.on{display:block; animation:pgin .4s ease both;}
  @keyframes pgin{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}

  /* ---------- hero ---------- */
  .hero{position:relative; overflow:hidden; padding:72px 0 80px;}
  .hero::before{content:""; position:absolute; width:560px; height:560px; left:-160px; bottom:-220px; border-radius:50%;
    background:radial-gradient(circle, rgba(228,169,60,.28), transparent 65%); animation:blob 14s ease-in-out infinite;}
  .hero::after{content:""; position:absolute; width:640px; height:640px; right:-220px; top:-260px; border-radius:50%;
    background:radial-gradient(circle, rgba(22,48,122,.16), transparent 65%); animation:blob 18s ease-in-out infinite reverse;}
  @keyframes blob{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(40px,-30px) scale(1.08);}}
  .hero .wrap{position:relative; z-index:2; display:grid; grid-template-columns:1.02fr .98fr; gap:60px; align-items:center;}
  .hero .points{list-style:none; margin:0 0 32px; display:grid; gap:10px;}
  .hero .points li{font-size:.95rem; font-weight:600; color:var(--tx); display:flex; gap:12px; align-items:center;}
  .hero .points li::before{content:""; width:22px; height:22px; flex:none; border-radius:50%; background:rgba(228,169,60,.2); box-shadow:inset 0 0 0 5px rgba(228,169,60,.2); position:relative;}
  .hero .points li svg{position:absolute;}
  .hero .cta{display:flex; gap:14px; flex-wrap:wrap;}

  /* ---------- console mock ---------- */
  .cwrap{position:relative;}
  .console{background:var(--card); border:1px solid var(--line); border-radius:28px; padding:24px; box-shadow:var(--sh2); position:relative;}
  .console .hd{display:flex; align-items:center; justify-content:space-between; margin-bottom:6px;}
  .console .hd b{font-size:1rem; font-weight:800; color:var(--ink); letter-spacing:-.01em; display:flex; align-items:center; gap:10px;}
  .console .hd b svg{color:var(--gold);}
  .live{display:inline-flex; align-items:center; gap:7px; background:#E9F6EF; color:var(--green); font-size:.66rem; font-weight:800; letter-spacing:.14em; padding:6px 12px; border-radius:999px;}
  .live i{width:8px; height:8px; border-radius:50%; background:var(--green); animation:pulse 1.6s infinite;}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,122,92,.45);} 70%{box-shadow:0 0 0 7px rgba(31,122,92,0);} 100%{box-shadow:0 0 0 0 rgba(31,122,92,0);}}
  .console .mode{font-size:.74rem; color:var(--mut); font-weight:600; margin-bottom:16px;}
  .crow{display:grid; grid-template-columns:46px 1fr auto; gap:14px; align-items:center; padding:13px 2px; border-bottom:1px dashed var(--line);}
  .crow:last-of-type{border-bottom:none;}
  .cico{width:46px; height:46px; border-radius:15px; background:#F6F2E6; display:flex; align-items:center; justify-content:center;}
  .cico svg{width:23px; height:23px; color:var(--blue);}
  .crow .nm{font-weight:800; font-size:.9rem; color:var(--ink); letter-spacing:-.01em;}
  .crow .ds{font-size:.74rem; color:var(--mut); font-weight:600;}
  .bar{height:6px; border-radius:999px; background:#F0EBDC; overflow:hidden; margin-top:9px;}
  .bar i{display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--blue),var(--blue2)); transform-origin:left; animation:grow 1.5s cubic-bezier(.2,.7,.2,1) both;}
  .bar.g i{background:linear-gradient(90deg,var(--gold),var(--gold2));}
  @keyframes grow{from{transform:scaleX(0);} }
  .pillst{font-size:.64rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:6px 11px; border-radius:999px; white-space:nowrap;}
  .st-ok{background:#E9F6EF; color:var(--green);}
  .st-run{background:rgba(228,169,60,.16); color:#8A5D10;}
  .st-q{background:#EDEBFA; color:var(--blue);}
  .roi{margin-top:18px; background:linear-gradient(135deg,#0E1B42,#1D3E7E); border-radius:20px; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:14px; color:var(--cream);}
  .roi .lbl{font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#9FB0CC;}
  .roi .val{font-size:1.75rem; font-weight:800; color:var(--gold2); letter-spacing:-.02em; line-height:1.15;}
  .fchip{position:absolute; display:flex; align-items:center; gap:8px; font-size:.76rem; font-weight:800; padding:11px 17px; border-radius:999px; box-shadow:var(--sh2); white-space:nowrap; z-index:3;}
  .fchip svg{flex:none;}
  .fchip .ok{color:var(--green);}
  .fc1{top:-20px; left:-14px; background:#fff; color:var(--tx); animation:float 6s ease-in-out infinite;}
  .fc2{top:38%; right:-26px; background:var(--gold); color:var(--ink); animation:float 7.5s ease-in-out infinite reverse;}
  .fc3{bottom:-18px; left:26px; background:var(--ink); color:var(--gold2); animation:float 6.8s ease-in-out .8s infinite;}
  @keyframes float{0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);}}

  /* ticker */
  .tick{background:var(--gold); overflow:hidden;}
  .tick .in{display:flex; width:max-content; animation:tick 32s linear infinite;}
  .tick:hover .in{animation-play-state:paused;}
  .tick .set{display:flex; align-items:center; gap:36px; padding:12px 18px; font-size:.76rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); white-space:nowrap;}
  .tick svg{color:rgba(10,17,40,.55);}
  @keyframes tick{to{transform:translateX(-50%);}}

  /* ---------- stats ---------- */
  .stats{border-bottom:1px solid var(--line);}
  .stats .row{display:grid; grid-template-columns:repeat(4,1fr);}
  .stats .st{padding:40px 30px; border-right:1px solid var(--line);}
  .stats .st:last-child{border-right:none;}
  .stats .st b{font-size:clamp(2.1rem,3.4vw,2.9rem); font-weight:800; letter-spacing:-.03em; color:var(--ink); line-height:1;}
  .stats .st b i{font-style:normal; color:var(--gold);}
  .stats .st p{font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mut); margin-top:10px;}

  /* ---------- sezioni ---------- */
  section.pad{padding:82px 0;}
  section.alt{background:var(--paper2);}
  .grid{display:grid; gap:24px;}
  .g2{grid-template-columns:repeat(2,1fr);}
  .g3{grid-template-columns:repeat(3,1fr);}
  .g4{grid-template-columns:repeat(4,1fr);}
  .card{position:relative; background:var(--card); border:1px solid var(--line); border-radius:26px; padding:32px 30px; box-shadow:var(--sh); transition:.3s; overflow:hidden;}
  .card::after{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--gold),var(--gold2)); transform:scaleX(0); transform-origin:left; transition:.4s;}
  .card:hover{transform:translateY(-6px); box-shadow:var(--sh2);}
  .card:hover::after{transform:scaleX(1);}
  .card h3{font-size:1.14rem; font-weight:800; color:var(--ink); margin:18px 0 8px; letter-spacing:-.01em;}
  .card p{font-size:.9rem; color:#55503E;}
  .card ul{list-style:none; margin-top:14px; display:grid; gap:8px;}
  .card ul li{font-size:.87rem; color:#55503E; font-weight:500; padding-left:18px; position:relative;}
  .card ul li::before{content:""; position:absolute; left:2px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--gold);}
  .ic{width:42px; height:42px; color:var(--blue); transition:.3s;}
  .card:hover .ic{color:var(--gold);}
  .idx{display:inline-block; font-size:.66rem; font-weight:800; letter-spacing:.2em; color:var(--mut); background:var(--paper2); padding:6px 12px; border-radius:999px;}
  .note{font-size:.78rem; color:var(--mut); margin-top:12px; font-weight:600;}
  .price-note{display:inline-block; font-size:.8rem; font-weight:800; color:var(--blue); background:#EDEBFA; border-radius:999px; padding:6px 13px; margin-top:14px;}

  .arrowlink{display:inline-flex; align-items:center; gap:10px; font-size:.85rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); cursor:pointer; margin-top:26px; background:none; border:none; font-family:var(--sans); transition:.2s;}
  .arrowlink:hover{color:#8A5D10; gap:16px;}

  /* ---------- band citazione ---------- */
  .band{position:relative; overflow:hidden; background:linear-gradient(135deg,#0A1128 0%,#16307A 100%); color:var(--cream); text-align:center; padding:92px 28px;}
  .band::before{content:""; position:absolute; width:480px; height:480px; right:-140px; top:-180px; border-radius:50%; background:radial-gradient(circle, rgba(228,169,60,.25), transparent 65%);}
  .band .ring{position:absolute; left:4%; bottom:-90px; color:var(--gold); opacity:.16;}
  .band .wrap{position:relative; z-index:2;}
  .band q{font-size:clamp(1.55rem,3.4vw,2.45rem); font-weight:800; letter-spacing:-.02em; quotes:none; display:block; max-width:860px; margin:0 auto 34px; line-height:1.25;}
  .band q b{color:var(--gold2); font-weight:800;}

  /* ---------- prezzi ---------- */
  .plan{display:flex; flex-direction:column;}
  .plan .pnum{font-size:2.15rem; font-weight:800; color:var(--ink); letter-spacing:-.03em; margin:12px 0 2px;}
  .plan .pnum small{font-size:.95rem; color:var(--mut); font-weight:700;}
  .plan ul{flex:1;}
  .plan.best{border:2px solid var(--gold); overflow:visible;}
  .plan.best .badge{position:absolute; top:-15px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--gold2); font-size:.64rem; font-weight:800; letter-spacing:.2em; padding:7px 16px; border-radius:999px; white-space:nowrap;}
  .plan .btn{width:100%; margin-top:22px;}
  .tblwrap{border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:var(--sh); background:var(--card);}
  table{width:100%; border-collapse:collapse; background:transparent;}
  th{background:#F3F0E4; color:var(--ink); text-align:left; padding:15px 20px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:800;}
  th:last-child{color:#8A5D10;}
  td{padding:14px 20px; border-top:1px solid var(--line); font-size:.9rem;}
  .check{color:var(--green); font-weight:800;}
  .no{color:#B4AD99;}

  /* ---------- processo ---------- */
  .steps{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
  .steps::before{content:""; position:absolute; top:29px; left:9%; right:9%; border-top:2px dashed #CFC7B0;}
  .step{position:relative;}
  .step .dot{width:58px; height:58px; border-radius:19px; background:linear-gradient(135deg,var(--ink),var(--navy)); color:var(--gold2); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.15rem; margin-bottom:20px; box-shadow:var(--sh); position:relative; z-index:1;}
  .step h4{font-size:1.05rem; font-weight:800; color:var(--ink); margin-bottom:6px; letter-spacing:-.01em;}
  .step p{font-size:.87rem; color:#55503E;}

  /* ---------- form ---------- */
  form{display:grid; gap:16px; max-width:640px; margin-top:36px;}
  label{font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); display:block; margin-bottom:7px;}
  input,select,textarea{font-family:var(--sans); font-size:.96rem; font-weight:500; padding:14px 17px; border:1.5px solid var(--line); border-radius:16px; background:var(--card); color:var(--tx); width:100%; transition:.2s;}
  input:focus,select:focus,textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(228,169,60,.16);}
  #okmsg{color:var(--green); font-weight:800;}

  /* ---------- footer ---------- */
  footer{background:var(--ink); color:#9FB0CC; padding:58px 0 46px; font-size:.85rem;}
  footer .cols{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-start;}
  footer b{color:var(--cream); font-size:1.2rem; font-weight:800; letter-spacing:-.02em; display:flex; align-items:center; gap:10px;}
  footer b svg{color:var(--gold);}
  .breadcrumb{font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--mut); margin-bottom:28px;}
  .breadcrumb i{color:var(--gold); font-style:normal;}

  /* ---------- audit online ---------- */
  .nda{border:1px solid var(--line); border-radius:22px; background:var(--card); box-shadow:var(--sh); margin:6px 0 36px; overflow:hidden;}
  .nda summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:18px 24px; font-weight:800; color:var(--ink); font-size:.95rem; letter-spacing:-.01em;}
  .nda summary::-webkit-details-marker{display:none;}
  .nda summary svg{color:var(--gold); flex:none;}
  .nda summary .chev{margin-left:auto; color:var(--mut); transition:.25s;}
  .nda[open] summary .chev{transform:rotate(180deg);}
  .nda-body{padding:18px 24px 22px; border-top:1px dashed var(--line);}
  .nda-body ul{list-style:none; display:grid; gap:9px; margin-top:2px;}
  .nda-body li{font-size:.9rem; color:#55503E; padding-left:20px; position:relative;}
  .nda-body li::before{content:""; position:absolute; left:2px; top:9px; width:8px; height:8px; border-radius:50%; background:var(--gold);}

  .wsteps{display:flex; gap:8px; margin:4px 0 22px; flex-wrap:wrap;}
  .ws{display:flex; align-items:center; gap:9px; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--mut); padding:9px 16px; border-radius:999px; border:1.5px solid var(--line); transition:.25s; background:transparent;}
  .ws i{font-style:normal; width:22px; height:22px; border-radius:50%; background:var(--paper2); display:inline-flex; align-items:center; justify-content:center; font-size:.66rem; flex:none;}
  .ws.on{border-color:var(--gold); color:var(--ink); background:#fff; box-shadow:var(--sh);}
  .ws.on i{background:var(--gold); color:var(--ink);}
  .ws.done{color:var(--green); border-color:#CFE8DB; background:#F2FAF6;}
  .ws.done i{background:var(--green); color:#fff;}

  .wpanel{padding:34px 36px 30px; max-width:820px;}
  .wstep{display:none;}
  .wstep.on{display:block; animation:pgin .35s ease both;}
  .wstep h3{font-size:1.3rem; font-weight:800; color:var(--ink); margin-bottom:4px; letter-spacing:-.01em;}
  .wstep .hint{font-size:.86rem; color:var(--mut); margin-bottom:10px;}
  .wq{margin-top:24px;}
  .wq > label{display:block;}
  .chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:10px;}
  .chip{font-family:var(--sans); font-size:.86rem; font-weight:700; color:var(--tx); background:#fff; border:1.5px solid var(--line); padding:11px 18px; border-radius:999px; cursor:pointer; transition:.2s;}
  .chip:hover{border-color:var(--gold); transform:translateY(-1px);}
  .chip.on{background:var(--ink); color:var(--cream); border-color:var(--ink); box-shadow:var(--sh);}
  .rangewrap{display:flex; align-items:center; gap:16px; margin-top:12px;}
  input[type=range]{-webkit-appearance:none; appearance:none; width:100%; height:9px; border-radius:999px; background:linear-gradient(90deg,var(--gold),var(--gold2)); padding:0; border:none; margin:0;}
  input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:var(--ink); border:4px solid var(--gold); box-shadow:var(--sh); cursor:pointer;}
  input[type=range]::-moz-range-thumb{width:18px; height:18px; border-radius:50%; background:var(--ink); border:4px solid var(--gold); box-shadow:var(--sh); cursor:pointer;}
  .rangeval{min-width:76px; text-align:center; font-weight:800; font-size:1.02rem; color:var(--ink); background:#F6F2E6; padding:9px 0; border-radius:12px;}
  .wnav{display:flex; gap:12px; align-items:center; margin-top:32px; flex-wrap:wrap;}
  .werr{display:none; font-size:.82rem; font-weight:700; color:#A03A2E;}
  .werr.on{display:block;}

  .rep-head{display:grid; grid-template-columns:auto 1fr; gap:30px; align-items:center; margin:6px 0 10px;}
  .gauge{position:relative; width:150px; height:150px; justify-self:center;}
  .gauge .track{stroke:#F0EBDC;}
  .gauge .fill{stroke-linecap:round; transition:stroke-dashoffset 1.5s cubic-bezier(.2,.7,.2,1);}
  .gauge .gnum{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;}
  .gauge .gnum b{font-size:2.15rem; font-weight:800; color:var(--ink); line-height:1;}
  .gauge .gnum span{font-size:.6rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--mut); margin-top:6px;}
  .vtag{display:inline-flex; align-items:center; gap:8px; font-size:.7rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:7px 14px; border-radius:999px; margin-bottom:12px;}
  .vt-hi{background:#E9F6EF; color:var(--green);}
  .vt-mid{background:rgba(228,169,60,.16); color:#8A5D10;}
  .vt-low{background:#F7EFEA; color:#B4532A;}
  .rep-head h3{font-size:1.35rem; font-weight:800; color:var(--ink); letter-spacing:-.015em; line-height:1.2;}
  .rep-head p{font-size:.9rem; color:var(--mut); margin-top:8px;}
  .xbars{display:grid; gap:16px; margin:28px 0 6px;}
  .xbar .rowline{display:flex; justify-content:space-between; font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); margin-bottom:7px;}
  .xbar .trk{height:9px; border-radius:999px; background:#F0EBDC; overflow:hidden;}
  .xbar .trk i{display:block; height:100%; background:linear-gradient(90deg,var(--blue),var(--blue2)); border-radius:999px; width:0; transition:width 1.3s cubic-bezier(.2,.7,.2,1);}
  .xbar.warn .trk i{background:linear-gradient(90deg,var(--gold),#C56A2E);}
  .roicard{margin:26px 0 6px;}
  .rmap{margin-top:26px; border:1px solid var(--line); border-radius:20px; background:#fff; overflow:hidden; box-shadow:var(--sh);}
  .rmap .ph{display:grid; grid-template-columns:190px 1fr auto; gap:14px; padding:15px 20px; border-top:1px solid var(--line); align-items:center;}
  .rmap .ph:first-child{border-top:none;}
  .rmap .t{font-weight:800; color:var(--ink); font-size:.9rem;}
  .rmap .d{color:var(--mut); font-weight:600; font-size:.82rem;}
  .rmap .w{font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#8A5D10; background:rgba(228,169,60,.16); padding:5px 12px; border-radius:999px; white-space:nowrap;}
  .planline{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:26px; font-weight:700; color:var(--ink); font-size:.95rem;}
  #reqbox{margin-top:28px; border-top:1px dashed var(--line); padding-top:24px;}
  #reqbox h4{font-size:1.05rem; font-weight:800; color:var(--ink); margin-bottom:6px;}
  #reqbox .note{margin-top:10px;}
  .reqrow{display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:stretch; margin-top:16px; max-width:640px;}
  .reqrow.reqgo{grid-template-columns:1fr;}

  /* ===== agente AI: progress + report in tempo reale ===== */
  #wprog{margin-top:22px;}
  .progtop{display:flex; align-items:center; gap:14px; max-width:640px;}
  .progbar{flex:1; height:12px; border-radius:999px; background:var(--paper2); overflow:hidden;}
  #progfill{display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--gold),var(--gold2)); transition:width .9s cubic-bezier(.2,.7,.3,1);}
  #progpct{font-weight:800; font-size:.9rem; color:var(--ink); min-width:44px; text-align:right;}
  #progphase{margin-top:10px; font-size:.86rem; font-weight:600; color:var(--mut);}
  #wreport{margin-top:4px;}
  .rsec{margin-top:26px; opacity:0; transform:translateY(10px); transition:.6s;}
  .rsec.in{opacity:1; transform:none;}
  .rsec h4{font-size:1.02rem; font-weight:800; color:var(--ink); margin-bottom:2px;}
  .rlegend{display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 12px;}
  .lg{font-size:.72rem; font-weight:700; padding:3px 10px; border-radius:999px;}
  .lg.eu{background:#e8f3ec; color:#14532d;}
  .lg.non{background:#fdeaea; color:#7f1d1d;}
  .tchips{display:flex; flex-direction:column; gap:8px; max-width:640px;}
  .tchip{display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:12px; font-size:.86rem;}
  .tchip.eu{background:#e8f3ec; border:1px solid #bfe3cd; color:#14532d;}
  .tchip.non{background:#fdeaea; border:1px solid #f5c6c6; color:#7f1d1d;}
  .tchip.stk{background:var(--card); border:1px solid var(--line); color:var(--ink);}
  .tchip.stk .tname i{color:var(--mut);}
  .tchip svg{flex:none; border-radius:3px;}
  .tname{font-weight:800;}
  .tname i{font-style:normal; font-weight:600; opacity:.75; margin-left:8px; font-size:.76rem;}
  .tok{margin-left:auto; font-weight:800; font-size:.78rem;}
  .tok.ue{color:#14532d;}
  .tok.xue{color:#7f1d1d;}
  .ncards{display:grid; gap:10px; max-width:640px;}
  .ncard{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 16px;}
  .nhead{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
  .nhead b{font-size:.9rem; color:var(--ink);}
  .sev{font-size:.7rem; font-weight:800; padding:3px 10px; border-radius:999px;}
  .sev-crit{background:#fee2e2; color:#991b1b;}
  .sev-imp{background:#fef3c7; color:#92400e;}
  .sev-nbl{background:#e0f2fe; color:#075985;}
  .ntit{font-size:.8rem; font-weight:700; color:var(--tx); margin-top:8px;}
  .nimp{font-size:.82rem; color:var(--mut); margin-top:4px; line-height:1.5;}
  .bcard{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px 20px; max-width:640px;}
  .brow,.bbar-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 0; font-size:.9rem;}
  .brow span,.bbar-row span{color:var(--mut); font-weight:600;}
  .brow b{color:var(--ink); text-align:right;}
  .bbar{flex:1; height:9px; border-radius:999px; background:var(--paper2); overflow:hidden;}
  .bbar i{display:block; height:100%; background:linear-gradient(90deg,var(--gold),var(--gold2)); border-radius:999px;}
  .bbar-row b{color:var(--ink); min-width:44px; text-align:right;}
  .bnote{margin-top:10px; font-size:.78rem; color:var(--mut); border-top:1px dashed var(--line); padding-top:10px; line-height:1.5;}
  .rdone{margin-top:18px; color:var(--green); font-weight:800; font-size:.9rem; opacity:0; transition:.6s;}
  .rdone.in{opacity:1;}
  .rdone2{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; opacity:0; transition:.6s; pointer-events:none;}
  .rdone2.in{opacity:1; pointer-events:auto;}
  .roicards{display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); margin:6px 0 18px;}
  .roicard{border:1.5px solid var(--line); border-radius:14px; padding:16px 16px 14px; cursor:pointer; background:var(--card); transition:.2s;}
  .roicard:hover{border-color:var(--gold);}
  .roicard.on{border-color:var(--gold); box-shadow:0 0 0 3px rgba(228,169,60,.18);}
  .roicard.off{opacity:.42; cursor:default; pointer-events:none;}
  .roicard.off:hover{border-color:var(--line);}
  .roicard b{display:block; font-size:.95rem; margin-bottom:6px;}
  .roicard p{font-size:.8rem; color:var(--mut); line-height:1.45; margin:0 0 10px;}
  .roicard i{font-style:normal; font-weight:800; color:var(--ink);}
  .rocbadge{display:none; margin-left:8px; padding:2px 8px; border-radius:999px; background:rgba(228,169,60,.16); border:1px solid var(--gold); color:#8A5D10; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; vertical-align:middle;}
  .roicard.rec .rocbadge{display:inline-block;}
  .cfgue{display:flex; flex-direction:column; gap:8px; margin:6px 0 20px;}
  .cfgrow{display:flex; align-items:center; gap:8px; flex-wrap:wrap; border:1px solid var(--line); border-radius:12px; padding:10px 14px; font-size:.88rem; background:var(--card);}
  .cfgrow .from{color:#b33b2f; font-weight:700;}
  .cfgrow .arrow{color:var(--mut);}
  .cfgrow .to{color:#14532d; font-weight:800;}
  .cfgrow.kept{border-style:dashed;}
  .cfgrow .keepnote{margin-left:auto; color:var(--mut); font-size:.78rem;}
  .cfgrow.ok{border-color:#cfe5d6; background:#f2f8f3;}
  .cfgrow.ok .to{color:#14532d;}
  .cfgrow.paasnote{border-style:dashed; background:transparent; color:var(--mut); font-size:.8rem; line-height:1.5;}
  .reqsub{grid-column:1/-1; font-size:.82rem; color:var(--mut); margin-top:16px;}
  .reqchk{display:flex; gap:10px; align-items:flex-start; font-size:.8rem; color:var(--mut); font-weight:600; margin-top:16px; max-width:640px;}
  .reqchk input{width:auto; margin-top:3px; accent-color:var(--gold);}
  .appinfo{display:grid; gap:10px; margin-top:12px; max-width:640px;}
  .appcred{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  input[type=file]{padding:11px 15px; font-size:.85rem;}
  #reqok{color:var(--green); font-weight:800; margin-top:16px;}

  /* reveal */
  .rv{opacity:0; transform:translateY(24px); transition:.7s cubic-bezier(.2,.7,.2,1);}
  .rv.in{opacity:1; transform:none;}

  /* navbar responsive: compressione progressiva + collapse link */
  @media(max-width:1280px){
    .menu a{font-size:.78rem; padding:8px 11px;}
    .menu{gap:2px;}
    .langsel{font-size:.74rem; padding:7px 10px;}
    .menu .btn{font-size:.84rem; padding:9px 18px !important;}
  }
  @media(max-width:1150px){
    .menu a{font-size:.71rem; padding:6px 8px;}
    .menu{gap:0;}
    .langsel{font-size:.68rem; padding:6px 9px;}
    .menu .btn{font-size:.76rem; padding:7px 12px !important;}
  }
  @media(max-width:1024px){
    .menu a{display:none;}
    .menu .btn{display:inline-flex; font-size:.84rem; padding:9px 16px !important;}
    .langsel{font-size:.78rem; padding:7px 11px;}
    .menu{gap:6px;}
  }

  @media(max-width:920px){
    .wpanel{padding:24px 20px;}
    .rep-head{grid-template-columns:1fr; gap:20px; justify-items:start;}
    .gauge{justify-self:flex-start;}
    .rmap .ph{grid-template-columns:1fr; gap:4px;}
    .rangewrap{flex-wrap:wrap;}
    .reqrow{grid-template-columns:1fr;}
    .appcred{grid-template-columns:1fr;}
  }

  @media(max-width:920px){
    .hero .wrap{grid-template-columns:1fr; gap:44px;}
    .g2,.g3,.g4{grid-template-columns:1fr;}
    .stats .row{grid-template-columns:repeat(2,1fr);}
    .stats .st{border-bottom:1px solid var(--line);}
    .steps{grid-template-columns:1fr; gap:32px;}
    .steps::before{display:none;}
    .menu a{display:none;}
    .menu .btn{display:inline-flex;}
    .fc2{right:-6px;}
  }
