:root{--blu:#1e3a8a;--blu2:#1d4ed8;--online:#1e429f;--verde:#0f766e;--testo:#0f172a;--tenue:#475569;--bordo:#e2e8f0;--sfondo:#f8fafc}
*{box-sizing:border-box}
html{font:106.25%/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--testo);background:var(--sfondo);-webkit-text-size-adjust:100%}
body{margin:0}
a{color:var(--blu2);text-underline-offset:.15em}
a:hover{color:var(--blu)}
a:focus-visible{outline:3px solid #f59e0b;outline-offset:2px;border-radius:2px}
.salta{position:absolute;left:-999em}
.salta:focus{position:static;display:block;padding:.5rem 1.25rem}
header{background:linear-gradient(110deg,#1e3a8a,#1d4ed8 65%,#0f766e)}
header p,main,footer p{max-width:52rem;margin:0 auto;padding:1rem 1.25rem}
header p{font-size:.95rem;font-weight:600}
header a{color:#fff;text-decoration:none}
header a:hover{color:#fff;text-decoration:underline}
main{padding-top:2rem}
footer{margin-top:4rem;border-top:1px solid var(--bordo);color:var(--tenue);font-size:.85rem}
h1{font-size:clamp(1.6rem,1.2rem + 2vw,2.2rem);line-height:1.2;letter-spacing:-.02em;margin:.6rem 0 1rem}
h2{font-size:1.2rem;line-height:1.3;letter-spacing:-.01em;margin:2.5rem 0 .75rem}
p{margin:.6rem 0}
.intro{max-width:42rem;font-size:1.08rem;color:var(--tenue)}
.hero{display:flex;align-items:center;gap:1.5rem;padding:1.75rem 2rem;border-radius:1rem;background:linear-gradient(120deg,#1e3a8a,#1d4ed8 60%,#0f766e);color:#fff}
.hero h1{margin-top:0}
.hero .intro{color:#eef2ff;font-size:1.02rem}
.hero .intro p:last-child{margin-bottom:0}
.hero svg{flex:0 0 15rem;max-width:36%;height:auto}
@media(max-width:40rem){.hero{flex-direction:column-reverse;align-items:flex-start;padding:1.25rem}.hero svg{flex:none;width:11rem;max-width:60%}}
.indietro{font-size:.9rem}
.avviso{margin:1.5rem 0;padding:.8rem 1.1rem;background:#fefce8;border:1px solid #fde68a;border-radius:.6rem;font-size:.95rem}
.sede{margin:-.4rem 0 .9rem;color:var(--tenue);font-size:.92rem}
.tipo{display:inline-block;margin:1rem 0 0;padding:.15rem .7rem;border-radius:99px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;background:#dbeafe;color:var(--blu)}
.tipo.lab{background:#ccfbf1;color:#115e59}
.corsi{list-style:none;padding:0;margin:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}
.corsi li{position:relative;background:#fff;border:1px solid var(--bordo);border-left:4px solid var(--bordo-voce);border-radius:.6rem;padding:.9rem 1.1rem;transition:box-shadow .15s;--bordo-voce:var(--online);--sopra:var(--online)}
.corsi.lab li{--bordo-voce:var(--verde);--sopra:var(--verde)}
.corsi li.bozza{--bordo-voce:#facc15;--sopra:#a16207}
.corsi.lab li.bozza{--bordo-voce:#fb923c;--sopra:#c2410c}
.corsi li:hover{box-shadow:0 4px 14px rgba(15,23,42,.1)}
.corsi a{display:block;font-weight:600;line-height:1.35;color:var(--testo);text-decoration:none}
.corsi a::after{content:"";position:absolute;inset:0;border-radius:.6rem}
.corsi li:hover a{color:var(--sopra)}
.corsi span{display:block;margin-top:.4rem;color:var(--tenue);font-size:.86rem}
.corsi li.chiuso{background:#f1f5f9;--bordo-voce:#94a3b8;--sopra:var(--tenue)}
.corsi li.chiuso a{color:var(--tenue)}
.contatto{margin:2rem 0;padding:1.2rem 1.5rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.75rem}
.contatto h2{margin:0 0 .4rem;font-size:1.1rem;color:var(--blu)}
.contatto ul{margin:.5rem 0 0;padding-left:1.2rem}
.contatto li{margin:.25rem 0}
.contatto small{color:var(--tenue);font-size:.88em}
.contatto.chiuso{background:#f1f5f9;border-color:#cbd5e1}
.contatto.chiuso h2{color:var(--testo)}
dl{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 0}
dl .largo{flex-basis:100%}
dl div{flex:1 1 9rem;background:#fff;border:1px solid var(--bordo);border-radius:.6rem;padding:.7rem .9rem}
dt{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--tenue)}
dd{margin:.15rem 0 0;font-weight:500;line-height:1.4}
table{width:100%;max-width:34rem;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--bordo);border-radius:.6rem;overflow:hidden;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:.55rem .9rem;border-bottom:1px solid var(--bordo)}
thead th{background:#f1f5f9;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tenue)}
tfoot th,tfoot td{border-bottom:0;font-weight:600}
.vuoto{color:var(--tenue);font-style:italic}