@font-face { font-family:"Geist"; src:url("font/Geist-Variable.woff2") format("woff2"); font-weight:100 900; font-style:normal; font-display:swap; }
@font-face { font-family:"Geist Mono"; src:url("font/GeistMono-Variable.woff2") format("woff2"); font-weight:100 900; font-style:normal; font-display:swap; }
:root {
  --h-bg:#0b1220; --h-card:#142036; --h-card2:#1a2842; --h-line:#24344f; --h-ink:#e6edf7; --h-muted:#97a6bf;
  --bg:#F8FAFC; --card:#FFFFFF; --line:#E2E8F0; --ink:#0b1220; --muted:#475569; --alt:#EEF2F6;
  --accent:#2ee6a0; --on-accent:#06281b; --accent-ink:#0b7a55;
  --alta:#ff5470; --media:#ffb547; --bassa:#4cc3ff;
  --raggio:10px; --max:1160px;
}
[data-tema="4"] { --h-bg:#1c2128; --h-card:#262c35; --h-card2:#2d343e; --h-line:#3a424d; --h-ink:#eef1f4; --h-muted:#a3acb8;
                  --bg:#22282f; --card:#2a3038; --line:#3a424d; --ink:#eef1f4; --muted:#a3acb8; --alt:#1c2128; --accent-ink:#2ee6a0; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.6 "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; -webkit-font-smoothing:antialiased; }
button { font-family:inherit; }
a { color:var(--accent-ink); }
.contenitore { max-width:calc(var(--max) + 48px); margin:0 auto; padding:0 24px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; border-radius:4px; }
.eroe { background:var(--h-bg); color:var(--h-ink); position:relative; overflow:hidden; }
[data-tema="4"] .eroe::after, footer::before { content:""; position:absolute; left:0; right:0; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent 0, var(--h-line) 28%, var(--h-line) 72%, transparent 100%); }
[data-tema="4"] .eroe::after { bottom:46px; }
.con-onde { position:relative; isolation:isolate; overflow:hidden; }
.con-onde > canvas.onde { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:-1; display:block; }
.btn { display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:var(--on-accent); text-decoration:none; font-weight:800;
  padding:13px 20px; border-radius:var(--raggio); min-height:48px; border:0; font-size:16px; }
.btn.sec { background:linear-gradient(180deg, #ffffff 0%, #ebebf0 100%); color:#121016; font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 6px 16px -6px rgba(0,0,0,.6); transition:filter .2s ease; }
.btn.sec:hover { filter:brightness(.94); }
.testata { position:relative; z-index:20; padding:16px 24px 0; }
.card-nav { position:relative; width:100%; max-width:var(--cn-max); height:var(--cn-bar); margin:0 auto; font-size:14px; line-height:1.4; -webkit-tap-highlight-color:transparent;
  --cn-max:var(--max); --cn-bar:60px; --cn-inset:8px; --cn-gap:8px; --cn-radius:18px; --cn-logo:24px; --cn-card:176px;
  --cn-panel:color-mix(in srgb, var(--h-card) 94%, transparent); --cn-edge:var(--h-line); --cn-highlight:rgba(255,255,255,.04);
  --cn-shadow:0 30px 60px #0005;
  --cn-text:var(--h-ink); --cn-muted:var(--h-muted); --cn-hover:rgba(255,255,255,.06); --cn-ring:rgba(244,244,245,.55);
  --cn-tile:var(--h-card2);
  --cn-tile-rim:inset 0 0 0 1px var(--h-line);
  --cn-cta:linear-gradient(180deg, #ffffff 0%, #ebebf0 100%); --cn-cta-ink:#121016;
  --cn-cta-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 6px 16px -6px rgba(0,0,0,.6); --cn-cta-hover:brightness(.94);
  --cn-blur:blur(20px) saturate(1.6); }
.card-nav__panel { position:absolute; top:0; right:0; left:0; z-index:10; height:var(--cn-bar); border-radius:var(--cn-radius); overflow:hidden;
  background:var(--cn-panel); box-shadow:var(--cn-shadow); -webkit-backdrop-filter:var(--cn-blur); backdrop-filter:var(--cn-blur); }
.card-nav__rim { position:absolute; inset:0; z-index:3; border-radius:inherit; box-shadow:inset 0 0 0 1px var(--cn-edge), inset 0 1px 0 var(--cn-highlight); pointer-events:none; }
.card-nav__bar { position:relative; z-index:2; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; height:var(--cn-bar); padding:0 var(--cn-inset); }
.card-nav__menu { display:inline-flex; align-items:center; gap:10px; justify-self:start; height:calc(var(--cn-bar) - var(--cn-inset) * 2); padding:0 14px 0 16px;
  border:0; border-radius:calc(var(--cn-radius) - var(--cn-inset)); background:none; color:var(--cn-text); font:inherit; font-weight:500; cursor:pointer; outline:none; transition:background-color .2s ease; }
.card-nav__menu:hover { background:var(--cn-hover); }
.card-nav__menu:focus-visible, .card-nav__logo:focus-visible, .card-nav__cta:focus-visible, .card-nav__link:focus-visible { outline:2px solid var(--cn-ring); outline-offset:2px; }
.card-nav__burger { position:relative; width:18px; height:12px; }
.card-nav__line { position:absolute; left:0; width:100%; height:1.5px; border-radius:2px; background:currentColor;
  transition:transform .5s cubic-bezier(.22,1,.36,1), top .5s cubic-bezier(.22,1,.36,1); }
.card-nav__line--top { top:2.25px; } .card-nav__line--bottom { top:8.25px; }
.card-nav[data-open] .card-nav__line--top { top:5.25px; transform:rotate(45deg); }
.card-nav[data-open] .card-nav__line--bottom { top:5.25px; transform:rotate(-45deg); }
.card-nav__menu-label { position:relative; display:inline-grid; overflow:hidden; }
.card-nav__word { grid-area:1 / 1; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.card-nav__word--close { transform:translateY(110%); }
.card-nav[data-open] .card-nav__word--open { transform:translateY(-110%); }
.card-nav[data-open] .card-nav__word--close { transform:translateY(0); }
.card-nav__logo { display:inline-flex; align-items:center; justify-self:center; height:var(--cn-logo); color:var(--cn-text); text-decoration:none; outline:none; }
.card-nav__logo { height:auto; }
.card-nav__logo img { display:block; width:auto; }
.card-nav__logo .logo-largo { height:28px; }
.card-nav__logo .logo-stretto { height:30px; display:none; }
.card-nav[data-narrow] .card-nav__logo .logo-largo { display:none; }
.card-nav[data-narrow] .card-nav__logo .logo-stretto { display:block; height:26px; }
@media (max-width: 900px) { .card-nav__logo .logo-largo { display:none; } .card-nav__logo .logo-stretto { display:block; } }
.logo-pagina img { display:block; height:44px; width:auto; }
.card-nav__cta { display:inline-flex; align-items:center; justify-content:center; justify-self:end; height:calc(var(--cn-bar) - var(--cn-inset) * 2); padding:0 16px;
  border:0; border-radius:calc(var(--cn-radius) - var(--cn-inset)); background:var(--cn-cta); box-shadow:var(--cn-cta-shadow); color:var(--cn-cta-ink);
  font:inherit; font-weight:600; white-space:nowrap; text-decoration:none; cursor:pointer; outline:none; transition:filter .2s ease; }
.card-nav__cta:hover { filter:var(--cn-cta-hover); }
.card-nav[data-narrow] .card-nav__bar { grid-template-columns:auto 1fr auto; }
.card-nav[data-narrow] .card-nav__logo { grid-column:1; grid-row:1; justify-self:start; padding-left:14px; }
.card-nav[data-narrow] .card-nav__menu { grid-column:3; grid-row:1; justify-self:end; }
.card-nav[data-narrow] .card-nav__bar .card-nav__cta, .card-nav:not([data-narrow]) .card-nav__cta-riga { display:none; }
.card-nav__content { position:absolute; top:var(--cn-bar); right:0; left:0; display:flex; flex-direction:column; gap:var(--cn-gap);
  padding:0 var(--cn-inset) var(--cn-inset); perspective:900px; visibility:hidden; }
.card-nav[data-shown] .card-nav__content { visibility:visible; }
.card-nav__cards { display:flex; gap:var(--cn-gap); }
.card-nav[data-narrow] .card-nav__cards { flex-direction:column; }
.card-nav__card { position:relative; display:flex; flex:1 1 0; flex-direction:column; gap:18px; min-width:0; min-height:var(--cn-card); padding:16px 16px 14px;
  border-radius:calc(var(--cn-radius) - var(--cn-inset)); background:var(--cn-tile); box-shadow:var(--cn-tile-rim); color:var(--cn-text); transform-origin:50% 0; will-change:transform, opacity; }
.card-nav[data-narrow] .card-nav__card { flex:none; min-height:0; gap:10px; padding:14px 14px 12px; }
.card-nav[data-narrow] .card-nav__links { flex-direction:row; flex-wrap:wrap; gap:2px 16px; }
.card-nav__card-head { display:flex; flex-direction:column; gap:4px; }
.card-nav__label { font-size:17px; font-weight:600; letter-spacing:-.015em; }
.card-nav__description { margin:0; color:var(--cn-muted); font-size:13px; line-height:1.45; }
.card-nav__links { display:flex; flex-direction:column; gap:2px; margin:auto 0 0; padding:0; list-style:none; }
.card-nav__link { display:inline-flex; align-items:center; gap:8px; padding:3px 0; border:0; border-radius:6px; background:none; color:inherit;
  font:inherit; font-size:14px; font-weight:500; text-decoration:none; cursor:pointer; outline:none; opacity:.82; transition:opacity .2s ease; }
.card-nav__link:hover { opacity:1; }
.card-nav__arrow { position:relative; display:inline-block; flex:none; width:14px; height:14px; overflow:hidden; }
.card-nav__arrow svg { position:absolute; inset:0; width:100%; height:100%; transition:transform .45s cubic-bezier(.22,1,.36,1); }
.card-nav__arrow svg + svg { transform:translate(-110%, 110%); }
.card-nav__link:hover .card-nav__arrow svg:first-child, .card-nav__link:focus-visible .card-nav__arrow svg:first-child { transform:translate(110%, -110%); }
.card-nav__link:hover .card-nav__arrow svg + svg, .card-nav__link:focus-visible .card-nav__arrow svg + svg { transform:translate(0, 0); }
.card-nav__cta--wide { display:flex; width:100%; height:44px; }
@media (prefers-reduced-motion: reduce) { .card-nav__line, .card-nav__word, .card-nav__arrow svg { transition:none; } }
.eroe-griglia { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.3fr); gap:44px; align-items:center; padding:56px 24px 88px; }
.occhiello { display:inline-flex; gap:8px; align-items:center; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-h, var(--accent)); }
.occhiello::before { content:""; width:28px; height:2px; background:currentColor; transform:translateY(-1px); }
h1 { font-size:clamp(32px, 4.4vw, 52px); line-height:1.08; margin:14px 0 18px; letter-spacing:-.01em; text-wrap:balance; }
h1 em { font-style:normal; color:var(--accent); }
.eroe p.sotto { color:var(--h-muted); font-size:19px; margin:0 0 28px; max-width:32em; }
.bottoni { display:flex; flex-wrap:wrap; gap:12px; }
.pannello { background:var(--h-card); border:1px solid var(--h-line); border-radius:14px; box-shadow:0 30px 60px #0005; position:relative; }
.pannello-testa { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-bottom:1px solid var(--h-line); font-size:13px; color:var(--h-muted); }
.pannello-testa b { color:var(--h-ink); font-size:14px; }
.puntini { display:flex; gap:6px; } .puntini i { width:10px; height:10px; border-radius:50%; background:var(--h-line); }
.riepilogo { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:14px 18px 6px; }
.riepilogo div { background:var(--h-card2); border:1px solid var(--h-line); border-radius:8px; padding:10px 12px; }
.riepilogo strong { display:block; font-size:24px; line-height:1.1; }
.riepilogo span { font-size:12px; color:var(--h-muted); }
table { width:100%; border-collapse:collapse; font-size:13.5px; }
.tabella { padding:8px 10px 14px; overflow-x:auto; }
th { text-align:left; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--h-muted); font-weight:700; padding:8px; }
td { padding:10px 6px; border-top:1px solid var(--h-line); white-space:nowrap; }
td.cod { font-family:"Geist Mono", Consolas, monospace; color:var(--accent); font-weight:700; }
.pr { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:12px; padding:3px 9px; border-radius:999px; border:1px solid currentColor; }
.pr::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.pr.alta { color:var(--alta); } .pr.media { color:var(--media); } .pr.bassa { color:var(--bassa); }
.stato { color:var(--h-muted); }
.onda-testo { background:linear-gradient(90deg, var(--accent) 0 40%, #e9fff6 50%, var(--accent) 60% 100%) 100% 0 / 300% 100% no-repeat;
  -webkit-background-clip:text; background-clip:text; }
.in-controllo .onda-testo { color:transparent; animation:onda-testo 1.1s linear infinite; }
@keyframes onda-testo { to { background-position:0% 0; } }
.status-mark { --sm-size:16px; --sm-stroke:2; --sm-color:var(--h-muted); --sm-done:var(--accent); --sm-fill:.08; --sm-draw:240ms;
  --sm-muted:.55; --sm-check-delay:120ms; --sm-ease-out:cubic-bezier(.23,1,.32,1);
  position:relative; display:inline-flex; align-items:center; gap:calc(var(--sm-size) * .5); vertical-align:middle; line-height:1; }
.status-mark[data-tono="media"] { --sm-color:var(--media); }
.status-mark__glyph { flex:none; overflow:visible; color:var(--sm-color); transition:color .2s ease; }
.status-mark[data-status="done"] .status-mark__glyph { color:var(--sm-done); }
.status-mark__track { fill:currentColor; stroke:currentColor; stroke-width:var(--sm-stroke); fill-opacity:0; stroke-opacity:0; transition:fill-opacity .18s ease, stroke-opacity .2s ease; }
.status-mark[data-status="running"] .status-mark__track { stroke-opacity:.2; }
.status-mark[data-status="done"] .status-mark__track { fill-opacity:var(--sm-fill); }
.status-mark__ring { fill:none; stroke:currentColor; stroke-width:var(--sm-stroke); stroke-linecap:round; opacity:var(--sm-muted); transition:opacity .2s ease; }
.status-mark[data-status="running"] .status-mark__ring, .status-mark[data-status="done"] .status-mark__ring { opacity:1; }
.status-mark__check { fill:none; stroke:currentColor; stroke-width:var(--sm-stroke); stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:1 2; stroke-dashoffset:1.05; opacity:0; transition:stroke-dashoffset .16s var(--sm-ease-out), opacity 0s linear .16s; }
.status-mark[data-status="done"] .status-mark__check { stroke-dashoffset:0; opacity:1;
  transition:stroke-dashoffset var(--sm-draw) var(--sm-ease-out) var(--sm-check-delay), opacity 0s linear var(--sm-check-delay); }
.status-mark__label { color:var(--h-muted); line-height:1.25; transition:color .2s ease; }
.status-mark[data-status="running"] .status-mark__label { color:var(--h-ink); }
.status-mark__sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion: reduce) { .status-mark__check { stroke-dashoffset:0; transition:opacity .2s ease; } .in-controllo .onda-testo { animation:none; color:inherit; } }
.etichetta { position:absolute; display:flex; align-items:center; gap:0; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.etichetta span { background:var(--accent); color:var(--on-accent); padding:5px 9px; border-radius:4px; }
.etichetta i { width:46px; height:2px; background:var(--accent); }
.etichetta.e1 { top:-14px; right:28px; } .etichetta.e1 i { display:none; }
.eroe-griglia > * { min-width:0; }
tr.evidenza td { background:color-mix(in srgb, var(--alta) 10%, transparent); }
tr.evidenza td:first-child { box-shadow:inset 3px 0 0 var(--alta); }
section { padding:84px 0; }
section.alt { background:var(--alt); }
[data-tema="4"] section:not(.alt) { background:linear-gradient(180deg, var(--alt) 0, var(--bg) 140px, var(--bg) calc(100% - 140px), var(--alt) 100%); }
.titolo-sez { max-width:46em; margin-bottom:36px; }
.titolo-sez .occhiello { color:var(--accent-ink); }
h2 { font-size:clamp(26px, 3vw, 36px); line-height:1.15; margin:10px 0 10px; letter-spacing:-.01em; }
.titolo-sez p { color:var(--muted); margin:0; font-size:18px; }
.numeri { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--line); border-radius:var(--raggio); background:var(--card); }
.numeri div { padding:26px 28px; border-right:1px solid var(--line); }
.numeri div:last-child { border-right:0; }
.numeri strong { display:block; font-size:38px; line-height:1.1; color:var(--accent-ink); }
.numeri span { color:var(--muted); font-size:15px; }
.numeri small { display:block; color:var(--muted); font-size:12px; margin-top:6px; opacity:.85; }
.griglia { display:grid; gap:20px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--raggio); padding:24px; }
.card h3 { margin:12px 0 6px; font-size:18px; }
.card p { margin:0; color:var(--muted); font-size:15.5px; }
.ico { width:40px; height:40px; border-radius:8px; display:grid; place-items:center; background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent-ink); }
.ico svg { width:22px; height:22px; }
.codice { font-family:"Geist Mono", Consolas, monospace; font-size:12px; color:var(--muted); letter-spacing:.06em; }
ol.passi { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:p; position:relative; }
ol.passi::before { content:""; position:absolute; top:22px; left:22px; right:22px; height:2px; background:repeating-linear-gradient(90deg, var(--line) 0 10px, transparent 10px 18px); }
ol.passi li { counter-increment:p; position:relative; }
ol.passi li::before { content:"0" counter(p); display:grid; place-items:center; width:48px; height:48px; border-radius:9px; background:var(--accent); color:var(--on-accent); font-weight:800; margin-bottom:14px; position:relative; }
ol.passi strong { display:block; font-size:17px; margin-bottom:4px; }
ol.passi span { color:var(--muted); font-size:15.5px; }
.norme { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.norma { display:flex; gap:14px; align-items:flex-start; background:var(--card); border:1px solid var(--line); border-radius:var(--raggio); padding:18px 20px; }
.norma b { display:block; }
.norma span { color:var(--muted); font-size:15px; }
.spunta { flex:none; width:24px; height:24px; color:var(--accent-ink); }
.fascia { background:var(--h-bg); color:var(--h-ink); border-radius:16px; padding:44px; display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:center; position:relative; overflow:hidden; }
[data-tema="4"] .fascia { background:var(--card); border:1px solid var(--accent); }
.fascia h2 { margin-top:0; }
.fascia ul { margin:0; padding-left:20px; color:var(--h-muted); }
.fascia .lato { display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
[data-tema="4"] .fascia.star-border { border:0; overflow:visible; isolation:isolate; }
.star-border::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); pointer-events:none; }
.star-border__light { position:absolute; top:-48px; left:-48px; z-index:-1; width:calc(100% + 96px); height:calc(100% + 96px); pointer-events:none; }
.vuoto { border:2px dashed var(--line); border-radius:var(--raggio); padding:28px; text-align:center; color:var(--muted); }
.due { display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:start; }
dl { margin:0; display:grid; grid-template-columns:max-content 1fr; gap:10px 18px; background:var(--card); border:1px solid var(--line); border-radius:var(--raggio); padding:22px 24px; }
dt { font-weight:700; } dd { margin:0; color:var(--muted); }
footer { position:relative; background:var(--h-bg); color:var(--h-muted); padding:32px 0; font-size:14px; }
footer::before { top:0; }
footer .contenitore { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.tabella th, .tabella td { padding-left:5px; padding-right:5px; }
@media (max-width: 1260px) { .tabella th:nth-child(5), .tabella td:nth-child(5) { display:none; } }
@media (max-width: 900px) {
  .eroe-griglia, .due, .fascia { grid-template-columns:1fr; }
  .numeri { grid-template-columns:1fr; } .numeri div { border-right:0; border-bottom:1px solid var(--line); }
  ol.passi { grid-template-columns:1fr 1fr; } ol.passi::before { display:none; }
  .norme { grid-template-columns:1fr; }
  .fascia { padding:28px; }
}
@media (max-width: 520px) { ol.passi { grid-template-columns:1fr; } .riepilogo strong { font-size:20px; }
  .pannello-testa .puntini, .pannello-testa > span { display:none; } }
body { font-size:16px; letter-spacing:-.01em; }
h1, h2 { font-weight:500; letter-spacing:-.036em; }
h1 { font-size:clamp(32px, 4.4vw, 54px); line-height:1.04; }
h3, .card h3, ol.passi strong, .norma b, dt { font-weight:600; letter-spacing:-.01em; }
.eroe p.sotto { font-size:18px; letter-spacing:-.01em; }
.titolo-sez p { font-size:17px; }
.btn { font-weight:600; letter-spacing:-.005em; }
.btn.sec { font-weight:600; }
.numeri strong, .riepilogo strong { font-weight:500; letter-spacing:-.03em; }
ol.passi li::before { font-weight:600; }
.col-alta { color:var(--alta); }
.col-accento { color:var(--accent); }
.nota-piccola { color:var(--h-muted); font-size:14px; }
.testo-tenue { color:var(--muted); }
.occhiello.verde { color:var(--accent-ink); }
.eroe--corto::after { display:none; }
.barra-semplice { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; min-height:92px; position:relative; z-index:2; }
.barra-semplice .btn.sec { min-height:40px; padding:8px 16px; font-size:15px; }
.pagina-testo { padding:56px 0 88px; background:linear-gradient(180deg, var(--alt) 0, var(--bg) 140px, var(--bg) calc(100% - 140px), var(--alt) 100%); }
.pagina-testo .contenitore { max-width:calc(760px + 48px); }
.pagina-testo h1 { font-size:clamp(30px, 4vw, 42px); margin:12px 0 6px; }
.pagina-testo h2 { font-size:20px; margin:36px 0 8px; letter-spacing:-.01em; }
.pagina-testo p { color:var(--muted); margin:0 0 12px; }
.pagina-testo p strong { color:var(--ink); }
.pagina-testo .aggiornata { font-size:14px; }
html { color-scheme:dark; }
a, button { touch-action:manipulation; }
h2, h3 { text-wrap:balance; }
table, .riepilogo strong, .numeri strong { font-variant-numeric:tabular-nums; }
.btn { transition:filter .2s ease; }
.btn:hover { filter:brightness(1.06); }
.salta { position:absolute; left:16px; top:-64px; z-index:100; background:var(--accent); color:var(--on-accent); padding:10px 16px; border-radius:8px; font-weight:700; text-decoration:none; transition:top .2s ease; }
.salta:focus { top:16px; }
.vetro-scuro { background:rgba(38,44,53,.86); -webkit-backdrop-filter:blur(22px) saturate(1.5); backdrop-filter:blur(22px) saturate(1.5);
  border:1px solid rgba(255,255,255,.1); box-shadow:0 30px 80px rgba(0,0,0,.55); }
.modulo { width:min(760px, calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border-radius:28px; color:var(--h-ink); overscroll-behavior:contain; }
.modulo::backdrop { background:rgba(10,13,17,.6); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.modulo[open] { animation:modulo-entra .3s cubic-bezier(.22,1,.36,1); }
@keyframes modulo-entra { from { opacity:0; transform:translateY(14px) scale(.98); } }
.modulo__corpo { padding:30px 32px 28px; }
.modulo__testa { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.08); }
.modulo__testa h2 { margin:0; font-size:26px; font-weight:600; letter-spacing:-.02em; line-height:1.15; }
.modulo .frase { margin:6px 0 0; color:var(--h-muted); font-size:15px; }
.modulo__chiudi { flex:none; display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.12); border-radius:999px;
  background:rgba(255,255,255,.04); color:var(--h-muted); cursor:pointer; transition:color .2s ease, background-color .2s ease; }
.modulo__chiudi:hover { color:var(--h-ink); background:rgba(255,255,255,.09); }
.formati { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin:20px 0 0; padding:0; list-style:none; }
.formati li { border-radius:16px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); padding:12px 14px; }
.formati b { display:block; font-size:15px; font-weight:600; }
.formati span { font-size:14px; color:var(--h-muted); }
.modulo__form { margin-top:22px; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); }
.interessi { margin:0 0 16px; padding:0; border:0; }
.interessi legend { padding:0; margin-bottom:8px; font-size:13px; font-weight:500; color:var(--h-muted); }
.facoltativo { font-weight:400; color:#7d8693; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { position:relative; display:inline-flex; }
.chip input { position:absolute; inset:0; margin:0; opacity:0; cursor:pointer; }
.chip span { display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border-radius:999px; border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04); font-size:14px; transition:background-color .2s ease, border-color .2s ease, color .2s ease; }
.chip:hover span { border-color:rgba(255,255,255,.24); }
.chip input:checked + span { background:color-mix(in srgb, var(--accent) 14%, transparent); border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; color:var(--h-ink); font-weight:500; }
.chip input:focus-visible + span { outline:2px solid var(--accent); outline-offset:2px; }
.campi { display:grid; grid-template-columns:1fr 1fr; gap:12px 14px; }
.campo { min-width:0; }
.campo--largo { grid-column:1 / -1; }
.campo label { display:block; margin-bottom:6px; font-size:13px; font-weight:500; color:var(--h-muted); }
.campo input { width:100%; min-height:48px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(14,17,22,.55); padding:0 14px;
  font:inherit; font-size:16px; color:var(--h-ink); transition:border-color .2s ease, box-shadow .2s ease; }
.campo input::placeholder { color:#6f7884; }
.campo input:hover { border-color:rgba(255,255,255,.26); }
.campo input:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.campo input[aria-invalid="true"] { border-color:var(--alta); box-shadow:0 0 0 1px var(--alta) inset; }
.errore { margin:6px 0 0; font-size:13px; color:var(--alta); }
.errore:empty { display:none; }
.trappola { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.richiedi { margin-top:22px; width:100%; min-height:54px; border:0; border-radius:999px; background:var(--accent); color:var(--on-accent);
  font:inherit; font-size:16px; font-weight:600; cursor:pointer; transition:transform .15s ease, opacity .2s ease, filter .2s ease; }
.richiedi:hover { filter:brightness(1.06); }
.richiedi:active { transform:scale(.985); }
.richiedi:disabled { opacity:.55; cursor:progress; }
.modulo__stato { margin:10px 0 0; font-size:14px; color:var(--alta); text-align:center; }
.modulo__stato:empty { display:none; }
.modulo__stato a { color:var(--accent); }
.privacy { margin:10px 0 0; font-size:13px; color:var(--h-muted); text-align:center; }
.privacy a { color:var(--h-ink); text-decoration:underline; text-underline-offset:2px; }
.fatto { margin-top:22px; padding:8px 0 4px; text-align:center; }
.spunta-tonda { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 14px; border-radius:50%;
  background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent); }
.spunta-tonda svg { width:30px; height:30px; }
.fatto h3 { margin:0; font-size:22px; font-weight:600; letter-spacing:-.02em; }
.fatto h3:focus { outline:none; }
.fatto__testo { margin:8px auto 0; max-width:30em; color:var(--h-muted); }
.altra { margin-top:20px; min-height:48px; padding:0 22px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background:transparent;
  color:var(--h-ink); font:inherit; font-size:15px; font-weight:500; cursor:pointer; transition:background-color .2s ease; }
.altra:hover { background:rgba(255,255,255,.06); }
@media (max-width: 640px) {
  .modulo { border-radius:22px; }
  .modulo__corpo { padding:22px 18px 20px; }
  .modulo__testa h2 { font-size:22px; }
  .formati, .campi { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) { .modulo[open] { animation:none; } .richiedi:active { transform:none; } }
[hidden] { display:none !important; }
.modulo { scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.22) transparent; }
@media (max-width: 380px) {
  .card-nav__menu { padding:0 12px; }
  .card-nav__menu-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
}
