/* Token e componenti — spec §5 */
:root{
  --ink:#0F1F33; --navy:#16324F; --text-2:#475569; --paper:#F5F6F8; --card:#FFFFFF;
  --tint:#E8EDF3; --line:#D9DEE5; --line-soft:#E6EAF0; --brass:#8A6A2B; --brass-light:#E3C98E;
  --error:#9B1C1C; --notice-bg:#F3EBDA; --notice-border:#D8C79C; --notice-text:#4A3A12;
  --pad:clamp(20px,4vw,40px);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0 0 .5em}
h1{font-size:clamp(36px,5vw,60px);line-height:1.08;font-weight:600}
h2{font-size:clamp(30px,3.4vw,40px);line-height:1.15}
h3{font-size:22px;line-height:1.25}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:12px 16px;z-index:100}
.skip:focus{left:0}
.container{max-width:1200px;margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:880px}
.eyebrow{font-size:12.5px;text-transform:uppercase;letter-spacing:.11em;color:#7A5C22;font-weight:600;margin:0 0 14px}
.on-dark .eyebrow,.eyebrow.light{color:var(--brass-light)}
.lead{font-size:18px;color:var(--text-2);max-width:62ch}
section{padding:clamp(48px,7vw,88px) 0}
.alt{background:var(--tint)}
/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 28px;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:600 16px/1.2 var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--ink)}
.btn.sec{background:transparent;color:var(--navy)}
.btn.sec:hover{background:var(--tint)}
.btn.light{background:#fff;color:var(--navy);border-color:#fff}
.btn[disabled]{opacity:.6;cursor:wait}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
/* header */
.site-header{background:var(--card);border-bottom:1px solid var(--line)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand svg{flex:none}
.brand b{display:block;font:600 19px/1.15 var(--serif)}
.brand small{display:block;font-size:12.5px;color:var(--text-2)}
.nav{display:flex;align-items:center;gap:22px}
.nav a{text-decoration:none;color:var(--ink);font-size:15px;padding:10px 0}
.nav a:hover{text-decoration:underline}
.nav .btn{color:#fff;padding:10px 18px;min-height:44px}
.menu-btn{display:none;flex:none;width:44px;height:44px;border:1px solid var(--line);background:var(--card);border-radius:6px;cursor:pointer;color:var(--ink)}
@media (max-width:980px){
  .menu-btn{display:inline-flex;align-items:center;justify-content:center}
  .nav{display:none;position:absolute;left:0;right:0;top:76px;background:var(--card);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 20px;z-index:50}
  .nav.open{display:flex}
  .nav a{padding:13px 0;border-bottom:1px solid var(--line-soft);min-height:44px}
  .nav .btn{margin-top:12px;border:0;text-align:center}
  .site-header{position:relative}
}
/* hero */
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr;gap:32px}}
.muted{color:var(--text-2);font-size:14.5px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px}
.card.feat{box-shadow:0 18px 40px rgba(15,31,51,.08)}
.badge{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass);border-radius:99px;padding:3px 10px}
.rows{list-style:none;margin:16px 0 0;padding:0}
.rows li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.rows li span:last-child{font-weight:600;white-space:nowrap}
.rows li.tot{border-bottom:0;font-size:19px;padding-top:16px}
.rows li.tot span:last-child{font-family:var(--serif);font-size:26px}
.ex-detail{font-size:13px;color:var(--text-2);display:block;font-weight:400}
.rows .lab{min-width:0}
.rows .sconto{display:block;width:fit-content;margin-top:6px;padding:3px 10px;border:1px solid var(--notice-border);border-radius:99px;background:var(--notice-bg);color:var(--notice-text);font-size:13px;font-weight:600}
/* striscia dati */
.strip{background:var(--card);border-block:1px solid var(--line);padding:28px 0}
.strip .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.strip h3{font:600 13px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--brass);margin-bottom:6px}
.strip p{margin:0;font-size:15px}
/* griglie */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:32px}
.cards a.card{text-decoration:none;color:inherit;display:block;transition:border-color .15s}
.cards a.card:hover{border-color:var(--navy)}
.cards a.card p{color:var(--text-2);margin:0;font-size:15px}
.cards a.card .more{color:var(--navy);font-weight:600;margin-top:12px;display:inline-block}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:32px}
.three.evid{margin-top:20px}
.three.evid .card{border-left:4px solid var(--brass)}
a.tgt{display:inline-block;min-height:44px;padding:11px 0;box-sizing:border-box}
.notice{background:var(--notice-bg);border:1px solid var(--notice-border);color:var(--notice-text);border-radius:8px;padding:14px 18px;font-size:15px;margin:16px 0}
.steps4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;list-style:none;padding:0;margin:28px 0;counter-reset:s}
.steps4 li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;counter-increment:s}
.steps4 li::before{content:counter(s);display:block;font:600 28px/1 var(--serif);color:var(--brass);margin-bottom:8px}
/* studio */
.studio .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
@media (max-width:800px){.studio .grid{grid-template-columns:1fr}.studio figure{max-width:360px}}
.studio figure{margin:0}
.studio img{border-radius:10px;border:1px solid var(--line);width:100%}
dl.facts{margin:20px 0 0;display:grid;grid-template-columns:max-content 1fr;gap:8px 20px}
dl.facts dt{font-weight:600}
dl.facts dd{margin:0;color:var(--text-2)}
@media (max-width:480px){dl.facts{grid-template-columns:1fr}dl.facts dd{margin-bottom:8px}}
/* faq */
details{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px}
summary{cursor:pointer;padding:16px 20px;font-weight:600;min-height:48px;display:flex;align-items:center}
details p{padding:0 20px;color:var(--text-2)}
/* contatti + footer */
.contact{background:var(--navy);color:#fff}
.contact h2{color:#fff}
.contact a{color:#fff}
.site-footer{background:var(--ink);color:#D5DCE6;padding:48px 0 28px;font-size:15px}
.site-footer a{color:#fff}
.site-footer h3{font:600 13px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--brass-light)}
.site-footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.site-footer .legal{border-top:1px solid #2a3b52;margin-top:32px;padding-top:20px;font-size:14px}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:6px}
/* pagina atto / testo */
.crumbs{font-size:14px;color:var(--text-2);padding:20px 0 0}
.crumbs a{color:var(--text-2);display:inline-block;min-height:44px;min-width:44px;padding:12px 2px;box-sizing:border-box}
.page-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;padding:32px 0 72px}
@media (max-width:900px){.page-grid{grid-template-columns:1fr}}
.page-grid h2{font-size:28px;margin-top:1.6em}
.side{align-self:start;position:sticky;top:20px}
@media (max-width:900px){.side{position:static}}
.prose h2{font-size:26px;margin-top:1.6em}
.prose{padding:32px 0 72px}
/* wizard */
.wiz{max-width:880px;margin:0 auto;padding:32px var(--pad) 72px;min-height:70rem}
.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;list-style:none;padding:0;margin:0 0 28px}
.progress li{border-top:4px solid var(--line);padding-top:8px;font-size:13px;color:var(--text-2)}
.progress li.on{border-color:var(--navy);color:var(--ink);font-weight:600}
.progress li.done{border-color:var(--brass)}
@media (max-width:520px){.progress li{font-size:11.5px}}
.field{margin-bottom:18px}
.field label,.field legend{display:block;font-weight:600;margin-bottom:6px;padding:0}
fieldset{border:0;margin:0 0 22px;padding:0;min-width:0}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;min-height:48px;padding:11px 14px;border:1px solid #9AA6B5;border-radius:6px;background:#fff;color:var(--ink);font:inherit}
textarea{min-height:110px}
.hint{font-size:14px;color:var(--text-2);margin:4px 0 8px}
.err{color:var(--error);font-size:14.5px;margin:6px 0 0;font-weight:600}
.field.bad input,.field.bad select{border-color:var(--error)}
.check{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.check input{width:24px;height:24px;margin:2px 0 0;flex:none;accent-color:var(--navy)}
.check label{font-weight:400;margin:0;min-height:44px;padding:10px 0;box-sizing:border-box}
.opts{display:grid;gap:10px}
.opt{display:block;width:100%;text-align:left;min-height:48px;padding:14px 18px;border:2px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;cursor:pointer}
.opt:hover{border-color:var(--navy)}
.opt[aria-pressed=true]{border-color:var(--navy);background:var(--tint)}
.opt b{display:block}
.opt span{color:var(--text-2);font-size:14.5px}
.opts.tipi{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.nav-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:28px}
.alert{border:1px solid var(--error);background:#fdf2f2;color:var(--error);border-radius:8px;padding:14px 18px;margin:16px 0}
.result-tot{font:600 40px/1.1 var(--serif);margin:8px 0}
.vsep{border-top:1px solid var(--line);margin:28px 0;padding-top:24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.h-ex{font-size:24px;margin-top:12px}.h-side{font-size:24px;margin-top:0}.h1-s{font-size:clamp(30px,4vw,44px)}.mt0{margin:12px 0 0}.mt16{margin-top:16px}.contact h3{color:#fff}
.mt12{margin-top:12px}
.fam ul{list-style:none;margin:12px 0 0;padding:0}.fam li a{display:flex;align-items:center;min-height:44px;font-weight:600}.doc-sez{margin-bottom:8px}.doc-sez h3{font-size:20px;margin:1.2em 0 .4em}.doc-sez h4{font:600 16px/1.4 var(--sans);margin:1em 0 .3em}.profilo{margin:0;padding-left:18px}
