
:root{
  --navy:#16324F; --navy-8:rgba(22,50,79,.08); --navy-15:rgba(22,50,79,.15);
  --paper:#FAFAF8; --ink:#2B2B2B; --grey:#6B7280; --line:#E4E2DC;
  --amber:#D98F2B; --sage:#4E7A62; --brick:#A6362C;
  --serif:'Lora',Georgia,serif; --sans:'Inter',-apple-system,Segoe UI,sans-serif;
  --mono:'JetBrains Mono',Consolas,monospace;
  --wide:1180px; --prose:720px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;
  font-feature-settings:"tnum" 0}
img{max-width:100%}
a{color:inherit}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 32px}
.prose{max-width:var(--prose)}

/* ---------- tipografia ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);font-weight:600;
  letter-spacing:-.015em;line-height:1.2}
h1{font-size:clamp(34px,4.6vw,58px);letter-spacing:-.025em}
h2{font-size:clamp(26px,3vw,38px);margin-bottom:18px}
h3{font-size:21px;margin-bottom:8px}
h4{font-size:17px;font-family:var(--sans);font-weight:600}
p{margin-bottom:18px}
.eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--amber);margin-bottom:18px;display:block}
.lead{font-size:20px;line-height:1.6;color:#4a4a4a}
.small{font-size:14.5px;color:var(--grey)}
.mono{font-family:var(--mono);font-size:.86em;letter-spacing:-.01em}
.num{font-variant-numeric:tabular-nums}
strong{font-weight:600;color:var(--navy)}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(250,250,248,.88);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;
  transition:border-color .25s}
header.site.stuck{border-bottom-color:var(--line)}
.navbar{display:flex;align-items:center;justify-content:space-between;
  height:74px;max-width:var(--wide);margin:0 auto;padding:0 32px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand .mark{width:35px;height:35px;flex:none;color:var(--navy)}
.brand b{font-family:var(--serif);font-size:20px;color:var(--navy);font-weight:600;
  letter-spacing:-.02em;display:block;line-height:1.1}
.wm i{font-style:normal;color:var(--amber)}
.p-index header.site .brand .wm{color:#fff}
.p-index header.site.stuck .brand .wm{color:var(--navy)}
.brand .payoff{display:block;font-size:11px;color:var(--grey);letter-spacing:.01em;
  margin-top:1px;white-space:nowrap}
nav.main{display:flex;gap:30px;align-items:center}
nav.main a{font-size:14.5px;text-decoration:none;color:#3f4650;position:relative;
  padding:4px 0;transition:color .2s}
nav.main a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1.5px;
  background:var(--amber);transition:width .25s}
nav.main a:hover{color:var(--navy)}
nav.main a:hover::after,nav.main a.on::after{width:100%}
nav.main a.on{color:var(--navy);font-weight:500}
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;
  padding:12px 22px;font-size:14.5px;font-weight:500;border:1px solid var(--navy);
  transition:background .2s,color .2s;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:#0f2338}
.btn.ghost{background:transparent;color:var(--navy)}
.btn.ghost:hover{background:var(--navy-8)}
.btn.amber{background:var(--amber);border-color:var(--amber)}
.btn.amber:hover{background:#c47f22}
.btn.lg{padding:15px 30px;font-size:15.5px}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:22px;height:1.6px;background:var(--navy);margin:5px 0}

/* ---------- sezioni ---------- */
section{padding:96px 0}
section.tight{padding:64px 0}
.rule{height:1px;background:var(--line);border:0}
.grid{display:grid;gap:34px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}

/* ---------- hero ---------- */
.hero{padding:104px 0 88px;position:relative;overflow:hidden}
.hero h1{max-width:15ch}
.hero .lead{max-width:52ch;margin-top:24px}
.hero .cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{margin-top:52px;padding-top:26px;border-top:1px solid var(--line);
  display:flex;gap:46px;flex-wrap:wrap}
.hero-meta div span{display:block}
.hero-meta .k{font-family:var(--serif);font-size:27px;color:var(--navy);font-weight:600}
.hero-meta .v{font-size:13.5px;color:var(--grey);margin-top:2px}

/* ---------- hero scuro della home ---------- */
.hero.dark{background:#0E2237;color:rgba(255,255,255,.74);padding:0;isolation:isolate}
.hero.dark .hero-in{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;
  align-items:center;padding-top:96px;padding-bottom:82px;position:relative;z-index:2}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-bg .glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
.hero-bg .g1{width:640px;height:640px;left:-160px;top:-260px;
  background:radial-gradient(circle,rgba(46,116,181,.55),transparent 68%)}
.hero-bg .g2{width:560px;height:560px;right:-120px;bottom:-240px;
  background:radial-gradient(circle,rgba(217,143,43,.38),transparent 66%)}
.hero-bg .grid-lines{position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 42%,#000 35%,transparent 78%);
  mask-image:radial-gradient(ellipse 78% 62% at 50% 42%,#000 35%,transparent 78%)}
.hero.dark .eyebrow{color:var(--amber);display:flex;align-items:center;gap:11px;
  margin-bottom:22px}
.hero.dark .eyebrow i{display:block;width:30px;height:1px;background:var(--amber);
  opacity:.7;flex:none}
.hero.dark h1{color:#fff;max-width:none;font-size:clamp(38px,4.5vw,62px);line-height:1.08;
  letter-spacing:-.03em;text-wrap:balance}
.hero.dark h1 em{font-style:normal;color:#F2C078;
  background:linear-gradient(180deg,#F5D8A6,#D98F2B);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.hero.dark .lead{color:rgba(255,255,255,.7);max-width:46ch;font-size:19px}
.hero.dark .hero-meta{border-top-color:rgba(255,255,255,.16);margin-top:46px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.hero.dark .hero-meta .k{font-size:24px}
.hero.dark .hero-meta .v{font-size:12.5px;line-height:1.4}
.hero.dark .hero-meta .k{color:#fff}
.hero.dark .hero-meta .v{color:rgba(255,255,255,.55)}
.btn.outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.btn.outline:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.55)}

/* in home la testata galleggia sopra l'hero finche' non si scorre */
.p-index .hero.dark{margin-top:-74px}
.p-index .hero.dark .hero-in{padding-top:158px}
.p-index header.site{background:transparent;backdrop-filter:none;
  border-bottom-color:rgba(255,255,255,.12)}
.p-index header.site .brand b{color:#fff}
.p-index header.site .brand .mark{color:#fff}
.p-index header.site nav.main a{color:rgba(255,255,255,.78)}
.p-index header.site nav.main a:hover,.p-index header.site nav.main a.on{color:#fff}
.p-index header.site nav.main a.lang{border-color:rgba(255,255,255,.28);
  color:rgba(255,255,255,.78)}
.p-index header.site .burger span{background:#fff}
.p-index header.site.stuck{background:rgba(250,250,248,.9);
  backdrop-filter:saturate(180%) blur(12px);border-bottom-color:var(--line)}
.p-index header.site.stuck .brand b{color:var(--navy)}
.p-index header.site.stuck .brand .mark{color:var(--navy)}
.p-index header.site.stuck nav.main a{color:#3f4650}
.p-index header.site.stuck nav.main a:hover,
.p-index header.site.stuck nav.main a.on{color:var(--navy)}
.p-index header.site.stuck nav.main a.lang{border-color:var(--line);color:var(--grey)}
.p-index header.site.stuck .burger span{background:var(--navy)}

/* scheda di classificazione in evidenza */
.hero-card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(9px);box-shadow:0 30px 70px rgba(0,0,0,.36);position:relative}
.hero-card::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.13),transparent 42%)}
.hc-top{display:flex;align-items:center;gap:10px;padding:13px 20px;
  border-bottom:1px solid rgba(255,255,255,.12)}
.hc-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);flex:none;
  box-shadow:0 0 0 3px rgba(217,143,43,.22)}
.hc-file{font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.5);
  letter-spacing:.02em}
.hc-body{padding:24px 26px 26px}
.hc-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.1)}
.hc-row span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.42);flex:none}
.hc-row b{font-size:14.5px;color:#fff;font-weight:500;text-align:right}
.hc-row b.hc-hi{color:#F0B457}
.hc-sep{height:18px}
.hc-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.hc-scale i{height:5px;background:rgba(255,255,255,.14);display:block}
.hc-scale i.on.s2{background:var(--amber);box-shadow:0 0 14px rgba(217,143,43,.6)}
.hc-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}
.hc-legend span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.38);text-align:center}
.hc-note{font-size:12.5px;color:rgba(255,255,255,.5);margin:18px 0 0;line-height:1.55}

/* striscia dei riferimenti normativi */
.hero-strip{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.16)}
.hero-strip .wrap{display:flex;flex-wrap:wrap;gap:12px 34px;padding-top:15px;
  padding-bottom:15px;align-items:center}
.hero-strip span{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;
  color:rgba(255,255,255,.4);white-space:nowrap}

/* ---------- qualifiche e corsi ---------- */
.qual{border:1px solid var(--line);background:#fff;padding:26px 24px;
  border-top:2px solid var(--navy);transition:border-color .25s,transform .25s}
.qual:hover{transform:translateY(-2px);border-top-color:var(--amber)}
.q-tag{display:inline-block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--amber);font-weight:600;margin-bottom:12px}
.qual h3{font-size:19px;margin-bottom:10px}
.course-list{margin-top:22px;border-top:1px solid var(--line)}
.course-list div{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;padding:15px 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.course-list b{font-size:15px;color:var(--navy);font-weight:600}
.course-list span{font-size:13.5px;color:var(--grey);line-height:1.55}

/* ---------- selettore di lingua ---------- */
nav.main a.lang{font-family:var(--mono);font-size:12px;letter-spacing:.08em;
  border:1px solid var(--line);padding:4px 9px;color:var(--grey)}
nav.main a.lang:hover{border-color:var(--navy-15);color:var(--navy)}
nav.main a.lang::after{display:none}

/* ---------- richiamo finale degli articoli ---------- */
.cta-box{display:grid;grid-template-columns:1fr auto;gap:34px;align-items:center;
  background:var(--navy);color:rgba(255,255,255,.8);padding:34px 38px;margin-top:44px;
  position:relative;overflow:hidden}
.cta-box::after{content:'';position:absolute;right:-90px;top:-120px;width:340px;height:340px;
  border-radius:50%;background:radial-gradient(circle,rgba(217,143,43,.26),transparent 68%);
  pointer-events:none}
.cta-box>div{position:relative;z-index:2;max-width:56ch}
.cta-box h3{color:#fff;font-size:24px;margin-bottom:8px}
.cta-box p{margin:0;font-size:15.5px;color:rgba(255,255,255,.72)}
.cta-box .btn{position:relative;z-index:2;flex:none;white-space:nowrap}
@media(max-width:760px){
  .cta-box{grid-template-columns:1fr;gap:22px;padding:28px 24px}
  .cta-box .btn{justify-self:start}
}

/* ---------- gate per il download del report ---------- */
.gate{border:1px solid var(--line);border-top:2px solid var(--amber);background:#fff;
  padding:28px 30px;margin-top:26px}
.gate-head{max-width:62ch;margin-bottom:22px}
.gate-head h3{margin-bottom:6px}
.gate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:6px}
.gate .field{margin-bottom:8px}
.gate input[type=text],.gate input[type=email]{font-size:15px;padding:11px 13px}
.gate input.err{border-color:var(--brick);background:rgba(166,54,44,.04)}
.gate .consent{margin-top:12px;align-items:flex-start;line-height:1.5}
.gate .consent span{font-size:13.5px}
.gate-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}
.gate-msg{font-size:13.5px;color:var(--grey)}
.gate-msg.err{color:var(--brick);font-weight:500}
.gate-msg.ok{color:var(--sage);font-weight:500}
.gate-note{margin:12px 0 0;font-size:12.5px}
.gate.done{border-top-color:var(--sage)}
@media(max-width:680px){.gate{padding:22px 20px}.gate-grid{grid-template-columns:1fr}}

/* ---------- social nel footer ---------- */
.social{display:flex;gap:10px;flex-wrap:wrap}
footer.site .social a{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;
  border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.8);font-size:13.5px;
  width:auto;transition:background .2s,border-color .2s,color .2s}
footer.site .social a:hover{background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.45);color:#fff}
.social svg{width:16px;height:16px;fill:currentColor;flex:none}

/* ---------- card ---------- */
.card{background:#fff;border:1px solid var(--line);padding:30px 28px;
  transition:border-color .25s,transform .25s}
.card:hover{border-color:var(--navy-15);transform:translateY(-2px)}
.card .n{font-family:var(--mono);font-size:12px;color:var(--amber);
  letter-spacing:.08em;margin-bottom:14px;display:block}
.card p:last-child{margin-bottom:0}

/* ---------- fasi ---------- */
.phase{display:grid;grid-template-columns:88px 1fr;gap:26px;padding:26px 0;
  border-top:1px solid var(--line)}
.phase:last-child{border-bottom:1px solid var(--line)}
.phase .ph-n{font-family:var(--serif);font-size:30px;color:var(--navy-15);
  font-weight:600;line-height:1}
.phase .ph-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.phase .ph-d{font-size:13px;color:var(--amber);font-family:var(--mono)}

/* ---------- tabella ---------- */
table{width:100%;border-collapse:collapse;font-size:15.5px}
th{background:var(--navy);color:#fff;text-align:left;padding:13px 16px;
  font-weight:500;font-size:13.5px;letter-spacing:.03em}
td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:hover{background:#fff}
td.price{font-family:var(--serif);color:var(--navy);font-weight:600;white-space:nowrap}

/* ---------- callout ---------- */
.callout{border-left:3px solid var(--amber);background:#fff;padding:22px 26px;
  margin:28px 0}
.callout.navy{border-left-color:var(--navy)}
.callout p:last-child{margin-bottom:0}
.quote{font-family:var(--serif);font-size:23px;line-height:1.45;color:var(--navy)}

/* ---------- chip ---------- */
.chip{display:inline-block;font-family:var(--mono);font-size:11.5px;padding:3px 9px;
  border:1px solid var(--line);background:#fff;color:var(--grey);letter-spacing:.02em}
.chip.hi{border-color:rgba(217,143,43,.4);color:#9a6415;background:rgba(217,143,43,.07)}
.chip.ok{border-color:rgba(78,122,98,.35);color:var(--sage);background:rgba(78,122,98,.07)}
.chip.no{border-color:rgba(166,54,44,.35);color:var(--brick);background:rgba(166,54,44,.07)}

/* ---------- footer ---------- */
footer.site{background:var(--navy);color:rgba(255,255,255,.72);padding:72px 0 34px;
  margin-top:40px;font-size:14.5px}
footer.site .mark{width:32px;height:32px;flex:none;color:#fff}
footer.site h4{color:#fff;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:16px;font-weight:600}
footer.site a{text-decoration:none;color:rgba(255,255,255,.72);display:block;
  padding:5px 0;transition:color .2s}
footer.site a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.foot-bot{margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:13px;color:rgba(255,255,255,.5)}

/* Piè di pagina ridotto ai soli dati societari: una riga sola in una fascia
   alta 72px starebbe sperduta, quindi la fascia si accorcia e il testo si
   centra. Le regole del piè di pagina esteso restano sopra, inutilizzate ma
   pronte se un giorno tornano le colonne. */
footer.site.solo{padding:28px 0;margin-top:60px;font-size:13px;
  color:rgba(255,255,255,.62)}
footer.site.solo .wrap{text-align:center}

/* ---------- form ---------- */
label{display:block;font-size:13.5px;font-weight:500;color:var(--navy);margin-bottom:6px}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--line);
  background:#fff;font-family:var(--sans);font-size:15.5px;color:var(--ink);
  transition:border-color .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--navy)}
.field{margin-bottom:20px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--grey)}
.consent input{width:auto;margin-top:4px}

/* ---------- simulatore ---------- */
.sim{background:#fff;border:1px solid var(--line);padding:0;overflow:hidden}
.sim-bar{display:flex;border-bottom:1px solid var(--line)}
.sim-bar div{flex:1;padding:15px 12px;font-size:13px;text-align:center;color:var(--grey);
  border-right:1px solid var(--line);position:relative}
.sim-bar div:last-child{border-right:0}
.sim-bar div.on{color:var(--navy);font-weight:600}
.sim-bar div.on::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;
  height:2px;background:var(--amber)}
.sim-body{padding:40px}
.sim-step{display:none}
.sim-step.on{display:block;animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.opt{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);
  padding:16px 18px;margin-bottom:10px;cursor:pointer;background:var(--paper);
  transition:border-color .2s,background .2s}
.opt:hover{border-color:var(--navy-15);background:#fff}
.opt.sel{border-color:var(--navy);background:#fff}
.opt input{width:auto;margin-top:4px;flex:none;accent-color:var(--navy)}
.opt>span{display:block}
.opt .ot{display:block;font-weight:500;color:var(--navy);font-size:15.5px;line-height:1.4}
.opt .od{display:block;font-size:13.5px;color:var(--grey);margin-top:3px;line-height:1.5}
.sim-nav{display:flex;justify-content:space-between;gap:14px;margin-top:30px;
  padding-top:24px;border-top:1px solid var(--line)}
.res-block{border:1px solid var(--line);border-left-width:3px;padding:22px 24px;
  margin-bottom:16px;background:#fff}
.res-block.no{border-left-color:var(--brick)}
.res-block.hi{border-left-color:var(--amber)}
.res-block.tr{border-left-color:var(--navy)}
.res-block.ok{border-left-color:var(--sage)}
.res-block h3{font-family:var(--sans);font-size:15px;margin-bottom:4px}
.res-block ul{margin:12px 0 0 18px;font-size:15px}
.res-block li{margin:5px 0}
.res-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-bottom:26px}
.res-kpi div{background:#fff;padding:20px 16px;text-align:center}
.res-kpi .k{font-family:var(--serif);font-size:30px;color:var(--navy);font-weight:600;
  line-height:1}
.res-kpi .v{font-size:12.5px;color:var(--grey);margin-top:6px}
.res-kpi .k.no{color:var(--brick)} .res-kpi .k.hi{color:var(--amber)}
.res-kpi .k.ok{color:var(--sage)}

/* ---------- semaforo esito ---------- */
.semaforo{display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center;
  border:1px solid var(--line);background:#fff;padding:26px 30px;margin-bottom:24px}
.lights{display:flex;flex-direction:column;gap:9px;padding:14px 11px;background:#1d2229;
  border-radius:34px;flex:none}
.lights i{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.11);
  display:block;transition:background .4s,box-shadow .4s}
.lights i.on.r{background:#C4362A;box-shadow:0 0 16px rgba(196,54,42,.75)}
.lights i.on.y{background:#D98F2B;box-shadow:0 0 16px rgba(217,143,43,.75)}
.lights i.on.g{background:#4E9A6B;box-shadow:0 0 16px rgba(78,154,107,.7)}
.sem-txt .lv{font-family:var(--serif);font-size:26px;color:var(--navy);font-weight:600;
  line-height:1.15;margin-bottom:6px}
.sem-txt p{font-size:15px;color:var(--grey);margin:0}
.sem-idx{text-align:center;flex:none;padding-left:26px;border-left:1px solid var(--line)}
.sem-idx .n{font-family:var(--serif);font-size:46px;font-weight:600;line-height:1;
  color:var(--navy);font-variant-numeric:tabular-nums}
.sem-idx .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);
  margin-top:8px}
.sem-idx .n.r{color:#C4362A} .sem-idx .n.y{color:#D98F2B} .sem-idx .n.g{color:#4E9A6B}
.sem-bar{height:5px;background:var(--line);margin-top:10px;position:relative;overflow:hidden}
.sem-bar span{display:block;height:100%;background:var(--navy);transition:width .8s ease}
.sem-bar span.r{background:#C4362A} .sem-bar span.y{background:#D98F2B}
.sem-bar span.g{background:#4E9A6B}
@media(max-width:680px){
  .semaforo{grid-template-columns:auto 1fr;gap:18px;padding:20px}
  .lights{flex-direction:row}
  .sem-idx{grid-column:1/-1;padding-left:0;padding-top:16px;border-left:0;
    border-top:1px solid var(--line);text-align:left;display:flex;align-items:baseline;gap:12px}
  .sem-idx .l{margin-top:0}
}

/* ---------- rischi in home ---------- */
.risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.risk-grid > div{background:#fff;padding:26px 24px}
.risk-grid .amt{font-family:var(--serif);font-size:31px;color:var(--navy);font-weight:600;
  line-height:1.1;font-variant-numeric:tabular-nums}
.risk-grid .amt.r{color:#A6362C}
.risk-grid .who{font-size:14px;color:var(--grey);margin-top:8px}
.risk-grid .ref{font-family:var(--mono);font-size:11.5px;color:var(--amber);margin-top:12px;
  display:block;letter-spacing:.02em}
@media(max-width:680px){.risk-grid{grid-template-columns:1fr}}

/* ---------- blog ---------- */
.post{border-top:1px solid var(--line);padding:30px 0;display:grid;
  grid-template-columns:150px 1fr;gap:34px;text-decoration:none;transition:opacity .2s}
.post:hover h3{color:var(--amber)}
.post h3{transition:color .2s;margin-bottom:6px}
.post .meta{font-size:12.5px;color:var(--grey);font-family:var(--mono)}
.feat{background:#fff;border:1px solid var(--line);padding:44px;margin-bottom:20px}

.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

@media(max-width:1040px){
  .hero.dark .hero-in{grid-template-columns:1fr;gap:44px;padding-top:74px;padding-bottom:60px}
  .p-index .hero.dark .hero-in{padding-top:130px}
  .hero-card{max-width:520px}
}
@media(max-width:920px){
  .g3,.g4,.foot-grid{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr;gap:34px}
  .res-kpi{grid-template-columns:1fr 1fr}
  .course-list div{grid-template-columns:1fr;gap:5px}
}
@media(max-width:680px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .navbar{padding:0 20px;height:64px}
  nav.main{display:none;position:absolute;top:64px;left:0;right:0;background:var(--paper);
    flex-direction:column;gap:0;padding:12px 20px 20px;border-bottom:1px solid var(--line)}
  nav.main.open{display:flex}
  nav.main a{padding:12px 0;width:100%;border-bottom:1px solid var(--line)}
  .burger{display:block}
  .g2,.g3,.g4,.foot-grid,.res-kpi{grid-template-columns:1fr}
  .hero.dark .hero-in{padding-top:56px;padding-bottom:48px}
  .p-index .hero.dark{margin-top:-64px}
  .p-index .hero.dark .hero-in{padding-top:108px}
  .hero.dark .hero-meta{grid-template-columns:1fr 1fr;gap:22px 24px}
  .p-index header.site nav.main{background:#0E2237}
  .p-index header.site nav.main a{border-bottom-color:rgba(255,255,255,.14)}
  .hero.dark .hero-meta{gap:22px 30px;margin-top:34px}
  .hero-strip .wrap{gap:9px 20px}
  .hero-strip span{font-size:10.5px}
  .hc-row{flex-direction:column;align-items:flex-start;gap:3px}
  .hc-row b{text-align:left}
  nav.main a.lang{display:inline-block;width:auto;align-self:flex-start;margin-top:12px;
    border-bottom:1px solid var(--line)}
  section{padding:64px 0}
  .hero{padding:64px 0 56px}
  .hero-meta{gap:26px}
  .phase{grid-template-columns:1fr;gap:8px}
  .post{grid-template-columns:1fr;gap:10px}
  .sim-body{padding:24px 20px}
  .sim-bar div{font-size:11px;padding:12px 6px}
  table{font-size:14px} th,td{padding:10px 11px}
  .feat{padding:26px}
}
/* ---------- intestazione del documento stampato ---------- */
.print-head,.print-foot,.printonly{display:none}

@media print{
  @page{size:A4 portrait;margin:15mm 14mm 16mm}

  *,*::before,*::after{
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
    box-shadow:none!important;text-shadow:none!important;transition:none!important;
    animation:none!important}

  html,body{background:#fff!important;font-size:10.4pt;line-height:1.5;color:#222}
  .js .reveal{opacity:1!important;transform:none!important}

  /* elementi di navigazione: non appartengono a un foglio stampato */
  header.site,footer.site,.burger,.cta,.sim-nav,.sim-bar,.noprint{display:none!important}
  .printonly{display:block!important}

  .wrap{max-width:none!important;width:auto!important;padding:0!important;margin:0!important}
  section,section.tight{padding:14pt 0!important}
  hr.rule{margin:0;border-top:.6pt solid #D8D5CE}

  /* niente elementi spezzati a meta' pagina */
  .semaforo,.res-kpi,.callout,.sem-bar,.print-head,.print-foot,
  .res-block li,.card,.phase,figure,tr{break-inside:avoid;page-break-inside:avoid}
  h1,h2,h3,h4{break-after:avoid;page-break-after:avoid}
  p,li{orphans:3;widows:3}
  thead{display:table-header-group}

  a{color:#16324F;text-decoration:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:7.6pt;color:#5A6470}
  .btn::after,.brand::after,nav a::after{content:""!important}

  /* =============== esito del simulatore =============== */
  .p-simulatore .hero{display:none!important}
  .p-simulatore section,.p-simulatore section.tight{padding:0!important;margin:0!important}
  .p-simulatore .sim{border:0!important;overflow:visible!important;background:transparent!important}
  .p-simulatore .sim-body{padding:0!important;overflow:visible!important}
  .p-simulatore .sim-step{display:none!important}
  .p-simulatore .sim-step.on{display:block!important}

  .print-head{display:block;margin-bottom:16pt;padding-bottom:10pt;
    border-bottom:1.6pt solid #16324F}
  .print-head .ph-brand{font-family:var(--serif);font-size:15pt;font-weight:600;
    color:#16324F;letter-spacing:.02em}
  .print-head .ph-brand i{font-style:normal;color:#C07E22}
  .print-head .ph-brand span{display:block;font-family:var(--sans);font-size:8.4pt;
    font-weight:400;color:#5A6470;letter-spacing:0;margin-top:2pt}
  .print-head h2{font-family:var(--serif);font-size:19pt;color:#16324F;
    margin:12pt 0 10pt;line-height:1.15}
  .print-head .ph-meta{width:100%;border-collapse:collapse;font-size:8.8pt;margin:0}
  .print-head .ph-meta th{width:15%;text-align:left;padding:2.5pt 8pt 2.5pt 0;
    border:0;background:none;color:#5A6470;font-weight:600;text-transform:uppercase;
    letter-spacing:.08em;font-size:7.6pt;vertical-align:baseline}
  .print-head .ph-meta td{width:35%;padding:2.5pt 16pt 2.5pt 0;border:0;color:#222;
    vertical-align:baseline}

  .print-foot{display:flex;justify-content:space-between;gap:14pt;
    margin-top:16pt;padding-top:5pt;border-top:.6pt solid #D8D5CE;
    font-size:7.6pt;color:#5A6470}

  #esito>h3{font-size:14pt;margin:0 0 3pt}
  #esito>p.small{font-size:8.8pt;color:#5A6470;margin-bottom:14pt}

  /* il semaforo deve restare leggibile anche stampato in bianco e nero */
  .semaforo{grid-template-columns:auto 1fr auto;gap:16pt;padding:12pt 14pt;
    border:1pt solid #D8D5CE;margin-bottom:0}
  .lights{background:#1d2229!important;padding:8pt 6pt;gap:5pt}
  .lights i{width:11pt;height:11pt;border:.6pt solid rgba(255,255,255,.25)}
  .lights i.on.r{background:#C4362A!important}
  .lights i.on.y{background:#D98F2B!important}
  .lights i.on.g{background:#4E9A6B!important}
  .sem-txt .lv{font-size:14pt;margin-bottom:4pt}
  .sem-txt p{font-size:9.4pt;color:#3A4048}
  .sem-idx{padding-left:14pt}
  .sem-idx .n{font-size:30pt}
  .sem-idx .l{font-size:7pt}
  .sem-bar{margin:0 0 16pt!important;height:4pt;background:#E7E4DD}

  /* i quattro contatori restano su una riga sola */
  .res-kpi{grid-template-columns:repeat(4,1fr)!important;margin-bottom:16pt;
    border:1pt solid #D8D5CE;gap:0}
  .res-kpi div{padding:9pt 6pt;border-right:1pt solid #D8D5CE}
  .res-kpi div:last-child{border-right:0}
  .res-kpi .k{font-size:19pt}
  .res-kpi .v{font-size:8pt;margin-top:3pt}

  /* i blocchi lunghi possono spezzarsi, ma mai subito sotto il titolo */
  .res-block{padding:10pt 12pt;margin-bottom:9pt;border:.7pt solid #D8D5CE;
    border-left-width:2.4pt;break-inside:auto;page-break-inside:auto}
  .res-block h3,.res-block h3+p{break-after:avoid;page-break-after:avoid}
  .res-block ul{break-before:avoid;page-break-before:avoid;margin:6pt 0 0 14pt;font-size:9.2pt}
  .res-block h3{font-size:10.4pt;margin-bottom:2pt}
  .res-block p{font-size:9.2pt;color:#3A4048;margin:0}
  .res-block li{margin:3pt 0}
  code{font-size:8.6pt}

  .callout{padding:10pt 14pt;margin:14pt 0 0;font-size:9pt;
    border-left:2.4pt solid #16324F;background:#F4F2EE!important}
  .callout p{font-size:9pt;margin:0}
  .callout.navy{color:#222!important;background:#F4F2EE!important}
  .callout.navy strong{color:#16324F!important}
}
