@font-face{font-family:"Bricolage Grotesque";src:url("../fonts/bricolage-grotesque-bold.woff") format("woff");font-weight:600 800;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-regular.woff") format("woff");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-bold.woff") format("woff");font-weight:600 700;font-style:normal;font-display:swap}
:root{--bg:#eef2f7;--ink:#0e1b33;--mute:#4d5b75;--line:#cfd7e4;--az:#2457d6;--lem:#f2d64b;--card:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 "Instrument Sans",system-ui,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;line-height:1.05;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(2.6rem,7.5vw,5.4rem)}h2{font-size:clamp(1.9rem,4vw,3rem)}h3{font-size:1.25rem;line-height:1.2}
p{margin:0 0 1em;max-width:62ch}a{color:var(--az)}
:focus-visible{outline:3px solid var(--az);outline-offset:3px}
.w{max-width:1080px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;flex-wrap:wrap}
.logo{font:800 1.4rem "Bricolage Grotesque",sans-serif;color:var(--ink);text-decoration:none}
nav{display:flex;gap:2px;flex-wrap:wrap;align-items:center}
nav a{color:var(--ink);text-decoration:none;padding:8px 11px;border-radius:6px;font-weight:500;font-size:.95rem}
nav a:hover{background:var(--line)}
nav a.cta{background:var(--ink);color:#fff;margin-left:6px}
.btn{display:inline-block;background:var(--ink);color:#fff;padding:14px 26px;border-radius:999px;font:600 1rem "Instrument Sans",sans-serif;text-decoration:none;border:0;cursor:pointer}
.btn.lem{background:var(--lem);color:var(--ink)}.btn.out{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.hero{padding:72px 0 56px}
.hero .w{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero p{font-size:1.2rem;color:var(--mute)}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero svg{width:100%;height:auto}.hero img{width:100%;height:auto;display:block;border-radius:12px}
.needle{transform-origin:100px 100px;animation:sw 2.4s cubic-bezier(.3,1.4,.5,1) both}
@keyframes sw{from{transform:rotate(-110deg)}}
@media(prefers-reduced-motion:reduce){.needle{animation:none}}
section{padding:64px 0;border-top:1px solid var(--line)}
.lead{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}
.rows>div{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.rows>div:first-child{border-top:1px solid var(--ink)}
.rows h3{margin:0}.rows p{margin:0;color:var(--mute)}
.route{list-style:none;margin:0;padding:0 0 0 34px;border-left:3px solid var(--az);max-width:720px}
.route li{position:relative;padding-bottom:30px}
.route li::before{content:"";position:absolute;left:-44px;top:6px;width:17px;height:17px;border-radius:50%;background:var(--lem);box-shadow:0 0 0 3px var(--az)}
.route p{color:var(--mute);margin:0}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:36px}
.cols p{color:var(--mute)}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:560px}
th,td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font:800 1.15rem "Bricolage Grotesque",sans-serif}td.p{font:800 1.3rem "Bricolage Grotesque",sans-serif;color:var(--az);white-space:nowrap}
td span{color:var(--mute);display:block;font-size:.95rem}
.dark{background:var(--ink);color:#fff;border:0}
.dark p{color:#b9c6de}.dark a{color:var(--lem)}
details{border-bottom:1px solid var(--line);padding:14px 0;max-width:760px}
summary{font-weight:600;cursor:pointer}details p{margin:10px 0 0;color:var(--mute)}
.dark details{border-color:#2c3b5c}.dark details p{color:#b9c6de}
form{display:grid;gap:14px}label{font-weight:600;font-size:.95rem;display:grid;gap:6px}
input,select,textarea{font:inherit;padding:12px;border:0;border-radius:8px;width:100%;background:#fff;color:var(--ink)}
.chk{display:flex;gap:10px;font-weight:400;align-items:flex-start;color:#b9c6de}.chk input{width:auto;margin-top:6px}
.ok{display:none;background:var(--lem);color:var(--ink);padding:14px;border-radius:8px;font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.ic{display:block;width:52px;height:52px;margin-bottom:10px}
.land{padding:0;border:0;line-height:0;overflow:hidden}.land svg{width:100%;height:auto;min-height:130px;display:block}
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}.lead .pic{margin-top:20px}.pic{width:100%;height:auto;display:block;border-radius:12px;max-height:460px;object-fit:cover}.fig{width:100%;max-width:300px;height:auto;justify-self:center}
@media(max-width:760px){.split{grid-template-columns:1fr}}
footer{padding:28px 0 36px;font-size:.88rem;color:var(--mute)}footer p{max-width:none}
@media(max-width:760px){.hero .w,.lead,.rows>div,.two{grid-template-columns:1fr;gap:12px}}

/* pagine legali */
.legal{padding:48px 0 64px}
.legal .w{max-width:820px}
.legal h1{font-size:clamp(2rem,5vw,3.2rem);margin-bottom:.3em}
.legal h2{font-size:1.45rem;margin:1.8em 0 .5em;line-height:1.2}
.legal p,.legal li{max-width:70ch}
.legal ul{padding-left:1.3em;margin:0 0 1em}.legal li{margin-bottom:.4em}
.legal .upd{color:var(--mute);font-size:.95rem;margin-bottom:1.5em}
.legal .note{background:#fff;border-left:4px solid var(--lem);padding:14px 16px;border-radius:6px;margin:0 0 1.5em}
.legal table{min-width:0;margin:0 0 1.2em;background:#fff}
.legal th{font:600 .95rem "Instrument Sans",system-ui,sans-serif;width:34%}
.legal .tbl{overflow-x:auto}
mark.ph{background:var(--lem);color:var(--ink);padding:0 4px;border-radius:3px}
.flinks{display:flex;gap:6px 18px;flex-wrap:wrap;margin:0 0 14px}
.flinks a{color:var(--ink)}
