@font-face{font-family:'Source Serif 4';src:url('/fonts/source-serif-4-latin-v1.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/fonts/source-serif-4-latin-400-italic-v1.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Inter';src:url('/fonts/inter-latin-v1.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
/* Font di ripiego regolati sulle misure dei font del sito: il testo non si sposta quando arrivano i font */
@font-face{font-family:'Source Serif 4 ripiego';src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Liberation Serif');size-adjust:115.79%;ascent-override:89.47%;descent-override:28.93%;line-gap-override:0%}
@font-face{font-family:'Inter ripiego';src:local('Arial'),local('ArialMT'),local('Liberation Sans');size-adjust:106.98%;ascent-override:90.55%;descent-override:22.55%;line-gap-override:0%}
:root{
  --navy:#1B2D4D; --navy-deep:#142238; --ott:#2C5F5D;
  --crema:#F4EFE6; --ink:#333333; --sec:#666666; --line:#CCCCCC; --white:#FFFFFF; --field:#7A7F88; --err:#9B2226;
  /* corpi: undici misure, nessun testo sotto i 12 px */
  --fs-12:12px; --fs-14:14px; --fs-15:15px; --fs-16:16px; --fs-17:17px; --fs-19:19px; --fs-22:22px; --fs-27:27px; --fs-34:34px; --fs-43:43px; --fs-56:56px;
  /* spaziature */
  --sp-4:4px; --sp-8:8px; --sp-12:12px; --sp-16:16px; --sp-24:24px; --sp-32:32px; --sp-48:48px; --sp-64:64px; --sp-96:96px;
  --serif:'Source Serif 4', 'Source Serif 4 ripiego', Georgia, 'Times New Roman', serif;
  --ui:'Inter', 'Inter ripiego', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --container:1080px;
  --col:720px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--white); color:var(--ink); font-family:var(--serif); font-size:var(--fs-17); line-height:1.65;
  font-optical-sizing:auto; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
a{color:inherit}
svg{display:block}
.container{max-width:var(--container); margin:0 auto; padding-left:var(--sp-24); padding-right:var(--sp-24)}

/* Wordmark */
.wm{height:auto}
.wm--sm{width:116px; aspect-ratio:424.2/122.8}
.wm--foot{width:120px; aspect-ratio:424.2/122.8}

/* Signature: 45° cut taken from the "I" of the wordmark. Used for eyebrows and list markers. */
.eyebrow{display:flex; align-items:center; gap:var(--sp-12); font-family:var(--ui); font-size:var(--fs-12); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ott); margin:0 0 var(--sp-16)}
.eyebrow::before{content:""; width:9px; height:11px; background:var(--ott); flex:0 0 auto;
  clip-path:polygon(0 38%,100% 0,100% 100%,0 100%)}

/* Header / nameplate */
.site-header{border-bottom:1px solid var(--line); background:var(--white); position:relative; z-index:30}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-24); padding-top:var(--sp-16); padding-bottom:var(--sp-16)}
.brand{display:inline-flex; align-items:center; line-height:0}
.nav{display:flex; align-items:center; gap:var(--sp-24)}
.nav a{font-family:var(--ui); font-size:var(--fs-15); font-weight:500; color:var(--navy); text-decoration:none; padding:4px 0; position:relative}
.nav a::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--ott); transform:scaleX(0); transform-origin:left; transition:transform .18s ease}
.nav a:hover::after, .nav a:focus-visible::after, .nav a.is-active::after{transform:scaleX(1)}
.nav-toggle{display:none; width:44px; height:44px; padding:0; align-items:center; justify-content:center; background:none; border:1px solid var(--line); border-radius:5px; cursor:pointer; color:var(--navy)}
.nav-toggle .i-close{display:none}
.nav-toggle[aria-expanded="true"] .i-open{display:none}
.nav-toggle[aria-expanded="true"] .i-close{display:block}

/* Buttons + links */
.btn{display:inline-block; font-family:var(--ui); font-weight:600; font-size:var(--fs-15); letter-spacing:.01em;
  background:var(--navy); color:var(--crema); text-decoration:none; padding:var(--sp-12) var(--sp-24); border-radius:5px;
  transition:background .18s ease, transform .18s ease}
.btn:hover, .btn:focus-visible{background:var(--navy-deep); transform:translateY(-2px)}
.textlink{font-family:var(--ui); font-weight:600; font-size:var(--fs-15); color:var(--ott); text-decoration:none;
  border-bottom:1px solid transparent; padding-bottom:1px; transition:border-color .18s ease}
.textlink:hover, .textlink:focus-visible{border-color:var(--ott)}

/* Link: due soli stili. Nel testo: blu sottolineato. D'azione: verde con freccia (.textlink, .door-go). */
.prose p a:not(.textlink), .lead a, .doclist a, .form-intro a, .contact-value a, .field-check label a, .cookie-inner p a, .cta-alt a{
  color:var(--navy); text-decoration:underline; text-decoration-color:rgba(27,45,77,.7); text-decoration-thickness:1px; text-underline-offset:3px;
  transition:color .18s ease, text-decoration-color .18s ease}
.prose p a:not(.textlink):hover, .lead a:hover, .doclist a:hover, .form-intro a:hover, .contact-value a:hover, .field-check label a:hover, .cookie-inner p a:hover, .cta-alt a:hover{
  color:var(--ott); text-decoration-color:var(--ott)}
.textlink .arw{display:inline-block; margin-left:var(--sp-8); transition:transform .18s ease}
.textlink:hover .arw, .textlink:focus-visible .arw{transform:translateX(4px)}

/* Home - hero as document frontispiece (left-aligned, asymmetric) */
.hero{background:var(--crema)}
.hero-inner{padding-top:clamp(58px,8.5vw,104px); padding-bottom:clamp(54px,8vw,92px)}
.hero-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:var(--sp-64); align-items:center}
.hero-quote{border-left:3px solid var(--navy); padding-left:var(--sp-32)}
.hq-label{font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ott); margin:0 0 var(--sp-12)}
.hero-quote blockquote{margin:0; font-family:var(--serif); font-style:italic; font-size:var(--fs-19); line-height:1.62; color:var(--ink)}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr; gap:var(--sp-48)} }
@media (min-width:761px) and (max-width:980px){ .hero .hero-sub{max-width:52ch} .hero-quote{max-width:34em} }
@media (max-width:760px){ .hero-quote{display:none} }
.press{margin-top:var(--sp-48)}
.press-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 var(--sp-48); max-width:920px}
.press-grid a{display:block; padding:var(--sp-16) 0 var(--sp-16); border-top:1px solid var(--line); text-decoration:none}
.press-src{display:block; font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--ott); margin-bottom:var(--sp-4)}
.press-title{font-family:var(--serif); font-size:var(--fs-17); line-height:1.45; color:var(--navy); text-decoration:underline; text-decoration-color:rgba(27,45,77,.7); text-decoration-thickness:1px; text-underline-offset:3px; transition:color .18s ease}
.press-grid a:hover .press-title, .press-grid a:focus-visible .press-title{color:var(--ott); text-decoration-color:var(--ott)}
.press-grid a:visited .press-title{color:var(--sec); text-decoration-color:var(--sec)}
@media (max-width:760px){ .press-grid{grid-template-columns:1fr} }
.hero-title{font-family:var(--serif); font-weight:700; color:var(--navy);
  font-size:clamp(var(--fs-34),5vw,var(--fs-56)); line-height:1.07; letter-spacing:-.01em;
  margin:0; max-width:15.5em; text-wrap:balance}
.hero-sub{font-family:var(--serif); font-weight:400; color:var(--sec);
  font-size:clamp(var(--fs-17),1.9vw,var(--fs-22)); line-height:1.55; margin:var(--sp-24) 0 0; max-width:38ch}
.hero-actions{display:flex; align-items:center; flex-wrap:wrap; gap:var(--sp-16) var(--sp-24); margin-top:var(--sp-32)}

/* Shared band primitives */
.band-white{background:var(--white)}
.band-crema{background:var(--crema)}
.sec-inner{padding-top:clamp(52px,7.5vw,88px); padding-bottom:clamp(52px,7.5vw,88px)}
.measure{max-width:var(--col)}

/* Home - opening statement */
.lead{font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(var(--fs-19),2.3vw,var(--fs-27)); line-height:1.5; margin:0; max-width:30em}

/* Home - "cantiere" / what we are building */
.build-intro{font-family:var(--serif); color:var(--ink); font-size:var(--fs-19); line-height:1.6; margin:0 0 1.9em; max-width:34em}
.build-list{list-style:none; margin:0; padding:0}
.build-item{position:relative; padding:var(--sp-16) 0 var(--sp-16) var(--sp-24); border-top:1px solid var(--line)}
.build-item::before{content:""; position:absolute; left:0; top:21px; width:9px; height:11px; background:var(--ott);
  clip-path:polygon(0 38%,100% 0,100% 100%,0 100%)}
.build-head{display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-16)}
.build-name{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-17)}
.build-status{font-family:var(--ui); font-weight:600; font-size:var(--fs-12); letter-spacing:.07em; text-transform:uppercase; color:var(--ott); white-space:nowrap}
.build-desc{font-family:var(--serif); color:var(--sec); font-size:var(--fs-16); line-height:1.5; margin:var(--sp-8) 0 0; max-width:60ch}

/* Home - doors as a table of contents (text columns, no boxes) */
.doors-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-32)}
.door{display:flex; flex-direction:column; padding-top:var(--sp-16); border-top:2px solid var(--navy);
  text-decoration:none; color:inherit; transition:border-color .18s ease, transform .18s ease}
.door:hover, .door:focus-visible{border-top-color:var(--ott); transform:translateY(-2px)}
.door-title{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-19); margin:0 0 var(--sp-8)}
.door-desc{font-family:var(--serif); font-weight:400; color:var(--sec); font-size:var(--fs-16); line-height:1.5; margin:0 0 var(--sp-16); flex:1 1 auto}
.door-go{font-family:var(--ui); font-weight:600; font-size:var(--fs-14); letter-spacing:.02em; color:var(--ott); display:inline-flex; align-items:center; gap:var(--sp-8)}
.door-go .arw{transition:transform .18s ease}
.door:hover .door-go .arw, .door:focus-visible .door-go .arw{transform:translateX(4px)}

/* Inner page head */
.page-head{background:var(--crema); border-bottom:1px solid var(--line)}
.page-head-inner{padding-top:clamp(54px,8vw,92px); padding-bottom:clamp(44px,6vw,68px)}
.page-title{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:clamp(var(--fs-34),4vw,var(--fs-43)); line-height:1.12; letter-spacing:-.006em; margin:0; max-width:20ch}
.page-lead{font-family:var(--serif); font-weight:400; color:var(--sec); font-size:clamp(var(--fs-17),1.8vw,var(--fs-19)); line-height:1.55; margin:var(--sp-16) 0 0; max-width:56ch}
.page-date{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:var(--sp-12) 0 0}

/* Content + prose */
.content{background:var(--white)}
.content-inner{padding-top:clamp(48px,7vw,80px); padding-bottom:clamp(48px,7vw,80px)}
.prose{max-width:34em}
.prose > *:first-child{margin-top:0}
.prose h2{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:clamp(var(--fs-22),2.6vw,var(--fs-27)); line-height:1.25; margin:2.6em 0 .55em; position:relative}
.prose h2::before{content:""; display:block; width:30px; height:2px; background:var(--ott); margin-bottom:var(--sp-24); border-radius:1px}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-19); line-height:1.3; margin:0 0 .4em}
.prose p{margin:0 0 1.05em; color:var(--ink)}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--navy); font-weight:700}
.prose .lead-p{font-size:var(--fs-19); line-height:1.6; color:var(--ink)}
.prose .manifesto-sign{font-family:var(--ui); color:var(--sec); font-size:var(--fs-14); letter-spacing:.05em; margin-top:2.4em}

/* Definitional blocks (values, positions) */
.deflist{margin:.3em 0 0}
.def{border-left:3px solid var(--ott); padding:2px 0 2px var(--sp-24); margin:0 0 1.7em}
.def:last-child{margin-bottom:0}

/* Marked list (cosa non è) - 45° markers */
.marklist{list-style:none; margin:.3em 0 0; padding:0}
.marklist li{position:relative; padding:0 0 .9em var(--sp-24); color:var(--ink); line-height:1.55}
.marklist li:last-child{padding-bottom:0}
.marklist li::before{content:""; position:absolute; left:0; top:.5em; width:9px; height:11px; background:var(--ott);
  clip-path:polygon(0 38%,100% 0,100% 100%,0 100%)}

/* Board */
.board{list-style:none; margin:.3em 0 0; padding:0}
.board li{padding:var(--sp-16) 0; border-bottom:1px solid var(--line)}
.board li:first-child{padding-top:0}
.board li:last-child{border-bottom:0}
.board .name{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-17); display:block}
.board .role{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin-top:2px; display:block}

/* Tiers */
.tiers{list-style:none; margin:.3em 0 0; padding:0}
.tier{padding:var(--sp-16) 0; border-top:1px solid var(--line)}
.tier:first-child{border-top:0; padding-top:0}
.tier-row{display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-16)}
.tier .tname{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-19)}
.tier .tprice{font-family:var(--ui); font-weight:600; font-size:var(--fs-14); color:var(--ott); white-space:nowrap; letter-spacing:.01em}
.tier .tdesc{font-family:var(--serif); color:var(--sec); font-size:var(--fs-16); line-height:1.5; margin:var(--sp-4) 0 0; max-width:60ch}

/* Contacts */
.contacts{max-width:var(--col); margin-top:2.4em}
.contact-block{margin:0 0 1.8em}
.contact-block:last-child{margin-bottom:0}
.contact-label{font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ott); margin:0 0 var(--sp-8)}
.contact-value{font-family:var(--serif); color:var(--ink); font-size:var(--fs-17); margin:0; line-height:1.5}

/* Closing call to action - light, grounded by the dark footer below */
.cta{background:var(--crema)}
.cta-inner{padding-top:clamp(48px,7vw,80px); padding-bottom:clamp(48px,7vw,80px)}
.cta--white{background:var(--white)}
.cta-text{font-family:var(--serif); font-weight:400; color:var(--navy); font-size:clamp(var(--fs-19),2.3vw,var(--fs-27)); line-height:1.45; margin:0 0 var(--sp-32); max-width:32em}
.cta-alt{display:block; margin-top:var(--sp-16); font-family:var(--ui); font-size:var(--fs-14); color:var(--sec)}

/* Modulo di candidatura */
.form-inner{padding-top:clamp(48px,7vw,80px); padding-bottom:clamp(48px,7vw,80px)}
.form-title{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:clamp(var(--fs-22),2.6vw,var(--fs-27)); line-height:1.2; margin:0 0 .5em}
.form-intro{font-family:var(--serif); color:var(--ink); font-size:var(--fs-17); line-height:1.55; margin:0 0 1.8em; max-width:34em}
.form{max-width:560px}
.field{margin-bottom:var(--sp-16)}
.field label{display:block; font-family:var(--ui); font-size:var(--fs-14); font-weight:600; color:var(--navy); margin-bottom:var(--sp-8)}
.field label .opt{font-weight:400; color:var(--sec)}
.field input[type=text], .field input[type=email], .field input[type=tel], .field select, .field textarea{width:100%; font-family:var(--ui); font-size:var(--fs-16); color:var(--ink); background:var(--white); border:1px solid var(--field); border-radius:5px; padding:var(--sp-12) var(--sp-12); line-height:1.4}
.field textarea{resize:vertical; min-height:96px}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--ott); box-shadow:0 0 0 3px rgba(44,95,93,.14)}
.field-check{display:flex; align-items:flex-start; gap:var(--sp-12)}
.field-check input{margin-top:3px; width:17px; height:17px; flex:0 0 auto; accent-color:var(--navy)}
.field-check label{font-family:var(--ui); font-weight:400; font-size:var(--fs-14); color:var(--sec); line-height:1.5; margin:0}
.form-error{font-family:var(--ui); font-size:var(--fs-14); color:var(--navy); background:var(--white); border:1px solid var(--ott); border-radius:5px; padding:var(--sp-8) var(--sp-12); margin-bottom:var(--sp-16)}
.form-note{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:var(--sp-12) 0 0}
.form-done{border-left:3px solid var(--ott); padding:var(--sp-8) 0 var(--sp-8) var(--sp-24); max-width:34em}
.form-done p{font-family:var(--serif); color:var(--navy); font-size:var(--fs-17); line-height:1.5; margin:0}

/* Footer - the single dark anchor of every page */
.footer{background:var(--navy-deep); color:var(--crema)}
.footer-inner{padding-top:clamp(48px,6vw,68px); padding-bottom:clamp(34px,4vw,44px); display:grid; grid-template-columns:1.5fr 1fr 1.3fr; gap:var(--sp-48) var(--sp-64); align-items:start}
.footer-id{font-family:var(--ui); font-size:var(--fs-14); line-height:1.7; color:rgba(244,239,230,.82); max-width:340px}
.footer-id p{margin:0 0 var(--sp-8)}
.footer-id .footer-payoff{margin:var(--sp-16) 0 var(--sp-16); color:var(--crema)}
.footer-id a{color:var(--crema); text-decoration:none; border-bottom:1px solid rgba(244,239,230,.32); transition:border-color .18s ease}
.footer-id a:hover{border-color:var(--crema)}
.footer-h{font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(244,239,230,.55); margin:0 0 var(--sp-16)}
.footer-h + .footer-h, .footer-group + .footer-h{margin-top:var(--sp-32)}
.footer-col a{display:block; font-family:var(--ui); font-size:var(--fs-14); line-height:1.5; color:rgba(244,239,230,.82); text-decoration:none; margin:0 0 var(--sp-12); transition:color .18s ease; width:max-content; max-width:100%}
.footer-col a:hover, .footer-col a:focus-visible{color:var(--crema)}
.footer-col a svg{display:inline-block; vertical-align:-3px; margin-right:var(--sp-8)}
.footer-bar{border-top:1px solid rgba(244,239,230,.16); padding-top:var(--sp-16); padding-bottom:clamp(28px,4vw,40px); display:flex; flex-wrap:wrap; gap:var(--sp-8) var(--sp-32); align-items:baseline; justify-content:space-between}
.footer-bar p{margin:0; font-family:var(--ui); font-size:var(--fs-12); color:rgba(244,239,230,.6)}
.footer-bar a{color:rgba(244,239,230,.82); text-decoration:none; transition:color .18s ease}
.footer-bar a:hover, .footer-bar a:focus-visible{color:var(--crema); text-decoration:underline}
.paybox{background:var(--crema); border-left:3px solid var(--ott); border-radius:0 5px 5px 0; padding:var(--sp-16) var(--sp-24); margin:.6em 0 1.2em}
.paybox .prow{display:flex; gap:var(--sp-16); align-items:baseline; padding:var(--sp-8) 0}
.paybox .prow + .prow{border-top:1px solid rgba(27,45,77,.10)}
.paybox .pk{font-family:var(--ui); font-size:var(--fs-12); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--navy); flex:0 0 104px}
.paybox .pv{font-family:var(--ui); font-size:var(--fs-15); color:var(--ink); overflow-wrap:anywhere}
@media(max-width:560px){ .paybox{padding:var(--sp-16) var(--sp-16)} .paybox .prow{flex-direction:column; gap:3px} .paybox .pk{flex:none} }
.doclist{list-style:none; margin:.5em 0 0; padding:0}
.doclist li{position:relative; padding:var(--sp-12) 0 var(--sp-16) var(--sp-24); border-top:1px solid var(--line)}
.doclist li:last-child{border-bottom:1px solid var(--line)}
.doclist li::before{content:""; position:absolute; left:0; top:18px; width:9px; height:11px; background:var(--ott); clip-path:polygon(0 38%, 100% 0, 100% 100%, 0 100%)}
.doclist a{font-family:var(--ui); font-weight:600; font-size:var(--fs-16)}
.doclist .doc-note{display:block; margin-top:3px; color:var(--sec); font-size:var(--fs-15); font-family:var(--ui)}

:focus-visible{outline:2px solid var(--ott); outline-offset:3px; border-radius:2px}
.footer :focus-visible{outline-color:var(--crema)}

@media (max-width:760px){
  .nav{position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:0; background:var(--white); border-bottom:1px solid var(--line); padding:var(--sp-8) 0; display:none; z-index:20}
  .nav.open{display:flex}
  html{scroll-padding-top:64px}
  .site-header{position:sticky; top:0}
  .header-inner{padding-top:6px; padding-bottom:6px}
  .nav a{padding:var(--sp-12) var(--sp-24)}
  .nav a::after{display:none}
  .nav a.is-active{color:var(--ott)}
  .nav-toggle{display:inline-flex}
  .doors-grid{grid-template-columns:1fr; gap:0}
  .door{padding:var(--sp-16) 0 var(--sp-24); border-top:1px solid var(--line)}
  .door:first-child{border-top:2px solid var(--navy)}
  .build-head{flex-wrap:wrap; gap:4px var(--sp-16)}
  .footer-inner{grid-template-columns:1fr; gap:var(--sp-32)}
  .footer-id{max-width:none}
  .footer-col a{margin-bottom:var(--sp-12)}
  .footer-bar{flex-direction:column; align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important}
  .door:hover, .door:focus-visible, .btn:hover, .btn:focus-visible{transform:none}
}


/* Cookie banner */
.cookie-banner{position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--white);
  border-top:2px solid var(--navy); box-shadow:0 -6px 24px rgba(27,45,77,.10)}
.cookie-inner{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-24); flex-wrap:wrap;
  padding-top:var(--sp-16); padding-bottom:var(--sp-16)}
.cookie-inner p{margin:0; font-size:var(--fs-15); color:var(--ink); max-width:640px}
.cookie-actions{display:flex; gap:var(--sp-12); flex-wrap:wrap}
.btn--ghost{background:transparent; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy)}
.btn--ghost:hover, .btn--ghost:focus-visible{background:var(--navy); color:var(--white)}
@media (max-width:560px){
  .cookie-inner{gap:var(--sp-12); padding:var(--sp-12) var(--sp-24)}
  .cookie-inner p{font-size:var(--fs-14); line-height:1.45}
  .cookie-actions{width:100%; flex-wrap:nowrap}
  .cookie-actions .btn{flex:1 1 0; padding:var(--sp-12) var(--sp-16); text-align:center}
}

/* Lotto 2 (ottobre 2026) */
.sr-only{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.ext{display:inline-block; margin-left:.3em; font-family:var(--ui); font-weight:400; font-size:.85em; line-height:1; text-decoration:none}
h2[tabindex="-1"]:focus, .form-done:focus{outline:none}
/* Associarsi: pulsante e sommario */
.btn-jump{margin-top:var(--sp-32)}
.btn-jump .arw{margin-left:var(--sp-8)}
.toc{margin:0}
.toc .eyebrow{margin:0 0 var(--sp-16); color:var(--ott)}
.toc ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(4,auto); grid-auto-flow:column; column-gap:var(--sp-32)}
.toc li{border-top:1px solid var(--line)}
.toc li:nth-child(4), .toc li:nth-child(8){border-bottom:1px solid var(--line)}
.toc a{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-12); min-height:46px; font-family:var(--ui); font-size:var(--fs-15); font-weight:500; color:var(--navy); text-decoration:none}
.toc a .arw{color:var(--ott); font-weight:600}
.toc a:hover, .toc a:focus-visible{color:var(--ott); text-decoration:underline}
.toc a.toc-form{color:var(--ott); font-weight:600}
.prose h2[id]{scroll-margin-top:20px}
.content--after .content-inner{padding-top:clamp(40px,6vw,64px)}
@media (max-width:760px){
  .toc ul{grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row}
  .toc li:nth-child(4){border-bottom:0}
}
@media (max-width:560px){
  .btn-jump{display:block; text-align:center}
}
/* Modulo: obbligatori, aiuti, errori, invio, conferma */
.form-req{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:0 0 var(--sp-16)}
.field-help{font-family:var(--ui); font-size:var(--fs-14); line-height:1.4; color:var(--sec); margin:-2px 0 var(--sp-8)}
.field-error{display:flex; gap:var(--sp-8); align-items:flex-start; font-family:var(--ui); font-size:var(--fs-14); line-height:1.4; color:var(--err); margin:var(--sp-8) 0 0}
.field-error[hidden]{display:none}
.field-error svg{flex:0 0 auto; margin-top:2px}
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"]{border:2px solid var(--err); padding:11px}
.field input[aria-invalid="true"]:focus, .field select[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(155,34,38,.16)}
.field-check{flex-wrap:wrap}
.field-check label{flex:1 1 0; min-width:0}
.field-check .field-error{flex:0 0 100%; margin-top:2px}
.field-check input[aria-invalid="true"]{border:0; padding:0; box-shadow:none; outline:2px solid var(--err); outline-offset:2px}
.form .btn:disabled{opacity:.72; cursor:progress; transform:none}
.form-done .done-lead{margin:0 0 var(--sp-24)}
.form-done .eyebrow{margin:0 0 var(--sp-16)}
.steps{list-style:none; margin:0; padding:0; counter-reset:passo}
.steps li{counter-increment:passo; position:relative; padding:0 0 var(--sp-16) var(--sp-48); font-family:var(--serif); font-size:var(--fs-17); line-height:1.5; color:var(--ink)}
.steps li:last-child{padding-bottom:0}
.steps li::before{content:counter(passo); position:absolute; left:0; top:-1px; width:28px; height:28px; border-radius:50%; background:var(--navy); color:var(--crema); font-family:var(--ui); font-size:var(--fs-14); font-weight:600; display:flex; align-items:center; justify-content:center}
/* Ne hanno scritto: data e firma */
.press-grid > div{display:block; padding:var(--sp-16) 0 var(--sp-16); border-top:1px solid var(--line)}
.press-meta{display:block; margin-top:var(--sp-8); font-family:var(--ui); font-size:var(--fs-14); line-height:1.45; color:var(--sec)}
.press-parts{list-style:none; margin:0; padding:0}
.press-parts li + li{margin-top:var(--sp-8)}
.press-grid .press-parts a{display:block; padding:0; border-top:0; text-decoration:none}
.press-part{display:block; font-family:var(--ui); font-size:var(--fs-12); font-weight:600; color:var(--sec); margin-bottom:1px}
/* Lotto 4 (ottobre 2026) */
.skip-link{position:absolute; left:var(--sp-16); top:-100px; z-index:200; background:var(--navy); color:var(--crema); font-family:var(--ui); font-size:var(--fs-15); font-weight:600; padding:var(--sp-12) var(--sp-16); border-radius:5px; text-decoration:none}
.skip-link:focus{top:var(--sp-8)}
main:focus{outline:none}
h2.contact-label{line-height:1.65}
/* Lotto 5 (ottobre 2026) */
/* Consiglio direttivo con foto */
.prose.board-head h2:first-child{margin-top:2.6em}
.board-grid{list-style:none; margin:var(--sp-8) 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-32) var(--sp-24); max-width:1032px}
.board-grid img{display:block; width:100%; height:auto; aspect-ratio:4/5; border-radius:4px; background:#E6E0D5}
.board-grid .name{display:block; font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-19); line-height:1.3; margin:var(--sp-12) 0 0}
.board-grid .role{display:block; font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:var(--sp-4) 0 var(--sp-8)}
.board-grid .bio{display:block; font-family:var(--serif); font-size:var(--fs-15); line-height:1.45; color:var(--ink); margin:0 0 var(--sp-8)}
.board-grid .board-li{font-family:var(--ui); font-size:var(--fs-14); font-weight:600; color:var(--ott); text-decoration:none}
.board-grid .board-li:hover, .board-grid .board-li:focus-visible{text-decoration:underline}
@media (max-width:760px){
  .board-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-24) var(--sp-16)}
  .board-grid .name{font-size:var(--fs-17)}
}
/* Ne hanno scritto: rimando alla rassegna */
.press-all{margin:var(--sp-24) 0 0}
/* Pagina Rassegna stampa */
.stampa-grid{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:var(--sp-64); align-items:start}
.stampa-year{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-22); margin:0 0 var(--sp-8); display:flex; align-items:center; gap:var(--sp-12)}
.stampa-year::after{content:""; flex:1; height:1px; background:var(--line)}
.press-list{list-style:none; margin:0; padding:0; max-width:40em}
.press-list > li{display:grid; grid-template-columns:136px minmax(0,1fr); gap:var(--sp-24); padding:var(--sp-16) 0; border-bottom:1px solid var(--line)}
.press-list .pl-date{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); padding-top:3px}
.press-list .pl-src{font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ott); margin:0 0 var(--sp-4)}
.press-list .pl-src span{font-weight:400; letter-spacing:0; text-transform:none; color:var(--sec)}
.press-list .pl-title{font-family:var(--serif); font-size:var(--fs-19); line-height:1.35; color:var(--navy); text-decoration:underline; text-decoration-color:rgba(27,45,77,.7); text-decoration-thickness:1px; text-underline-offset:3px}
.press-list .pl-title:hover, .press-list .pl-title:focus-visible{color:var(--ott); text-decoration-color:var(--ott)}
.press-list .pl-title:visited{color:var(--sec); text-decoration-color:var(--sec)}
.press-list .pl-parts{list-style:none; margin:0; padding:0}
.press-list .pl-parts li + li{margin-top:var(--sp-8)}
.press-list .pl-part{display:block; font-family:var(--ui); font-size:var(--fs-12); font-weight:600; color:var(--sec)}
.press-list .pl-by{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:var(--sp-8) 0 0}
.per-stampa{background:var(--crema); border-left:3px solid var(--ott); padding:var(--sp-24); font-family:var(--ui); font-size:var(--fs-14); line-height:1.55}
.per-stampa h2{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:var(--fs-19); margin:0 0 var(--sp-16)}
.per-stampa h3{font-family:var(--ui); font-size:var(--fs-12); font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ott); margin:var(--sp-24) 0 var(--sp-8)}
.per-stampa h2 + h3{margin-top:0}
.per-stampa p{margin:0 0 var(--sp-8); color:var(--ink)}
.per-stampa a:not(.btn){color:var(--navy); text-decoration:underline; text-decoration-color:rgba(27,45,77,.7); text-underline-offset:3px}
.per-stampa a:not(.btn):hover{color:var(--ott)}
.per-stampa .btn{display:block; text-align:center; padding:var(--sp-12) var(--sp-16); margin-top:var(--sp-12)}
.per-stampa ul{list-style:none; margin:0; padding:0}
.per-stampa .doc-note{display:block; color:var(--sec); margin-top:2px}
@media (max-width:860px){
  .stampa-grid{grid-template-columns:1fr; gap:var(--sp-48)}
}
@media (max-width:560px){
  .press-list > li{grid-template-columns:1fr; gap:var(--sp-4)}
  .press-list .pl-date{padding-top:0}
}
/* Tabella dei numeri (La professione) */
.datatable{width:100%; border-collapse:collapse; margin:var(--sp-16) 0 var(--sp-8); font-family:var(--ui); font-size:var(--fs-15)}
.datatable caption{text-align:left; font-family:var(--ui); font-size:var(--fs-14); font-weight:600; color:var(--navy); padding:0 0 var(--sp-8)}
.datatable th, .datatable td{padding:var(--sp-8) var(--sp-12) var(--sp-8) 0; border-bottom:1px solid var(--line); text-align:left; vertical-align:baseline}
.datatable thead th{font-size:var(--fs-12); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--sec); border-bottom:2px solid var(--navy)}
.datatable tbody th{font-weight:600; color:var(--navy)}
.datatable .num{text-align:right; padding-right:0; font-variant-numeric:tabular-nums; white-space:nowrap}
.datatable tfoot th, .datatable tfoot td{font-weight:600; color:var(--navy); border-bottom:0}
.prose .table-note{font-family:var(--ui); font-size:var(--fs-14); color:var(--sec); margin:0 0 1.05em}
.prose h3[id]{scroll-margin-top:20px}
.toc + .lead-p{margin-top:var(--sp-48)}
