@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3wEaZejf5HdF8Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3w8aZejf5Hc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3wEaZejf5HdF8Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3w8aZejf5Hc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3wEaZejf5HdF8Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3w8aZejf5Hc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3wEaZejf5HdF8Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3w8aZejf5Hc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3wEaZejf5HdF8Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/sourcesans3-v20-nwpStKy2OAdR1K-IwhWudF-R3w8aZejf5Hc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFK2_tTDB4M7-auWDN0ahZJW1gewtu_WpzEpMvsfA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFK2_tTDB4M7-auWDN0ahZJW1gewtW_WpzEpMs.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFK2_tTDB4M7-auWDN0ahZJW1gewtu_WpzEpMvsfA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFK2_tTDB4M7-auWDN0ahZJW1gewtW_WpzEpMs.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFI2_tTDB4M7-auWDN0ahZJW1gV8te1Xb7GlMo.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFI2_tTDB4M7-auWDN0ahZJW1gb8te1Xb7G.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFI2_tTDB4M7-auWDN0ahZJW1gV8te1Xb7GlMo.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/sourceserif4-v15-vEFI2_tTDB4M7-auWDN0ahZJW1gb8te1Xb7G.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{--blue:#0B2A5B;--deep:#071D40;--accent:#1F5FBF;--yellow:#FFD23F;--ink:#111111;--paper:#FFFFFF;--soft:#F2F5FA;--light:#F6F3EA;--sans:'Source Sans 3',system-ui,sans-serif;--serif:'Source Serif 4',Georgia,serif;--w:1120px;--measure:68ch;--pad:clamp(20px,4vw,40px);--sec:clamp(56px,7vw,104px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{color:var(--accent);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--yellow);color:var(--deep);padding:10px 16px;font-family:var(--sans);font-weight:700;z-index:10}
.skip:focus{left:16px;top:16px}
.wrap{max-width:var(--w);margin:0 auto}
p{margin:0}

/* Testata */
.top{background:var(--deep);color:var(--light);padding:18px var(--pad) 0;border-bottom:8px solid var(--yellow)}
.bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 28px;font-family:var(--sans)}
.tagline{font-size:14px;opacity:.85}
.bar nav{display:flex;gap:24px;flex-wrap:wrap;font-size:16px}
.bar nav a{color:var(--light);text-decoration:none}
.bar nav a:hover{color:var(--yellow)}
.bar nav a[aria-current]{color:var(--yellow);font-weight:700;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
.lang{display:flex;gap:4px}
.lang a{font-size:13px;font-weight:700;letter-spacing:.08em;border:2px solid var(--yellow);color:var(--yellow);padding:3px 9px;text-decoration:none}
.lang a[aria-current],.lang a:hover{background:var(--yellow);color:var(--deep)}
.wordmark{display:block;padding:clamp(24px,4vw,48px) 0 clamp(18px,2.5vw,28px);font-family:var(--sans);font-size:clamp(40px,8.5vw,112px);line-height:.9;font-weight:900;letter-spacing:-.045em;text-decoration:none;color:var(--yellow)}
.wordmark:hover{color:var(--yellow)}

/* Sezioni */
.band{padding:var(--sec) var(--pad);background:var(--paper)}
.band + .band{border-top:1px solid #DDE3EE}
.band.hero{background:var(--blue);color:var(--light);border-top:0}
.band.hero a{color:var(--yellow)}
.band.parts-band{background:var(--soft)}
.band.cta{background:var(--yellow);color:var(--ink);border-top:0}
.band.editor{background:var(--blue);color:var(--light);border-top:0}
.band.editor a{color:var(--yellow)}

/* Tipografia */
.h-huge{margin:0 0 20px;font-family:var(--sans);font-size:clamp(40px,5.5vw,72px);line-height:1;font-weight:900;letter-spacing:-.03em;text-wrap:balance}
.h-big{margin:0 0 28px;font-family:var(--sans);font-size:clamp(30px,3.6vw,44px);line-height:1.05;font-weight:900;letter-spacing:-.02em}
.h-big::after{content:"";display:block;width:64px;height:6px;background:var(--yellow);margin-top:16px}
.cta .h-big::after{background:var(--ink)}
.lead{max-width:30ch;margin:0;font-size:clamp(24px,2.8vw,36px);line-height:1.25;font-style:italic;font-weight:500;text-wrap:balance}
.hero .lead{max-width:34ch}
.text{max-width:var(--measure);margin-top:24px;font-size:20px;line-height:1.6;text-wrap:pretty}
.hero .text{color:#DCE4F2}
.italic{font-style:italic}
.small{font-family:var(--sans);font-size:15px}
.strong{font-family:var(--sans);font-weight:700}
.big{font-size:20px}
.label{margin:0 0 8px;font-family:var(--sans);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}

/* Tre parti */
.parts{list-style:none;margin:0 0 32px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.parts li{border-top:4px solid var(--ink);padding-top:20px;display:flex;flex-direction:column;gap:10px}
.parts .num{font-family:var(--sans);font-size:56px;line-height:1;font-weight:900;color:var(--accent)}
.parts h3{margin:0;font-family:var(--sans);font-size:22px;line-height:1.2;font-weight:800}
.parts p{font-size:18px;line-height:1.55;text-wrap:pretty}

/* Testo lungo */
.rule{border-top:1px solid #DDE3EE;padding-top:28px}
.prose{max-width:var(--measure);font-size:19px;line-height:1.7;text-wrap:pretty}
.prose p + p{margin-top:18px}

/* Fascia con foto */
.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:32px 56px;align-items:start}
.editor-grid.with-photo{grid-template-columns:260px minmax(0,1fr);grid-template-areas:"photo name" "photo prose";gap:20px 48px;align-items:start}
.with-photo > .portrait{grid-area:photo}
.with-photo > div:not(.prose){grid-area:name;align-self:end}
.with-photo > .prose{grid-area:prose}
.portrait{margin:0;width:100%;box-shadow:10px 10px 0 var(--yellow);background:var(--deep)}
.portrait img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 30%}
.name{margin:0 0 8px;font-family:var(--sans);font-size:clamp(32px,3.6vw,48px);line-height:1.05;font-weight:900;letter-spacing:-.02em;color:var(--yellow)}
.band.editor .prose{color:var(--light);font-size:19px}

/* Biblioteca */
.library{padding:var(--sec) var(--pad);background:var(--soft);border-top:6px solid var(--ink)}
.library .label{margin-bottom:20px}
.lib-list{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.lib-list a{display:flex;flex-direction:column;gap:8px;border-top:3px solid var(--ink);padding-top:14px;text-decoration:none}
.lib-list .kind{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}
.lib-list .ttl{font-family:var(--sans);font-size:21px;line-height:1.25;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.lib-list a:hover .ttl{color:var(--accent);text-decoration-thickness:2px}

/* Contatti e modulo */
.form-wrap{max-width:720px;margin:0 0 56px}
form{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
label{display:flex;flex-direction:column;gap:6px}
label>span{font-family:var(--sans);font-size:15px;font-weight:700}
input,select,textarea{font-family:var(--serif);font-size:18px;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:0;padding:11px 13px;width:100%}
textarea{resize:vertical}
.check{flex-direction:row;align-items:flex-start;gap:12px}
.check input{width:22px;height:22px;flex:0 0 22px;margin-top:3px;accent-color:var(--accent)}
.check span{font-family:var(--serif);font-weight:400;font-size:16px;line-height:1.5}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.alert{font-family:var(--sans);font-size:16px;font-weight:700;background:var(--yellow);color:var(--ink);padding:12px 16px}
.row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
button{font-family:var(--sans);font-size:18px;font-weight:800;background:var(--blue);color:var(--yellow);border:0;padding:14px 28px;min-height:48px;cursor:pointer}
button:hover{background:var(--yellow);color:var(--blue)}
button[disabled]{opacity:.6;cursor:wait}
.sent{background:var(--blue);color:var(--light);padding:24px 28px}
.name-s{font-family:var(--sans);font-size:24px;font-weight:900;margin-bottom:6px}
.links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:var(--w)}
.links a{display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--ink);padding-top:16px;text-decoration:none}
.big-link{font-family:var(--sans);font-size:clamp(22px,2.4vw,28px);line-height:1.2;font-weight:800;text-decoration:underline;text-underline-offset:5px}
.links a:hover .big-link{color:var(--accent)}

/* Pagine legali */
.legal-s{max-width:var(--measure);border-top:1px solid #DDE3EE;padding-top:22px;margin-top:32px}
.legal-s h2{margin:0 0 10px;font-family:var(--sans);font-size:22px;line-height:1.2;font-weight:800}
.legal-s p{font-size:18px;line-height:1.7;text-wrap:pretty}

/* Piede */
.foot{background:var(--ink);color:var(--light);padding:clamp(48px,6vw,72px) var(--pad) 32px;font-family:var(--sans);font-size:16px}
.foot a{color:var(--light)}
.foot a:hover{color:var(--yellow)}
.foot p{margin:0 0 4px}
.foot-cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px 48px}
.legal-nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;border-top:1px solid #333;padding-top:18px;margin-top:36px}
.credit{margin-top:16px;font-size:13px;color:#9A9A9A}

/* 404 */
.nf{min-height:100vh;background:var(--blue);color:var(--light);display:flex;align-items:center;padding:80px var(--pad)}
.nf a{color:var(--yellow)}
.nf .lead{margin-top:20px}

/* Schermi stretti */
@media (max-width:900px){
  .parts,.lib-list{grid-template-columns:1fr}
  .editor-grid,.editor-grid.with-photo{grid-template-columns:1fr;grid-template-areas:"photo" "name" "prose"}
  .with-photo > .portrait{max-width:240px}
}
@media (max-width:600px){
  body{font-size:18px}
  .two,.links{grid-template-columns:1fr}
  .bar{gap:10px 18px}
  .tagline{width:100%}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
